Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest piątek, 27 czerwca 2025, 17:11

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 7 ] 
Autor Wiadomość
Post: wtorek, 20 grudnia 2005, 17:49 
Offline

Rejestracja: sobota, 19 czerwca 2004, 17:52
Posty: 85
Witam,
Napisalem sobie takiego prostego firewalla na podstawie firewalla czerwo... testuje w nim blokowanie po macku

: [/] [] ()
#!/bin/sh

# firewall adminet.pl

. /etc/rc.conf
. /etc/rc.d/functions
. /etc/iptables/firewall.config
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
    if [ $wirus = 1 ]; then
        $i -A INPUT -p tcp --dst 0/0 --dport 135 -j LOG -m limit --limit 2/hour --log-prefix "Blaster z zewnatrz: "
        $i -A INPUT -p tcp --dst 0/0 --dport 135 -j LOG -m limit --limit 2/hour --log-prefix "Blaster z zewnatrz: "
        $i -A FORWARD -p tcp --dst 0/0 --dport 445 -j LOG -m limit --limit 2/hour --log-prefix "Saser z zewnatrz: "
        $i -A FORWARD -p tcp --dst 0/0 --dport 445 -j LOG -m limit --limit 2/hour --log-prefix "Saser z zewnatrz: "
        $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
    fi

# Adresy zabronione
    for IP in `cat /etc/iptables/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/iptables/ip_all| cut -d "#" -f1`;do
            $i -A INPUT -s $IP -j ACCEPT

    done

# 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

# uslugi udostepnione dla polaczen z internetu
    if [ "$TCP_IN_ALLOW" ];then
        $i -A INPUT -p tcp -i $EXTIF -m multiport --dst 0/0 --dport $TCP_IN_ALLOW -j ACCEPT
    fi
    if [ "$UDP_IN_ALLOW" ];then
        $i -A INPUT -p udp -i $EXTIF -m multiport --dst 0/0 --dport $UDP_IN_ALLOW -j ACCEPT
    fi


    # zaplotkuj jesli nie chcesz udostepniac serwisu  http do inetu
    if [ $WWW = 1 ]; then
                $i -A INPUT -p tcp -i $EXTIF --dport 80 -j ACCEPT
                fi

            # zaplotkuj jesli nie chcesz udostepniac serwisu  https do inetu
        if [ $HTTPS = 1 ]; then
            $i -A INPUT -p tcp -i $EXTIF --dport 443 -j ACCEPT
    fi


    # zaplotkuj jesli nie chcesz udostepniac serwisu  ftp do inetu
    if [ $FTP = 1 ]; then
                $i -A INPUT -p tcp -i $EXTIF --dport 20 -j ACCEPT
                    $i -A INPUT -p tcp -i $EXTIF --dport 21 -j ACCEPT
               fi

    # zaplotkuj jesli nie chcesz udostepniac poczty do inetu
    if [ $MAIL = 1 ]; then
                $i -A INPUT -p tcp -i $EXTIF --dport 110 -j ACCEPT
                    $i -A INPUT -p tcp -i $EXTIF --dport 25 -j ACCEPT
                fi

        # zaplotkuj jesli nie chcesz udostepniac SSH do inetu
    if [ $SSH = 1 ]; then
            $i -A INPUT -p tcp -i $EXTIF --dport 22 -j ACCEPT
    fi
 # zaplotkuj jesli nie chcesz udostepniac serwera IMAP do inetu
    if [ $IMAP = 1 ]; then
                $i -A INPUT -p tcp -i $EXTIF --dport 143 -j ACCEPT
                    $i -A INPUT -p udp -i $EXTIF --dport 143 -j ACCEPT
                fi

        # zaplotkuj jesli nie chcesz udostepniac serwera IMAPS do inetu
    if [ $IMAPS = 1 ]; then
            $i -A INPUT -p tcp -i $EXTIF --dport 993 -j ACCEPT
        $i -A INPUT -p udp -i $EXTIF --dport 993 -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



 #Blokada gadu-gadu

    for IP in `cat /etc/iptables/ip_gg | cut -d "#" -f1` ;do
         $i -I FORWARD -s $IP -p tcp --dport 443 -j DROP
         $i -I FORWARD -s $IP -p tcp --dport 8074 -j DROP
         $i -t nat -A PREROUTING -d 217.17.46.250 -s $IP -p tcp --dport 80 -j DNAT --to $IPADDR1
    done
# pingi pozwalamy
    $i -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -m limit --limit 1/sec

#TTL
   if [ $TTL = 1 ]; then
        $i -t mangle -A POSTROUTING -o $INTIF1 -j TTL --ttl-set 1
   fi
   if [ $TTL = 2 ]; then
        for IP in `cat /etc/iptables/ip_ttl| cut -d "#" -f1`;do
                $i -t mangle -A POSTROUTING -d $IP -j TTL --ttl-set 1
        done
   fi

# 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/iptables/ip_redirect | cut -d "#" -f1`;do
            $i -t nat -A PREROUTING -p tcp -s $IP -d ! $IPADDR1 -j REDIRECT --to-port 80
   done

   # domyslnie wszystkim wyswietla sie napis o macku

   #$i -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 -d ! 192.168.1.1 -j REDIRECT  --to-port 80
#   $i -A INPUT -i ! eth0 -s 192.168.1.0/24 -j REDIRECT --to-port 80


#limit polaczen

   echo "7200" >/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established

   for ip in `cat /etc/iptables/ip_polaczenia | cut -d "#" -f1`;do
         $i -A FORWARD -s $ip -p tcp --tcp-flags SYN,RST,ACK SYN -m connlimit --connlimit-above 50 --connlimit-mask 32 -j DROP

   done

 #limit polaczen koniec
        $i -t nat -A POSTROUTING -s 195.182.164.0/24 -d 195.182.164.0/24 -j ACCEPT

   #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


   #Komendy uruchamiana po starcie firewalla

   if [ -x /etc/rc.d/mrtg ]; then
           /etc/rc.d/mrtg stop
           killall mrtg
           /etc/rc.d/mrtg start
   fi
   if [ -x /usr/stat/rc.stat ]; then
           cd /usr/stat/
           sh rc.stat restart
           cd /etc/rc.d
   fi
#KONIEC

    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



potem dopialem dobie plik ktory generuje na podstawie mackow i ip takie wpisy dla firewalla:

: [/] [] ()
#!/bin/sh

echo" ..."
com=`which iptables`
temp="./temp.tmp"



i=1

echo "" > $temp

for IP in `cat /etc/iptables/macip | cut -d "#" -f1 |awk '{print $1}'`; do
        tablica_ip[$i]=$IP
        i=$(expr $i + 1)
done

i=1

for MAC in `cat /etc/iptables/macip | cut -d "#" -f1 |awk '{print $2}'`; do
        tablica_mac[$i]=$MAC

        # input i forward

        echo $com -A INPUT -i ! eth0 -s ${tablica_ip[$i]} -j ACCEPT >> $temp
        #echo $com -A FORWARD -i ! eth0 -s ${tablica_ip[$i]} -j ACCEPT >> $temp

        # maskarada

        echo $com -t nat -A POSTROUTING -o eth0 -s ${tablica_ip[$i]} -j MASQUERADE >> $temp

         #echo $com -i eth1 -s ${tablica_ip[$i]} -m mac --mac-source ${tablica_mac[$i]} -j ACCEPT >> $temp
        echo $com -A FORWARD -m mac --mac-source ${tablica_mac[$i]} -s ${tablica_ip[$i]} -i ! eth0 -j ACCEPT >> $temp

        i=$(expr $i + 1)
done





i teraz mam problem.... jesli komus nie pasuje mac do ip to nie ma internetu... a jesli pasuje to ma internet...

jak zrobic zeby dla tego komu nie pasuje mac wyskakiwala strona na porcie np 200 ze jego macka nie ma w bazie ?

z gory dzieki za sugestje


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 21 grudnia 2005, 14:24 
Offline

Rejestracja: piątek, 4 czerwca 2004, 23:19
Posty: 79
dodajesz do dhcpd jeszcze jedna klase adresow ip np.192.168.200.0/24 i dajesz zeby przydzilal dynamicznie - w firewallu kierujesz caly ruch nowej klasy adresowej na dany port na ktorym masz stronke.


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 22 grudnia 2005, 17:07 
Offline
MODERATOR

Rejestracja: poniedziałek, 29 lipca 2002, 15:45
Posty: 1385
Lokalizacja: Polska
Ładnie robi to firewall Zciecha:
: [/] [] ()
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 84
done
Na porcie 84 jest serwer www ze stronką "Brak Twojego IP-MAC" lub podobną

_________________
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: czwartek, 22 grudnia 2005, 17:23 
Offline

Rejestracja: sobota, 19 czerwca 2004, 17:52
Posty: 85
No dobra ale to jest zrobione na tej zasadzie ze w pliku sa napisane macki ktore maja byc przekierowane. Mi chodzi raczej o cos takiego:

Mam plik z adresami IP i adresami MAC oddzielonych spacja. Jesli adres goscia znajduje sie w tym pliku i jesli pasuje do macka to ma internet. Jesli nie to przekierowuje go na jakis tam port na ktorym jest stronka ze jego IP nie pasuje do macka lub ma calkiem inne IP i nie moze miec ani gg ani nic.

Jesli cos takiego by sie dalo zrobic to bylo by super


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 22 grudnia 2005, 17:30 
Offline
PGF

Rejestracja: niedziela, 14 lipca 2002, 14:33
Posty: 3234
Lokalizacja: Radziejów
Nie chce mi się analizowa tego wszystkiego, ale w regule przekierowujacej uzyj:
--mac-source ! ${tablica_mac[$i]} -s ${tablica_ip[$i]}

kazdy ip ktory zglosi sie z innym macem zostanie przekierowany.
uwaga IP MUSI miec dojscie do uslugi lokalnej na porcie na ktorym ona dziala!

_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 22 grudnia 2005, 17:44 
Offline

Rejestracja: sobota, 19 czerwca 2004, 17:52
Posty: 85
u mnie dziala to tak:

firewall sie uruchamia bez inputa, forwarda i maskarady
potem uruchamia sie skrypt, ktory pobiera sobie z pliku adresy ip , macka i dla nich generuje regulki input, forward i maskarade ( jesli jest w pliku 5 takich adresow to generuje sie w sumie 15 regulek)

Tym co ich IP nie znajduje sie na liscie lub nie pasuje mac to poprostu nie chodzi net (nie ma dla ich IP Inputa, Forwarda i maskarady)

Nie bardzo wiem co masz na mysli zciech. Jesli wziac pod uwage twoja sugestie to musial bym przeleciec wszystkie 253 adresy... kurcze nie wiem czy dobrze rozumiem :?

Cholerka nie wiem jak ruszyc z tym, a iptables to tak srednio pojmuje :)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 4 stycznia 2006, 18:38 
Offline
Użytkownik

Rejestracja: czwartek, 13 stycznia 2005, 13:27
Posty: 209
Lokalizacja: podlaskie
a co z przypadkiem kiedy w ip_redirect sa ip osob ktore zalegaja z oplatami, i ma sie dla nich wyswietlac strona off.htm a dla osob zupelnie z poza sieci (nie ujeci w pliku np hosts) maja miec wyswietlona strone z portu 200. bo w sumie na stronie off moga byc informacje o ip ktore ma nieoplacony miesiac a tego lepiej zeby nie czytal nikt z poza sieci.
brak dhcp, ethers, stare nn.

_________________
kobieta z niczego potrafi zrobic: salatke, kapelusz i awanture


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

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 15 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:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl