1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
#!/bin/bash
I_LAN=green0
I_INTERNET=red0
ADRESSE_PINGUEUR=192.168.10.1
ADRESSE_DNS=212.27.40.240
ADRESSE_LAN_ROUTEUR=192.168.10.10
ADRESSE_INTERNET_ROUTEUR=192.168.0.3
PORT_SSH=222
# Flush all rules and delete all custom chains
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -X
/sbin/iptables -t nat -X
/sbin/iptables -t mangle -X
# Set up policies
# Politique par défaut deny all
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP
#creation de la table LOG_DROP
iptables -N LOG_DROP
iptables -A LOG_DROP -m limit --limit 10/minute -j LOG
iptables -A LOG_DROP -j DROP
#Traitement ICMP...
iptables -N ICMPS
#iptables -t filters
iptables -A INPUT -p icmp -j ICMPS
iptables -A OUTPUT -p icmp -j ICMPS
iptables -A FORWARD -p icmp -j ICMPS
# DROP DEPART de PING : INTERNET vers ROUTEUR
iptables -A ICMPS -i $I_INTERNET -p icmp --icmp-type echo-request -j LOG_DROP
if test $? -eq 0 ;then echo "DROP DEPART de PING : INTERNET vers ROUTEUR";else echo "erreur!";fi
# DROP RETOUR de PING : ROUTEUR vers INTERNET
iptables -A ICMPS -o $I_INTERNET -p icmp --icmp-type echo-reply -j LOG_DROP
if test $? -eq 0 ;then echo "DROP DEPART de PING : ROUTEUR vers INTERNET";else echo "erreur!";fi
# ACCEPT DEPART de PING : ROUTEUR vers INTERNET
#iptables -A ICMPS -s $ADRESSE_INTERNET_ROUTEUR -i $I_INTERNET -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A ICMPS -i mon.green0 -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
iptables -A ICMPS -i green0 -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
iptables -A ICMPS -i red0 -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
iptables -A ICMPS -i lo -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
iptables -A ICMPS -s $ADRESSE_INTERNET_ROUTEUR -o $I_INTERNET -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT && \
iptables -A ICMPS -o red0 -d 0/0 -p icmp --icmp-type echo-request -j ACCEPT
if test $? -eq 0 ;then echo "ACCEPT DEPART de PING : ROUTEUR vers INTERNET";else echo "erreur!";fi
# ACCEPT RETOUR de PING : INTERNET ver ROUTEUR
iptables -A ICMPS -i $I_INTERNET -o $I_INTERNET -s 0/0 -d $ADRESSE_INTERNET_ROUTEUR -p icmp --icmp-type echo-reply -j ACCEPT
if test $? -eq 0 ;then echo "ACCEPT RETOUR de PING : INTERNET vers ROUTEUR";else echo "erreur!";fi
iptables -A ICMPS -i red0 -s 0/0 -p icmp --icmp-type echo-reply -j ACCEPT
#ACCEPT PING de IPFIRE vers COMPAQ ALLER + RETOUR
iptables -A ICMPS -o $I_LAN -i $I_LAN -s $ADRESSE_LAN_ROUTEUR -d $ADRESSE_PINGUEUR -p icmp --icmp-type echo-request -j ACCEPT && \
iptables -A ICMPS -i $I_LAN -o $I_LAN -s $ADRESSE_PINGUEUR -d $ADRESSE_LAN_ROUTEUR -p icmp --icmp-type echo-reply -j ACCEPT ;
if test $? -eq 0 ;then echo "ACCEPT PING de IPFIRE vers COMPAQ ALLER + RETOUR (vérifiez si $ADRESSE_PINGUEUR n'a pas de parfeu!)";else echo "erreur!";fi
#ACCEPT PING de COMPAQ vers IPFIRE
iptables -A ICMPS -o $I_LAN -d $ADRESSE_PINGUEUR -p icmp --icmp-type echo-reply -j ACCEPT && \
iptables -A ICMPS -i $I_LAN -s $ADRESSE_PINGUEUR -p icmp --icmp-type echo-request -j ACCEPT
if test $? -eq 0 ;then echo "ACCEPT PING de COMPAQ vers IPFIRE";else echo "erreur!";fi
# ACCEPT DEPART de PING : LAN vers INTERNET
iptables -A ICMPS -i $I_LAN -o $I_INTERNET -d 0/0 -s $ADRESSE_PINGUEUR -p icmp --icmp-type echo-request -j ACCEPT
if test $? -eq 0 ;then echo "DROP DEPART de PING : INTERNET vers LAN";else echo "erreur!";fi
# ACCEPT RETOUR de PING : INTERNET vers LAN
iptables -A ICMPS -o $I_LAN -i $I_INTERNET -s 0/0 -d $ADRESSE_PINGUEUR -p icmp --icmp-type echo-reply -j ACCEPT
if test $? -eq 0 ;then echo "DROP DEPART de PING : LAN vers INTERNET";else echo "erreur!";fi
#
iptables -A ICMPS -o lo -i lo -s 127.0.0.1 -p icmp -d 127.0.0.1 -j ACCEPT
iptables -A ICMPS -j LOG_DROP
# MASQUERADE en POSTROUTING : NAT pour LAN
iptables -t nat -A POSTROUTING -o $I_INTERNET -j MASQUERADE
if test $? -eq 0 ;then echo "";else echo "erreur!";fi
#DNS
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --sport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --sport 53 -j ACCEPT
# https de Client vers web via Serveur ESTABLISHED
iptables -A FORWARD -p tcp -s 0/0 -d $ADRESSE_PINGUEUR -m multiport --sport 80,443 -j ACCEPT -m state --state ESTABLISHED
iptables -A FORWARD -p tcp -d 0/0 -s $ADRESSE_PINGUEUR -m multiport --dport 80,443 -j ACCEPT -m state --state NEW,ESTABLISHED
iptables -I INPUT 1 -i green0 -s $ADRESSE_PINGUEUR -p tcp --dport $PORT_SSH -j ACCEPT
iptables -I OUTPUT 1 -o green0 -d $ADRESSE_PINGUEUR -p tcp --sport $PORT_SSH -j ACCEPT
# ACCEPT $ADRESSE_PINGUEUR pour administrer par le web le routeur
iptables -A INPUT -i green0 -s $ADRESSE_PINGUEUR -p tcp --dport 444 -j ACCEPT
iptables -A OUTPUT -o green0 -d $ADRESSE_PINGUEUR -p tcp --sport 444 -j ACCEPT
exit 0 |
Partager