Freesco, NND, CDN, EOS http://forum.freesco.pl/ |
|
firewall Zciacha, czy moglbys zajrzec czy dobrze?? http://forum.freesco.pl/viewtopic.php?f=22&t=6438 |
Strona 1 z 1 |
Autor: | czerwo [ sobota, 15 stycznia 2005, 10:55 ] |
Tytuł: | firewall Zciacha, czy moglbys zajrzec czy dobrze?? |
Jako ze posaidam w serwerze 1xneo; 2xeth to firewall Zciacha uniemozliwial mi ruch na eth1 wczesniej zrobilem to tak iz po odpaleniu firewall odpalelem plik rc.masq, no ale postanwilem pozmieniac firewall. Wszystko chodzi, nie zrobilem tylko forwardowania portow, tylko mam prosbe do Zciecha: Czy mogłbyś to sprawdzic i skrytykowac ![]() A wiec plik rc.firewall #!/bin/sh # rc.firewall 0.1f Zciech # 17.04.2004, poprawka 08.09.2004 . /etc/firewall/firewall.config i="iptables" #i="echo iptables" # Ladujemy moduly /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp /sbin/modprobe ip_nat_irc 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 echo 1> /proc/sys/net/ipv4/conf/lo/rp_filter echo 1> /proc/sys/net/ipv4/conf/eth0/rp_filter echo 1> /proc/sys/net/ipv4/conf/eth1/rp_filter $i -F $i -F -t nat if [ "$1" = stop ]; then echo "Firewall wylaczony... DONE" $i -P INPUT ACCEPT $i -P FORWARD ACCEPT $i -P OUTPUT ACCEPT $i -t nat -A POSTROUTING -s $NETWORK1/$NETMASK1 -j MASQUERADE $i -t nat -A POSTROUTING -s $NETWORK2/$NETMASK2 -j MASQUERADE exit; fi $i -P INPUT DROP $i -P FORWARD DROP $i -P OUTPUT ACCEPT # interfejs lo $i -A INPUT -i lo -j ACCEPT $i -A OUTPUT -o lo -j ACCEPT $i -A FORWARD -o lo -j ACCEPT # Piolaczenie PPPoE pozwalamy na ruch na eth0 lub eth1 if [ $INTNAME0 = "ppp0" -a $INTNAME1 = "eth0" ];then $i -A INPUT -i eth2 -j ACCEPT $i -A FORWARD -i eth2 -j ACCEPT $i -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu fi # Blaster i Saser wraz z logowaniem #if [ $LOG = 1 ];then # $i -A INPUT -p tcp --dst 0/0 -m multiport --dport 135,445 -j LOG -m limit --limit 2/hour --log-prefix "INPUT Blaster: " # $i -A FORWARD -p tcp --dst 0/0 -m multiport --dport 135,445 -j LOG -m limit --limit 2/hour --log-prefix "FORWARD Blaster: " #fi #$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 # Adresy zabronione for IP in `cat /etc/firewall/IP_Deny| cut -d "#" -f1`;do $i -A INPUT -s $IP -j DROP $i -A FORWARD -s $IP -j DROP $i -A INPUT -d $IP -j DROP $i -A FORWARD -d $IP -j DROP done # Adresy majace absolutny dostep do serwera, adresy zaufane for IP in `cat /etc/firewall/IP_All| cut -d "#" -f1`;do $i -A INPUT -s $IP -j ACCEPT done # uslugi udostepnione dla polaczen z internetu if [ "$TCP_IN_ALLOW" ];then $i -A INPUT -p tcp -i $INTNAME0 -m multiport --dst 0/0 --dport $TCP_IN_ALLOW -j ACCEPT fi if [ "$UDP_IN_ALLOW" ];then $i -A INPUT -p udp -i $INTNAME0 -m multiport --dst 0/0 --dport $UDP_IN_ALLOW -j ACCEPT fi # Odrzucamy z komunikatem ICMP Port Unreachable polaczenia # na IDENT oraz SOCKS (czesto sprawdzane przez serwery IRC) # Jesli udostepniasz te uslugi zaplotkuj (#) odpowiedne linie $i -A INPUT -p tcp --dst 0/0 --dport 113 -j REJECT --reject-with icmp-port-unreachable $i -A INPUT -p tcp --dst 0/0 --dport 1080 -j REJECT --reject-with icmp-port-unreachable # Porty zablokowane dla wszystkich if [ "$TCP_IN_DENY" ];then $i -A INPUT -p tcp --dst 0/0 -m multiport --dport $TCP_IN_DENY -j DROP fi if [ "$UDP_IN_DENY" ];then $i -A INPUT -p udp --dst 0/0 -m multiport --dport $UDP_IN_DENY -j DROP fi # Takie adresy nie maja prawa tu byc $i -A INPUT -i $INTNAME0 -s $NETWORK1/$NETMASK1 -j DROP $i -A INPUT -i $INTNAME0 -s 192.168.0.0/16 -j DROP $i -A INPUT -i $INTNAME0 -s 10.0.0.0/8 -j DROP $i -A INPUT -i $INTNAME0 -s 172.16.0.0/12 -j DROP # pingi pozwalamy $i -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -m limit --limit 1/sec # Bez tego DHCPD nie chce przydzielac adresow :( $i -A INPUT -i $INTNAME1 -s 0.0.0.0 -j ACCEPT $i -A INPUT -i $INTNAME2 -s 0.0.0.0 -j ACCEPT # Redirect wyswietlenie komunikatu o zablokowaniu dostepu do internetu # przy kazdej probie laczenia sie z innymi numerami IP niz lokalne. # Wymaga uruchomiena strony www na porcie 200 lub programu miniserv for IP in `cat /etc/firewall/IP_Redirect | cut -d "#" -f1`;do $i -t nat -A PREROUTING -p tcp -s $IP -d ! $IPADDR1 -j REDIRECT --to-port 200 done # Blokada programow p2p if [ $blokada_p2p = 1 ];then $i -A FORWARD -p tcp -m time --timestart $czas_wlaczenia_blokady --timestop $czas_wylaczenia_blokady --days $lista_dni -m ipp2p --ipp2p -j DROP $i -A FORWARD -p tcp -m time --timestart $czas_wlaczenia_blokady --timestop $czas_wylaczenia_blokady --days $lista_dni -m ipp2p --ipp2p-data -j DROP # $i -A FORWARD -p tcp -m time --timestart $czas_wlaczenia_blokady --timestop $czas_wylaczenia_blokady --days $lista_dni -m ipp2p --bit --apple --soul -j DROP fi # Forward portow na siec wewnetrzna FORWARDS=$(grep -vE '^[[:space:]]*(#|$)' /etc/firewall/IP_Forward ) #' while [ "$FORWARDS" ];do ALLOWFROM=$(echo $FORWARDS | awk '{print $1}') PROTO=$(echo $FORWARDS | awk '{print $2}') SRCIP=$(echo $FORWARDS | awk '{print $3}' | awk -F : '{print $1}') SRCPRT0=$(echo $FORWARDS | awk '{print $3}' | awk -F : '{print $2}') DSTIP=$(echo $FORWARDS | awk '{print $4}' | awk -F : '{print $1}') DSTPRT0=$(echo $FORWARDS | awk '{print $4}' | awk -F : '{print $2}') if [ $DSTPRT0 = "0" ];then DSTPRT="" SRCPRT=$(echo $SRCPRT0 | sed "s/-/:/") DPORT=$SRCPRT else DSTPRT=":$DSTPRT0" SRCPRT=$SRCPRT0 DPORT=$DSTPRT0 fi if [ $PROTO = "tcp" -o $PROTO = "both" ];then $i -A FORWARD -p tcp -d $DSTIP --dport $DPORT -j ACCEPT $i -A FORWARD -p tcp -s $DSTIP --sport $DPORT -j ACCEPT $i -t nat -A PREROUTING -p tcp -i $INTNAME0 -s $ALLOWFROM -d $SRCIP --dport $SRCPRT -j DNAT --to $DSTIP$DSTPRT fi if [ $PROTO = "udp" -o $PROTO = "both" ];then $i -A FORWARD -p udp -d $DSTIP --dport $DPORT -j ACCEPT $i -A FORWARD -p udp -s $DSTIP --sport $DPORT -j ACCEPT $i -t nat -A PREROUTING -p udp -i $INTNAME0 -s $ALLOWFROM -d $SRCIP --dport $SRCPRT -j DNAT --to $DSTIP$DSTPRT fi FORWARDS=$(echo $FORWARDS | sed "s%^$ALLOWFROM $PROTO $SRCIP:$SRCPRT0 $DSTIP:$DSTPRT0%%") done # Uzytkownicy wymienieni w /etc/hosts polaczenia dozwolone # maskarada [ tylko IP z sieci wewnetrznej ] grep "^" /etc/hosts | grep -v "^#"|grep [0123456789] |while read IP nazwa ; do if [ $IP != $IPADDR1 ];then if [ $TTL = 1 ];then $i -A INPUT -i $INTNAME1 -s $IP -m ttl --ttl-eq 128 -j ACCEPT $i -A INPUT -i $INTNAME1 -s $IP -m ttl --ttl-eq 64 -j ACCEPT $i -A INPUT -i $INTNAME1 -s $IP -p icmp -j ACCEPT $i -A FORWARD -s $IP -m ttl --ttl-eq 127 -j ACCEPT $i -A FORWARD -s $IP -m ttl --ttl-eq 63 -j ACCEPT $i -A FORWARD -s $IP -p icmp -j ACCEPT else $i -A INPUT -i $INTNAME1 -s $IP -j ACCEPT $i -A FORWARD -s $IP -j ACCEPT fi set -- `ipmask $NETMASK1 $IP` if [ $2 = $NETWORK1 ];then $i -t nat -A POSTROUTING -s $IP -j MASQUERADE fi fi done #2 hosts grep "^" /etc/hosts2 | grep -v "^#"|grep [0123456789] |while read IP nazwa ; do if [ $IP != $IPADDR2 ];then if [ $TTL = 1 ];then $i -A INPUT -i $INTNAME2 -s $IP -m ttl --ttl-eq 128 -j ACCEPT $i -A INPUT -i $INTNAME2 -s $IP -m ttl --ttl-eq 64 -j ACCEPT $i -A INPUT -i $INTNAME2 -s $IP -p icmp -j ACCEPT $i -A FORWARD -s $IP -m ttl --ttl-eq 127 -j ACCEPT $i -A FORWARD -s $IP -m ttl --ttl-eq 63 -j ACCEPT $i -A FORWARD -s $IP -p icmp -j ACCEPT else $i -A INPUT -i $INTNAME2 -s $IP -j ACCEPT $i -A FORWARD -s $IP -j ACCEPT fi set -- `ipmask $NETMASK2 $IP` if [ $2 = $NETWORK2 ];then $i -t nat -A POSTROUTING -s $IP -j MASQUERADE fi fi done # Zezwalamy na wszystko co odbywa sie w ramach juz dozwolonych # polaczen $i -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED $i -A INPUT -p udp -j ACCEPT -m state --state ESTABLISHED $i -A INPUT -p icmp -j ACCEPT -m state --state ESTABLISHED $i -A INPUT -p icmp -j ACCEPT -m state --state RELATED $i -A FORWARD -p tcp -j ACCEPT -m state --state ESTABLISHED $i -A FORWARD -p tcp -j ACCEPT -m state --state RELATED $i -A FORWARD -p udp -j ACCEPT -m state --state ESTABLISHED $i -A FORWARD -p icmp -j ACCEPT -m state --state ESTABLISHED $i -A FORWARD -p icmp -j ACCEPT -m state --state RELATED # Logujemy pakiety ktore nie zostaly zaakceptowane przez # zadna z powyzszych regulek. Zostana one wyblokowane dzieki # polityce DROP we wszystkich tablicach if [ $LOG = 1 ];then $i -A INPUT -j LOG -m limit --limit 3/hour --log-prefix "INPUT DENY: " $i -A FORWARD -j LOG -m limit --limit 3/hour --log-prefix "FORWARD DENY: " fi if [ "$1" = restart ]; then if [ -x /etc/rc.d/rc.mrtg ]; then /etc/rc.d/rc.mrtg restart fi if [ -x /usr/stat/rc.stat ]; then cd /usr/stat/ sh rc.stat restart cd /etc/rc.d fi fi echo "Firewall wlaczony... DONE" Plik firewall.config # Adresy INTNAME0=ppp0 INTNAME1=eth0 IPADDR1=10.10.10.1 NETWORK1=10.10.10.0 NETMASK1=255.255.255.0 INTNAME2=eth1 IPADDR2=192.168.0.1 NETWORK2=192.168.0.0 NETMASK2=255.255.255.0 # Porty wpuszczane/zabronione TCP_IN_ALLOW="80,110,25,22,21,82,83,1550" UDP_IN_ALLOW="" TCP_IN_DENY="" UDP_IN_DENY="" # Programy p2p blokada_p2p=1 czas_wlaczenia_blokady=0100 czas_wylaczenia_blokady=0102 lista_dni=Mon,Tue,Wed,Thu,Fri,Sat,Sun # kontrola TTL TTL=0 # Logowanie LOG=0 Nie wklejam pliku hosts2 ma on taka sama strukture jak plik hosts Pozdrawiam i z gory dziekuje |
Autor: | Koriolan [ poniedziałek, 17 stycznia 2005, 18:35 ] |
Tytuł: | |
Niestety mam za słaby wzrok ![]() Jak dobrze chodzi to znaczy jest nieźle ![]() |
Autor: | czerwo [ poniedziałek, 17 stycznia 2005, 18:42 ] |
Tytuł: | |
To samo powiedział Zciecha ![]() ![]() |
Strona 1 z 1 | Strefa czasowa UTC+2godz. |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |