Iptables & ssh

WRInaute impliqué
Bonjour,

J'ai fais un vpn sur un serveur, j'ai besoin de 2 iptables pour avoir accès à internet:

iptables --table nat --append POSTROUTING --jump SNAT --to-source ip_publique_serveur
iptables --table nat --append PREROUTING --destination ip_publique_serveur --protocol tcp --jump DNAT --to-destination plage_ip_attribué

Dés que la 2éme régle est mise, je n'ai plus d'accès ssh, ftp & apache. Mon seul moyen d'aller sur le vps est l'api de l'hébergeur.
Mes iptables sont en policy accept.
Vous voyez ou j'ai merdé?

Merci d'avance.
 
WRInaute accro
Euuuh... Tu cherches à faire quoi exactement? Parce que DNAT avec une plage d'adresses, ça me semble être un cas un peu particulier, et je ne pense pas que ce soit ce que tu veux.

Ta première règle dit que toute connexion venant de ton serveur vers l'extérieur sera transformée pour apparaître comme venant de ton IP publique. C'est utile si tu as d'autres machines qui passent par celle-là pour accéder à Internet, mais qu'elles n'ont que des adresses "privées". C'est le NAT le plus "classique" (celui qui est employé par la plupart routeurs domestiques par exemple).

Ta deuxième règle dit que toute connexion TCP vers ton serveur sera renvoyée au hasard vers l'une des IP dans la plage d'adresses indiquée. Ca inclut les connexions ssh, ftp, http, etc.

En général, DNAT n'est utilisé que pour mapper un port précis vers une machine précise (éventuellement avec un port différent), genre si le serveur http n'est pas sur cette machine mais sur une autre sur le réseau privé, et que tu veux rediriger les connexions vers cette machine. C'est ce qu'on appelle couramment du "port forwarding".

Donc la question c'est: quelle est la topologie de ton réseau, et que cherches-tu à faire exactement?

Jacques.
 
WRInaute impliqué
Alors, j'ai un serveur aux Pays-Bas, il me sert pour des activités "douteuses". Je fais un vpn pour aller sur certains sites et télécharger les distributions d'ubuntu ^^

Donc mon but est de cacher mon ip, si je ne met aucune iptables, je peux me connecter au vpn, le ping sur le serveur marche (10.103.0.1 pas l'ip publique) mais il n'y a pas de routage, le serveur ne sais pas qu'il doit redonner les paquets au client, je pense donc qu'il faut faire du nat.

Avant j'avais des règles complètement différente, mais chez un hébergeur français et les interfaces ne sont pas gérer pareil: la le nom de mes interfaces c'est genre "venet0:0", on ne peut donc pas (j'ai pas trouvé) faire des iptables avec le nom de l'interface, ça me met en vielle erreur du genre interface non trouvé, j'ai testé avec " et ' et /.

Sur mon ancien serveur, j'avais un truc différent mais vu que j'ai qu'une exportation des tables, c'est un peu le bordel vu que fail2ban était très actif. Ce qui est lisible:
:pREROUTING ACCEPT [12296]
:pOSTROUTING ACCEPT [4065]
:OUTPUT ACCEPT [3970]
-A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 88.191.119.11 COMMIT

Après c'est de l'anti ddos et spam divers ou je suis trop faible pour me souvenir de ce que j'ai fais. Je ne trouve pas la 2éme commande :x

Je rappel vite fais le fonctionnement du VPN:
Crée un interface de plus sur les machines (client(s) et serveur) genre tun0 en ip privé.

On se retrouve donc sur le serveur avec:
lo: boucle locale ipv6
vennet0: localhost ipv4
(on remarque qu'on a 2 localhost)
venet0:0: ip publique
tun0: ip privé du vpn (10.103.0.1)

Client
Wlan0: box
Eth0: box
Tun0: ip privé du vpn (10.103.0.6)

Donc d'après toi, la 1ére règle suffit pour ce que je dois faire?

Je vais encore réessayer de reformuler mon soucis vu que c'est pas trop clair:
Utiliser mon serveur comme ma box: en routeur => nat => iptables
Après mes iptables marchent pour le vpn: je peux naviguer sur le web et tous les ports sont forwarder par le serveur mais plus moyen de toucher au serveur.

Merci de t'intéresser à mon cas :)
 
WRInaute accro
J'ai pas vraiment tout compris...

C'est quelle IP que tu veux cacher? Celle de chez toi, et tu veux que ça mette l'IP de ton serveur à la place? Et tu fais un VPN entre ton client (chez toi) et ton serveur? Dans ce cas, en supposant que le VPN fonctionne bien (ce qui a l'air d'être le cas d'après ce que tu indiques), oui, la première règle devrait largement suffire, à condition que chez toi tout soit configuré pour être envoyé à travers le tunnel (en gros ta route par défaut doit pointer sur l'IP privée du serveur, et tu dois avoir une route statique qui fait pointer l'IP du serveur sur ta connexion Internet).

Jacques.
 
WRInaute impliqué
C'est ça.

En gros chez moi j'ai mon ip publique + ip privé du réseau + ip privé du vpn.
On peut pas voir une ip privé donc logiquement c'est la publique que je veux cacher.

Les routes sont mise dans le fichier de conf "serveur" du vpn, tout est rediriger, la preuve j'ai pas accès à internet si le vpn est connecter sans iptables pour le nat.

Par contre j'ai une route pour dire au client de passé par le serveur mais pas de l'autre sens.

Je vais essayer ce soir, j'ai des soucis pour vider les tables, la commande marche jamais du 1er coup et c'est pas un bon coup de passé 30min au boulot en ssh x)

Merci pour tes réponses, je vous tiens au courant.
 
WRInaute impliqué
Et ba c'était ça, sa marche maintenant, faut croire que j'ai pas eu de chance lors de mon 1er test.

Merci :)
 
Discussions similaires
Haut