Iptables Openwrt plusieur interface - réseaux et sécurité - Linux et OS Alternatifs
Marsh Posté le 23-06-2010 à 09:14:49
Hum si eth0.1 est membre de br-lan c'est ce dernier que tu dois donner à iptables.
Sinon pour faire du filtrage à l'intérieur du bridge y'a ebtables.
Marsh Posté le 23-06-2010 à 10:08:21
Bah j'ai mis eth0.1 et eth0.2 dans mes iptabes mais sa change rien ...
Marsh Posté le 23-06-2010 à 13:38:48
Remplace eth0.1 par br-lan iptables va pas marcher sur une interface sans adresses et membre d'un bridge !
Marsh Posté le 23-06-2010 à 21:45:04
Et quel problème exactement ?
Marsh Posté le 23-06-2010 à 22:05:10
bah j'ai plus le net, le ports ssh est fermer des trucs comme sa ..
Marsh Posté le 23-06-2010 à 22:23:07
La sa marche j'ai bien le net mais l'ouverture des ports ne fait pas trop effet =s
Marsh Posté le 23-06-2010 à 22:44:21
L'ouverture de ports sur la Fonera ou forwardés ?
Le mieux c'est de repartir de règles minimales et de garnir en vérifiant le fonctionnement au fur et à mesure.
Ah oui aussi évite de trop utiliser les "log-and-drop" sur les Fonera de premières générations (avant la Fonera 2n), c'est pas une bête de course et le logging est gourmand, quand j'ai activé le logging d'iptables pour debugger un problème sur ma FON2100 je suis passé de 1ms à 500ms de ping entre mon poste et ma Fonera Ce serait bête qu'un simple flood de paquets rejetés provoque un DoS, le firewall est plutot là pour éviter ce genre de problèmes d'habitudes.
Et si ça peut t'aider voilà mes règles pour ma Fonera, j'ai un modèle 2100 comme dit plus haut avec un seul port ethernet du coup ath0 (wifi) = LAN eth0 (ethernet) = WAN, pas besoin de bridge dans cette configuration.
|
Et aussi j'ai fait le choix de laisser toutes les connexions sortantes du routeur libres, ça me permet d'utiliser ping, traceroute & co à partir du routeur sans avoir à écrire de règles spécifiques, et de toute façon si un attaquant arrive à installer un logiciel malveillant sur le routeur ça ne lui posera pas de PB de désactiver le firewall, y'a pas de notion d'utilisateurs dans OpenWRT y'a que deux comptes (root et daemon).
Si tu veut protéger quelque-chose protège plutôt le routeur du LAN (ce que je ne fait pas non plus mais c'ets todo) ! C'est assez simple à mettre en place en IPv4 (en gros tu ferme en entrée tout sauf ssh, le dhcp et le dns)
Marsh Posté le 23-06-2010 à 23:19:41
J'ai mis en place ton script sa marche nickel =D mais dans ce cas la du script, je pourrais dire que le port 1909 doit pointé vers 192.168.1.6 de mon local ?
Merci
Edit : j'ai pas compris le principe de frostip ..
Marsh Posté le 23-06-2010 à 23:38:25
Regarde les deux dernières lignes que j'ai mis pour la redirection de ssh, $V4_FROST_IP contient l'IP de ma machine principale (192.168.1.1), suffit juste de changer le port !
Marsh Posté le 23-06-2010 à 23:50:59
Donc, cela permet une connection de l'extérieur vers le ssh, ou que en local ?
Marsh Posté le 24-06-2010 à 00:06:18
De l'extérieur vers la machine "frost".
Marsh Posté le 24-06-2010 à 00:09:19
Tu l'a adapté comment à ta conf ?
Marsh Posté le 24-06-2010 à 00:11:02
Voila =)
Code :
|
Marsh Posté le 24-06-2010 à 00:16:43
Normalement ça va, à part la variable "iffrostip" qui n'a pas le même nom dans les règles "-d $FROST_ip" mais je suppose que tu a corrigé sinon iptables aurait gueulé.
Tu utilise quoi pour tester l'ouverture du port ?
EDIT: je voit un autre problème, chez moi la freebox est en mode routeur donc ma fonera obtiens de la freebox une adresse locale (192.168.0.1), d'après ton ifconfig ta fonera obtiens directement l'ip publique via dhcp (82.***.***.***) faut donc adapter la variable WAN_ip en conséquence, pareil pour LAN_ip chez moi j'ai mis 192.168.1.254 mais d'après ton ifconfig toujours tu as choisi 192.168.1.1 !
EDIT2: Et du coup si ta Fonera c'est 192.168.1.1 ton PC ne peut avoir lui aussi cette adresse, hors dans ton script "iffrostip=192.168.1.1" alors que dans un post tu parle de 192.168.1.6
Marsh Posté le 24-06-2010 à 00:18:16
Ouep c'est fait : )
Bah un amis externe qui essaye de ce connecter :s
Marsh Posté le 24-06-2010 à 00:23:01
J'ai édité mon post
Marsh Posté le 24-06-2010 à 00:26:57
Pas bête j'ai fais un copier coller sans lire betement ...
Mais après le teste toujours pareil ..
Edit : mais alors la j'ai pas compris le principe de frost ip ?
Marsh Posté le 24-06-2010 à 00:40:04
FROST est le nom (tiré d'une nouvelle de J. Steven York) d'une de mes machine , j'ai donc définit une variable V4_FROST_IP qui contiens l'IP de cette machine 192.168.1.1. Comme ça quand j'ai besoin de specifier l'adresse de cette machine à iptables j'utilise la variable $V4_FROST_IP qui sera pour moi plus "parlante" et si demain je change l'adresse de cette machine je n'aurait à répercuter la modification qu'a un seul endroit au lieu de faure un rechercher/remplacer dans ton le script.
Toi la variable portera le nom que tu veux et l'IP de la machine sera plutôt le 192.168.1.6 dont tu parle plus haut que le 192.168.1.1 qui est déjà l'adresse associée à br-lan sur ta fonera.
Marsh Posté le 24-06-2010 à 00:42:24
Mmmm d'accord je comprend mieux =D
Mais la si je veux donner un accès depuis l'extérieur vers mon 192.168.1.6 j'utilise sa :
iptables -t nat -A PREROUTING -i $WAN -s $WAN_net -d $WAN_ip -p tcp -m tcp --dport 666 -m state --state NEW -j DNAT --to-destination $FROST_ip:666
iptables -t filter -A FORWARD -i $WAN -o $LAN -s $WAN_net -d $FROST_ip -p tcp -m tcp --dport 666 -m state --state NEW -j ACCEPT
Mais si je veux permettre une connexion vers la fonera je met l'ip de la fonera ou j'enlève ?
Merci
Marsh Posté le 24-06-2010 à 00:47:27
Si tu veut permettre la connexion à partir du net sur fonera tu travaille juste sur la chaîne INPUT comme dans mon script pour "accepter" les traceroutes, là c'est rediriger les connexions entrantes vers le port 666 sur une autre machine dans le réseau local.
Citation : # Accept traceroutes |
Par contre un port ne peut pas être routé et ouvert (pour le WAN) à même temps, inconvénient du NAT.
Marsh Posté le 24-06-2010 à 00:49:30
Port ouvert = il est ouvert et sa peux passer sur n'importe quelle pc
port routé = il peut allez que sur une machine local ?
Edit :
# Accept SSH
iptables -t filter -A INPUT -i $WAN -s $WAN_net -d $WAN_ip -p udp -m udp --dport 666 -m state --state NEW -j ACCEPT --to-destination $LAN_ip:22
Obliger de dire la destination ?
Marsh Posté le 24-06-2010 à 00:54:46
Pour ouvert = on peut contacter la fonera sur ce port
Port routé = Les connexions entrantes sur ce port serons redirigés vers une autre machine.
On voit de suite le conflit, tu n'a qu'une adresse publique donc si tu fait tourner ssh sur ta fonera et sur plusieurs machines de ton lan comment savoir laquelle tu veux contacter via ton_ip_publique:22 ?
Solution utiliser des ports différent :
22 : ouvert sur la fonera
222: redirigé vers machine A:22
2222: redirigé vers machine B:22
...
Marsh Posté le 24-06-2010 à 00:55:51
D'accord la je comprend mieux donc pas besoin de dire que dans input c'est pour la fonera =D
Editer en haut ^^
Marsh Posté le 24-06-2010 à 00:57:47
Perso je spécifie un max de paramètres à IPtables même si'ils sont inutiles car c'ets comme-ça qu'on m'a appris (pour se prémunir du changement de comportement par défaut), mais en pratique oui c'est quasiment inutile !
Marsh Posté le 24-06-2010 à 00:59:41
iptables -t filter -A INPUT -i $WAN -s $WAN_net -d $WAN_ip -p udp -m udp --dport 666 -m state --state NEW -j ACCEPT
Ne fonctionne pas et quand je lui dit la déstination il gueule =/
Marsh Posté le 24-06-2010 à 01:01:48
Pas de destination sur la chaîne INPUT (dont la destination est par conséquent la machine locale), ce n'est qu'en combinaison avec -j DNAT pour destination-NAT ça sert à specifier vers quelle machine rediriger les paquets,
Marsh Posté le 24-06-2010 à 01:03:27
Oui j'avais compris après ma bêtise =D
Mais juste en -j ACCEPT sa marche pas :s
Marsh Posté le 24-06-2010 à 01:04:25
Pourtant la commande est bonne, t'a quel service en UDP sur le port 666 de ta Fonera ?
Marsh Posté le 24-06-2010 à 01:05:46
en 666 j'ai la SSH du debian ( qui fonctionne merci =) )
mais pour un ssh sur la fonera en 22 sa ne marche pas
Marsh Posté le 24-06-2010 à 01:07:36
Normal SSH c'est du tcp
iptables -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT # (version minimale sans options les quasi-inutiles que je spécifie quand-même )
Marsh Posté le 24-06-2010 à 01:10:26
Oula 666 c'est celle de la fonera, et 22 celle de la debian ...
Je suis fatiguer moi =D
Marsh Posté le 24-06-2010 à 01:11:45
Bon
iptables -A INPUT -i $WAN -p tcp --dport 666 -j ACCEPT
Marsh Posté le 24-06-2010 à 01:15:05
Sa marche sa gère !!!!
Merci a toi =D
Mais si j'ai un serveur VPN sur mon debian, j'ai juste a ouvrir le port du VPN ou je dois aussi créer une carte tun sous la fonera?
Marsh Posté le 24-06-2010 à 01:20:29
Pour un client vpn ça passe bien avec la règle "ESTABLISHED,RELATED" sur FORWARD, pour un serveur dois falloir router les ports concernés vers ta debian c'est tout !
Je crois que le VPN c'est le port 443 en TCP, mais y'a un mode UDP aussi non ?
Marsh Posté le 24-06-2010 à 01:22:44
Bah moi j'ai openvpn donc je choisi mon port et protocole =)
ESTABLISHED,RELATED sa veut dire quoi ? que tout sors ?
Il est tard je vais dodo
Bonne nuit a tous !
Et Merci énormément High Plains Drifter ! 10 jours de galère résolu en 1 nuit xD
Marsh Posté le 24-06-2010 à 01:31:56
# Je laisse tout sortir sauf les connexions "invalides"
iptables -t filter -A FORWARD -i $V4_LAN_IFACE -o $V4_WAN_IFACE -s $V4_LAN_NETWORK -d $V4_WAN_NETWORK -m state ! --state INVALID -j ACCEPT
# Je ne laisse entrer par défaut que les connexions se référents à une connexion sortante
iptables -t filter -A FORWARD -i $V4_WAN_IFACE -o $V4_LAN_IFACE -s $V4_WAN_NETWORK -d $V4_LAN_NETWORK -m state --state ESTABLISHED,RELATED -j ACCEPT
# Je remplace l'IP locale de mes machine par mon IP publique
iptables -t nat -A POSTROUTING -o $V4_WAN_IFACE -s $V4_LAN_NETWORK -d $V4_WAN_NETWORK -j MASQUERADE
Ici on travaille sur la chaîne FORWARD ça ne concerne donc que les machines de notre lan et pas la Fonera elle-même (qui a les mêmes règles chez moi).
Ces règles suffisent pour 99% des connexions dans le sens client -> serveur, dont l'utilisation d'un client OpenVPN.
Marsh Posté le 24-06-2010 à 22:43:13
T'appels quoi par connexion invalides ?
Et j'ai pas compris quand tu dis : je remplace l'ip local de mes machines par mon ip public ?!
Marsh Posté le 23-06-2010 à 00:18:48
Bonsoir tous le monde
Voilà passionner de réseaux je bidouille ce que je trouve mais la j'ai une grosse colle j'ai besoin de votre aide =)
Donc voila j'ai une Fonera que j'ai flasher sous OpenWrt sa tourne bien je suis content
A coté de sa, j'ai un mac mini sous debian avec dessus un openvpn super fonctionnel aucun soucis, mais en local .. =D
J'ai des petits soucis avec iptables de ma fonera ...
Voici mes interfaces :
Et la mes iptables :
Sauf que sa marche pas =D
Une image pour récapituler mes interfaces
( prendre en compte que eth0,eth0.1 et 0.2 )
Comme c'est un bridge qui prendre en compte la wifi + ethernet et qui divise l'ethernet en eth0.1 et 0.2 je sais pas comment expliquer a iptables enfin voila ..
Merci de votre aide =)
Message édité par vith le 23-06-2010 à 00:19:38