Bagaimana saya bisa melihat apakah saya masuk melalui VPN?

16

Saya menggunakan Juniper Networks (program Java yang membuat koneksi VPN).

Apakah ada perintah baris perintah yang memungkinkan saya memeriksa untuk melihat apakah saya masuk dengan Juniper?

Martin Thoma
sumber

Jawaban:

20

Jika Anda menjalankan ifconfig -aatau ip link showAnda akan melihat sesuatu seperti di tunXbawah ini yang merupakan perangkat tun yang digunakan oleh sebagian besar VPN berbasis rute:


# tun device
# used by route-based VPN

    tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
              inet addr:  P-t-P:  Mask:
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1300  Metric:1
              RX packets:10 errors:0 dropped:0 overruns:0 frame:0
              TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:500 
              RX bytes:1435 (1.4 KB)  TX bytes:1677 (1.6 KB)

# Jan 2020 refresh
# sample ifconfig output with 3 virtual interfaces
# for route-based VPN or overlay network

nebula1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1300
        inet 172.16.87.100  netmask 255.255.255.0  destination 172.16.87.100
        inet6 fe80::b2c4:4360:a3ae:15aa  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 37  bytes 2980 (2.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 331  bytes 17408 (17.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 172.16.200.1  netmask 255.255.255.0  destination 172.16.200.1
        inet6 fe80::9d2e:5979:5ac2:43df  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1677  bytes 80496 (80.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet 172.16.111.100  netmask 255.255.255.0  destination 172.16.111.100
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 37337578  bytes 10884991930 (10.8 GB)
        RX errors 0  dropped 67878  overruns 0  frame 0
        TX packets 60202096  bytes 66040772964 (66.0 GB)
        TX errors 169  dropped 44429 overruns 0  carrier 0  collisions 0

ip link keluaran


5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/none
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 100
    link/none
11: nebula1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1300 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 500
    link/none

Atau jika Anda menggunakan IPsec (mis. StrongSwan), ifconfig -aakan menampilkan perangkat terowongan (tunX) seperti di bawah ini jika Anda menggunakan mode berbasis Rute (default berbasis kebijakan):

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.11.2  P-t-P:192.168.11.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Jika strongSwan menjalankan perutean berbasis kebijakan (default), Anda akan dapat mengetahuinya dengan memanipulasi tabel perutean kernel atau melihat ip-xfrmkerangka IP untuk mengubah paket (mengenkripsi muatan).

# manipulate kernel routing table for more info

ip r
route -nr

ip r show table main
ip r show table local

# strongswan specific table id 220
ip r show table 220

Selain itu, Anda dapat menggunakan ip tuntap showuntuk melihat apakah ada perangkat tun / tap untuk menentukan apakah VPN sedang digunakan.

    ip tuntap show
    tun0: tun
Terry Wang
sumber
2
Membangun berdasarkan jawaban Wang Wang, Anda dapat menggunakan one-liner ini untuk memeriksanya: ifconfig tun0 &> /dev/null && echo -e "\033[1;32m" "-- VPN is active --" "\033[0m"
zipizap
9

Anda juga dapat memeriksa rute Anda dengan routeperintah. Anda akan melihat lebih banyak rute seperti biasa dan ke berbagai tujuan.

Contoh

Terhubung tanpa juniper:

moose@pc07:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     2      0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
default         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0

Terhubung dengan Juniper:

moose@pc07:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.1     *               255.255.255.255 UH    1      0        0 wlan0
vpn.kit.edu     192.168.0.1     255.255.255.255 UGH   1      0        0 wlan0
192.168.0.0     *               255.255.255.0   U     2      0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
default         vpn-cl-192-62.s 0.0.0.0         UG    1      0        0 tun0
default         192.168.0.1     0.0.0.0         UG    10     0        0 wlan0
Dre
sumber
Ini adalah jawaban yang lebih baik daripada yang diterima, setidaknya jika Anda bertanya kepada saya :)
Aleks
1

Menggunakan ncdiagperintah juniper akan memberi Anda informasi ini.

  • Gunakan ncdiag -tuntuk uji terowongan.
  • Gunakan ncdiag -huntuk info host.

Lebih spesifik:

$ cd ~/.juniper_networks/network_connect
~/.juniper_networks/network_connect$ file !$
file ncdiag
ncdiag: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
~/.juniper_networks/network_connect$ ./ncdiag 
    usage: ./ncdiag -A [or]
    usage: ./ncdiag -i -s -d -t -h -a -r <hostname> -k -v
     -A : All tests
     -i : installation test 
     -s : service test 
     -d : driver tests 
     -t : tunnel test 
     -h : host info 
     -a : adaptor test 
     -r : resolve host 
     -k : kill NC gui 
     -v : version   

~/.juniper_networks/network_connect$ ./ncdiag -t
+==============================================================================+
|   Tests:          |        Results:                      |
+==============================================================================+
       o  NC Diagnostics            
             NC Tunnel Test          Established

       Finished running tests 
+==============================================================================+
~/.juniper_networks/network_connect$ ./ncdiag -h
+==============================================================================+
|   Tests:          |        Results:                      |
+==============================================================================+

   o  Host Details              
         Hostname            tau
         Domainname          (none)
         IP Routing Enabled      Yes
         IP Loopback test        Passed
         Nameserver Details     
           8.8.8.8       Ping Passed

           8.8.6.6       Ping Passed
         Gateway Ping Test           
            10.20.20.1       Ping Passed

   Finished running tests 

+ ================================================= ============================= +

belacqua
sumber
1

Dalam kasus saya, perangkat ini cscotun0(saya menggunakan Cisco Anyconect Secure Mobility Client) daripada tun0.

Oleh karena itu (berdasarkan jawaban Terry Wang dan komentar zipizap), jika Anda tidak tahu nama perangkat, Anda dapat menggunakan:

if [ "0" == `ifconfig | grep tun0 | wc -l` ]; then echo "n"; else echo "y"; fi

atau, jika Anda tahu nama perangkat:

if ifconfig cscotun0 &>/dev/null; then echo "y"; else echo "n"; fi

UPD Dengan Ubuntu 18.04, saya perlu:

if [ "`ifconfig | grep vpn0`" != "" ] ; then echo yes; else echo no; fi

Sayangnya, ifconfig vpn0sekarang mengembalikan 0 (sukses) bahkan jika vpn tidak berfungsi.

18446744073709551615
sumber
0

Solusi alternatif (Gnome)


Periksa kapan sedang berjalan

➜ ifconfig -a | grep vpn | grep RUNNING
1:179:vpn0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1334

Periksa kapan tidak berjalan

➜ ifconfig -a G vpn
179:vpn0: flags=4240<POINTOPOINT,NOARP,MULTICAST>  mtu 1334

sehingga Anda dapat memeriksa UP , RUNNING via grep seperti yang ditunjukkan di bawah ini

ifconfig -a | grep vpn | grep RUNNING
vpn_running=$?

if [ $vpn_running -ne 0 ]; then

    echo "VPN <span color='yellow'><tt>UP</tt></span> | iconName=utilities-terminal-symbolic bash='nmcli con up id VPN' terminal=false"
else
    echo "VPN <span color='red'><tt>(DOWN)</tt></span> | iconName=utilities-terminal-symbolic bash='nmcli con down id VPN' terminal=false"
fi

Saya menggunakan plugin shell argo gnome yang fantastis , dan di atas adalah bagian dari skrip saya sehingga saya dapat meluncurkan VPN dari toolbar (atau mematikannya)

DmitrySemenov
sumber