a wiec moje skrypty wygladaja tak :
Cytuj:
#!/bin/sh
# firewall 0.1-2004.12.27 Zciech (poprawka w lini 113 i 49 - macieks)
#modyfikacja do obslugi 2 lacz
# W podstawowej wersji caly ruch z inerfejsow wewnetrznych jest dopuszczony i maskowany
# ruch z internetu zabroniony poza pakietami "powracajacymi" juz nawiazanych polaczen
# i polaczen na strone www (port 80 tcp) oraz pingi 1/s
. /etc/rc.conf
. /etc/rc.d/functions
NWI=192.168.100.0
NMI=24
IFE1=eth0
IFE2=eth1
IPE1=192.168.0.230
IPE2=192.168.18.230
i=`which iptables`
case $1 in
start)
if [ -e /proc/sys/net/ipv4/tcp_ecn ];then
echo 0 > /proc/sys/net/ipv4/tcp_ecn
fi
echo 1 > /proc/sys/net/ipv4/ip_forward
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
$i -F
$i -F -t nat
$i -P INPUT DROP
$i -P FORWARD DROP
$i -P OUTPUT ACCEPT
# interfejs lo
$i -A INPUT -i lo -j ACCEPT
$i -A FORWARD -o lo -j ACCEPT
# Blaster i Saser
$i -A INPUT -p tcp --dst 0/0 -m multiport --dport 135,445 -j DROP
$i -A FORWARD -p tcp --dst 0/0 -m multiport --dport 135,445 -j DROP
# Odrzucamy z komunikatem ICMP Port Unreachable polaczenia
# na IDENT oraz SOCKS (czesto sprawdzane przez serwery IRC)
# Jesli udostepniasz te uslugi zaplotkuj (#) odpowiedne linie
# zaplotkuj jesli nie chcesz udostepniac serwisu ident do inetu
if [ "$IDENT" = "1" ]; then
$i -A INPUT -p tcp -i $IFE1 --dport 113 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 113 -j ACCEPT
else
$i -A INPUT -p tcp --dst 0/0 --dport 113 -j REJECT --reject-with icmp-port-unreachable
fi
$i -A INPUT -p tcp --dst 0/0 --dport 1080 -j REJECT --reject-with icmp-port-unreachable
# zaplotkuj jesli nie chcesz udostepniac serwisu http do inetu
if [ "$WWW" = "1" ]; then
$i -A INPUT -p tcp -i $IFE1 --dport 80 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 80 -j ACCEPT
fi
# zaplotkuj jesli nie chcesz udostepniac serwisu https do inetu
if [ "$HTTPS" = "1" ]; then
$i -A INPUT -p tcp -i $IFE1 --dport 443 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 443 -j ACCEPT
fi
# zaplotkuj jesli nie chcesz udostepniac serwisu ftp do inetu
if [ "$FTP" = "1" ]; then
$i -A INPUT -p tcp -i $IFE1 --dport 20 -j ACCEPT
$i -A INPUT -p tcp -i $IFE1 --dport 21 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 20 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 21 -j ACCEPT
fi
# zaplotkuj jesli nie chcesz udostepniac poczty do inetu
if [ "$MAIL" = "1" ]; then
$i -A INPUT -p tcp -i $IFE1 --dport 110 -j ACCEPT
$i -A INPUT -p tcp -i $IFE1 --dport 25 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 110 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 25 -j ACCEPT
fi
# zaplotkuj jesli nie chcesz udostepniac SSH do inetu
if [ "$SSH" = "1" ]; then
PORT_SSH=`grep ^Port /etc/ssh/sshd_config| cut -f 2 -d " "`
[ -z $PORT_SSH ] && PORT_SSH=22
$i -A INPUT -p tcp -i $IFE1 --dport $PORT_SSH -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport $PORT_SSH -j ACCEPT
fi
# zaplotkuj jesli nie chcesz udostepniac serwera IMAP do inetu
if [ "$IMAP" = "1" ]; then
$i -A INPUT -p tcp -i $IFE1 --dport 143 -j ACCEPT
$i -A INPUT -p udp -i $IFE1 --dport 143 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 143 -j ACCEPT
$i -A INPUT -p udp -i $IFE2 --dport 143 -j ACCEPT
fi
# zaplotkuj jesli nie chcesz udostepniac serwera IMAPS do inetu
if [ "$IMAPS" = "1" ]; then
$i -A INPUT -p tcp -i $IFE1 --dport 993 -j ACCEPT
$i -A INPUT -p udp -i $IFE1 --dport 993 -j ACCEPT
$i -A INPUT -p tcp -i $IFE2 --dport 993 -j ACCEPT
$i -A INPUT -p udp -i $IFE2 --dport 993 -j ACCEPT
fi
# pingi pozwalamy
$i -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -m limit --limit 1/sec
#przyklad przekierowania portow na emule
#przekierowanie dla tasiora
#$i -I FORWARD -p tcp -d 192.168.1.45 --dport 4662 -j ACCEPT
#$i -t nat -A PREROUTING -p tcp -i $IFE1 --dport 4662 -j DNAT --to 192.168.1.45
#$i -t nat -A PREROUTING -p tcp -i $IFE2 --dport 4662 -j DNAT --to 192.168.1.45
#$i -I FORWARD -p udp -d 192.168.1.45 --dport 4672 -j ACCEPT
#$i -t nat -A PREROUTING -p udp -i $IFE1 --dport 4672 -j DNAT --to 192.168.1.45
#$i -t nat -A PREROUTING -p udp -i $IFE2 --dport 4672 -j DNAT --to 192.168.1.45
#malo zrozumiale dla mnie reguly ze skryptu lb
$i -X keep_state -t nat 2>/dev/null
$i -X keep_state -t filter 2>/dev/null
#regula i lancuch podtrzymania polaczen
#tabela filter
$i -t filter -N keep_state
$i -t filter -A keep_state -m state --state RELATED,ESTABLISHED -j ACCEPT
$i -t filter -A keep_state -j RETURN
#regula i lancuch podtrzymania polaczen
#tabela nat
$i -t nat -N keep_state
$i -t nat -A keep_state -m state --state RELATED,ESTABLISHED -j ACCEPT
$i -t nat -A keep_state -j RETURN
#przekierowania do lancucha podtrzymania pol.
#polaczen w pozostalych tabelach
$i -t nat -A PREROUTING -j keep_state
$i -t nat -A POSTROUTING -j keep_state
$i -t nat -A OUTPUT -j keep_state
$i -t filter -A INPUT -j keep_state
$i -t filter -A FORWARD -j keep_state
$i -t filter -A OUTPUT -j keep_state
# Wszystkie polaczenia z innych interfejsow niz interfejs do internetu pozwalamy
$i -A INPUT -i eth2 -j ACCEPT
$i -A FORWARD -i eth2 -j ACCEPT
# maskarada zostala zastapiona SNATem
$i -t nat -A POSTROUTING -o $IFE1 -s $NWI/$NMI -j SNAT --to $IPE1
$i -t nat -A POSTROUTING -o $IFE2 -s $NWI/$NMI -j SNAT --to $IPE2
# Zezwalamy na wszystko co odbywa sie w ramach juz dozwolonych polaczen
$i -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
$i -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
wynik
;;
stop)
$i -F INPUT
$i -F FORWARD
$i -F OUTPUT
$i -P INPUT DROP
$i -P FORWARD DROP
$i -P OUTPUT DROP
echo 0 > /proc/sys/net/ipv4/ip_forward
wynik
;;
esac
Cytuj:
#!/bin/sh -x
#
IFI=eth2 #interfejs lokalny
IPI=192.168.100.1 #adres IP interfejsu lokalnego
NWI=192.168.100.0 #adres sieci lokalnej
NMI=24 #maska sieci lokalnej
IFE1=eth0 #interfejs 1 zewnetrzny
IFE2=eth1 #interfejs 2 zewnetrzny
IPE1=192.168.0.230 #adres IP interfejsu 1 zewnetrznego
IPE2=192.168.18.230 #adres IP interfejsu 2 zewnetrznego
NWE1=192.168.0.0 #adres sieci 1 zewnetrznej
NWE2=192.168.18.0 #adres sieci 2 zewnetrznej
NME1=24 #maska sieci 1 zewnetrznej
NME2=24 #maska sieci 2 zewnetrznej
BRD1=192.168.0.255 #adres rozgloszeniowy sieci 1 zewnetrznej
BRD2=192.168.18.255 #adres rozgloszeniowy sieci 2 zewnetrznej
GWE1=192.168.0.1 #brama dla interfejsu 1 zewnetrznego
GWE2=192.168.18.1 #brama dla interfejsu 2 zewnetrznego
#ustawienia interfejsow lokalnego i LAN
ip link set lo up
ip addr flush dev lo
ip addr add 127.0.0.1/8 brd + dev lo
ip link set $IFI up
ip addr flush dev $IFI
ip addr add $IPI/$NMI brd + dev $IFI
#regula z priorytetem 50
ip rule add prio 50 table main
ip route del default table main
#ustawienia interfejsow zewnetrznych
ip link set $IFE1 up
ip addr flush dev $IFE1
ip addr add $IPE1/$NME1 brd $BRD1 dev $IFE1
ip link set $IFE2 up
ip addr flush dev $IFE2
ip addr add $IPE2/$NME2 brd $BRD2 dev $IFE2
#regula z priorytetem 222
ip route del default table 222
ip rule add prio 222 table 222
ip route add default table 222 proto static nexthop via $GWE1 dev $IFE1 nexthop via $GWE2 dev $IFE2
#regula z priorytetem 201
ip rule del from $NWE1/$NME1 table 201
ip rule add prio 201 from $NWE1/$NME1 table 201
ip route add default via $GWE1 dev $IFE1 src $IPE1 proto static table 201
ip route append prohibit default table 201 metric 1 proto static
#regula z priorytetem 202
ip rule del from $NWE2/$NME2 table 202
ip rule add prio 202 from $NWE2/$NME2 table 202
ip route add default via $GWE2 dev $IFE2 src $IPE2 proto static table 202
ip route append prohibit default table 202 metric 1 proto static
#wyczyszczenie pamieci cache rutingu
ip route flush cache
i nie chce dzialac moze cos nie tak jest wpisane moze ktos oblukac
