Strona 1 z 3

Iptables, brak dosŧępu do Internetu

: 14 maja 2011, 23:34
autor: Seba_Fan
Witam.

T
roszeczkę się zgubiłem i czegoś jakby brak, wygląda poprawnie, nie wiem czy przypadkiem czegoś nie pominąłem i gdzieś w systemie się jeszcze czegoś nie zmienia. Komputery podpięte do serwera nie mają dostępu do Internetu, gdzie może być rozwiazzanie problem?
Jestem na etapie czytania i sprawdzania, ale jak na dwie godziny brak poprawy, jutro dalej będę czytał artykuły na forum, może znajdę przyczynę, a może ktoś ją widzi.

eth0 - Internet (świat)
eth1 - siec lokalna, przełącznik parę komputerów, brak internetu
system - Debian 6
eth1 - samba - działa, do udziałów można się dostać
komputery mają numery IP 192.168.43.10 i 192.168.43.15

Kod: Zaznacz cały

nano  /etc/init.d/firewall

#!/bin/sh
# /etc/init.d/firewall
#

###  BEGIN INIT INFO
# Provides:          firewall
# Required-Start:     $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
#  Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description:  firewall
# Description:      fireawall
### END INIT INFO

echo 1  > /proc/sys/net/ipv4/ip_forward


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

# ustawienie polityki dzialania
iptables -P INPUT  DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT  ACCEPT

#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 -j ACCEPT -m  state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state  --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state  ESTABLISHED,RELATED

#dopuszczony ruch z sieci wewnętrznej
iptables -I  INPUT -i eth1 -j ACCEPT

#dopuszczony ruch z sieci zewnętrznej
iptables  -A INPUT -i eth0 -p TCP --dport 22 -j ACCEPT #ssh
iptables -A INPUT -i eth0  -p TCP --dport 21 -j ACCEPT #ftp
iptables -A INPUT -i eth0 -p TCP --dport 80  -j ACCEPT #www
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state  NEW -j ACCEPT
iptables -A INPUT -p ICMP  -j ACCEPT #ping


#  udostepnianie internetu w sieci lokalnej
iptables -t nat -A POSTROUTING -s  192.168.43.0/24 -j MASQUERADE
#iptables -t nat -A POSTROUTING -s  192.168.43.0/24 -d 0.0.0.0/0 -j MASQUERADE
iptables -A FORWARD -s  192.168.43.0/24 -j ACCEPT

: 15 maja 2011, 00:17
autor: Unit
Uruchomiłem ten skrypt i działa poprawnie tzn komputery z sieci 192.168.43.0/24 mają dostęp do internetu. Dobrze masz ustawione na komputerach adres "Bramy domyślnej"/Serwery DNS ?

: 15 maja 2011, 00:54
autor: Seba_Fan
Może tu być problem, mam Odtwarzacz WD i ma problem z DNS.

N
a eth0 mam stały numer ip zewnętrzny, który dostaję z dhcp od firmy, w której opłacam dostęp do internetu, może w iptables zmienić SNAT?

Mam rozdawanie eth1 z dhcp, mogę podać jeśli jest coś potrzebne, bo tak naprawdę nie wiem gdzie szukać rozwiązania problemu.

Kod: Zaznacz cały

/etc/dhcp/dhcpd.conf

subnet 192.168.43.0 netmask 255.255.255.0 {
range 192.168.43.10 192.168.43.30;
#option domain-name-servers 194.204.152.34 , 194.204.159.1;
#option domain-name "tm.net.my";
option routers 192.168.43.1;
option broadcast-address 192.168.43.255;
default-lease-time 86400;
max-lease-time 86400;
}


#laptop

host laptop {
hardware ethernet 00:00:00:00:00;  (celowo zmeinione)
fixed-address 192.168.43.15;
}

: 15 maja 2011, 01:03
autor: Unit
Wyniki poleceń:

Kod: Zaznacz cały

ping 213.180.146.27
ping onet.pl
Konfiguracja dhcp przydałaby się.

: 15 maja 2011, 01:10
autor: Seba_Fan
Dhcp zamieściłem wyżej, a wynik ping poniżej.

Widać, że problem DNS, tylko gdzie zmienić, żeby było dobrze.

Kod: Zaznacz cały

Karta Ethernet Połączenie lokalne:

        Sufiks DNS konkretnego połączenia :
        Adres IP. . . . . . . . . . . . . : 192.168.43.15
        Maska podsieci. . . . . . . . . . : 255.255.255.0
        Brama domyślna. . . . . . . . . . : 192.168.43.1

Karta Ethernet Połączenie sieci bezprzewodowej:

        Stan nośnika . . . .  . . . . . . : Nośnik odłączony

Karta Ethernet Połączenie lokalne 3:

        Stan nośnika . . . .  . . . . . . : Nośnik odłączony

C:\Documents and Settings\seba>ping 213.180.146.27

Badanie 213.180.146.27 z użyciem 32 bajtów danych:

Odpowiedź z 213.180.146.27: bajtów=32 czas=20ms TTL=58
Odpowiedź z 213.180.146.27: bajtów=32 czas=16ms TTL=58
Odpowiedź z 213.180.146.27: bajtów=32 czas=14ms TTL=58
Odpowiedź z 213.180.146.27: bajtów=32 czas=19ms TTL=58

Statystyka badania ping dla 213.180.146.27:
    Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0 (0% straty),
Szacunkowy czas błądzenia pakietów w millisekundach:
    Minimum = 14 ms, Maksimum = 20 ms, Czas średni = 17 ms

C:\Documents and Settings\seba>
C:\Documents and Settings\seba>ping onet.pl
Żądanie polecenia ping nie może znaleźć hosta onet.pl. Sprawdź nazwę i ponów pró
bę.

C:\Documents and Settings\seba>

: 15 maja 2011, 03:41
autor: ramsi1986
Odblokuj w iptables port 53 odpowiedzialny za DNS, w ten sam sposób jak odblokowałeś port 80 dla www i porty 20,21 dla FTP z tą różnicą, że musisz podać protokół UDP zamiast TCP i powinno śmigać

: 15 maja 2011, 08:57
autor: Redhead
ramsi1986 pisze:Odblokuj w iptables port 52 odpowiedzialny za DNS
Chyba 53.

: 15 maja 2011, 09:51
autor: Unit
Seba_Fan pisze: Widać, że problem DNS, tylko gdzie zmienić, żeby było dobrze.
W iptables masz politykę FORWARD ustawioną na ACCEPT, więc nie musisz otwierać portu 53.
Na ruterze działa Ci rozwiązywanie nazw? Co masz w /etc/resolv.conf ?

: 15 maja 2011, 12:07
autor: Seba_Fan
Podam prawdziwe wpisy dla ułatwienia, a później zmienię.
Tutaj raczej jest w porządku:

/etc/resolv.conf

Kod: Zaznacz cały

domain jjjj.pl
search jjjj.pl
nameserver 88.200.200.10
nameserver 88.200.200.11
/etc/hosts

Kod: Zaznacz cały

127.0.0.1       localhost
127.0.1.1       host-88-200-100-150.jjjj.pl     host-88-200-100-150

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
IP zmienione

: 15 maja 2011, 12:21
autor: ramsi1986
Unit pisze:W iptables masz politykę FORWARD ustawioną na ACCEPT, więc nie musisz otwierać portu 53.
Na ruterze działa Ci rozwiązywanie nazw? Co masz w /etc/resolv.conf ?
Jesteś tego pewien? Mnie się wydaje, że to ruter rozwiązuje nazwy i przekazuje dalej do klientów, więc sam Debian też musi mieć otwarty port 53 w łańcuchu INPUT.
Jeśli się mylę to sprostuj.