Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest czwartek, 26 czerwca 2025, 09:47

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 3 ] 
Autor Wiadomość
Post: sobota, 15 stycznia 2005, 10:55 
Offline
MODERATOR

Rejestracja: wtorek, 31 sierpnia 2004, 23:06
Posty: 3267
Lokalizacja: Katowice
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 :P

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

_________________
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 17 stycznia 2005, 18:35 
Offline
MODERATOR

Rejestracja: poniedziałek, 29 lipca 2002, 15:45
Posty: 1385
Lokalizacja: Polska
Niestety mam za słaby wzrok :-(
Jak dobrze chodzi to znaczy jest nieźle :-)

_________________
Określenie przy nicku to tylko dla 'jaj'; tytuł za ilość postów.
Ja ciągle się uważam za niewinne dziecię w sprawach linuksa; żaden guru czy inny moderator :-)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: poniedziałek, 17 stycznia 2005, 18:42 
Offline
MODERATOR

Rejestracja: wtorek, 31 sierpnia 2004, 23:06
Posty: 3267
Lokalizacja: Katowice
To samo powiedział Zciecha :) Narazie wszystko chodzi czyli chyba mi sie udało. Wiec jak ktos chce miec serwer z 2xlan 1xneo i firewall Zciecha to prosze do mnie :P

_________________
Obrazek


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 3 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl