Connexion SSH avec VPN IP sécurisé

1

J'ai un ordinateur derrière un routeur avec une configuration de redirection de port. Le port 22 pour SSH fonctionne parfaitement. Je peux me connecter et tout. Ce que j'essaie de faire est de laisser ce PC se connecter à un VPN et autoriser uniquement le trafic sur un réseau local ou via la connexion VPN (pour un accès Internet). Cela fonctionne aussi très bien. Dès que la connexion VPN est interrompue, le PC n’est plus connecté à Internet. Maintenant, je fais cela avec IPTABLES, le problème est que je n'arrive pas à faire en sorte que le SSH entrant fonctionne depuis des sources externes via la redirection de port du routeur. Je suis capable de SSH au PC à partir du réseau local.

Voici ce que j'ai essayé:

# 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

Voici ma sortie iptables -vL -n: (Remplacé le serveur VPN par 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

Et oui, si je fais un ifconfig, je n'ai qu'un eth1 et pas un eth0, donc ce n'est pas ça.

Voici également la sortie de 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
PsyMonkey
la source
Quand tu fais iptables -vL, voyez-vous un nombre de paquets pour les règles 4, 5, 6 et 9, 10, 11? Toute personne de votre serveur VPN a un accès complet à votre hôte. Pouvez-vous montrer un route -n ou netstat -rn?
ott--
J'ai mis à jour comme demandé merci pour l'aide.
PsyMonkey
OK, relancez le script sans vous connecter à l’openvpn, cela fonctionne, c’est donc ouvert à tous.
PsyMonkey
Alors, quelle est la table de routage sans openvpn? Et quelle est la configuration openvpn? Quel âge a votre système d'exploitation? Certains ont des problèmes avec 2 itinéraires par défaut.
ott--
Okay en cours d'exécution (trouvé sur un forum, je n'ai aucune idée de ce qu'il fait) permet de se connecter depuis une source externe, mais maintenant, la connexion interne ssh a cessé de fonctionner. règle IP ajouter à partir de & lt; adresse IP interne du serveur SSH / client VPN & gt; tableau 10, route IP, ajoutez les paramètres par défaut via & lt; IP interne de la passerelle / du routeur & gt; tableau 10
PsyMonkey