Citation
#on vire tout
iptables -X
iptables -F
#on remet tout en place
iptables -A INPUT -s 127.0.0.0/255.0.0.0 -d 127.0.0.0/255.0.0.0 -i lo -j ACCEPT
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -d 192.168.0.0/255.255.255.0 -i eth0 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 9115 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
iptables -A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT
iptables -A FORWARD -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
iptables -A OUTPUT -s 127.0.0.0/255.0.0.0 -d 127.0.0.0/255.0.0.0 -o lo -j ACCEPT
iptables -A OUTPUT -s 192.168.0.0/255.255.255.0 -d 192.168.0.0/255.255.255.0 -o eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT
Ceci rejette tout le trafficCitation
deb
# filter default policy
$IPTABLE -t filter -P INPUT DROP
$IPTABLE -t filter -P OUTPUT DROP
$IPTABLE -t filter -P FORWARD DROP
ceci n autorise que les connexions entrantes sur les ports contenus dans $PORT_LIST (syntaxe ? 22 80 9115 ou separation par virgules ?)Citation
auteur
# accepte les entrées sur certains ports
for port in $PORT_LIST
do
$IPTABLE -t filter -A INPUT -i eth0 -d $NETADDR0/$NETMASK0
-p tcp --dport $port -m state --state ! INVALID -j ACCEPT
done
Ceci autorise les entrees sur le 22 (seconde ligne). A quoi sert la premiere ?Citation
deb
# quelques règles de log
$IPTABLE -t filter -A INPUT -i eth0 -p tcp -m state \
--state INVALID -j ULOG --ulog-prefix "INVALID_TCP : "
$IPTABLE -t filter -A INPUT -i eth0 -p icmp -m state --state
NEW,INVALID -j ULOG --ulog-prefix "PING_REQUEST : "
$IPTABLE -t filter -A INPUT -i eth0 -p tcp --syn --dport 22 \
-j ULOG --ulog-prefix "SSH_REQUEST : "
J ai trouve ca sur le web, cela concernait la defense contre DoS, malheureusement je ne connait plus la source...Citation
deb
Q : à quoi ca sert le "-m limit --limit 1/sec" dasn tes règles ??
Ah bah ça serait volontiers !Citation
auteur
Si ton adresse mail est correcte, et bien sûe si tu veux, je peux aussi t'envoyer un script de base commenté et bricolé avec cette doc... tu lis la doc, tu essaie de comprendre tout ce qui est fait dans le script ( il est assez simple ), et c'est parti...
Citation
# flush all rules and delete any optional rules
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# filter default policy
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT DROP
iptables -t filter -P FORWARD DROP
# nat default policy
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
# mangle default policy
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
# quelques règles de log
iptables -t filter -A INPUT -i eth0 -p tcp -m state --state INVALID -j ULOG --ulog-prefix "INVALID_TCP : "
iptables -t filter -A INPUT -i eth0 -p icmp -m state --state NEW,INVALID -j ULOG --ulog-prefix "PING_REQUEST : "
iptables -t filter -A INPUT -i eth0 -p tcp --syn --dport 22 -j ULOG --ulog-prefix "SSH_REQUEST : "
# accepte tout sur l'interface locale (loopback)
iptables -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT
iptables -t filter -A OUTPUT -o lo -s 0/0 -d 0/0 -j ACCEPT
# accepte tout sur réseau local (eth0)
#iptables -t filter -A INPUT -i eth1 -s 192.168.0.1/$NETMASK1 -d $NETADDR1/$NETMASK1 -j ACCEPT
#iptables -t filter -A OUTPUT -o eth1 -s $NETADDR1/$NETMASK1 -d $NETADDR1/$NETMASK1 -j ACCEPT
# accepte les entrées sur certains ports (22,80,...)
for port in 22 80 110 9115
do
iptables -t filter -A INPUT -i eth0 -d 192.168.0.100/255.255.255.0 -p tcp --dport $port -m state --state ! INVALID -j ACCEPT
done
# suivi de connexion sur internet (eth0)
iptables -t filter -A INPUT -i eth0 -s 0/0 -d 192.168.0.100 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -s 192.168.0.100 -d 0/0 -p all -m state --state ! INVALID -j ACCEPT
# masquerading (On a pas)
#iptables -t filter -A FORWARD -i eth0 -o eth1 -s $WEB -d $NETADDR1/$NETMASK1 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -t filter -A FORWARD -i eth1 -o eth0 -s $NETADDR1/$NETMASK1 -d $WEB -m state --state ! INVALID -j ACCEPT
#iptables -t nat -A POSTROUTING -o eth0 -s $NETADDR1/$NETMASK1 -j MASQUERADE
# enable tcp_syncookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
Citation
auteur
nmap -sT -sR -sV -p- -PT 192.168.0.100
Starting nmap 3.75 ( [www.insecure.org] ) at 2005-01-07 17:20 CET
Interesting ports on 192.168.0.100:
(The 65530 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 3.8.1p1 (protocol 2.0)
80/tcp open http Apache httpd 2.0.52 ((Debian GNU/Linux) PHP/4.3.10-2)
111/tcp open rpcbind (rpcbind V2) 2 (rpc #100000)
113/tcp open ident OpenBSD identd
907/tcp open status (status V1) 1 (rpc #100024)
Nmap run completed -- 1 IP address (1 host up) scanned in 21.495 seconds
Citation
auteur
111/tcp open rpcbind (rpcbind V2) 2 (rpc #100000)
113/tcp open ident OpenBSD identd
907/tcp open status (status V1) 1 (rpc #100024)