Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/05/2007, à 18:37

B@rtounet

script pare feu

Bonjour,
je me suis fait un script iptables pour mes règles de pare feu, que j'ai bien sur pioché à droite à gauche...

L'ensemble fonctionne plutot bien mais je me pose une question, sachant que je ne l'ai pas explicitement authorisé, pourquoi mes partages samba fonctionnent dans mon réseau local ??
alors que je n'ai authorisé aucun port relatif à samba

#!/bin/bash

#Un simple script permettant de spéfier des rèes de filtrage
#Il doit bien sûre adaptéux besoins spéfiques.
#En le lançt avec le paramèe stop, les rèes sont supprimé.
#Sans paramèe les rèes sont cré.

IF=eth0

HIGH_PORTS="1024:65535"
FTP_CONTROL_PORT=21
FTP_DATA_PORT=20
SSH_PORTS=22
DNS_PORTS=53
PROXY_PORTS=8080
POP_OUT_PORT=110
SMTP_OUT_PORT=25
IMAP_PORTS=143
HTTP_PORTS=80

export PATH="/bin:/sbin:/usr/sbin"

#Modules necessaires
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp

#Vide les regles
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X

if [ "$1" = "stop" ]
then
    echo "Firewall arrete"
    exit
fi
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
for interface in /proc/sys/net/ipv4/conf/*/rp_filter
do
   echo "1" > ${interface}
done
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

#Autorise les connexions de l'interieur
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Chaine pour le blacklistage d'IP
iptables -N blacklist

#Cible pour le blacklistage
iptables -N bllogdeny
iptables -t filter -A bllogdeny -j LOG --log-prefix "blacklisted: "
iptables -t filter -A bllogdeny -j DROP

#Faire passer tout ce qui entre par cette chaine
iptables -t filter -A INPUT -j blacklist

#Autorise la connexion FTP
iptables -A INPUT -i $IF -p tcp --dport $FTP_CONTROL_PORT -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IF -p tcp --sport $FTP_CONTROL_PORT -m state --state ESTABLISHED -j ACCEPT

#Autorise le DNS local
iptables -A INPUT -i $IF -p udp --dport $DNS_PORTS -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IF -p udp --sport $DNS_PORTS -m state --state ESTABLISHED -j ACCEPT

#FTP actif
iptables -A INPUT -i $IF -p tcp --dport $FTP_DATA_PORT -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IF -p tcp --sport $FTP_DATA_PORT -m state --state RELATED,ESTABLISHED -j ACCEPT

#autorise le site web
iptables -A INPUT -i $IF -p tcp --dport $HTTP_PORTS -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IF -p tcp --sport $HTTP_PORTS -m state --state ESTABLISHED -j ACCEPT

#FTP passif
iptables -A INPUT  -i $IF -p tcp --sport $HIGH_PORTS --dport $HIGH_PORTS -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o $IF -p tcp --sport $HIGH_PORTS --dport $HIGH_PORTS -m state --state ESTABLISHED -j ACCEPT

#Autorise la proxy
iptables -A INPUT -i $IF -p tcp --dport $PROXY_PORTS -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IF -p tcp --sport $PROXY_PORTS -m state --state ESTABLISHED -j ACCEPT

#Autorise SSH
iptables -t filter -A INPUT -p tcp --destination-port $SSH_PORTS -j ACCEPT

#Autorise HTTPD
iptables -t filter -A INPUT -p tcp --destination-port $HTTP_PORTS -j ACCEPT

#authorise IMAP
iptables -A INPUT -i $IF -p tcp --dport $IMAP_PORTS -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $IF -p tcp --sport $IMAP_PORTS -m state --state ESTABLISHED -j ACCEPT

#Interdire et loger tout le reste
iptables -N logdeny
iptables -t filter -A logdeny -j LOG --log-prefix "iptables: "
iptables -t filter -A logdeny -j DROP

#Autoriser tout ce qui vient de l'interface de boucle locale
iptables -t filter -A INPUT -i lo -j ACCEPT
#Interdire le reste
iptables -t filter -A INPUT -m state --state NEW,INVALID -j logdeny

echo "Firewall demarre"

autre question, comment authoriser le ping, sans ouvrir directement le port 445 ?

Hors ligne

#2 Le 17/05/2007, à 22:25

kidrek

Re : script pare feu

Salut,
pour tes partages samba qui sont accessibles, sans regles au préalable, ca me semble bizarre,
par contre pour autoriser le ping voici une ligne qui pourrait t'interesser.

 iptables -A INPUT -s @IP -p icmp -j ACCEPT

Ps: je trouve sympa que tu ais pris l'initiative de partager ton script, cela permet aux petits nouveaux sous linux, d'appliquer un pare feu en attendant de prendre les compétences.

Dernière modification par kidrek (Le 17/05/2007, à 22:27)


- Kidrek ~ Administrateur Système -
http://kidrek.fr/blog/
- Un gros Bisous à mes bébés, que j'aime à  la folie -

Hors ligne