Serwer - ruter, ruch jest tylko jednostronny

Konfiguracja serwerów, usług, itp.
bzyk
Beginner
Posty: 181
Rejestracja: 08 stycznia 2008, 22:00
Lokalizacja: Pszczyna

Post autor: bzyk »

No to zrób;

Kod: Zaznacz cały

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
I będziesz miał tego neta.
A potem czytać, czytać, czytać... Będziesz już miał dostęp do sieci to i o firewallach sobie poczytasz :) [/code]
Awatar użytkownika
Yampress
Administrator
Posty: 6425
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

no ale może tak napiszesz co CI nie działa i co chcesz osiągnać bo ja nie rozumiem. Chcesz dzielić internet innym komputerom w sieci? masz stałe zewnątrzene ip czy dynamicznie przydzielane zewnętrzne ip ?

sprawa wygląda tak

na poczatek włączamy przekazywanie pakietów

Kod: Zaznacz cały

echo "1" > /proc/sys/net/ipv4/ip_forward
nastepnie skrypt firewalla

Kod: Zaznacz cały

#usunięcie regół ze wszystkich łańcuchów
iptables -F 

#ustawianie domyslnych polityk
iptables -P INPUT DROP 
iptables -P FORWARD DROP 
iptables -P OUTPUT ACCEPT 

#intrefejs pętli zwrotnej
iptables -A INPUT -i lo -j ACCEPT 

#wpyszczamy ruch na ssh
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#wpuszczamy zapytania o pinga
iptables -A INPUT  -p icmp --icmp-type echo-request  -j ACCEPT

#pozwalamy na fowarding
iptables -A FORWARD -s 192.168.1.0/24 -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD -s 0.0.0.0/0 -d 192.168.1.0/24 -j ACCPET
i teraz sa sa 2 możłiwości:

1. zmienne ip zewnętrzene

Kod: Zaznacz cały

iptables -t nat -A POSTROUTING -s 192.168.1.2 -d 0.0.0.0/0 -j MASQUERADE
2. stałe ip zewnętrzne

Kod: Zaznacz cały

iptables -t nat -A POSTROUTING -s 192.168.1.2 -d 0.0.0.0/0 -j SNAT --to-source nasz_stały_adres_ip
Awatar użytkownika
rmika
Beginner
Posty: 117
Rejestracja: 14 czerwca 2007, 08:55

Post autor: rmika »

Dobrze, pora na podsumowanie.

Abym miał internet udostępniony wystarczy w pliku konfiguracyjnym dodać wpis:

Kod: Zaznacz cały

echo "1" > /proc/sys/net/ipv4/ip_forward 
I działa.

Nie działa natomiast internet w momencie gdy w pliku konfiguracyjnym firewallu dodam:

Kod: Zaznacz cały

iptables -P INPUT DROP
iptables -P FORWARD DROP 
Te wpisy momentalnie mi "psują" politykę dostępową i nie mam już internetu. Nawet usunięcie tych wpisów i ponowne załadowanie ustawień firewalla nie pomagają. Muszę restartować system.

Ps.
W konfiguracji mam też dodany wpis:

Kod: Zaznacz cały

iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT 
Wiecie może dlaczego wpisy:

Kod: Zaznacz cały

iptables -P INPUT DROP
iptables -P FORWARD DROP 
totalnie mi blokują wszystko?
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post autor: Ister »

Wpis
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
Wypuszcza ruch z sieci. Jednak pamiętaj, że ruch jest dwukierunkowy, to znaczy router musi jeszcze wpuścić odpowiedź. Do tego służą albo odpowiednie state (ESTABILISHED, RELATED), albo jawne przepuszczenie całego ruchu w drugą stronę (-d 192.168.1.0/24).

Czy od ostatniego pełnego pliku firewalla coś zmieniałeś? Domyślam się, że tak.

Acha - sama likwidacja wpisów

Kod: Zaznacz cały

iptables -P INPUT DROP
iptables -P FORWARD DROP 
nie powoduje odwrócenia ich działania. Przecież ten plik ZMIENIA ustawienia iptables, a nie USTALA je od zera. ¯eby przywrócić działanie (politykę ACCEPT0 musisz w miejsce powyższego wpisu umieścić

Kod: Zaznacz cały

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT 
Awatar użytkownika
rmika
Beginner
Posty: 117
Rejestracja: 14 czerwca 2007, 08:55

Post autor: rmika »

Teraz już chyba rozumiem wszystko. I[wszystko mi działa. Ale dla pewności opiszę wszystko jak mam ustawione z nadzieją, że ktoś wyłapie mi błędy i poprawi.

Na serwerze mam następującą konfigurację:

Kod: Zaznacz cały

eth0      Link encap:Ethernet  HWaddr 00:1d:7d:e5:7b:c8
          inet addr:10.0.0.199  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21d:7dff:fee5:7bc8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:114962 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17768 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:30191516 (28.7 MiB)  TX bytes:2719755 (2.5 MiB)
          Interrupt:23 Base address:0xa000

eth1      Link encap:Ethernet  HWaddr 00:30:4f:1c:c3:37
          inet addr:192.168.1.200  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::230:4fff:fe1c:c337/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:111236 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22155 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10450023 (9.9 MiB)  TX bytes:16971656 (16.1 MiB)
          Interrupt:20 Base address:0xde00

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:93 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:12812 (12.5 KiB)  TX bytes:12812 (12.5 KiB)
Mój komputer na przypisany adres 192.168.1.2

Pora na ustawienia firewalla:

Kod: Zaznacz cały

# Pozwol na dzielenie lacza
echo "1" > /proc/sys/net/ipv4/ip_forward

# Uruchom maskarade
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

# Skasuje wszystkie stare reguly
iptables -F

#domyslne polityki
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

## pozwol na utrzymywanie polaczen
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## pozwolenia na laczenie sie Mi z serweren przez ssh
iptables -A INPUT -s 192.168.1.2 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.2 -p udp --dport 22 -j ACCEPT

# Pozwol nizej wymieninym hostom na dostep do internetu
iptables -A FORWARD -s 192.168.1.2 -j ACCEPT
iptables -A FORWARD -s 192.168.1.3 -j ACCEPT

## dla pewnosci blokuj wszystkich innych
iptables -A FORWARD -s 192.168.1.0/24 -j DROP
Ister
Junior Member
Posty: 566
Rejestracja: 05 marca 2009, 12:42

Post autor: Ister »

Zrobiłbym pewne poprawki.
Po pierwsze - usuwanie starych reguł zasadniczo najlepiej jest zrobić zanim wprowadzi się nowe ;-) To co wpisałeś wprawdzie działa, ale tylko dlatego, że nie wszystko usuwasz. Zatem

Kod: Zaznacz cały

iptables -F
Wyrzuć na początek skryptu i uzupełnij o linijkę

Kod: Zaznacz cały

iptables -t nat -F
Możesz też dodać

Kod: Zaznacz cały

iptables -X
iptables -t nat -X
Następnie blokuj dostęp, czyli ustaw polityki. Zatem jako kolejne idą te linijki:

Kod: Zaznacz cały

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT 
Dopiero teraz czas na ustawianie wpuszczania, maskaradę itp.

Wreszcie ostatnia linijka

Kod: Zaznacz cały

iptables -A FORWARD -s 192.168.1.0/24 -j DROP 
nie ma najmniejszego sensu. Masz politykę DROP. Jeśli czegoś jawnie nie wypuściłeś, to zostanie zdropowane. Dokładasz tylko pracy routerowi.

Tyle moich uwag.
Pozdrawiam
ODPOWIEDZ