Accesso SSH con VPN IP sicura


1

Ho un PC dietro un router con la configurazione del port forwarding Porta 22 per SSH che funziona perfettamente - posso accedere e tutto. Quello che sto cercando di fare è consentire a questo PC di connettersi a una VPN e consentire solo il traffico sulla rete locale o tramite la connessione VPN (per l'accesso a Internet). Anche questo funziona alla grande. Non appena la connessione VPN viene interrotta, il PC non ha alcuna connessione a Internet. Ora lo sto facendo con IPTABLES, il problema è che non riesco a far funzionare SSH in entrata da fonti esterne tramite il port forwarding del router. Sono in grado di eseguire SSH sul PC dall'interno della rete locale.

Ecco cosa ho provato:

# Allow traffic to VPN SERVER
sudo iptables -A INPUT -s $REMOTE_IP -j ACCEPT

# Allow ssh traffic
iptables -A INPUT -i eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT    
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

# Allow local traffic.
sudo iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -s 172.16.0.0/12 -j ACCEPT
sudo iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT

# Disallow everything else.
sudo iptables -A INPUT ! -i tun+ -j DROP

# Allow traffic from VPN SERVER.
sudo iptables -A OUTPUT -d $REMOTE_IP -j ACCEPT

# Allow local traffic.
sudo iptables -A OUTPUT -d 10.0.0.0/8 -j ACCEPT
sudo iptables -A OUTPUT -d 172.16.0.0/12 -j ACCEPT
sudo iptables -A OUTPUT -d 192.168.0.0/16 -j ACCEPT

# Disallow everything else.
sudo iptables -A OUTPUT ! -o tun+ -j DROP

sudo openvpn --config client.cfg --auth-user-pass client.cred --daemon

Ecco il mio iptables -vL -n output: (Sostituito il server VPN con XX.XX.XX.XX)

Chain INPUT (policy ACCEPT 25674 packets, 4792K bytes)
 pkts bytes target     prot opt in     out     source               destination         
78848   11M ACCEPT     all  --  *      *       XXX.XXX.XXX.XXX      0.0.0.0/0           
 3176  318K ACCEPT     tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22 state NEW,ESTABLISHED 
    0     0 ACCEPT     all  --  *      *       10.0.0.0/8           0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       172.16.0.0/12        0.0.0.0/0           
 2517  231K ACCEPT     all  --  *      *       192.168.0.0/16       0.0.0.0/0           
   35 12374 DROP       all  --  !tun+  *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 32187 packets, 4374K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 3681 2443K ACCEPT     tcp  --  *      eth1    0.0.0.0/0            0.0.0.0/0           tcp spt:22 state ESTABLISHED 
70697   10M ACCEPT     all  --  *      *       0.0.0.0/0            XXX.XXX.XXX.XXX      
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            10.0.0.0/8          
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            172.16.0.0/12       
   27  5787 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.0.0/16      
 2265  150K DROP       all  --  *      !tun+   0.0.0.0/0            0.0.0.0/0

E sì, se faccio un ifconfig ho solo un eth1 e non un eth0, quindi non è quello.

Ecco anche l'output di netstat -rn

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         XX.XXX.242.128  128.0.0.0       UG        0 0          0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth1
XX.XXX.193.107  192.168.1.1     255.255.255.255 UGH       0 0          0 eth1
XX.XXX.242.0    0.0.0.0         255.255.255.0   U         0 0          0 tun0
128.0.0.0       XX.XXX.242.128  128.0.0.0       UG        0 0          0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1

Quando lo fai iptables -vL, vedi qualche conteggio dei pacchetti per le regole 4, 5, 6 e 9, 10, 11? Chiunque dal tuo server VPN ha pieno accesso al tuo host. Puoi mostrare un route -no netstat -rn?
ott--

Ho aggiornato come richiesto grazie per l'aiuto.
PsyMonkey,

Ok, riesegui lo script senza collegarti a openvpn, quindi ha a che fare con openvpn.
PsyMonkey,

Quindi, qual è la tabella di routing senza openvpn? E qual è la configurazione di openvpn? Quanti anni ha il tuo sistema operativo? Alcuni hanno problemi con 2 percorsi predefiniti.
ott--

Va bene eseguendo questo (trovato su alcuni forum non ho idea di cosa faccia) fa funzionare il login da fonti esterne ma ora il login ssh interno ha smesso di funzionare. aggiunta regola ip da <IP interno del server SSH / client VPN> tabella 10 route ip aggiungi impostazione predefinita tramite <IP interno gateway / router> tabella 10
PsyMonkey
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.