All pastes #263349 Raw Edit

Divers

public text v1 · immutable
·published 2006-12-01 13:12 UTC
rendered paste body
#!/bin/sh
PATH=/usr/eth0cal/sbin:/usr/eth0cal/bin:/sbin:/bin:/usr/sbin:/usr/bin:/sbin/iptables
DAEMON=/etc/init.d/fw
NAME=fw
ID=$$
DESC="Par Feux 1.13"
FAMOPTS="-T 0"
set -e

case "$1" in
  start)
#variable
MAC="-m mac --mac-source 00:0A:E4:5E:21:8F"
MACROUTEUR="-m mac --mac-source 00:18:39:1E:D3:E1"
RL="192.168.0.0/16"
id="1000"

	echo "Démarage de $DESC Pour l'user $id"

#Mise a zero des regle (par précaution)
#
# On remet la police par défaut à ACCEPT
#
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#
# On remet les polices par défaut pour la table NAT
#
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#
# On vide (flush) toutes les règles existantes
#
iptables -F
iptables -t nat -F

#
# Et enfin, on efface toutes les chaînes qui ne
# sont pas à defaut dans la table filter et nat

iptables -X
iptables -t nat -X
#============================================================================================
# policy defaut
iptables -P INPUT DROP
#============================================================================================

#règle de filtrage
#Pour émettre un service Cupsys
#iptables -A INPUT -m state --state NEW -p TCP --dport 631 -j ACCEPT
#Service DNS
#Contacter un DNS, surtout si le réseau local en comporte un, est important,
#même pour les services DNS sur Internet, 
#entres autres avec votre FAI ; il faut donc ouvrir les protocoles (TCP) et UDP
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --dport 53 -j ACCEPT
#Service SaMBa
# EPMAP => définit toutes les RPC !
iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,445 $MACROUTEUR -s $RL -d $RL -j ACCEPT
iptables -A INPUT -p udp -m multiport --source-port 135,137,138,445 $MACROUTEUR -s $RL -d $RL -j ACCEPT
iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,445 $MAC -s $RL -d $RL -j ACCEPT
iptables -A INPUT -p udp -m multiport --source-port 135,137,138,445 $MAC -s $RL -d $RL -j ACCEPT
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 135 -j ACCEPT
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 135 -j ACCEPT
# NetBios-NS
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 137 -j ACCEPT
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 137 -j ACCEPT
# NetBios-DGM => exploration du réseau (basé sur SMB browser service)
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 138 -j ACCEPT
# NetBios-SSN => partage fichiers, imprimantes par Microsoft
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 139 -j ACCEPT
# SMB/IP => partage fichiers, imprimantes par SaMBa
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 445 -j ACCEPT
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 445 -j ACCEPT
#Service SSH
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 22 -j ACCEPT
#Service FTP
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 21 -j ACCEPT
#Ce proteger contre les ping , mai en permettre quelque un
iptables -A INPUT  -p icmp -m limit --limit 16/d -j ACCEPT
#de cette manière, une erreur ICMP passera, mais votre passerelle ne répondra pas aux reste ICMP.
iptables -A INPUT -p icmp  -m state --state RELATED -j ACCEPT
#Ouverture des port pour les navigateurs
iptables -A INPUT -p tcp -m multiport --source-ports 21,80,81,82,83,84,8080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#laisser msn sortire fichier compris
iptables -A INPUT -p tcp -m multiport --source-port 1863,6891 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#laisser sortire IRC
iptables -A INPUT -p tcp --sport 6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#Les e-mail
iptables -A INPUT -p tcp -m multiport --source-port 25,110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


#on autorise le transfere dans le reseau local ceci est a éviter !
#iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT

# Le service xvnc4viewer (mode graphique de pc a pc)
iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 5900 -j ACCEPT
#loopack
iptables -A INPUT -i lo -j ACCEPT

#on autorise le multicast DNS sur IP (pas d'adress mac en OUTPUT) et le port 5353 sinon gnome plente a l'arret!
#iptables -A INPUT -i eth0 -s 192.168.1.0/24 -d 224.0.0.0/24 -j ACCEPT
#iptables -A INPUT -i eth0 -d 192.168.1.0/24 -s 224.0.0.0/24 -j ACCEPT

# on log ce qui est stopper
#iptables -A INPUT -i eth0 -j LOG -m limit --limit 1/d --log-prefix="USER INPUT Final:  " --log-level debug
iptables -A INPUT -i eth0 -j LOG -m limit --limit 24/h --limit-burst 1 --log-prefix="USER INPUT Final:  " --log-level debug

#=================================SECTION OUTPUT=============================================================
# policy defaut
iptables -P OUTPUT DROP
#===========================================================================================================
#règle de filtrage
#Pour émettre un service Cupsys
iptables -A OUTPUT -m state --state NEW -p TCP --dport 631 -j ACCEPT
#Service DNS
#Contacter un DNS, surtout si le réseau local en comporte un, est important,
#même pour les services DNS sur Internet, 
#entres autres avec votre FAI ; il faut donc ouvrir les protocoles TCP et UDP
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 53 -m owner --uid-owner $id -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --dport 53 -m owner --uid-owner $id -j ACCEPT
#Service SaMBa
# EPMAP => définit toutes les RPC !
iptables -A OUTPUT -p tcp -m multiport --destination-port 135,137,138,445,5900 -s $RL -d $RL -m owner --uid-owner $id -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --destination-port 135,137,138,445,5900 -s $RL -d $RL -m owner --uid-owner $id -j ACCEPT
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 135 -j ACCEPT
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 135 -j ACCEPT
# NetBios-NS
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 137 -j ACCEPT
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 137 -j ACCEPT
# NetBios-DGM => exploration du réseau (basé sur SMB browser service)
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 138 -j ACCEPT
# NetBios-SSN => partage fichiers, imprimantes par Microsoft
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 139 -j ACCEPT
# SMB/IP => partage fichiers, imprimantes par SaMBa
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 445 -j ACCEPT
#iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 445 -j ACCEPT
#Service SSH
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 22 -m owner --uid-owner $id -j ACCEPT
#Service FTP
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 21 -m owner --uid-owner $id -j ACCEPT
#Ce proteger contre les ping , mai en permettre quelque un
iptables -A OUTPUT  -p icmp -m limit --limit 16/d -j ACCEPT
#de cette manière, une erreur ICMP passera, mais votre passerelle ne répondra pas aux reste ICMP.
iptables -A OUTPUT -p icmp  -m state --state RELATED -j ACCEPT
#Ouverture des port pour les navigateurs
iptables -A OUTPUT -p tcp -m multiport --destination-port 21,80,81,82,83,84,8080 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#laisser msn sortire fichier compris
iptables -A OUTPUT -p tcp -m multiport --destination-port 1863,6891 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#laisser sortire IRC
iptables -A OUTPUT -p tcp --dport 6667 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#Les e-mail
iptables -A OUTPUT -p tcp -m multiport --destination-port 25,110 -m owner --uid-owner $id -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#on autorise le transfere dans le reseau local ceci est a éviter !
#iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT

#on autorise le loopack
iptables -A OUTPUT -o lo -j ACCEPT

#on autorise le multicast DNS sur IP (pas d'adress mac en OUTPUT) et le port 5353 sinon gnome plente a l'arret!
#iptables -A OUTPUT -o eth0 -s 192.168.1.0/24 -d 224.0.0.0/24 -j ACCEPT
#iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -s 224.0.0.0/24 -j ACCEPT
#iptables -A OUTPUT -o eth0 -j ACCEPT
#iptables -A OUTPUT -o eth0 -s 192.168.1.0/24 -j ACCEPT
# Le service xvnc4viewer (mode graphique de pc a pc)
#iptables -A OUTPUT  -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 5900 -j ACCEPT
# on log ce qui est stopper
iptables -A OUTPUT -o eth0 -j LOG -m limit --limit 24/h --limit-burst 1 --log-prefix="USER OUTPUT Final:  " --log-level debug


echo "!! Chargement terminer !!"
	;;
  root)
#====================================================================================================================
#====================================================================================================================
#					ROOT ID 0
#====================================================================================================================
#====================================================================================================================
MAC="-m mac --mac-source 00:0A:E4:5E:21:8F"
MACROUTEUR="-m mac --mac-source 00:18:39:1E:D3:E1"
RL="192.168.0.0/16"
idroot="0"
	echo "!! PASSAGE EN MODE ROOT !!"
	echo "!! Effacement !!"
#On efface les regles pour root
#
# On remet la police par défaut à ACCEPT
#
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#
# On remet les polices par défaut pour la table NAT
#
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#
# On vide (flush) toutes les règles existantes
#
iptables -F
iptables -t nat -F

#
# Et enfin, on efface toutes les chaînes qui ne
# sont pas à defaut dans la table filter et nat

iptables -X
iptables -t nat -X
	echo "!! Chargement un moment s'il vou plaît !!"
#============================================================================================
# policy defaut
iptables -P INPUT DROP
#============================================================================================
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 53 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,445 $MACROUTEUR -s $RL -d $RL -j ACCEPT
iptables -A INPUT -p udp -m multiport --source-port 135,137,138,445 $MACROUTEUR -s $RL -d $RL -j ACCEPT
iptables -A INPUT -p tcp -m multiport --source-port 135,137,138,445 $MAC -s $RL -d $RL -j ACCEPT
iptables -A INPUT -p udp -m multiport --source-port 135,137,138,445 $MAC -s $RL -d $RL -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 21 -j ACCEPT
iptables -A INPUT  -p icmp -m limit --limit 16/d -j ACCEPT
iptables -A INPUT -p icmp  -m state --state RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --source-ports 21,80,81,82,83,84,8080 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --source-port 1863,6891 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --sport 6667 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --source-port 119,110,25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT $MAC -m state --state NEW,ESTABLISHED,RELATED -p TCP --sport 5900 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#=================================SECTION OUTPUT=============================================================
# policy defaut
iptables -P OUTPUT DROP
#===========================================================================================================
iptables -A OUTPUT -m state --state NEW -p TCP --dport 631 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 53 -m owner --uid-owner $idroot -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p UDP --dport 53 -m owner --uid-owner $idroot -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --destination-port 135,137,138,445,5900 -s $RL -d $RL -m owner --uid-owner $idroot -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --destination-port 135,137,138,445,5900 -s $RL -d $RL -m owner --uid-owner $idroot -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 22 -m owner --uid-owner $idroot -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -p TCP --dport 21 -m owner --uid-owner $idroot -j ACCEPT
iptables -A OUTPUT  -p icmp -m limit --limit 16/d -j ACCEPT
iptables -A OUTPUT -p icmp  -m state --state RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --destination-port 21,80,81,82,83,84,8080 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --destination-port 1863,6891 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 6667 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --destination-port 119,110,25 -m owner --uid-owner $idroot -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
	echo "!! Chargement terminer !!"
	;;
  stop)
	echo -n "Stopping $DESC: "
#
# On remet la police par défaut à ACCEPT
#
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#
# On remet les polices par défaut pour la table NAT
#
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#
# On vide (flush) toutes les règles existantes
#
iptables -F
iptables -t nat -F

#
# Et enfin, on efface toutes les chaînes qui ne
# sont pas à defaut dans la table filter et nat

iptables -X
iptables -t nat -X


	echo "$NAME."
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: /etc/init.d/fw {start|stop|root} " $DAEMON >&2
	exit 1
	;;
esac

exit 0