Différences entre les versions de « Iptables rules »

De BlaxWiki
Aller à la navigationAller à la recherche
(Page créée avec « Règles de base Catégorie:Software »)
 
Ligne 1 : Ligne 1 :
Règles de base
Règles de base


<pre>
#!/bin/bash
#
# Ce fichier est un script shell executé quand l'interface eth0 est mise up
# (voir fichier /etc/network/interfaces)
logger -t "/etc/iptables.sh" "Setting up iptables rules."
set -e
iptables='/sbin/iptables'
# Defenition des adresses IP.
IP_ALPES='212.43.194.72'
IP_FTP='212.43.194.73'
SRI='212.43.232.64/27'
NAGIOS='212.43.194.38'
# Flush toutes les regles/chaines existantes -----------------------------------------------------------------------
$iptables  -F
$iptables  -X
# log-drop      LOG puis DROP
$iptables  -N log-drop
#iptables  -A log-drop -j LOG  --log-prefix "DROPPED: "
$iptables  -A log-drop -j DROP
# Le forwarding entre interfaces est completement interdit.
#$iptables  -A FORWARD -j LOG --log-prefix "FORWARD: "
$iptables  -A FORWARD -j DROP
$iptables  -A INPUT  -i lo -j ACCEPT
$iptables  -A OUTPUT -o lo -j ACCEPT
##### En entree ##### ==============================================================================
# Les paquets TCP SYN + FIN sont droppes par securite.
$iptables  -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j log-drop
# Les connexions deja etablies (initiees par la machine locale) sont permises.
$iptables  -A INPUT -p tcp  -m state --state ESTABLISHED        -j ACCEPT
$iptables  -A INPUT -p udp  -m state --state ESTABLISHED        -j ACCEPT
$iptables  -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
# Regles globales en entree ---------------------------------------------------------------
# Pings.
$iptables  -A INPUT -p icmp --icmp-type 'echo-request' -m length --length 1500:  -j log-drop
$iptables  -A INPUT -p icmp --icmp-type 'echo-request'                          -j ACCEPT
# Sonde Nagios
$iptables  -A INPUT -p tcp -s ${NAGIOS} --dport 11111 -j REJECT --reject-with host-prohib
# HTTTP
$iptables  -A INPUT -p tcp -s 41.223.248.0/22 --dport 80  -j DROP
$iptables  -A INPUT -p tcp --dport 80  -j ACCEPT
# SSH
$iptables  -A INPUT  -s ${SRI}        -p tcp --dport 22 -j ACCEPT
$iptables  -A INPUT  -s ${NAGIOS}      -p tcp --dport 22 -j ACCEPT
# SNMP
$iptables  -A INPUT  -s ${NAGIOS} -p udp --dport 161 -j ACCEPT
$iptables  -A INPUT  -s ${NUALA}  -p udp --dport 161 -j ACCEPT
# FTP
$ip -A INPUT  -p tcp --dport 21 -m state --state NEW,ESTABLISHED                      -j ACCEPT
$ip -A INPUT  -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED              -j ACCEPT
$ip -A INPUT  -p tcp --sport 49152:53248 --dport 21 -m state --state ESTABLISHED      -j ACCEPT
# Autres paquets
$iptables  -A INPUT  -j log-drop
$iptables  -A INPUT  -j DROP
##### En sortie ##### ===============================================================================
# Les paquets RFC 1918 sont droppés en sortie
$iptables  -A OUTPUT -d 10.0.0.0/8    -o eth0 -j log-drop
$iptables  -A OUTPUT -d 127.0.0.0/8    -o eth0 -j log-drop
$iptables  -A OUTPUT -d 192.168.0.0/16 -o eth0 -j log-drop
$iptables  -A OUTPUT -d 172.16.0.0/12  -o eth0 -j log-drop
$iptables  -A OUTPUT -d 224.0.0.0/4    -o eth0 -j log-drop
# Tout le reste est permis
$iptables  -A OUTPUT -j ACCEPT
# Terminé.
exit 0
</pre>


[[Catégorie:Software]]
[[Catégorie:Software]]

Version du 25 mars 2009 à 17:13

Règles de base


#!/bin/bash
#
# Ce fichier est un script shell executé quand l'interface eth0 est mise up
# (voir fichier /etc/network/interfaces)

logger -t "/etc/iptables.sh" "Setting up iptables rules."

set -e

iptables='/sbin/iptables'

# Defenition des adresses IP.

IP_ALPES='212.43.194.72'
IP_FTP='212.43.194.73'

SRI='212.43.232.64/27'
NAGIOS='212.43.194.38'

# Flush toutes les regles/chaines existantes -----------------------------------------------------------------------
$iptables  -F
$iptables  -X

# log-drop      LOG puis DROP
$iptables  -N log-drop
#iptables  -A log-drop -j LOG  --log-prefix "DROPPED: "
$iptables  -A log-drop -j DROP

# Le forwarding entre interfaces est completement interdit.
#$iptables  -A FORWARD -j LOG --log-prefix "FORWARD: "
$iptables  -A FORWARD -j DROP
$iptables  -A INPUT  -i lo -j ACCEPT
$iptables  -A OUTPUT -o lo -j ACCEPT

 ##### En entree ##### ==============================================================================

 # Les paquets TCP SYN + FIN sont droppes par securite.
 $iptables  -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j log-drop

 # Les connexions deja etablies (initiees par la machine locale) sont permises.
 $iptables  -A INPUT -p tcp  -m state --state ESTABLISHED         -j ACCEPT
 $iptables  -A INPUT -p udp  -m state --state ESTABLISHED         -j ACCEPT
 $iptables  -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

# Regles globales en entree ---------------------------------------------------------------

 # Pings.
 $iptables  -A INPUT -p icmp --icmp-type 'echo-request' -m length --length 1500:  -j log-drop
 $iptables  -A INPUT -p icmp --icmp-type 'echo-request'                           -j ACCEPT

 # Sonde Nagios
 $iptables  -A INPUT -p tcp -s ${NAGIOS} --dport 11111 -j REJECT --reject-with host-prohib

# HTTTP
$iptables  -A INPUT -p tcp -s 41.223.248.0/22 --dport 80  -j DROP
$iptables  -A INPUT -p tcp --dport 80  -j ACCEPT


 # SSH
 $iptables  -A INPUT  -s ${SRI}         -p tcp --dport 22 -j ACCEPT
 $iptables  -A INPUT  -s ${NAGIOS}      -p tcp --dport 22 -j ACCEPT

 # SNMP
 $iptables  -A INPUT  -s ${NAGIOS} -p udp --dport 161 -j ACCEPT
 $iptables  -A INPUT  -s ${NUALA}  -p udp --dport 161 -j ACCEPT

# FTP 
$ip -A INPUT   -p tcp --dport 21 -m state --state NEW,ESTABLISHED                       -j ACCEPT
$ip -A INPUT   -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED               -j ACCEPT
$ip -A INPUT   -p tcp --sport 49152:53248 --dport 21 -m state --state ESTABLISHED       -j ACCEPT


 # Autres paquets
 $iptables  -A INPUT  -j log-drop
 $iptables  -A INPUT  -j DROP


 ##### En sortie ##### ===============================================================================

 # Les paquets RFC 1918 sont droppés en sortie

 $iptables  -A OUTPUT -d 10.0.0.0/8     -o eth0 -j log-drop
 $iptables  -A OUTPUT -d 127.0.0.0/8    -o eth0 -j log-drop
 $iptables  -A OUTPUT -d 192.168.0.0/16 -o eth0 -j log-drop
 $iptables  -A OUTPUT -d 172.16.0.0/12  -o eth0 -j log-drop
 $iptables  -A OUTPUT -d 224.0.0.0/4    -o eth0 -j log-drop

 # Tout le reste est permis

 $iptables  -A OUTPUT -j ACCEPT

 # Terminé.

 exit 0