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 ») |
|||
| (8 versions intermédiaires par 3 utilisateurs non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
# Affiche le nombre de connexions SMTP IPv4 et remet le compteur à 0. Dans les regles de firewall sur le port 25 | |||
/sbin/iptables -Z -L accept-smtp -n -v -x | /bin/grep 'ACCEPT' | while read a b; do echo $a; done | |||
Pour que cela match, il nous faut une regle : | |||
<pre> | |||
$ip -A INPUT -p tcp --syn --dport 25 -i eth0 -j accept-smtp | |||
$ip -A INPUT -p tcp --dport 25 -i eth0 -j ACCEPT | |||
</pre> | |||
# Règles de base (fichier [https://{{SERVERNAME}}/BENPERSO/files/iptables-rules.sh ici]) | |||
<pre> | |||
#!/bin/bash | |||
# | |||
# Ce fichier est un script shell execute 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 Actif | |||
$iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT | |||
$iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT | |||
# FTP Passif | |||
#$iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT | |||
#$iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT | |||
$iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT | |||
$iptables -A INPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | |||
# dans la ligne ci-dessous; cela implique que le serveur ftp a dans sa configuration "PassivePorts 49152 65534" | |||
$iptables -A INPUT -p tcp --dport 49152:65534 -m state --state RELATED,ESTABLISHED -j ACCEPT | |||
# ou | |||
$iptables -A INPUT -p tcp --sport 49152:53248 --dport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT | |||
# Autres paquets | |||
$iptables -A INPUT -j log-drop | |||
$iptables -A INPUT -j DROP | |||
##### En sortie ##### =============================================================================== | |||
# Les paquets RFC 1918 sont droppe©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 | |||
# Termine | |||
exit 0 | |||
</pre> | |||
[[Catégorie:Software]] | [[Catégorie:Software]] | ||
Version actuelle datée du 6 mai 2013 à 16:57
- Affiche le nombre de connexions SMTP IPv4 et remet le compteur à 0. Dans les regles de firewall sur le port 25
/sbin/iptables -Z -L accept-smtp -n -v -x | /bin/grep 'ACCEPT' | while read a b; do echo $a; done
Pour que cela match, il nous faut une regle :
$ip -A INPUT -p tcp --syn --dport 25 -i eth0 -j accept-smtp $ip -A INPUT -p tcp --dport 25 -i eth0 -j ACCEPT
- Règles de base (fichier ici)
#!/bin/bash
#
# Ce fichier est un script shell execute 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 Actif
$iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
# FTP Passif
#$iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
#$iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
$iptables -A INPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# dans la ligne ci-dessous; cela implique que le serveur ftp a dans sa configuration "PassivePorts 49152 65534"
$iptables -A INPUT -p tcp --dport 49152:65534 -m state --state RELATED,ESTABLISHED -j ACCEPT
# ou
$iptables -A INPUT -p tcp --sport 49152:53248 --dport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Autres paquets
$iptables -A INPUT -j log-drop
$iptables -A INPUT -j DROP
##### En sortie ##### ===============================================================================
# Les paquets RFC 1918 sont droppe©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
# Termine
exit 0