Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Internet a sítě => Téma založeno: spetrs 21 Března 2012, 21:13:25

Název: iptables - taková malá maškaráda
Přispěvatel: spetrs 21 Března 2012, 21:13:25
Zdravím.
Snažím se nastavit iptables. Nedaří se, potřebuji poradit.

První PC je přes eth3 připojeno k ADSL routru a ten do internetu.
Další PC jsou přes switch připojeny k prvnímu PC na jeho eth2.

Pokud spustím maškarádu na prvním PC,
Kód: [Vybrat]
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.0/24 -j MASQUERADEtak se PC, stanice, dostanou bez problému na internet. Z toho usuzuji ze vše nutné jede.

Potřebuji však, aby bylo možno se dostat přes maškarádu nebo obdobné nastavení, jen na jednu adresu v internetu a  zároveň abych si neodstavil ostatní servery, které jedou na prvním PC. Ideální pokud by to šlo nastavit jen pro jedno PC, které by se dostalo na server, který je na internetu.

Výpis bez zapnuté maškarády:
Kód: [Vybrat]
iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

Pro příklad:
Server na internetu: 46.255.224.60
Server, první PC: eth2:192.168.1.1, eth3:10.10.10.1
vybrané PC které se má dostat na internet: 192.168.1.10

Jak by to mělo být, iptables...?  Díky za pomoc.
Název: Re:iptables - taková malá maškaráda
Přispěvatel: Petr Merlin Vaněček 22 Března 2012, 07:37:12
Využijte src a dst v iptables ... něco jako
Kód: [Vybrat]
iptables -A FORWARD -p tcp --src 192.168.1.0/24 -j DROP
iptables -A FORWARD -p tcp --src 192.168.1.0/24 --dst 46.255.224.60 -j ACCEPT
iptables -A FORWARD -p tcp --src 192.168.1.10 -j ACCEPT
.
.
.
Název: Re:iptables - taková malá maškaráda
Přispěvatel: Tomáš "Piškot" Petera 22 Března 2012, 09:29:13
Citace
Kód: [Vybrat]
iptables -A FORWARD -p tcp --src 192.168.1.0/24 -j DROP
iptables -A FORWARD -p tcp --src 192.168.1.0/24 --dst 46.255.224.60 -j ACCEPT
iptables -A FORWARD -p tcp --src 192.168.1.10 -j ACCEPT
Nedával bych jako první zakazující pravidlo je lepší nejdříve povolit správné chování a jako poslední pravidlo zakazuje vše co nevyhovuje. Pravidla jsou brány sestupně a je aplikováno to co vyhoví. V tomto případě tedy vyhovují všechny s zdrojem 192.168.1.0/24 a jsou zahozeny. Další pravidlo už nemá pakety co by řešilo protože jsou zahozeny.   
Název: Re:iptables - taková malá maškaráda
Přispěvatel: Tomáš "Piškot" Petera 22 Března 2012, 09:45:17
Upravil bych iptables následovně.
Kód: [Vybrat]
# zařízení musí mít přístup k DNS že ?
iptables -A FORWARD -i eth3 -m state --state ESTABLISHED,RELATED -j ACCEPT # (Navázáno neřešit)
# máš DNS na bráně nebo v internetu ? Jinak musíš povolit udp na DNS server pro 192.168.1.10
iptables -A FORWARD --src 192.168.1.10  --dst !46.255.224.60 -j DROP # Vše co splňuje tohle pravidlo bude zahozeno
iptables -A FORWARD --src 192.168.1.0/24 -j ACCEPT  # ostatní povoleno

iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.0/24 -j MASQUERADE

Tohle by mělo fungovat.






Název: Re:iptables - taková malá maškaráda
Přispěvatel: Petr Merlin Vaněček 22 Března 2012, 09:56:12
Když já jsem, Tomáši, nechtěl dávat přesný výstup, ale něco, co by tazatele navedlo k vlastní dedukci :)
Název: Re:iptables - taková malá maškaráda
Přispěvatel: Tomáš "Piškot" Petera 22 Března 2012, 10:26:31
No to jo, ale pravidla se zapisují tak jak vyhovují, tvůj postup je velmi zavadějící. Stejně si musí něco načíst.
Název: Re:iptables - taková malá maškaráda
Přispěvatel: spetrs 22 Března 2012, 10:59:00
Tak jsem  použil pouze:
Kód: [Vybrat]
iptables -t nat -A POSTROUTING -o eth3 -s 192.168.1.10 -d 46.255.224.60/24 -j MASQUERADEZdá seže to funguje. Ale nemám z toho dobrý dojem, jestli mi někde nezůstalo něco z předcházejícího zkoušení. Může výše uvedené splňovat mé požadavky, samo o sobě?

Když jsem zkoušel Vaše řešení
Citace
iptables -A FORWARD.....
tak jsem to neviděl nikde zapsané, zkoušel jsem iptables -L a iptables -L -n -t nat. Jak to vilistuju, nebo se mi ty pravidla s forward neuložily?


Název: Re:iptables - taková malá maškaráda
Přispěvatel: Tomáš "Piškot" Petera 22 Března 2012, 11:10:45
Tohle je horší přístup (podle užití), když uživatel zadá www.seznam.cz na počítači 192.168.1.10 pakety poletí na 46.255.224.60 což je špatně ne ? navíc nedávej za ip 46.255.224.60  síť 24 protože pak pravidlo platí pro  46.255.224.0 - 255 což je opět špatně.

Při zápisu do FORWARD nenapsalo to chybu ? Píšu to jen z hlavy a tak tam může být překlep.
Název: Re:iptables - taková malá maškaráda
Přispěvatel: Tomáš "Piškot" Petera 22 Března 2012, 11:11:59
Doporučuju přečíst články na root.cz, jsou dobře napsané

http://www.root.cz/serialy/vse-o-iptables/
Název: Re:iptables - taková malá maškaráda
Přispěvatel: spetrs 22 Března 2012, 11:33:54
Citace
uživatel zadá www.seznam.cz na počítači 192.168.1.10 pakety poletí na 46.255.224.60
Hmmm, tak to jsem si neuvědomil.
Citace
Při zápisu do FORWARD nenapsalo to chybu ? Píšu to jen z hlavy a tak tam může být překlep.
Ne, nepsalo to chybu, zkoušel jsem i nějaké vlastní s FORWARD a chovalo se to stejně, pokud jsem napsal nějakou blbost tak to psalo chybu.
Citace
Doporučuju přečíst články na root.cz, jsou dobře napsané
Četl jsem je i jinde jsem hledal, v záložkách mám cca 20 odkazů, ale stejně nejsem schopen to dát dohromady.
Název: Re:iptables - taková malá maškaráda
Přispěvatel: Tomáš "Piškot" Petera 22 Března 2012, 12:53:34
sudo iptables -L -v -n

Ukáže pravidla v FORWARD INPUT OUTPUT bze překladu do DNS

Název: Re:iptables - taková malá maškaráda
Přispěvatel: spetrs 22 Března 2012, 16:45:31
Nak aspoň něco dělam dobře, používám
iptables -L -n
iptables -L -n -t nat
to -v nepřineslo nic nového.
Musím přijít nato proč se mi nic neukládá do  FORWARD.
Název: Re:iptables - taková malá maškaráda
Přispěvatel: Tomáš "Piškot" Petera 22 Března 2012, 20:41:29
Přepínač -n ti ukáže čítače u pravidel -> tedy jestli přes to něco teče. Je divné že nic nevložíš do FORWARD, zkus jednoduchá pravidla.

Název: Re:iptables - taková malá maškaráda
Přispěvatel: spetrs 23 Března 2012, 17:42:57
Jsem z toho nemoudry, do forward nevlozim nic, do nat vlozim co potrebuju.
Nainstaloval jsem si Ubuntu na jednu starou plecku a tam to jede vse.
Kde hledat, proc nejde nastavit ten forward?