Jean-Louis Cech a écrit :

 > ce matin mon serveur a été l'objet de 3200 tentatives d'intrusions.

bonsoir,
Des fois si ssh ne sert pas, autant le couper temporairement le temps de 
la tempête. Sinon, tu as vu cette force brute sur ssh par ippl ? tu as 
un IDS préféré ?



> FireWall
> Mon serveur est derrière un routeur, je n'ai ouvert que les
> ports nécessaires, j'ai donc ouvert le pare feu pour une admin 
> simplissime, pas très pro. 



Ci dessous mon petit camboui pas très propre, je l'avoue surtout la 
tentative de détection de l'IP du client msn dans les logs alors que 
tout le monde sait que c'est un serveur qui fait la transaction :

gilles

bermude:~# cat /etc/init.d/rc.firewall
#!/bin/sh
#
#set -x
# configuration cibl�e:
#
# internet->adsl(ANT)->eth0(INTER)->eth1(INTRA)->intranet(INTRANET)
#
#
# Definition de variables programme
TCP="-p tcp"
UDP="-p udp"
INPUT='-A INPUT'
OUTPUT='-A OUTPUT'
FORWARD='-A FORWARD'
ECHO='/bin/echo'
IPTABLES='/sbin/iptables '
STATE=' -m state --state'
ESTABLISHED=' -m state --state ESTABLISHED,RELATED '
PRIVATE='--sport 1024:65535 --dport 1024:65535'
ICMP='-p icmp --icmp-type'
LIMIT5='-m limit --limit 5/s'
LIMIT10='-m limit --limit 10/s'

case "$1" in
         start)
$ECHO "Activation des regles iptables"
$ECHO "Activation du transfert de paquets"
$ECHO 1 > /proc/sys/net/ipv4/ip_forward
$ECHO "Activation de la protection usurpation"
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
        for f in /proc/sys/net/ipv4/conf/*/rp_filter
        do
                $ECHO 1 > $f
                $ECHO "$f -> 1"
        done
fi
$ECHO 1 > /proc/sys/net/ipv4/conf/all/log_martians
$ECHO 30 > /proc/sys/net/ipv4/tcp_fin_timeout
$ECHO 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
$ECHO 0 > /proc/sys/net/ipv4/tcp_window_scaling
$ECHO 0 > /proc/sys/net/ipv4/tcp_sack
$ECHO 0 > /proc/sys/net/ipv4/tcp_timestamps
$ECHO 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog

$ECHO "Suppression des tables existantes"
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t filter -F
$IPTABLES -t filter -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
$ECHO "Construction des logs"
$IPTABLES -N ACCEPT_LOG && (
$IPTABLES -A ACCEPT_LOG -j LOG --log-prefix "ACCEPT_LOG "
$IPTABLES -A ACCEPT_LOG -j ACCEPT
)
$IPTABLES -N DROP_LOG && (
$IPTABLES -A DROP_LOG -j LOG --log-prefix "DROP_LOG "
$IPTABLES -A DROP_LOG -j DROP
)
$IPTABLES -N REJECT_LOG && (
$IPTABLES -A REJECT_LOG -j LOG --log-prefix "REJECT_LOG "
$IPTABLES -A REJECT_LOG -j REJECT
)



$ECHO "Politique ferm�e par d�faut sur la table filter"
$IPTABLES -t filter -P INPUT   REJECT
$IPTABLES -t filter -P OUTPUT  ACCEPT
$IPTABLES -t filter -P FORWARD REJECT
$ECHO "Politique ouverte par d�faut sur les tables nat et mangle"
$IPTABLES -t nat -P PREROUTING  ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT      ACCEPT
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
$IPTABLES -t mangle -P PREROUTING  ACCEPT
$IPTABLES -t mangle -P INPUT       ACCEPT
$IPTABLES -t mangle -P OUTPUT      ACCEPT
$IPTABLES -t mangle -P FORWARD     ACCEPT
$IPTABLES -t mangle -P POSTROUTING ACCEPT


#$IPTABLES -t nat -A PREROUTING -p tcp -i eth0 --dport 6346 -j DNAT --to 
192.168.0.52:6346
#$IPTABLES -t nat -A PREROUTING -p udp -i eth0 --dport 6346 -j DNAT --to 
192.168.0.52:6346
#$IPTABLES -t nat -A PREROUTING -p tcp -i eth0 --dport 6346 -j DNAT --to 
192.168.0.52:6347
#$IPTABLES -t nat -A PREROUTING -p udp -i eth0 --dport 6346 -j DNAT --to 
192.168.0.52:6347




$ECHO "Mise en place des r�gles tunnel adsl"
$IPTABLES $INPUT  -i eth0 -s 10.0.0.138 -d 10.0.0.10  -j ACCEPT
$IPTABLES $OUTPUT -o eth0 -s 10.0.0.10  -d 10.0.0.138 -j ACCEPT
$ECHO "Autorisation de localhost"
$IPTABLES $INPUT  -p ALL -i lo                        -j ACCEPT
$IPTABLES $OUTPUT -p ALL -o lo                        -j ACCEPT
$ECHO "Autorisation intranet"
$IPTABLES $INPUT  -p ALL -i eth1                      -j ACCEPT
$IPTABLES $OUTPUT -p ALL -o eth1                      -j ACCEPT
$ECHO "Autorisation du transfert de paquets eth1 -> ppp0"
$IPTABLES $FORWARD -i eth1 -o ppp0 -s 192.168.0.0/24  -j ACCEPT
$ECHO "Autorisation du transfert de paquets ppp0 -> eth1"
$IPTABLES $FORWARD -i ppp0 -o eth1 -d 192.168.0.0/24 $ESTABLISHED -j ACCEPT

$ECHO "Activation du mode \"-m state --state ESTABLISHED,RELATED\""
$ECHO " pour TCP"
$IPTABLES $INPUT   $STATE  ESTABLISHED                -j ACCEPT
$IPTABLES $OUTPUT  -o ppp0 $TCP $ESTABLISHED          -j ACCEPT
$IPTABLES $INPUT   -i ppp0 $TCP $ESTABLISHED          -j ACCEPT
$ECHO " pour UDP"
$IPTABLES $OUTPUT  -o ppp0 $UDP $ESTABLISHED          -j ACCEPT
$IPTABLES $INPUT   -i ppp0 $UDP $ESTABLISHED          -j ACCEPT
$ECHO " pour ICMP"
$IPTABLES $OUTPUT  -p icmp $ESTABLISHED               -j ACCEPT
$IPTABLES $INPUT   -p icmp $ESTABLISHED               -j ACCEPT
$IPTABLES $FORWARD -p icmp $ESTABLISHED               -j ACCEPT
$ECHO "Ajustement de la MTU pour l'ent�te pppoe"
$IPTABLES -t mangle $FORWARD -o ppp0 $TCP --tcp-flags SYN,RST SYN -m 
tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu

# Allow world to send ICMP packets (limited)
$ECHO "Acceptation des paquets icmp (limiter)"
$IPTABLES $INPUT $ICMP destination-unreachable $LIMIT10  -j ACCEPT
$IPTABLES $INPUT $ICMP source-quench           $LIMIT10  -j ACCEPT
$IPTABLES $INPUT $ICMP time-exceeded           $LIMIT10  -j ACCEPT
$IPTABLES $INPUT $ICMP parameter-problem       $LIMIT10  -j ACCEPT
$IPTABLES $INPUT $ICMP echo-request            $LIMIT5   -j ACCEPT
$IPTABLES $OUTPUT $ICMP echo-reply              $LIMIT5   -j ACCEPT
# Accept ports back from ppp, if flow return, all protocols
$IPTABLES $OUTPUT -p ALL -o ppp0                         -j ACCEPT
$ECHO "traitement sp�cial des drapeaux"
$ECHO "NMAP FIN/URG/PSH"
$IPTABLES $INPUT $TCP --tcp-flags ALL FIN,URG,PSH        -j DROP
$ECHO "SYN/RST"
$IPTABLES $INPUT $TCP --tcp-flags SYN,RST SYN,RST        -j DROP
$ECHO "SYN/FIN -- Scan(probably)"
$IPTABLES $INPUT $TCP --tcp-flags SYN,FIN SYN,FIN        -j DROP
$ECHO "NMAP FIN Stealth"
$IPTABLES $INPUT $TCP --tcp-flags ALL FIN                -j DROP
$ECHO "ALL/ALL Scan"
$IPTABLES $INPUT $TCP --tcp-flags ALL ALL                -j DROP
$ECHO "NMAP Null Scan"
$IPTABLES $INPUT $TCP --tcp-flags ALL NONE               -j DROP
$ECHO "Drop invalid packets"
$IPTABLES $INPUT $STATE INVALID                          -j DROP
$ECHO "Drop fragmented packets"
$IPTABLES $INPUT -f                                      -j DROP

$ECHO "Drop packets with bad tcp flags"
$IPTABLES $INPUT $TCP --tcp-option 64                    -j DROP
$IPTABLES $INPUT $TCP --tcp-option 128                   -j DROP
## Placer les regles suivantes pour lancer emule
#$ECHO "Autorisation p2p"
#$IPTABLES -t nat -A PREROUTING $TCP -i ppp0 --dport 6346 -j DNAT --to 
192.168.0.52:6346
#$IPTABLES $FORWARD $TCP -i ppp0 --dport 6346 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING $UDP -i ppp0 --dport 6346 -j DNAT --to 
192.168.0.52:6346
#$IPTABLES $FORWARD $UDP -i ppp0 --dport 6346 -j ACCEPT

#$IPTABLES -t nat -A PREROUTING $TCP -i ppp0 --dport 5000 -j DNAT --to 
192.168.0.52:5000
#$IPTABLES $FORWARD $TCP -i ppp0 --dport 5000 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING $UDP -i ppp0 --dport 5000 -j DNAT --to 
192.168.0.52:5000
#$IPTABLES $FORWARD $UDP -i ppp0 --dport 5000 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING $UDP -i ppp0 --dport 44461 -j DNAT --to 
192.168.0.52:44461
#$IPTABLES $FORWARD $UDP -i ppp0 --dport 44461 -j ACCEPT
##



#$IPTABLES -t nat -A PREROUTING $TCP -i ppp0 --dport 4661 -j DNAT --to 
192.168.0.52:4661
#$IPTABLES $FORWARD $TCP -i ppp0 --dport 4661 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING $UDP -i ppp0 --dport 4661 -j DNAT --to 
192.168.0.52:4661
#$IPTABLES $FORWARD $UDP -i ppp0 --dport 4661 -j ACCEPT




$ECHO "Block ident (auth) requests"
$IPTABLES $INPUT $TCP --syn --dport 113 -j REJECT --reject-with tcp-reset
#$IPTABLES $INPUT $TCP --dport 113 --syn $STATE NEW                   -j 
ACCEPT
$ECHO "Autorisations requetes dns"
$IPTABLES $OUTPUT -o ppp0 $UDP --sport 1024: --dport 53 \
                                         $STATE ! INVALID             -j 
ACCEPT
$IPTABLES $INPUT  $UDP --sport 53 --dport 1024: $ESTABLISHED         -j 
ACCEPT


#$ECHO "Interdiction sur le port mysql pour ppp0"
#$IPTABLES $INPUT -i eth1 $TCP --destination-port 3306 -j ACCEPT
$ECHO "Autorisation service ftp"
$IPTABLES -t filter $INPUT $TCP --destination-port 20:21             -j 
ACCEPT
$IPTABLES -t filter $OUTPUT $TCP --source-port 20:21                 -j 
ACCEPT
$IPTABLES $INPUT  -i ppp0 $TCP $PRIVATE -m state --state ESTABLISHED -j 
ACCEPT
$IPTABLES $OUTPUT -o ppp0 $TCP $PRIVATE $ESTABLISHED                 -j 
ACCEPT


$ECHO "Autorisation Mail::SpamAssassin::Plugin::DCC"
$IPTABLES $INPUT  $UDP -m udp --dport 1024:65535 --sport 6277 -j ACCEPT
$IPTABLES $OUTPUT $UDP -m udp --sport 1024:65535 --dport 6277 -j ACCEPT

$ECHO "Autorisation wrapper cvs"
$IPTABLES $INPUT  -i ppp0 $TCP --destination-port 2401               -j 
ACCEPT
$IPTABLES $INPUT  -i ppp0 $UDP --destination-port 2401               -j 
ACCEPT
$IPTABLES $INPUT  -i ppp0 $TCP --destination-port 22                 -j 
ACCEPT
$IPTABLES $INPUT  -i ppp0 $UDP --destination-port 22                 -j 
ACCEPT
#$IPTABLES $INPUT  -i ppp0 $TCP --destination-port 143                -j 
ACCEPT
#$IPTABLES $INPUT  -i ppp0 $UDP --destination-port 143                -j 
ACCEPT
#$IPTABLES $INPUT  -i ppp0 $TCP --destination-port 389                -j 
ACCEPT
#$IPTABLES $INPUT  -i ppp0 $UDP --destination-port 389                -j 
ACCEPT

$IPTABLES $INPUT  -i ppp0 $TCP $PRIVATE -m state --state ESTABLISHED -j 
ACCEPT
$IPTABLES $OUTPUT -o ppp0 $TCP $PRIVATE $ESTABLISHED                 -j 
ACCEPT
echo "autorisation MSN"
# On autorise les ports pour les clients msn
$IPTABLES $OUTPUT -o ppp0 $TCP --dport 1863 -m state --state 
NEW,ESTABLISHED -j ACCEPT_LOG
$IPTABLES $INPUT  -i ppp0 $TCP --sport 1863 -m state --state ESTABLISHED 
-j ACCEPT_LOG
$IPTABLES $OUTPUT -o ppp0 $TCP --sport 6891:6901 -m state --state 
ESTABLISHED -j ACCEPT_LOG
$IPTABLES $INPUT  -i ppp0 $TCP --dport 6891:6901 -m state --state 
NEW,ESTABLISHED -j ACCEPT_LOG
$ECHO "Autorisation service http"
$IPTABLES $INPUT $TCP -i ppp0 --sport 1024: --dport 80 -j ACCEPT
$ECHO "Autorisation IRC"
$IPTABLES $INPUT $TCP -i ppp0 --sport 1024: --dport 6667 -j ACCEPT
$IPTABLES $INPUT $TCP -i ppp0 --sport 1024: --dport 6668 -j ACCEPT
$IPTABLES $INPUT $TCP -i ppp0 --sport 1024: --dport 6666 -j ACCEPT

$ECHO "Maquillage des adresses intranet avec ppp0"
$IPTABLES -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE


# Drop broadcasts pollution (not logged)
$IPTABLES $INPUT  -i eth0 -p ALL -s 10.0.0.255  -j DROP
$IPTABLES $INPUT  -i eth0 -p ALL -d 10.0.0.255 -j DROP
$IPTABLES $OUTPUT -o eth0 -p ALL -s 10.0.0.255 -j DROP
$IPTABLES $OUTPUT -o eth0 -p ALL -d 10.0.0.255 -j DROP
$IPTABLES $INPUT  -i eth0 -p ALL -s 0.0.0.0 -j DROP
$IPTABLES $INPUT  -i eth0 -p ALL -d 0.0.0.0 -j DROP
$IPTABLES $OUTPUT -o eth0 -p ALL -s 0.0.0.0 -j DROP
$IPTABLES $OUTPUT -o eth0 -p ALL -d 0.0.0.0 -j DROP
$IPTABLES $INPUT  -i eth0 -p ALL -s 255.255.255.255 -j DROP
$IPTABLES $INPUT  -i eth0 -p ALL -d 255.255.255.255 -j DROP
$IPTABLES $OUTPUT -o eth0 -p ALL -s 255.255.255.255 -j DROP
$IPTABLES $OUTPUT -o eth0 -p ALL -d 255.255.255.255 -j DROP
;;
     stop)
$ECHO "Suppression des tables existantes"
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t mangle -F
$IPTABLES -t mangle -X
$ECHO "Politique ouverte par d�faut sur la table filter"
$IPTABLES -t filter -P INPUT ACCEPT
$IPTABLES -t filter -P OUTPUT ACCEPT
$IPTABLES -t filter -P FORWARD ACCEPT
;;
     *)
                 echo "Usage: $0 {start|stop}"
;;
esac
exit 0


_________________________________
Linux mailing list
[email protected]
http://lists.parinux.org/mailman/listinfo/linux

Répondre à