Code : Tout sélectionner
#!/bin/sh
###############################################################################
# Voir "Firewall et securite d'un reseau personnel sous Linux"
# http://olivieraj.free.fr/fr/linux/information/firewall/
###############################################################################
# Configuration : Interface exemple wlan0, eth0
INTERFACE="eth0"
PLAGE_LOCAL="192.168.0.0/24"
# Suppression de toutes les chaines pré-definies de la table FILTER
iptables -t filter -F
# Suppression de toutes les chaines utilisateur de la table FILTER
iptables -t filter -X
# Par défaut, toute les paquets sont détruits
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
# Autorise l'interface loopback a dialoguer avec elle-même
iptables -t filter -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
iptables -t filter -A INPUT -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
# Autorise les connexions entrantes avec le réseau locale depuis "PLAGE_LOCAL" connecte a l'"INTERFACE"
# Optionnel, voir dangereux sur un Wifi public, uniquement à utiliser pour que tous les PC de ton réseaux
# locale aient accès à l'intégralité des ports
iptables -t filter -A OUTPUT -o $INTERFACE -s $PLAGE_LOCAL -d $PLAGE_LOCAL -j ACCEPT
iptables -t filter -A INPUT -i $INTERFACE -s $PLAGE_LOCAL -d $PLAGE_LOCAL -j ACCEPT
# SSH
iptables -t filter -A OUTPUT -o $INTERFACE -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --sport 22 -j ACCEPT
iptables -t filter -A INPUT -i $INTERFACE -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 22 -j ACCEPT
# HTTPD
iptables -t filter -A OUTPUT -o $INTERFACE -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --sport 80 -j ACCEPT
iptables -t filter -A INPUT -i $INTERFACE -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT
# Autorise les connexions avec l’extérieur uniquement si elles sont initialisées par les processus locaux
iptables -A OUTPUT -o $INTERFACE -d 0.0.0.0/0 -p all -m conntrack ! --ctstate INVALID -j ACCEPT
iptables -A INPUT -i $INTERFACE -s 0.0.0.0/0 -p all -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Suppression de toutes les chaines pré-definies de la table FILTER
ip6tables -t filter -F
# Suppression de toutes les chaines utilisateur de la table FILTER
ip6tables -t filter -X
# Par défaut, toute les paquets sont détruits
ip6tables -t filter -P INPUT DROP
ip6tables -t filter -P OUTPUT DROP
ip6tables -t filter -P FORWARD DROP
# Autorise l'interface loopback a dialoguer avec elle-même
ip6tables -t filter -A OUTPUT -o lo -j ACCEPT
ip6tables -t filter -A INPUT -i lo -j ACCEPT
# Autorise les connexions avec l’extérieur uniquement si elles sont initialisées par les processus locaux
ip6tables -A OUTPUT -o $INTERFACE -p all -m conntrack ! --ctstate INVALID -j ACCEPT
ip6tables -A INPUT -i $INTERFACE -p all -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Ping6 ?!
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -j REJECT --reject-with icmp6-adm-prohibited
ip6tables -A OUTPUT -p icmpv6 -j ACCEPT
Cependant j'aurais besoin de le configurer pour accepter mes périphériques sur le réseau, mais également les imprimantes, accès SSH
Dans le post il est également indiqué :
Est-ce que cela signifie que c'est dans le cas ou l'on veut accéder à l'ensemble des ports depuis le réseau local une fois connecté en SSH sur le PC ? Ou alors cela signifie que dans un réseau local, lorsque l'on accède à un PC, il réagit comme si c'était un PC de l'exterieur qui s'y connectait ? C'est cette phrase que j'ai un peu de mal à suivre :Comme tu peux le voir il n'y a aucune adresse IP donnée ni ne port...
Par contre si tu as un serveur ssh sur ton PC et que tu veux pouvoir t'y connecter depuis l'extérieur (un peu le but d'un serveur ssh), il te faudra nécessairement autoriser toutes les connexions faites sur le port 22, après libre à toi de modifier la règle suivante pour n'autoriser que certaines IP externes
Code : Tout sélectionner
iptables -t filter -A OUTPUT -o $INTERFACE -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --sport 22 -j ACCEPT
iptables -t filter -A INPUT -i $INTERFACE -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 22 -j ACCEPT
De plus si tu veux accéder à l'ensemble des ports depuis ton réseau locale, ton réseau locale étant considéré comme l'extérieur, il faudra nécessaire autoriser une plage d’adresse, mais bien sur ceci est optionnel et n'est qu'a titre d'exemple, ceci peut être relativement dangereux :
Code : Tout sélectionner
iptables -t filter -A OUTPUT -o $INTERFACE -s $PLAGE_LOCAL -d $PLAGE_LOCAL -j ACCEPT
iptables -t filter -A INPUT -i $INTERFACE -s $PLAGE_LOCAL -d $PLAGE_LOCAL -j ACCEPT
Merci d'avanceDe plus si tu veux accéder à l'ensemble des ports depuis ton réseau locale, ton réseau locale étant considéré comme l'extérieur, il faudra nécessaire autoriser une plage d’adresse, mais bien sur ceci est optionnel et n'est qu'a titre d'exemple, ceci peut être relativement dangereux