Re: firewall
On Saturday 29 of May 2004 00:50, adam wrote:
> Witam chciałbym zrobić coś takiego, żeby userowi o ip 192.168.1.11
>
> Ograniczyć możliwość korzystania z sieci
>
> do tego, żeby działał mu dns i poczta, zrobiłem takiego firewalla:
>
> #!/bin/bash
>
> IPT=/sbin/iptables
>
> ETHOUT=eth0
>
> ETHLAN=eth1
>
> SWIAT=zewnetzne IP
>
> LAN=192.168.1.0/24
>
> TCP_IN_ALLOW=21,25,53,80,110,3128,8000
>
> UDP_IN_ALLOW=53,33501
>
>
>
> $IPT -F
3 kolejne linie nie potrzebne, gdyż załatwia je ta wyżej
> $IPT -F INPUT
> $IPT -F OUTPUT
> $IPT -F FORWARD
>
> $IPT -F -t nat
>
> $IPT -F -t mangle
>
> $IPT -P INPUT DROP
>
> $IPT -P FORWARD DROP
>
> $IPT -P OUTPUT ACCEPT
>
>
>
> $IPT -A INPUT -i ! $ETHOUT -s $LAN -j ACCEPT
>
> ## uslugi, ktore wpuszczamy.
>
> $IPT -A INPUT -i $ETHOUT -p tcp -j ACCEPT -m state --state NEW -m multiport
> --dport $TCP_IN_ALLOW
>
> $IPT -A INPUT -i $ETHOUT -p udp -j ACCEPT -m state --state NEW -m multiport
> --dport $UDP_IN_ALLOW
>
>
>
> #statefull-inspection
>
> $IPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> $IPT -A INPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> $IPT -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> $IPT -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> $IPT -A FORWARD -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> $IPT -A FORWARD -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
kolejne 3 linie nie potrzebne, bo politykę OUTPUT masz na ACCEPT:
> $IPT -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
> $IPT -A OUTPUT -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
> $IPT -A OUTPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> $IPT -t nat -A POSTROUTING -s $LAN -d 0.0.0.0/0 -j SNAT --to $ SWIAT
>
>
>
> #wpuszczamy ping
>
> $IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
te 3 również nie potrzebne:
> $IPT -A OUTPUT -o $ETHLAN -p icmp --icmp-type echo-request -j ACCEPT
a w tej poniżej -d 0.0.0.0/0 nie ma najmniejszego sensu, bo jest to wartość
domyślna
> $IPT -A OUTPUT -o $ETHLAN -d 0.0.0.0/0 -j ACCEPT
> $IPT -A OUTPUT -o $ETHOUT -p icmp --icmp-type echo-request -j ACCEPT
>
>
> # wypuszczamy w swiat wszystko:
znowu zbędna linia:
> $IPT -A OUTPUT -o $ETHOUT -p tcp -j ACCEPT -s $ SWIAT -m state --state NEW
>
> #samba
>
> $IPT -A INPUT -p tcp -m tcp --dport 137:139 -s 192.168.1.0/24 -j ACCEPT
>
> $IPT -A INPUT -p udp -m udp --dport 137:139 -s 192.168.1.0/24 -j ACCEPT
>
>
>
> ##Zabezpieczenie przez powodzią SYN (Syn-flood):
za duży limit jak na mój gust:
> $IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
>
> ##Skaner portów Furtive:
>
> $IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s
> -j ACCEPT
>
> ##Ping of death:
>
> $IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j
> ACCEPT
>
>
wyżej masz taki oto wpis:
$IPT -A INPUT -i ! $ETHOUT -s $LAN -j ACCEPT
czyli wpuszczasz na serwer wszystko, oprócz interfejsu zewnętrznego; tak więc
dalsze wpisy dla łańcucha INPUT dla interfejsu lanowego nie przyniosą żadnego
skutku
> /sbin/iptables -A INPUT -s 192.168.1.11 -j ACCEPT
>
> /sbin/iptables -A INPUT -s 192.168.1.11 -p tcp -m multiport --dport
> 25,53,110 -m state --state NEW -j ACCEPT
>
> /sbin/iptables -A INPUT -s 192.168.1.11 -p udp --dport 53 -m state --state
> NEW -j ACCEPT
w poniższej linijce błąd - powinnieneś wpuszczaś z portu zrodlowego, czyli
zamiast --dport podaj --sport
> /sbin/iptables -A FORWARD -p tcp -m multiport --dport 25,53,110 -d
> 192.168.1.11 -j ACCEPT
a tutaj ok:
> /sbin/iptables -A FORWARD -p tcp -m multiport --dport 25,53,110 -s
> 192.168.1.11 -j ACCEPT
>
--
pozdrawiam
Reply to:
- References:
- firewall
- From: "adam" <adam@janet.waw.pl>