Ne poussons pas pépère dans les orties Le fichier que je t'ai mis en pièce jointe est à renommer et à copier dans /etc/init.d Ensuite faire pointer des liens symbolique dessus, à partir de /etc/rc.xx selon ce que tu veux au démarrage. Je peux te donner + de détails si nécessaire L'article de Léa était à adapter, vu que la page concerne la Slackware Ce script fonctionne parfaitement et je l'ai testé sur des sites de test où ce firewall a obtenu la meilleure note.
Jer Le mercredi 28 février 2007 à 19:57 +0100, jeriop a écrit : > Ceci marche bien chez moi > Tout est expliqué là : > > http://lea-linux.org/pho/read/3/227949/228105/quote > > > #!/bin/sh > # firewall v1.0.1 Oct 13 09:48:57 PDT 2003 written by : Kernel > <[EMAIL PROTECTED]> > # this script is free software according to the GNU General Public > License (see [www.gnu.org]) > # Start/stop/restart/status firewall: > > firewall_start() { > > echo "[Démarrage du firewall]" > > ############################### REGLES PAR DEFAUT > ########################### > > echo "[Initialisation de la table filter]" > iptables -F > iptables -X > > echo "[Politique par défaut de la table filter]" > > # On ignore tout ce qui entre ou transite par la passerelle > iptables -P INPUT DROP > iptables -P FORWARD DROP > > # On accepte, ce qui sort > iptables -P OUTPUT ACCEPT > > # Pour éviter les mauvaises suprises, on va autoriser l'accès à la > loopback : > iptables -A INPUT -i lo -j ACCEPT > iptables -A OUTPUT -o lo -j ACCEPT > > ############################### LOCAL-INTERNET > ########################### > > echo "[On autorise les clients à accéder à internet]" > > #On créé une nouvelle chaîne, le nom est indifférent > # appelons-la "local-internet" > iptables -N local-internet > > # On définit le profil de ceux qui appartiendront à "local-internet" > # "local-internet" concerne toutes les connections sauf celles venant > d'internet ( ! = non) > # En gros avec ça, vous rendez, vos serveurs inaccessibles depuis > internet. > # Pas de panique, certains serveurs seront autorisés explicitement > dans la suite. > iptables -A local-internet -m state --state NEW -i ! ppp0 -j ACCEPT > > #Evidemment, une fois acceptées comme "local-internet", les > connections peuvent continuer > # et faire des petits image : content > iptables -A local-internet -m state --state ESTABLISHED,RELATED -j > ACCEPT > > # On termine en indiquant que les connections appartenant à > "local-internet" > # accèdent à internet de manière transparente. > iptables -A INPUT -j local-internet > iptables -A FORWARD -j local-internet > > ############################### LES TABLES NAT ET MANGLE > ############################# > > echo "[Initialisation des tables nat et mangle]" > > iptables -t nat -F > iptables -t nat -X > iptables -t nat -P PREROUTING ACCEPT > iptables -t nat -P POSTROUTING ACCEPT > iptables -t nat -P OUTPUT ACCEPT > > iptables -t mangle -F > iptables -t mangle -X > iptables -t mangle -P PREROUTING ACCEPT > iptables -t mangle -P OUTPUT ACCEPT > > #################################### LE MASQUERADING > ######################################## > > # Commentez ces 2 lignes, si vous ne faîtes pas du masquerading (nat) > echo "[Mise en place du masquerading]" > iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j > MASQUERADE > > ################################# ACTIVATION DE LA PASSERELLE > ################## > > echo "[Activation de la passerelle]" > echo 1 > /proc/sys/net/ipv4/ip_forward > > ################################# PAS DE SPOOFING > ############################ > > echo "[Pas de spoofing]" > if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ] ; then > for filtre in /proc/sys/net/ipv4/conf/*/rp_filter > do > echo 1 > $filtre > done > fi > > ########################## PAS DE SYNFLOOD #################### > > echo "[Pas de synflood]" > if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then > echo 1 > /proc/sys/net/ipv4/tcp_syncookies > fi > > ################################## PAS DE PING > ############################### > > # commentez ces 6 lignes, si vous autorisez les pings sur votre > passerelle > echo "[Pas ping]" > echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all > echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts > if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then > echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses > fi > > ############# Priorisation de la bande passante et des connections - > QoS ############ > image : rireroll// ça, tu n'en auras pas forcément besoin (d'ailleurs, > ici c'est encore incomplet, la priorisation (QoS) ne fonctionne que > pour les données que j'envoie (upload) mais pas pour le > download.)image : rireroll > > echo "[priorisation des connections ssh ...]"; > iptables -A PREROUTING -t mangle -p tcp --sport 443 -j TOS --set-tos > Minimize-Delay > > echo "[priorisation des connections http ...]"; > iptables -A PREROUTING -t mangle -p tcp --sport http -j TOS --set-tos > Maximize-throughput > iptables -A PREROUTING -t mangle -p tcp --sport 3129 -j TOS --set-tos > Maximize-throughput > > echo "[priorisation des connections Diablo 2 ...]"; > iptables -A PREROUTING -t mangle -p tcp --sport 6112:6119 -j TOS > --set-tos Minimize-Delay > iptables -A PREROUTING -t mangle -p udp --sport 6112:6119 -j TOS > --set-tos Minimize-Delay > iptables -A PREROUTING -t mangle -p tcp --sport 4000 -j TOS --set-tos > Minimize-Delay > iptables -A PREROUTING -t mangle -p udp --sport 4000 -j TOS --set-tos > Minimize-Delay > > # Maximum de débit à Diablo 2 > iptables -A PREROUTING -t mangle -p tcp --sport 6112:6119 -j TOS > --set-tos Maximize-Throughput > iptables -A PREROUTING -t mangle -p udp --sport 6112:6119 -j TOS > --set-tos Maximize-Throughput > iptables -A PREROUTING -t mangle -p tcp --sport 4000 -j TOS --set-tos > Maximize-Throughput > iptables -A PREROUTING -t mangle -p udp --sport 4000 -j TOS --set-tos > Maximize-Throughput > > ############################ Fonctionnalités serveurs > ##################################### > > echo "[Etude des fonctionalités serveurs, visibles depuis internet]" > > # A ce stade, tous vos clients du réseau local et de la passerelle ont > accès à internet. Mieux, > # vos clients du réseau local, ont accès à vos serveurs apache, > proftp ... localement. Mais personne > # depuis internet ne peux accéder à l'un des serveurs que vous > hébergez. > > # Il est bien-sûr possible de dévérrouiller pontuellement l'accès à un > serveur depuis internet, > # en décommentant les 2 ou 3 lignes correspondantes. > > #echo "[autorisation du serveur ssh(22) ...]" > #iptables -A INPUT -p tcp --dport ssh -j ACCEPT > > #echo "[autorisation du serveur smtp(25) ...]" > #iptables -A INPUT -p tcp --dport smtp -j ACCEPT > > echo "[autorisation du serveur http(80) ...]" > iptables -A INPUT -p tcp --dport www -j ACCEPT > > echo "[autorisation du serveur https(443) ...]" > iptables -A INPUT -p tcp --dport 443 -j ACCEPT > > #echo "[autorisation du serveur DNS(53) ...]" > #iptables -A INPUT -p udp --dport domain -j ACCEPT > #iptables -A INPUT -p tcp --dport domain -j ACCEPT > > #echo "[autorisation du serveur irc(6667) ...]" > #iptables -A INPUT -p tcp --dport ircd -j ACCEPT > > #echo "[autorisation du serveur cvs (2401) ...]" > #iptables -A INPUT -p tcp --dport cvspserver -j ACCEPT > > #echo "[autorisation du serveur FTP(21 et 20) ...]" > #iptables -A INPUT -p tcp --dport ftp -j ACCEPT > #iptables -A INPUT -p tcp --dport ftp-data -j ACCEPT > > # Ne pas décommenter les 3 lignes qui suivent. > # Plus généralement : > #echo "[autorisation du serveur Mon_truc(10584) ...]" > #iptables -A INPUT -p tcp --dport 10584 -j ACCEPT > > # Ports visibles depuis l'extérieur pour Freenet : > echo "[autorisation du serveur Freenet (23050/tcp) ...]" > iptables -A INPUT -p tcp --dport 23050 -j ACCEPT > > echo "[autorisation du serveur aMule (4662/tcp) ...]" > iptables -A INPUT -p tcp --dport 4662 -j ACCEPT > > echo "[autorisation du serveur BitTorrent (6881-6889/tcp) ...]" > iptables -A INPUT -p tcp --dport 6881:6889 -j ACCEPT > > echo "[firewall activé !]" > } > > firewall_stop() { > > > iptables -F > iptables -X > iptables -P INPUT ACCEPT > iptables -P FORWARD ACCEPT > iptables -P OUTPUT ACCEPT > > iptables -t nat -F > iptables -t nat -X > iptables -t nat -P PREROUTING ACCEPT > iptables -t nat -P POSTROUTING ACCEPT > iptables -t nat -P OUTPUT ACCEPT > > iptables -t mangle -F > iptables -t mangle -X > iptables -t mangle -P PREROUTING ACCEPT > iptables -t mangle -P OUTPUT ACCEPT > > echo " [firewall descativé!]" > } > > firewall_restart() { > firewall_stop > sleep 2 > firewall_start > } > > case "$1" in > 'start') > firewall_start > ;; > 'stop') > firewall_stop > ;; > 'restart') > firewall_restart > ;; > 'status') > iptables -L > iptables -t nat -L > iptables -t mangle -L > ;; > *) > echo "Usage: firewall {start|stop|restart|status}" > esac > > Le mercredi 28 février 2007 à 18:30 +0100, Jean-Yves F. Barbier a > écrit : > > > Le mercredi 28 février 2007 17:57, mess-mate a écrit : > > > Bonjour, > > > le firewall de mon routeur(debian) est le 'arno-iptables-firewall' > > > qui jusqu'à présent donnait pleine satisfaction. > > > > > > Ayant maintenant installé un dmz, celui-ci n'a pas l'air d'être à la > > > page ou c'est moi qui n'arrive pas à le configurer à ce niveau. > > > > > > Quoi qu'il en soit j'adopterais volontiers pour un autre firewall > > > pas trop compliqué (disons facile) car il faut qu'il marche au plus > > > vite afin de remettre mes pages sur le net. > > > De préférence un firewall en mode console. > > > Que me conseillez-vous ? > > > cordialement > > > mess-mate > > > > shorewall (pas mal de HOWTOs, même en fr sur le net) > > > >
firewall_lea.txt
Description: application/shellscript