Титла: iptables Публикувано от: Archer в Jan 05, 2006, 21:07 Здравейте, наскоро се опитах да премодифицирам един скрипт с iptables правила така, че да отговаря на мойте изисквания. Проблема е че нещо не работи, преди да го постна бих искал да дам малко повече инфо. Имам Slackware 10.2--2.4.31, който го ползвам за рутер и има IP 83.228.X.X(това е за и-нета, а за към LAN 192.168.110.1). Зад него има машина със същите параметри(192.168.110.2), която ще се ползва за Web и FTP . Имам ping от вътрешната машина и към двата и-фейса на рутера, но след това няма никой. Молбата ми е ако на някой му се занимава да го погледне и ако има нещо което да му се струва нередно да го сподели(критиката ще бъде градивна). Благодаря предварително
Та ето го и скрипта: #!/bin/bash #RULES FOR FIREWALL & NAT IPT="/usr/sbin/iptables" echo "Loading aditional modules ..." /sbin/modprobe ip_nat_ftp /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_conntrack /sbin/modprobe iptable_filter echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/conf/eth0/rp_filter function flush() { echo "Flushing firewall ..." $IPT -P INPUT ACCEPT $IPT -P FORWARD ACCEPT $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 $IPT -F $IPT -t nat -F $IPT -t mangle -F $IPT -X $IPT -t nat -X $IPT -t mangle -X } case $1 in start) echo "Starting firewall ..." flush #Zadavame "othvurlqne" kato standartno povedenie na trite vgradeni verigi $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP #Davame pulna svoboda na interfacite za obratna vruzka $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT echo "Executing FILTER table ..." #Nqkolko osnovni pravila protiv podpraveni IP-addressi $IPT -A INPUT -s 255.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 255.0.0.0/8 -j DROP $IPT -A INPUT -s 0.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 0.0.0.0/8 -j DROP $IPT -A INPUT -s 127.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 127.0.0.0/8 -j DROP $IPT -A INPUT -s 10.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 10.0.0.0/8 -j DROP $IPT -A INPUT -s 172.16.0.0/12 -j LOG --log-prefix "Spoofed source IP!" $IPT -A INPUT -s 172.16.0.0/12 -j DROP #$IPT -A INPUT -s 192.168.0.0/16 -j LOG --log-prefix "Spoofed source IP!" #$IPT -A INPUT -s 192.168.0.0/16 -j DROP $IPT -A INPUT -s 83.228.X.X -j LOG --log-prefix "Spoofed by my own IP!" $IPT -A INPUT -s 83.228.X.X -j DROP #Definirame pravilo, s koeto kazvame na "netfilter", che vsichki sessions po TCP, #zaduljitelno trqbva da zapochvat sus SYN (Vuzmojno scanirane ot strana na nqkoi lubopitko) $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "Stealth scan attempt?" $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP echo "Processing INPUT chain ..." #Priemame vhodqshti paketi, koito sa chast ot veche odobreni sessinos $IPT -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED #Priema vhodqshti paketi, koito startirat sessions po FTP $IPT -A INPUT -p tcp -j ACCEPT --dport 21 -m state --state NEW #Priema vhodqshti paketi, koito startirat sessions po SSH $IPT -A INPUT -p tcp -j ACCEPT --dport 22 -m state --state NEW #Priema vhodqshti paketi, koito startirat sessions po HTTP $IPT -A INPUT -p tcp -j ACCEPT --dport 80 -m state --state NEW #Priema vsichko koeto idva ot vutreshnata mreja 192.168.110.0/24 Tuk mojebi e dobre da ima portove 1025-65355 $IPT -A INPUT -p all -s 192.168.110.0/24 -d 83.228.X.X -j ACCEPT #Zapisvame vsichko ostanalo v LOG $IPT -A INPUT -j LOG --log-prefix "Dropped by default:" echo "Processing OUTPUT chain ..." #Ako paketa e chast ot veche odobrena vruzka go puskame navun $IPT -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT #Pozvolqvame izhodqshti ICMP zaqvki- "ping" $IPT -A OUTPUT -p icmp -j ACCEPT --icmp-type echo-reqest #Pozvolqvame izhodqshti zaqvki po DNS "opredelqne na imena po IP address" $IPT -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT #Zapisvame v LOG vsichko ostanalo $IPT -A OUTPUT -j LOG --log-prefix "Dropped by default:" echo "Processing FORWARD chain ..." $IPT -A FORWARD -p all -j ACCEPT echo "Executing NAT table ..." #PREROUTING #Prehvurlqne na vsichki zaqvki na port 21 kum vutreshno IP 192.168.110.2 $IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to 192.168.110.2:21 #Prehvurlqne na vsichki zaqvki na port 80 kum vutreshno IP 192.168.110.2 $IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.110.2:80 #POSTROUTING #Prehvurlqne na vsichko ot vutreshnata mreja kum 83.228.X.X IPT -t nat -A POSTROUTING -o eth0 -j SNAT –to--source 83.228.X.X ;; stop) echo "Stoping firewall ..." flush ;; nat) echo "Running firewall but only NAT table ..." flush ;; *) echo "Usage: FIREWALL & NAT start|stop|nat" ;; esac Титла: iptables Публикувано от: growchie в Jan 05, 2006, 22:31 eth0 с какъв адрес е, трябва да е този на интернет интерфейса
провери си реда за маскиране дали нетрябва да е -o eth1. Титла: iptables Публикувано от: в Jan 06, 2006, 09:02
Здрасти ! Погледни това : #Zadavame "othvurlqne" kato standartno povedenie na trite vgradeni verigi $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP Не трябва ли да е : $IPT -P OUTPUT ACCEPT Не е ли добра идея да се допуска по УДР и ТСП поне порт 53 ? Титла: iptables Публикувано от: carlitto в Jan 06, 2006, 13:24 При мен е така и работи...
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT Титла: iptables Публикувано от: в Jan 06, 2006, 13:37 Моят съвет е да почнеш с минимум правила, но работещо и постепенно да добавяш, докато разбереш къде ти е проблемното правило
![]() Прим. $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP IPT -t nat -A POSTROUTING -o eth0 -j SNAT –to--source 83.228.X.X Докато това не проработи не вкарвай нови правила ![]() Титла: iptables Публикувано от: в Jan 06, 2006, 13:39 Опа, copy-paste-a не стана този път
![]() В предишния пост - навсякъде е ACCEPT вместо DROP, и eth0 ти е външния интерфейс Титла: iptables Публикувано от: Archer в Jan 06, 2006, 18:25 Благодаря на всички, които се отзоваха. Щом се прибера днес ще тествам и ще върна инфо.
|