aide pour "mon script" iptables - Linux et OS Alternatifs
Marsh Posté le 25-11-2001 à 01:23:06
met déjà EXTERNAL="ppp0"
comme ça ton EXT_IP=`ifconfig $EXTERNAL | grep inet | cut -d : -f 2 | cut -d \ -f 1` fonctionnera et te donnera l'ip de ton interface ppp0 au lancement du script (ton ip externe)
décommente pour masquer ton ip vis-à-vis de l'extérieur.
$IPTABLES -t nat -A POSTROUTING -o $EXTERNAL -s $INTERNAL_NET \
-j SNAT --to-source $EXT_IP
Sinon, il y a trop de choses à modifier. Faut comprendre en détail ce qu'il fait, et c'est pas évident.
Comme tu offres des services au réseau qui ne sont pas les mêmes que ceux que tu offres à internet, tu vas devoir créer des nouvelles chaînes.
Les chaines à garder de toute façon sont KEEP_STATE, CHECK_FLAGS, DST_EGRESS, et SRC_EGRESS.
voici ce que j'ai fais pour moi :
à la base je sépare le traffic et je délègue chque type de traffic à une chaine particulière.
LAN_IP="192.168.0.0/24"
#règles qui concernent le traffic réseau -> internet
$IPTABLES -N NETWORK_2_INTERNET
$IPTABLES -F NETWORK_2_INTERNET
...
#règles qui concernent le traffic réseau -> paserelle
$IPTABLES -N NETWORK_2_GATEWAY
$IPTABLES -F NETWORK_2_GATEWAY
...
#règles qui concernent le traffic internet -> paserelle
$IPTABLES -N INTERNET_2_GATEWAY
$IPTABLES -F INTERNET_2_GATEWAY
...
#règles qui concernent le traffic internet -> réseau
$IPTABLES -N INTERNET_2_NETWORK
$IPTABLES -F INTERNET_2_NETWORK
...
#règles qui concernent le traffic passerelle -> Internet
$IPTABLES -N GATEWAY_2_INTERNET
$IPTABLES -F GATEWAY_2_INTERNET
...
#règles qui concernent le traffic passerelle -> réseau
$IPTABLES -N GATEWAY_2_NETWORK
$IPTABLES -F GATEWAY_2_NETWORK
...
#---------------------------------------------------
#application des chaines.
$IPTABLES -A INPUT -i $LOOPBACK -j ACCEPT
$IPTABLES -A INPUT -i $LAN_IF -j NETWORK_2_GATEWAY
$IPTABLES -A INPUT -i $EXT_IF -j INTERNET_2_GATEWAY
$IPTABLES -A OUTPUT -o $LOOPBACK -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN_IF -j GATEWAY_2_NETWORK
$IPTABLES -A OUTPUT -o $EXT_IF -j GATEWAY_2_INTERNET
$IPTABLES -A FORWARD -i $EXT_IF -j INTERNET_2_NETWORK
$IPTABLES -A FORWARD -o $EXT_IF -j NETWORK_2_INTERNET
avec ça c'est déjà un bon début puisque tu sépares bien le traffic réseau. donc, tu sais que si tu veux autoriser qq sur internet à accéder à ton site internet sur ton serveur, tu devras ajouter une règle dans INTERNET_2_GATEWAY pour l'autoriser à se connecter et ajouter une règle dans GATEWAY_2_INTERNET pour autoriser ta passerelle à lui renvoyer les infos (ce qui est fait automatiquement avec le KEEP_STATE)
pour chaque type de traffic:
- tu élimines d'abord les cas dangeureux (genre ipspoofing, adresse invalides (SRC_EGRESS), les ports que tu veux protéger (DENY_PORTS),...)
- puis tu utilises KEEP_STATE pour accepeter les connections qui sont établies (comme elles sont établies c'est que tu les as permises et que tu leur fais confiance, donc veilles bien à n'accepter que ce que tu veux comme connection)
- puis tu accèptes les nouvelles connections
- puis tu tries les icmps.
je sais que ça va te sembler hard, mais une fois que tu auras compris, ça va aller comme sur des roulettes
Faire ça te fera perdre bcp moins de temps que de comprendre ce script en plus !!
Marsh Posté le 25-11-2001 à 18:32:44
merci beaucoup de tes conseils, je savais que tu répondrais
pkoi ppp0 ? Je suis par le cable avec une ip fixe...
Marsh Posté le 24-11-2001 à 23:14:12
Je me suis basé sur le rc.firewall.iptables.dual -- Version 1.2b2 de http://www.sentry.net/~obsid/
Le prob est que mes clients locaux n'ont plus accès à rien (ssh, www, etc...)
Ma paserelle fait serveur web, ftp, sshd, ircd, dns, mysql, smtp, pop3 et webmin (10000). Ca fait bcp et c'est pour ca que je voudrais sécuriser tout cà...
Le firewall dont j'ai besoin doit au minimum sécuriser le serveur, les clients sont moins importants.
Merci bcp d'avance pour votre aide