rendered paste bodyligne 35 $iduser :)
#!/bin/sh
set -x -v
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.07"
FAMOPTS="-T 0"
ipineth0tcpsport="iptables -A INPUT -i eth0 -p tcp -m multiport --source-ports "
ipintcpsport="iptables -A INPUT -p tcp -m multiport --source-ports"
ipinudpsport="iptables -A INPUT -p udp -m multiport --source-ports "
ipinudpdport="iptables -A INPUT -p udp -m multiport --destination-port "
ipouttcpdport="iptables -A OUTPUT -p tcp -m multiport --destination-port "
ipouttcpsport="iptables -A OUTPUT -p tcp -m owner --uid-owner 1002 -m multiport --source-ports "
ipoutudpsport="iptables -A OUTPUT -p udp -m owner --uid-owner 1002 -m multiport --source-ports "
ipdropoutudpdport="iptables -A OUTPUT -p udp -m multiport --destination-port "
suivi=" -m state --state ESTABLISHED,RELATED -j ACCEPT"
newsuivi=" -m state --state ESTABLISHED,NEW"
newpure="-m state --state NEW"
loopack="iptables -A INPUT -i lo -j ACCEPT"
loopackout="iptables -A OUTPUT -o lo -j ACCEPT"
limiteflood=" -m limit --limit 1/s --limit-burst 2 -j LOG --log-prefix "
AC=" -j ACCEPT"
DP=" -j DROP"
iduser="1002"
gnomein1="iptables -A INPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 --dport 111 -m state --state ESTABLISHED,NEW -j ACCEPT"
gnomein2="iptables -A INPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 --sport 111 -m state --state ESTABLISHED,NEW -j ACCEPT"
gnomeout1="iptables -A OUTPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 --dport 111 -m state --state ESTABLISHED,NEW -j ACCEPT"
gnomeout2="iptables -A OUTPUT -p tcp -s 127.0.0.1 -d 127.0.0.1 --sport 111 -m state --state ESTABLISHED,NEW -j ACCEPT"
LOGALLIN="iptables -A INPUT -i lo -j LOG --log-prefix=""<LOOPACKIN> "" --log-level debug"
LOGALLOUT="iptables -A OUTPUT -o lo -j LOG --log-prefix=""<LOOPACK> "" --log-level debug"
surfin="iptables -A INPUT -p udp -m multiport --source-ports 53,80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT "
surfin2="iptables -A INPUT -p tcp -m multiport --source-ports 81,80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT"
surfout="iptables -A OUTPUT -m owner --uid-owner $iduser udp -m multiport --destination-port 53,80,81 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT"
surfout2="iptables -A OUTPUT -m owner --uid-owner -p tcp -m multiport --destination-port 81,80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT"
limituid="-m owner --uid-owner 1002"
irc="iptables -A INPUT -p tcp --sport 6667"
ircin="iptables -A INPUT -p udp --sport 53"
ircout="iptables -A OUTPUT -p tcp -m owner --uid-owner 1002 --dport 6667"
ircone="iptables -A INPUT -p udp --dport 138 --sport 138 -m iprange --src-range 192.168.1.81 --dst-range 192.168.1.255 "
icpmonip1="iptables -A INPUT -p icmp -m iprange --src-range 192.168.1.80 --dst-range 192.168.1.1 -j ACCEPT"
icpmonip2="iptables -A INPUT -p icmp -m iprange --src-range 192.168.1.81 --dst-range 192.168.1.1 -j ACCEPT"
dnswww3="iptables -A INPUT -p udp -d 192.168.1.81 -s 192.168.1.1 --sport 53 -j ACCEPT"
dnswww4="iptables -A INPUT -p udp -d 192.168.1.81 -s 212.147.0.0/16 --sport 53 -j ACCEPT"
# port en language plus parlant============================================================
msn="1863"
msn2="443"
filemsn="6891"
mailentranpop="110"
mailsortansmtp="25"
# Port FERMER==========================================================================
c22="22"
c68="68"
c111="111"
c113="113"
c162="162"
c6000="6000"
#string interdi !===========================================================================
stringInput="iptables -A INPUT -i eth0 -m string --string" # autre paramettre de --algo kmp
stringOutput="iptables -A OUTPUT -o eth0 -m string --string"
stringInputEndDrop="--algo bm -j DROP"
stringTexteCokie="cookie"
stringTextegay="gay"
stringTextegays="gays"
stringTextepopup="thumbzilla"
StringW1="pornstarfinder"
StringW2="moviesgold"
StringW3="vidsvidsvids"
StringW4="hanksgalleries"
StringW5="spewie"
StringW6="vx23855"
StringW7="elephantlist"
#PLAGE D' IP Fermée=====================================================================
#PLAGE D' IP ouverte=====================================================================
IPlocalportables="198.168.1.81"
IPlocalfix="198.168.1.80"
#============================================================================================
iptables -A INPUT -i eth0 -m iprange --src-range 30.0.0.0-70.0.0.0
iptables -A INPUT -i eth0 -m iprange --src-range 220.0.0.0-255.255.0.0
#============================================================================================
#lgtcp="Drop INPUT tcp"
#lgudp="Drop INPUT udp"
set -e
case "$1" in
start)
echo "Starting $DESC"
#============================================================================================
# Astuces
# lsof -ni
#============================================================================================
iptables -P INPUT DROP
#============================================================================================
$ipinudpdport $c162 $DP
#============================================================================================
iptables -A INPUT -p tcp -m state --state INVALID -j LOG --log-prefix="----->syn1: " --log-level debug
iptables -A INPUT -p tcp -m state --state INVALID -j LOG --log-prefix="----->syn2: " --log-level debug
#$stringInput $stringTexteCokie $stringInputEndDrop
$stringInput $stringTextegay $stringInputEndDrop
$stringInput $stringTextegays $stringInputEndDrop
$stringInput $stringTextepopup $stringInputEndDrop
$stringInput $StringW1 $stringInputEndDrop
$stringInput $StringW2 $stringInputEndDrop
$stringInput $StringW3 $stringInputEndDrop
$stringInput $StringW4 $stringInputEndDrop
$stringInput $StringW5 $stringInputEndDrop
$stringInput $StringW6 $stringInputEndDrop
$stringInput $StringW7 $stringInputEndDrop
$ipineth0tcpsport $c22 $DP
$ipineth0tcpsport $c68 $DP
$ipineth0tcpsport $c111 $DP
$ipineth0tcpsport $c113 $DP
$ipineth0tcpsport $c6000 $DP
$gnomein1
$gnomein2
$LOGALLIN
$loopack
$icpmonip1
$icpmonip2
#$dnswww3
#$dnswww4
$irc $suivi
$ircin $suivi
$ircone $suivi
$ipintcpsport $msn $suivi
$ipintcpsport $msn2 $AC
$ipintcpsport $filemsn $suivi
$surfin
$surfin2
#$surfin3
$ipintcpsport $mailentranpop $suivi #$AC
$ipintcpsport $mailsortansmtp $suivi #$AC
#iptables -A INPUT -i eth0 -s 192.168.1.1/24
#iptables -A INPUT -i eth0 -d 192.168.1.1/24 -j ACCEPT
#iptables -A INPUT -i eth0 -m string --string "lol" --algo bm -j REJECT # autre paramettre de --algo kmp
#iptables -A INPUT -i eth0 -s 127.0.0.1/24 -j ACCEPT
#iptables -A INPUT -i eth0 -d 127.0.0.1/24 -j ACCEPT
iptables -A INPUT -i eth0 -d $IPlocalportables -j ACCEPT
iptables -A INPUT -i eth0 -d $IPlocalfix -j ACCEPT
iptables -A INPUT -i eth0 -j LOG --log-prefix="IN Drop Final: " --log-level debug
#iptables -A INPUT -i eth0 -j ACCEPT
#============================================================================================
# policy defaut
iptables -P OUTPUT DROP
#============================================================================================
#iptables -A OUTPUT -o lo -j ACCEPT
#============================================================================================
#Close port critique
#iptables -A OUTPUT -o eth0 -m string --string "lol" --algo bm -j DROP # autre paramettre de --algo kmp
#$stringOutput $stringTexteCokie $stringInputEndDrop
#iptables -A OUTPUT -p tcp -m tcp --tcp-flags SYN,ACK SYN -m state --state NEW,RELATED -jLOG --log-prefix="----->syn: " --
iptables -A OUTPUT -p tcp -m state --state INVALID -j LOG --log-prefix="----->syn: " --log-level debug
$gnomeout1
$gnomeout2
#$ipouttcpdport $c68 $DP
$ipouttcpdport $c111 $DP
#$ipouttcpdport $c113 $DP
#$ipouttcpdport $c6000 $DP
#============================================================================================
$LOGALLOUT
$loopackout
#============================================================================================
$surfout
$surfout2
$ircout $newsuivi $AC
$ipouttcpdport $msn $limituid $AC
$ipouttcpdport $msn2 $limituid $AC
$ipouttcpdport $filemsn $limituid $AC
$ipouttcpdport $mailentranpop $limituid $AC
$ipouttcpdport $mailsortansmtp $limituid $AC
iptables -A OUTPUT -o eth0 -s $IPlocalportables -j ACCEPT
iptables -A OUTPUT -o eth0 -s $IPlocalfix -j ACCEPT
iptables -A OUTPUT -o eth0 -j LOG --log-prefix="OUT Drop final: " --log-level debug
#iptables -A OUTPUT -o eth0 -j ACCEPT
#============================================================================================
iptables -P FORWARD ACCEPT
#============================================================================================
#Close port critique
#============================================================================================
#==================================END=======================================================
#echo "$NAME."
;;
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} " $DAEMON >&2
exit 1
;;
esac
exit 0