lug-bg: Страннотии с firewall-a
Здрасти банда (no offence pls), имам следния сетъп net -> pppoe (ppp0) -> linux (forwarding/masq/snat/dnat) -> eth0 -> clients (ludnica) 1) Това е локална мрежа 2) това е студентско изпълнение 3) само познати сме тези които делим конекцията По мое скромно мнение машината би трябвало да е затворена от текущия firewall но не е Предистория: Днес си играх с Privoxy и съвсем случайно прегледах /var/log/mailog и там видях отхвърлен релаъ до yahoo. реших да проверя и се оказа че порт 25 е достъпен отвън въпреки че е изрично забранен. Слдва самият firewall. Забелейки: Изграден е на база netfilter.org + easy firewall generator. Полиците за веригите се сетват накрая (проблеми със стар хардуер) FW START = # cat /etc/rc.d/rc.fire #!/bin/bash #conf SYSCTL="/sbin/sysctl -w" IPT="/usr/sbin/iptables" IPTS="/usr/sbin/iptables-save" IPTR="/usr/sbin/iptables-restore" INET_IFACE="ppp0" INET_ADDRESS="`/sbin/ifconfig $INET_IFACE | grep addr: | cut -d: -f2 | cut -d" " -f1`" EXTERN_PORTS="53 80 " LOCAL_IFACE="eth0" LOCAL_IP="" LOCAL_NET="" LOCAL_BCAST=" /etc/sysconfig/iptables echo "done" exit 0 elif [ "$1" = "restore" ] then echo -n "Restoring firewall from /etc/sysconfig/iptables ... " $IPTR < /etc/sysconfig/iptables echo "done" exit 0 fi echo "Loading kernel modules ..." /sbin/modprobe ip_tables /sbin/modprobe ip_conntrack /sbin/modprobe ip_nat_ftp /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_conntrack_irc #tuning some params if [ "$SYSCTL" = "" ] then echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/tcp_syncookies echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects echo "1" > /proc/sys/net/ipv4/conf/all/log_martians echo "15" > /proc/sys/net/ipv4/tcp_fin_timeout echo "1200" > /proc/sys/net/ipv4/tcp_keepalive_time echo "2048 65000" > /proc/sys/net/ipv4/ip_local_port_range echo "2" > /proc/sys/net/ipv4/tcp_synack_retries echo "3" > /proc/sys/net/ipv4/tcp_syn_retries echo "2048" > /proc/sys/net/ipv4/tcp_syn_retries echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle else $SYSCTL net.ipv4.ip_forward="1" $SYSCTL net.ipv4.tcp_syncookies="1" $SYSCTL net.ipv4.conf.all.rp_filter="1" $SYSCTL net.ipv4.icmp_echo_ignore_broadcasts="1" $SYSCTL net.ipv4.conf.all.accept_source_route="0" $SYSCTL net.ipv4.conf.all.secure_redirects="1" $SYSCTL net.ipv4.conf.all.log_martians="1" $SYSCTL net.ipv4.tcp_fin_timeout="15" $SYSCTL net.ipv4.tcp_keepalive_time="1200" $SYSCTL net.ipv4.ip_local_port_range="2048 65000" $SYSCTL net.ipv4.tcp_synack_retries="2" $SYSCTL net.ipv4.tcp_syn_retries="3" $SYSCTL net.ipv4.tcp_max_syn_backlog="2048" $SYSCTL net.ipv4.tcp_tw_reuse="1" $SYSCTL net.ipv4.tcp_tw_recycle="1" $SYSCTL net.ipv4.conf.all.arp_ignore="1" fi echo "Flushing Tables ..." # Reset Default Policies $IPT -P INPUT ACCEPT $IPT -P FORWARD DROP $IPT -P OUTPUT ACCEPT $IPT -t nat -P PREROUTING ACCEPT $IPT -t nat -P POSTROUTING ACCEPT $IPT -t nat -P OUTPUT ACCEPT $IPT -t mangle -P PREROUTING ACCEPT $IPT -t mangle -P OUTPUT ACCEPT # Flush all rules $IPT -F $IPT -t nat -F $IPT -t mangle -F # Erase all non-default chains $IPT -X $IPT -t nat -X $IPT -t mangle -X if [ "$1" = "stop" ] then if [ "$SYSCTL" = "" ] then # Double security echo "0" > /proc/sys/net/ipv4/ip_forward else $SYSCTL net.ipv4.ip_forward="0" fi echo "Firewall completely flushed! Not routing." exit 0 fi # Set Policies $IPT -P INPUT ACCEPT $IPT -P OUTPUT ACCEPT $IPT -P FORWARD ACCEPT echo "Create and populate chains ..." $IPT -N bad_packets $IPT -N bad_tcp_packets $IPT -N protections $IPT -N udp_inbound $IPT -N udp_outbound $IPT -N tcp_inbound $IPT -N tcp_outbound # populating invalid/broken/shit $IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j DROP $IPT -A bad_packets -p ALL -m state --state INVALID -j DROP $IPT -A bad_packets -p tcp -j bad_tcp_packets $IPT -A bad_packets -p ALL -j RETURN # Portscans mbuahahahah $IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j REJECT --reject-with icmp-host-unreachable $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j REJECT $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j REJECT $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j REJECT $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j REJECT $IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT $IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT $IPT -A bad_tcp_packets -p tcp -j protections $IPT -A bad_tcp_packets -p tcp -j RETURN # Protections from rusty russel $IPT -A protections -p tcp --
Re: lug-bg: Страннотии с firewall-a
Здрасти, Първо - изпол.зването на разни такива скриптове за изи конфигуриране на защитна стена е много съмнително какво дава като резултат, още повече ако не си съвсем наясно какво прави този скрипт. Не мога сега да го проследя, а не искам да го изпълнявам за да видя какво точно прави. Така че - най-добре е да пратиш резултата, т.е. iptables -L -n iptables -t nat -L -n Vladimir Vitkov написа: Здрасти банда (no offence pls), имам следния сетъп net -> pppoe (ppp0) -> linux (forwarding/masq/snat/dnat) -> eth0 -> clients (ludnica) 1) Това е локална мрежа 2) това е студентско изпълнение 3) само познати сме тези които делим конекцията По мое скромно мнение машината би трябвало да е затворена от текущия firewall но не е Предистория: Днес си играх с Privoxy и съвсем случайно прегледах /var/log/mailog и там видях отхвърлен релаъ до yahoo. реших да проверя и се оказа че порт 25 е достъпен отвън въпреки че е изрично забранен. Слдва самият firewall. Забелейки: Изграден е на база netfilter.org + easy firewall generator. Полиците за веригите се сетват накрая (проблеми със стар хардуер) FW START = # cat /etc/rc.d/rc.fire #!/bin/bash #conf SYSCTL="/sbin/sysctl -w" IPT="/usr/sbin/iptables" IPTS="/usr/sbin/iptables-save" IPTR="/usr/sbin/iptables-restore" INET_IFACE="ppp0" INET_ADDRESS="`/sbin/ifconfig $INET_IFACE | grep addr: | cut -d: -f2 | cut -d" " -f1`" EXTERN_PORTS="53 80 " LOCAL_IFACE="eth0" LOCAL_IP="" LOCAL_NET="" LOCAL_BCAST=" /etc/sysconfig/iptables echo "done" exit 0 elif [ "$1" = "restore" ] then echo -n "Restoring firewall from /etc/sysconfig/iptables ... " $IPTR < /etc/sysconfig/iptables echo "done" exit 0 fi echo "Loading kernel modules ..." /sbin/modprobe ip_tables /sbin/modprobe ip_conntrack /sbin/modprobe ip_nat_ftp /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_conntrack_irc #tuning some params if [ "$SYSCTL" = "" ] then echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/tcp_syncookies echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects echo "1" > /proc/sys/net/ipv4/conf/all/log_martians echo "15" > /proc/sys/net/ipv4/tcp_fin_timeout echo "1200" > /proc/sys/net/ipv4/tcp_keepalive_time echo "2048 65000" > /proc/sys/net/ipv4/ip_local_port_range echo "2" > /proc/sys/net/ipv4/tcp_synack_retries echo "3" > /proc/sys/net/ipv4/tcp_syn_retries echo "2048" > /proc/sys/net/ipv4/tcp_syn_retries echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle else $SYSCTL net.ipv4.ip_forward="1" $SYSCTL net.ipv4.tcp_syncookies="1" $SYSCTL net.ipv4.conf.all.rp_filter="1" $SYSCTL net.ipv4.icmp_echo_ignore_broadcasts="1" $SYSCTL net.ipv4.conf.all.accept_source_route="0" $SYSCTL net.ipv4.conf.all.secure_redirects="1" $SYSCTL net.ipv4.conf.all.log_martians="1" $SYSCTL net.ipv4.tcp_fin_timeout="15" $SYSCTL net.ipv4.tcp_keepalive_time="1200" $SYSCTL net.ipv4.ip_local_port_range="2048 65000" $SYSCTL net.ipv4.tcp_synack_retries="2" $SYSCTL net.ipv4.tcp_syn_retries="3" $SYSCTL net.ipv4.tcp_max_syn_backlog="2048" $SYSCTL net.ipv4.tcp_tw_reuse="1" $SYSCTL net.ipv4.tcp_tw_recycle="1" $SYSCTL net.ipv4.conf.all.arp_ignore="1" fi echo "Flushing Tables ..." # Reset Default Policies $IPT -P INPUT ACCEPT $IPT -P FORWARD DROP $IPT -P OUTPUT ACCEPT $IPT -t nat -P PREROUTING ACCEPT $IPT -t nat -P POSTROUTING ACCEPT $IPT -t nat -P OUTPUT ACCEPT $IPT -t mangle -P PREROUTING ACCEPT $IPT -t mangle -P OUTPUT ACCEPT # Flush all rules $IPT -F $IPT -t nat -F $IPT -t mangle -F # Erase all non-default chains $IPT -X $IPT -t nat -X $IPT -t mangle -X if [ "$1" = "stop" ] then if [ "$SYSCTL" = "" ] then # Double security echo "0" > /proc/sys/net/ipv4/ip_forward else $SYSCTL net.ipv4.ip_forward="0" fi echo "Firewall completely flushed! Not routing." exit 0 fi # Set Policies $IPT -P INPUT ACCEPT $IPT -P OUTPUT ACCEPT $IPT -P FORWARD ACCEPT echo "Create and populate chains ..." $IPT -N bad_packets $IPT -N bad_tcp_packets $IPT -N protections $IPT -N udp_inbound $IPT -N udp_outbound $IPT -N tcp_inbound $IPT -N tcp_outbound # populating invalid/broken/shit $IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j DROP $IPT -A bad_packets -p ALL -m state --state INVALID -j DROP $IPT -A bad_packets -p tcp -j bad_tcp_packets $IPT -A bad_packets -p ALL -j RETURN # Portscans mbuahahahah $IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j REJECT --reject-with icmp-host-unreachable $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j REJECT $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j REJECT $IPT -A bad_tcp_packets -p
Re: lug-bg: Страннотии с firewall-a
On Thursday 09 March 2006 02:19, Vladimir Vitkov wrote: Здравей, Ето как изглеждат поне на пръв поглед нещата, след като се изчисти всичко, което може да те разсейва: 1. Политика по подразбиране за INPUT веригата - ACCEPT. > # Set Policies > > $IPT -P INPUT ACCEPT 2. За входящи връзки по tcp и udp създаваш нови вериги, съответно tcp_inbound и udp_inbound. > $IPT -N udp_inbound > $IPT -N tcp_inbound 3. В тези вериги се случва следното: всички връзки без оглед на статус, порт, т.н. се пропускат. > # incoming udp services > for PORT in $EXTERN_PORTS ; do > $IPT -A udp_inbound -p UDP -s 0/0 --dport $PORT -j ACCEPT > done > $IPT -A udp_inbound -p UDP -j RETURN > > $IPT -A udp_outbound -p UDP -s 0/0 -j ACCEPT > > # incoming tcp services > for PORT in $EXTERN_PORTS ; do > $IPT -A tcp_inbound -p TCP -s 0/0 --destination-port $PORT -j > ACCEPT done > $IPT -A tcp_inbound -p TCP -j RETURN 4. Всички входящи връзки без оглед на статус и порт влизат във веригите tcp_inbound и udp_inbound, където се случва онова от точка 3. > > $IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_inbound > $IPT -A INPUT -p UDP -i $INET_IFACE -j udp_inbound Кажете, ако пропускам нещо, но този firewall не е направен, за да спира, а да пропуска. -- Linux-BG.org -- System Administrator -- tel: +359 2 976 13 02 mobile: +359 889 90 99 11 -- Public GnuPG key at http://wwwkeys.pgp.net Fingerprint: AD64 2468 0AB4 B298 E7E3 92DA 15F5 7AC5 A05E 0F63
Re: lug-bg: Страннотии с firewall-a
On Thursday 09 March 2006 09:42, Nikola Antonov wrote: Направи ми впечатление, че в променливата $PORT си посочил конкретни портове за пропускане, но не видях някъде да имаш "-j DROP" за всичко останало. Защо не промениш долното правило да прилага действие DROP вместо RETURN? > > $IPT -A tcp_inbound -p TCP -j RETURN Това може и да оправи нещата. Принципно аз не съм фен на подобни решения. За мен е винаги много съмнителен от гледна точка на функционалност и оптимизация firewall, който още от самото начало не задава политика по подразбиране DROP на всички вериги. Простата логика предполага първо да се блокира всичко на ниво политика и после да се разрешат изрично исканите услуги. Само така може да сме сигурни, че от плетеницата в правила няма да "изтече" нещо. А и по този начин се постига максумим ефективност с минимум код. -- Linux-BG.org -- System Administrator -- tel: +359 2 976 13 02 mobile: +359 889 90 99 11 -- Public GnuPG key at http://wwwkeys.pgp.net Fingerprint: AD64 2468 0AB4 B298 E7E3 92DA 15F5 7AC5 A05E 0F63
Re: lug-bg: Страннотии с firewall-a
Nikola Antonov wrote: > On Thursday 09 March 2006 02:19, Vladimir Vitkov wrote: > Здравей, > > Ето как изглеждат поне на пръв поглед нещата, след като се изчисти всичко, > което може да те разсейва: > > 1. Политика по подразбиране за INPUT веригата - ACCEPT. > > >># Set Policies >> >>$IPT -P INPUT ACCEPT > > > 2. За входящи връзки по tcp и udp създаваш нови вериги, съответно tcp_inbound > и udp_inbound. > > >>$IPT -N udp_inbound >>$IPT -N tcp_inbound > > > 3. В тези вериги се случва следното: всички връзки без оглед на статус, порт, > т.н. се пропускат. > > >># incoming udp services >>for PORT in $EXTERN_PORTS ; do >>$IPT -A udp_inbound -p UDP -s 0/0 --dport $PORT -j ACCEPT >>done >>$IPT -A udp_inbound -p UDP -j RETURN >> >>$IPT -A udp_outbound -p UDP -s 0/0 -j ACCEPT >> >># incoming tcp services >>for PORT in $EXTERN_PORTS ; do >>$IPT -A tcp_inbound -p TCP -s 0/0 --destination-port $PORT -j >>ACCEPT done >>$IPT -A tcp_inbound -p TCP -j RETURN > > > 4. Всички входящи връзки без оглед на статус и порт влизат във веригите > tcp_inbound и udp_inbound, където се случва онова от точка 3. > > >>$IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_inbound >>$IPT -A INPUT -p UDP -i $INET_IFACE -j udp_inbound > > > Кажете, ако пропускам нещо, но този firewall не е направен, за да спира, а да > пропуска. > Здравей, аз лично накрая виждам това: " $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP FW END =" -- regards, Georgi Alexandrov Key Server = http://pgp.mit.edu/ :: KeyID = 37B4B3EE Key Fingerprint = E429 BF93 FA67 44E9 B7D4 F89E F990 01C1 37B4 B3EE signature.asc Description: OpenPGP digital signature
Re: lug-bg: Страннотии с firewall-a
Nikola Antonov wrote: > Принципно аз не съм фен на подобни решения. За мен е винаги много съмнителен > от гледна точка на функционалност и оптимизация firewall, който още от самото > начало не задава политика по подразбиране DROP на всички вериги. Дали е в началото или края май няма значение ;-) > Простата > логика предполага първо да се блокира всичко на ниво политика и после да се > разрешат изрично исканите услуги. Абе май не е точно така, първо пакетите преминават през правилата на дадена верига и чак след това ако стигнат края те се приемат или изпускат според политиката на веригата. > Само така може да сме сигурни, че от > плетеницата в правила няма да "изтече" нещо. А и по този начин се постига > максумим ефективност с минимум код. > За максимум ефективност можем да поспорим, зависи от натовареността. В някои ситуации да замесиш и layer 4 (OSI) ти излиза малко солено от към хардуерни ресурси. Представи си един *МНОГО* натоварен уеб сървър (знам, че linux-bg.org не попада в тази категория) със зареден ip_conntrack модул следящ абсолютно всички връзки, еми ти няма да смогнеш да и купуваш RAM на тази машина/машини. Има вариант за raw таблица и NOTRACK target но там нещата са експериментални и ефекта може би не е много сигурен. В някои случаи просто не можеш да си позволиш DROP политики на веригите. -- regards, Georgi Alexandrov Key Server = http://pgp.mit.edu/ :: KeyID = 37B4B3EE Key Fingerprint = E429 BF93 FA67 44E9 B7D4 F89E F990 01C1 37B4 B3EE signature.asc Description: OpenPGP digital signature
Re: lug-bg: Страннотии с firewall-a
On Thursday 09 March 2006 18:32, Georgi Alexandrov wrote: > Здравей, > > аз лично накрая виждам това: > " > $IPT -P INPUT DROP > $IPT -P OUTPUT DROP > $IPT -P FORWARD DROP > FW END =" Да, съжалявам, пропуснал съм го. -- Linux-BG.org -- System Administrator -- tel: +359 2 976 13 02 mobile: +359 889 90 99 11 -- Public GnuPG key at http://wwwkeys.pgp.net Fingerprint: AD64 2468 0AB4 B298 E7E3 92DA 15F5 7AC5 A05E 0F63
lug-bg: Re: lug-bg: Страннотии с firewall-a
On Thursday 09 March 2006 02:19, Vladimir Vitkov wrote: > # populating invalid/broken/shit > $IPT -A bad_packets -p ALL -i $INET_IFACE -s $LOCAL_NET -j DROP > $IPT -A bad_packets -p ALL -m state --state INVALID -j DROP > $IPT -A bad_packets -p tcp -j bad_tcp_packets > $IPT -A bad_packets -p ALL -j RETURN > > # Portscans mbuahahahah > $IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j REJECT > --reject-with icmp-host-unreachable > $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL NONE -j REJECT > $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL ALL -j REJECT > $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL FIN,URG,PSH -j REJECT > $IPT -A bad_tcp_packets -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j > REJECT $IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT > $IPT -A bad_tcp_packets -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT $IPT > -A bad_tcp_packets -p tcp -j protections > $IPT -A bad_tcp_packets -p tcp -j RETURN > > # Protections from rusty russel > $IPT -A protections -p tcp --syn -m limit --limit 5/s -j ACCEPT > $IPT -A protections -p icmp --icmp-type echo-request -m limit --limit 5/s > -j ACCEPT $IPT -A protections -p ALL -j RETURN > # efg > $IPT -A protections --fragment -p ICMP -j REJECT > $IPT -A protections -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT > $IPT -A protections -j RETURN > > # incoming udp services > for PORT in $EXTERN_PORTS ; do > $IPT -A udp_inbound -p UDP -s 0/0 --dport $PORT -j ACCEPT > done > $IPT -A udp_inbound -p UDP -j RETURN > > $IPT -A udp_outbound -p UDP -s 0/0 -j ACCEPT > > # incoming tcp services > for PORT in $EXTERN_PORTS ; do > $IPT -A tcp_inbound -p TCP -s 0/0 --destination-port $PORT -j > ACCEPT done > $IPT -A tcp_inbound -p TCP -j RETURN > > # outgoing tcp services > $IPT -A tcp_outbound -p TCP -s 0/0 -j ACCEPT > > echo "Process INPUT chain ..." > # Start feeding the pig > $IPT -A INPUT -p ALL -i $LO_IFACE -j ACCEPT > $IPT -A INPUT -p ALL -j bad_packets > # local access > $IPT -A INPUT -p ALL -i $LOCAL_IFACE -s $LOCAL_NET -j > ACCEPT $IPT -A INPUT -p ALL -i $LOCAL_IFACE -d $LOCAL_BCAST > -j ACCEPT > > $IPT -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j > ACCEPT > > $IPT -A INPUT -p TCP -i $INET_IFACE -j tcp_inbound > $IPT -A INPUT -p UDP -i $INET_IFACE -j udp_inbound > > $IPT -A INPUT -m pkttype --pkt-type broadcast -j DROP > > echo "Process FORWARD chain ..." > $IPT -A FORWARD -p ALL -j bad_packets > $IPT -A FORWARD -p tcp -i $LOCAL_IFACE -j tcp_outbound > $IPT -A FORWARD -p udp -i $LOCAL_IFACE -j udp_outbound > $IPT -A FORWARD -p ALL -i $LOCAL_IFACE -j ACCEPT > $IPT -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j > ACCEPT > > echo "Process OUTPUT chain ..." > $IPT -A OUTPUT -m state -p icmp --state INVALID -j DROP > $IPT -A OUTPUT -p ALL -s $LO_IP -j ACCEPT > $IPT -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT > $IPT -A OUTPUT -p ALL -s $LOCAL_IP -j ACCEPT > $IPT -A OUTPUT -p ALL -o $LOCAL_IFACE -j ACCEPT > $IPT -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT > > echo "Load rules for nat table ..." > ## DNAT's > $IPT -t nat -A PREROUTING -p tcp -i $INET_IFACE --dport -j DNAT --to > : > > ## MASQ & SNAT > $IPT -t nat -A POSTROUTING -s -o $INET_IFACE -j SNAT --to-source > $INET_ADDRESS $IPT -t nat -A POSTROUTING -s -o $INET_IFACE -j > MASQUERADE > > echo "Load rules for mangle table ..." > $IPT -t mangle -A PREROUTING -i $LOCAL_IFACE -j TTL --ttl-inc 1 > $IPT -t mangle -A POSTROUTING -o $LOCAL_IFACE -j TTL --ttl-inc 1 > > $IPT -t mangle -A PREROUTING -i $INET_IFACE -j TTL --ttl-inc 1 > $IPT -t mangle -A POSTROUTING -o $INET_IFACE -j TTL --ttl-set 128 > > # mangle MAC protection > $IPT -t mangle -A PREROUTING -i $LOCAL_IFACE -s -m mac --mac-source ! > -j DROP > > $IPT -P INPUT DROP > $IPT -P OUTPUT DROP > $IPT -P FORWARD DROP > FW END = > > Моля за за съвети/забележки и т.н. > Да знам че е селско да разчитам ня някакви скриптове за такова нещо но > самият FW е сглобяван преди толкова време и толкова пъти е надграждан на > парче че не ми се мисли. Конкретно в случая търся помощ по следните > въпроси: > 1) Защо по дяволите порт който би трябвали да е брутално затворен не е? > 2) как конекция в състояние NEW минава пре firewall който няма правило от > типа "-m state NEW -j ACCEPT"?? Като попрегледах набързо, без да се задълбочавам, струва ми се че всички нормални TCP конекции, независимо от порта, минават по следния път: [bad_packets] => [bad_tcp_packets] => [protections] => ACCEPT(още с първото правило модул limit) В действителност рутера ти е отворен, а не затворен за света! Георги Акабалиев