[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: quel firewall facile ?



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 <kernel@trustonme.net>
# 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)



Reply to: