ligne 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="" "" --log-level debug" LOGALLOUT="iptables -A OUTPUT -o lo -j LOG --log-prefix="" "" --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