Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-06-18 10:34:32

  jtyson - Użytkownik

jtyson
Użytkownik
Zarejestrowany: 2006-06-30

Problem z iptables

Mam problem ze skryptem firewall, generalnie działa jak się go uruchomi na działającym serwerze przez /etc/init.d/ firewall ale po restarcie serwera dostaje głupawki, bo nie podaje adresów do dhcp. Proszę zajrzyjcie do kodu, czekam na wszelkie sugestie.

Kod:

#!/bin/bash
#komunikacja miedzy interfejsami
#echo "1" >/proc/sys/net/ipv4/ip_forward
#/sbin/modprobe ip_conntrack_ftp # modul FTP

echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/proxy_arp
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 1 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

#CZYSZCZENIE regół
iptables -F -t filter 
iptables -X -t nat
iptables -F -t filter
iptables -X -t nat

#POLITYKA DROP
iptables  -P INPUT DROP  #blokowanie wejscia do serwera
iptables  -P FORWARD DROP  #blokowanie komunikacji sieć<--->Internet
iptables  -P OUTPUT DROP  #blokowanie ruchu wychodzącego z serwera

#wpuszczamy wszystko na interfejsie lokalnym
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT

#POLACZENIA NAWIAZANE
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -m state --state INVALID -j ACCEPT

#######DLA SERWERA#########

#Petla zwrotna
#iptables -A OUTPUT -d 127.0.0.1/8 -j ACCEPT #komunikacja petla-->system
#iptables -A INPUT -s 127.0.0.1/8 -j ACCEPT #komunikacja system-->petla

#DHCP
IPTABLES -I INPUT -i eth1 -p tcp --dport 67:68 --sport 67:68 -j ACCEPT
IPTABLES -I INPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j ACCEPT
IPTABLES -I OUTPUT -i eth1 -p tcp --dport 67:68 --sport 67:68 -j ACCEPT
IPTABLES -I OUTPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j ACCEPT

#NETBIOS
#iptables -A INPUT -p UDP -s 192.168.0.0/24 --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p UDP -s 192.168.0.0/24 --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p TCP -s 192.168.0.0/24 --dport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p TCP -s 192.168.0.0/24 --dport 445 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p TCP -d 192.168.0.0/24 --sport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p TCP -d 192.168.0.0/24 --sport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p TCP -d 192.168.0.0/24 --sport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p TCP -d 192.168.0.0/24 --sport 445 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#DNS
iptables -A INPUT -p TCP --sport 53 -j ACCEPT
iptables -A INPUT -p UDP --sport 53 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP --dport 53 -j ACCEPT

#HTTP
#iptables -A INPUT -p TCP --sport 80 -j ACCEPT
#iptables -A INPUT -p UDP --sport 80 -j ACCEPT
#iptables -A OUTPUT -p TCP --dport 80 -j ACCEPT
#iptables -A OUTPUT -p UDP --dport 80 -j ACCEPT

#PROXY
#iptables -A INPUT -m multiport -p TCP --dport 3128 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -m multiport -p UDP --dport 3128 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -m multiport -p TCP --sport 3128 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -m multiport -p UDP --sport 3128 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -t nat -A PREROUTING -i ath0 -p TCP -m tcp --dport 80 -j REDIRECT --to-ports 3128

#FTP
#/sbin/iptables -A INPUT -p TCP -m state --state ESTABLISHED --sport 21 -j ACCEPT
#/sbin/iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED --sport 20 -j ACCEPT
#/sbin/iptables -A OUTPUT -p TCP -m state --state NEW,ESTABLISHED --dport 21 -j ACCEPT
#/sbin/iptables -A OUTPUT -p TCP -m state --state ESTABLISHED --dport 20 -j ACCEPT

#SSH
iptables -A INPUT -p TCP --dport 22 -j ACCEPT
iptables -A OUTPUT -p TCP --sport 22 -j ACCEPT

#PINGI
iptables -A INPUT -p ICMP  -j ACCEPT
iptables -A OUTPUT -p ICMP  -j ACCEPT

#######DLA SIECI#######

# logowanie połączeń tylko na tcp
iptables -I FORWARD -p tcp --syn -j ULOG --ulog-nlgroup 1
# logowanie połączeńtcp i udp
#iptables -t nat -A PREROUTING -i eth1 -m state --state NEW -j ULOG

#DNS
iptables -A FORWARD  -p TCP -s 192.168.0.0/24 -d 0/0 --dport 53 -j ACCEPT
iptables -A FORWARD  -p TCP -d 192.168.0.0/24 -s 0/0 --sport 53 -j ACCEPT
iptables -A FORWARD  -p UDP -s 192.168.0.0/24 -d 0/0 --dport 53 -j ACCEPT
iptables -A FORWARD  -p UDP -d 192.168.0.0/24 -s 0/0 --sport 53 -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

#HTTP
iptables -A FORWARD  -p TCP -s 192.168.0.0/24 -d 0/0 --dport 80 -j ACCEPT
iptables -A FORWARD  -p TCP -d 192.168.0.0/24 -s 0/0 --sport 80 -j ACCEPT
iptables -A FORWARD  -p UDP -s 192.168.0.0/24 -d 0/0 --dport 80 -j ACCEPT
iptables -A FORWARD  -p UDP -d 192.168.0.0/24 -s 0/0 --sport 80 -j ACCEPT

#SSL
iptables -A FORWARD  -p TCP -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT
iptables -A FORWARD  -p TCP -d 192.168.0.0/24 -s 0/0 --sport 443 -j ACCEPT
iptables -A FORWARD  -p UDP -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT
iptables -A FORWARD  -p UDP -d 192.168.0.0/24 -s 0/0 --sport 443 -j ACCEPT

#POP3 and SMTP
iptables -A FORWARD  -p TCP -s 192.168.0.0/24 -d 0/0 --dport 110 -j ACCEPT
iptables -A FORWARD  -p UDP -d 192.168.0.0/24 -s 0/0 --dport 110 -j ACCEPT
iptables -A FORWARD  -p TCP -s 192.168.0.0/24 -d 0/0 --dport 25 -j ACCEPT

#FTP
iptables -A FORWARD -m multiport -p TCP -m state --state NEW,ESTABLISHED  --dport 21 -j ACCEPT
iptables -A FORWARD -m multiport -p TCP -m state --state NEW,ESTABLISHED  --dport 20 -j ACCEPT
iptables -A FORWARD -m multiport -p TCP -m state --state NEW,ESTABLISHED,RELATED --sport 20 -j ACCEPT
iptables -A FORWARD -m multiport -p TCP -m state --state NEW,ESTABLISHED,RELATED --sport 21 -j ACCEPT

#PINGI
iptables -A FORWARD -p ICMP -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED

#BLOK LAN<--->LAN
#iptables -A FORWARD -i eth0 -d 192.168.0.0/24 -j DROP

# przekierowanie portu 3389
iptables -t nat -I PREROUTING -p tcp -s 0/0 -d 0/0 --dport 3389 -j DNAT --to 192.168.0.39

Ostatnio edytowany przez jtyson (2011-06-18 10:35:44)

Offline

 

#2  2011-06-18 21:11:07

  haczyk - Użytkownik

haczyk
Użytkownik
Skąd: Bydgoszcz
Zarejestrowany: 2009-02-28

Re: Problem z iptables

Może trochę zaspany jestem, ale co dokładnie oznacza "nie podaje adresów do dhcp" ?
1. W sieci działa serwer dhcp i chcesz pakiety dhcp przekazać przez serwer do innej sieci (coś a`la relay agent)
2. Twój serwer pełni rolę dhcp-a i nie przydziela adresów po restarcie ?

A skoro już napisałem, to może co nieco dopiszę

Chyba przerabiałeś jakiegoś gotowca:

Kod:

echo 0 > /proc/sys/net/ipv4/conf/all/proxy_arp
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

zdaje mi się, że te wartości już mają domyślnie takie wartości.

wykonujesz dwa razy te same czynności:

Kod:

iptables -F -t filter 
iptables -X -t nat

iptables -F -t filter
iptables -X -t nat

raz piszesz "iptables", innym razem "/sbin/iptables". Na początku możesz wstawić:

Kod:

iptables=/sbin/iptables

Kod:

#iptables -A INPUT -m state --state INVALID -j ACCEPT

powyższa linijkę zamień na:

Kod:

iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

Kod:

iptables -A INPUT -p TCP --sport 53 -j ACCEPT

Serwer pełni rolę serwer DNS ? Wymieniasz strefy z innymi serwerami DNS ? Po iptablesie można pomyśleć, że serwer "działa i nie działa" jako DNS (input, output i forward puszczony ;/)

dyrektywa "multiport" oznacza, że można  podać kilka portów - nie ma sensu kopiować kolejnych wierszy

Kod:

iptables -A FORWARD -p ICMP -j ACCEPT -m state --state NEW,ESTABLISHED,RELATED

analogicznie jak wcześniej

Kod:

iptables -A FORWARD -p icmp -j ACCEPT

[quote=jtyson]#CZYSZCZENIE regół[/quote]
"reguł" lub "rules" ;/

Ostatnio edytowany przez haczyk (2011-06-18 21:36:16)

Offline

 

#3  2011-06-19 11:38:00

  jtyson - Użytkownik

jtyson
Użytkownik
Zarejestrowany: 2006-06-30

Re: Problem z iptables

Wczorajszy post pisałem trochę po łebkach, więc opisze o co mi chodzi. W temacie iptables dosłownie raczkuję.
Jeśli chodzi o serwer to:
1. udostępnia internet dla sieci lokalnej.
2. przydziela adresy z dhcp po MAC koputera klienta
3. jest serwerem DNS (utrzymuje domenę tylko wewnętrznie na potrzeby biura, np. biuro.pl i do niej jest podpięte kilka poddomen poczta.biuro.pl, tools.biuro.pl itd. ) i jednocześnie przekazuje zapytania dns dla sieci z Internetu.
4. Loguje połączenia z sieci LAN ze światem - ulog.

A w kwestii działania po restarcie:
- adresy z dhcp nie idą, ip wpisane statycznie działa z siecią ale nie ma neta


I to prawda że przerabiałem go z gotowca. A firewall ma blokować wszystko oprócz tego co jest niezbędne do podstawowej pracy w internecie.

Dziękuję i czekam na dalsze wskazówki.

Ostatnio edytowany przez jtyson (2011-06-19 11:41:57)

Offline

 

#4  2011-06-19 19:31:29

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Problem z iptables

Kod:

#DNS
iptables -A INPUT -p TCP --sport 53 -j ACCEPT
iptables -A INPUT -p UDP --sport 53 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP --dport 53 -j ACCEPT

A po co TCP przy DNSie

Offline

 

#5  2011-06-19 21:15:01

  haczyk - Użytkownik

haczyk
Użytkownik
Skąd: Bydgoszcz
Zarejestrowany: 2009-02-28

Re: Problem z iptables

[quote=hello_world]A po co TCP przy DNSie[/quote]
FYI: jeśli serwer DNS wymienia się strefami z innymi serwerami to korzysta z protokołu TCP

Kod:

#!/bin/bash
modprobe ip_conntrack_ftp # modul FTP

#tego nie sprawdzałem już ;/
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/proxy_arp
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 1 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

not_free () {
#czyszczenie wszystkich łańcuchów i ustawienie domyslnej polityki na DROP
      iptables -F
      iptables -X
      iptables -Z
      iptables -F -t nat
      iptables -X -t nat
      iptables -F -t mangle
      iptables -X -t mangle

      iptables -P INPUT DROP
      iptables -P OUTPUT DROP
      iptables -P FORWARD DROP
} 

all (){

#loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT

#pingi
iptables -A INPUT -p icmp -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

#można by od razu puścić znany ruch - ssh,www,ssl
iptables -A INPUT -j ACCEPT -m state --state NEW -p tcp -m multiport --destination-ports 22,80,443

#blokowanie pakietow uszkodzonych - ewentualnie można dodać bogon
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A INPUT -f -j DROP
iptables -A FORWARD -f -j DROP

#DNSy
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -s 192.168.0.0/24 -d 0/0 --dport 53 -j ACCEPT

#chyba netbios jest niepotrzebny, proxy miałeś skomentowane, więc nie patrzyłem na to

#logowanie - widziałem, że puszczasz tam ruch na porcie 25. Na Twoim miejscu byłbym wrednym adminem logował ten ruch i 

blokował go...

iptables -A FORWARD -p tcp --dport 25 -m state --state NEW -j LOG --log-prefix "SPAM"
iptables -A FORWARD -p tcp --dport 25 -m limit --limit 1/second --limit-burst 5 -j LOG --log-level info --log-prefix 

"SPAM"


#W zasadzie nie wiem czy masz stałe czy zmienne IP zewnątrzne. Ale przyjmijmy, że stałe
#NAT
C1="2 3 4 5 6 7 8 9 10"
   for i in $C1
        do
        IP="192.168.0.$i"
        iptables -t nat -A POSTROUTING -o $INTERNET_ETH -p all -s $IP -j SNAT --to [ip_zewnatrzne]
        done
        
#skoro ma FTP działać to możnaby tu wrzucić regułkę
iptables -A FORWARD -o eth0 -p TCP --dport 20 -j ACCEPT #ftp-data
iptables -A FORWARD -o eth0 -p UDP --dport 20 -j ACCEPT #ftp-data
iptables -A FORWARD -o eth0 -p TCP --dport 21 -j ACCEPT #ftp
iptables -A FORWARD -o eth0 -p UDP --dport 21 -j ACCEPT #ftp
iptables -A FORWARD -o eth0 -p TCP --dport 110 -j ACCEPT #POP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#blokowanie innego ruchu
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p udp -i eth0 -j REJECT --reject-with icmp-port-unreachable


#puszczanie ruchu wychodzącego z serwera (nie mylić z "przechodzącym przez serwer")
    iptables -A OUTPUT -o eth0 -j ACCEPT  
    iptables -A OUTPUT -o eth1 -j ACCEPT 

#tylko jedna rzecz mnie zastanawia - cały ruch puszczasz przez host w sieci lokalnej (192.168.0.39) ?
}

free() {
      iptables -F
      iptables -X
      iptables -Z
      iptables -F -t nat
      iptables -X -t nat
      iptables -F -t mangle
      iptables -X -t mangle
      iptables -P FORWARD ACCEPT
      iptables -P INPUT ACCEPT
      iptables -P OUTPUT ACCEPT
} 

# ------------- { start | stop } ---------------
case "$1" in
    start)
    echo -n "Czyszcze tablice firewalla: "
        not_free
        echo "[OK]"
        echo -n "Startuje firewalla: "
        all    
        echo "[OK]" 
    ;;
    stop)
        echo -n "Zatrzymuje firewalla: "
        free
        echo "[OK]" 
    ;;
    *)
    echo "Sposob uzycia: /etc/init.d/iptables { start | stop }"
    exit 1
    ;;
esac

[quote=jtyson]- adresy z dhcp nie idą, ip wpisane statycznie działa z siecią ale nie ma neta[/quote]
może NAT nie działał

edit: mile widziane poprawki bardziej doświadczonych użytkowników, bo wydaje mi się, że o czymś zapomniałem w tym kodzie ;/

Ostatnio edytowany przez haczyk (2011-06-19 21:32:23)

Offline

 

#6  2011-06-19 21:37:51

  hello_world - Członek DUG

hello_world
Członek DUG
Skąd: Rymanów Zdrój
Zarejestrowany: 2010-06-03
Serwis

Re: Problem z iptables

Kod:

3. jest serwerem DNS (utrzymuje domenę tylko wewnętrznie na potrzeby biura, np. biuro.pl i do niej jest podpięte kilka poddomen poczta.biuro.pl, tools.biuro.pl itd. ) i jednocześnie przekazuje zapytania dns dla sieci z Internetu.

Wydaje mi się że twoich lokalnych stref to on nie wymienia

Offline

 

#7  2011-06-20 05:42:40

  haczyk - Użytkownik

haczyk
Użytkownik
Skąd: Bydgoszcz
Zarejestrowany: 2009-02-28

Re: Problem z iptables

@hello_world
dlatego napisałem w kodzie (bez TCP):

Kod:

iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -s 192.168.0.0/24 -d 0/0 --dport 53 -j ACCEPT

w pierwszym poście w tym temacie też pytałem o tą kwestię ;]

Offline

 

#8  2011-06-20 07:23:25

  jtyson - Użytkownik

jtyson
Użytkownik
Zarejestrowany: 2006-06-30

Re: Problem z iptables

Dziękuję za poświęcony mi czas i zdrowie, zaraz zabieram się za sprawdzanie czy działa. Dziękuje pięknie za pomoc. Odezwę się jak będe wiedział co i jak.

Offline

 

#9  2011-06-20 07:32:12

  jtyson - Użytkownik

jtyson
Użytkownik
Zarejestrowany: 2006-06-30

Re: Problem z iptables

Kod:

#tylko jedna rzecz mnie zastanawia - cały ruch puszczasz przez host w sieci lokalnej (192.168.0.39) ?

Nie puszczam całego ruchu, chodziło mi o przekierowanie zdalnego pulpitu do kompa wewnątrz sieci ;-) ale coś powaliłem.


Kod:

#logowanie - widziałem, że puszczasz tam ruch na porcie 25. Na Twoim miejscu byłbym wrednym adminem logował ten ruch i 

blokował go...

iptables -A FORWARD -p tcp --dport 25 -m state --state NEW -j LOG --log-prefix "SPAM"
iptables -A FORWARD -p tcp --dport 25 -m limit --limit 1/second --limit-burst 5 -j LOG --log-level info --log-prefix 

"SPAM"

W tym fragmencie blokujemy rozsyłanie spamu np. przez wirusy??


Kod:

#W zasadzie nie wiem czy masz stałe czy zmienne IP zewnętrzne. Ale przyjmijmy, że stałe
#NAT
C1="2 3 4 5 6 7 8 9 10"
   for i in $C1
        do
        IP="192.168.0.$i"
        iptables -t nat -A POSTROUTING -o $INTERNET_ETH -p all -s $IP -j SNAT --to [ip_zewnatrzne]
        done

Nie spotkałem się z takim kodem w czasie mojej krótkiej edukacji z iptables. IP mam z puli publicznej , stałe.
Do czego służy ta pętla for?

A jeśli chodzi o ftp to będzie przekierowany do hosta w sieci LAN.

Ostatnio edytowany przez jtyson (2011-06-20 08:06:06)

Offline

 

#10  2011-06-20 09:29:51

  haczyk - Użytkownik

haczyk
Użytkownik
Skąd: Bydgoszcz
Zarejestrowany: 2009-02-28

Re: Problem z iptables

jeśli chodzi o przekierowanie zdalnego pulpitu - chcesz z zewnątrz móc wejść na maszynę 192.168.0.39 przez zdalny pulpit ?

Co do spamu: ten kod logowałby cały ruch na porcie 25. Jako, że w iptables nie definiowałem co z ruchem na porcie 25, więc pakiety wpadną w politykę domyślną ([b]iptables -P FORWARD DROP[/b]). Ale oczywiście nic nie stoi na przeszkodzie aby dodać (dla pewności) po tym logowaniu

Kod:

iptables -A FORWARD -p tcp -s 192.168.0.0/24 --dport 25 -j DROP

, co zdropuje wszystkie pakiety na porcie 25/tcp. Czasem może się zdarzyć, że jakiś user złapie robaczka/wiruska i wtedy szkoda by było puścić taki ruch ;/

W zasadzie ta pętla for pochodzi  z basha. Najważniejsze w tej pętli jest

Kod:

iptables -t nat -A POSTROUTING -o $INTERNET_ETH -p all -s $IP -j SNAT --to [ip_zewnatrzne]

co oznacza, że adresy z puli 192.168.0.2-10 będą wypuszczane ("snatowane"- nie wiem czy jest takie słowo w ogóle) na zewnątrz przez adres zewnętrzny [ip_zewnetrzne].

FTP - jeśli będzie przekierowany na adres lokalny to chyba lepiej nie wypuszczać tego na zewnątrz.

Ostatnio edytowany przez haczyk (2011-06-20 09:33:49)

Offline

 

#11  2011-06-20 10:05:11

  jtyson - Użytkownik

jtyson
Użytkownik
Zarejestrowany: 2006-06-30

Re: Problem z iptables

Tak z zewnątrz chce mieć dostęp do hosta 192.168.0.39.

A jeśli chodzi o snat to nie bawiłem się jeszcze takim rozwiązaniem. Zawsze robiłem maskaradę. A zrobienie snat w ten sposób udostępni mi neta dla całej sieci lan?? W sieci mam około 90 klientów.

Offline

 

#12  2011-06-20 12:23:57

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Problem z iptables

Dostęp z netu do hosta 192.168.0.39 - to tylko DNAT, zamiast SNAT powinna wystarczyć maskarada.

Ewentualnie można użyć tez SNAT, poszukaj na necie instrukcji na hasło Postfix za NAT, znajdziesz najlepsze przykłady, jak to zrobić.
Sznurki:
http://pl.wikibooks.org/wiki/Sieci:Linux/Netfilter/iptables/akcje#DNAT
http://pl.wikibooks.org/wiki/Sieci:Linux/Netfilter/iptables/akcje#SNAT


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#13  2011-06-20 12:25:06

  haczyk - Użytkownik

haczyk
Użytkownik
Skąd: Bydgoszcz
Zarejestrowany: 2009-02-28

Re: Problem z iptables

"puszczenie ssh" przez serwer mogło by być realizowane mniej więcej tak:

Kod:

iptables -A FORWARD -p tcp -d [ip_zew] --dport 22 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth0 -d 0/0 --dport 22 -j DNAT --to [ip_host]

Najpierw w łańcuchu forward trzeba otworzyć port, później w preroutingu to co wchodzi na "jakiś" port ma być przerzucane na host.

[url=http://forum.dug.net.pl/viewtopic.php?id=15429]Ciekawy temat na dug-u[/url]

Dlatego pytałem wcześniej czy masz stałe IP.
NAT może być realizowany na dwa sposoby (oczywiście jest więcej metod, ale nie rozdrabniajmy się). SNAT wykorzystuje się przy stałym IP zewnętrznym, Masq przy zmiennym IP.

[url=http://linux.die.net/man/8/iptables]man iptables[/url]:

Kod:

MASQUERADE

This target is only valid in the nat table, in the POSTROUTING chain. It should only be used with dynamically assigned 
IP (dialup) connections: if you have a static IP address, you should use the SNAT target. Masquerading is equivalent to 
specifying a mapping to the IP address of the interface the packet is going out, but also has the effect that connections 
are forgotten when the interface goes down. This is the correct behavior when the next dialup is unlikely to have the 
same interface address (and hence any established connections are lost anyway).

Ostatnio edytowany przez haczyk (2011-06-20 12:27:07)

Offline

 

#14  2011-06-28 09:23:19

  jtyson - Użytkownik

jtyson
Użytkownik
Zarejestrowany: 2006-06-30

Re: Problem z iptables

Dobra właśnie zakończyłem sprawdzanie działania nowego skryptu firewall. Trochę go zmieniłem przy pętli z SNAT ale poza tym śmiga aż miło, Haczyk dzięki wielkie za pomoc.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.014 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00003 SET NAMES latin2
0.00211 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.64.245' WHERE u.id=1
0.00092 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.64.245', 1732396667)
0.00042 SELECT * FROM punbb_online WHERE logged<1732396367
0.00078 SELECT topic_id FROM punbb_posts WHERE id=176297
0.00146 SELECT id FROM punbb_posts WHERE topic_id=19195 ORDER BY posted
0.00078 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=19195 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00198 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=19195 ORDER BY p.id LIMIT 0,25
0.00094 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=19195
Total query time: 0.00959 s