Portál AbcLinuxu, 10. května 2025 04:47

Dotaz: Nefunkcni skript pro IPTABLES; prosim o kontrolu

29.3.2005 21:06 petr.motejlek | skóre: 4 | Sloveč
Nefunkcni skript pro IPTABLES; prosim o kontrolu
Přečteno: 158×
Odpovědět | Admin
Ahoj vsem, jak uz jsem v titulku napsal, nevim proc mi nejede tento skript pro iptables firewallovani. Nekoukejte na to, jak je to s nim po bezpecnostni strance, tu zatim neresim. Cetl jsem uz celkem dost clanku a 2 knihy a tohle je muj prvni napsany FireWall a nechapu co na nem je spatne, co by ho nenechalo delat jeho praci. Kdyz ho pres ssh spustim na mem routeru, tak spojeni ssh zamrzne a s nim i ostatni traffic co by mel projit pres/do to(ho) PC. Diky za radu...
echo "Starting firewall ..."
echo 1 > /proc/sys/net/ipv4/ip_forward

#Delete all rules
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

#Default policy = DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ROP

#---- INPUT ----#

#lo & eth0 = secure, should be accepted
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#eth1 = port 8022 is SSH -> accept
iptables -A INPUT -i eth1 -p tcp --dport 8022 -j ACCEPT

#eth1,lo,eth0 ESTABLISHED,RELATED packets should be acceted
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

#---- OUTPUT ----#

#lo to eth1 -> OK
iptables -A OUTPUT -o eth1 -i lo -j ACCEPT

#lo to eth0 -> OK
iptables -A OUTPUT -o eth0 -i lo -j ACCEPT

#---- FORWARD ----#

#Forward existing conns from eth1 to eth0 & lo
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o lo -m state --state ESTABLISHED,RELATED -j ACCEPT

#Forward eth0 to eth1
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

#---- PREROUTING ----#

#Adds masquerade
iptables -A PREROUTING -t nat -i eth0 -j MASQUERADE
Poznamka: Pisu si k tomu poznamky anglicky, protoze jsou prehlednejsi nez cestina, ktera ma, nebo spis nema, tolik presnych vyrazu. Petr
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.3.2005 21:11 k3 | skóre: 15 | blog:  
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Odpovědět | | Sbalit | Link | Blokovat | Admin
by wocko se me nelibi uz ten posledni radek od prvniho pohledu :)

suntaxe by mela byt nejak takhle:
iptables -A PREROUTING -t nat -o _inet_if -j MASQUERADE
to je prvni vec co me padla do woka :) a prilis se me to dal cist nexe (jsem linej :))
29.3.2005 21:42 petr.motejlek | skóre: 4 | Sloveč
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Co myslis tim _inet_if ?
29.3.2005 21:45 Libor Klepac | skóre: 45 | Mýto
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
tim mysli imho eth1 a dalsi imho ...melo by tam byt POSTROUTING
Urine should only be green if you're Mr. Spock.
29.3.2005 21:54 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
melo by tam byt POSTROUTING
Takže by ten poslední příkaz měl chcípnout s Invalid argument, imho. Tudíž je možná chyba už někde dřív, která to ssh spojení utne. Ale na hledání chyb v cizích skriptech už jsem moc unavený :-)
29.3.2005 21:56 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Ale neodpustím si svoji oblíbenou metodu debugování čehokoliv v shellu ;-)
sh -x ./skript
Poslední příkaz, který to přes ssh zobrazí, bude nejspíš blbě.
30.3.2005 00:14 k3 | skóre: 15 | blog:  
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
jj. dik opet jsem si ty dva nazvy spletl :(
29.3.2005 21:58 Michal Kubeček
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Odpovědět | | Sbalit | Link | Blokovat | Admin
1. Zvykněte si, prosím, místo lapidárního "nejede to" aspoň stručně naznačit, co ten skript konkrétně dělá špatně (nebo aspoň jinak, než očekáváte). Většině systémáků se při spatření nebo zaslechnutí kouzelné formule "vono to nefunguje" automaticky zvedá tlak a naopak klesá ochota zabývat se vaším problémem.

2. U politiky pro řetězec FORWARD máte překlep.

3. Pokud povolíte v řetězci INPUT všechny pakety přicházející na lo nebo eth0, nemá smysl později řešit nějakou jejich podmnožinu.

4. SSH na portu 8022 má nějaký hlubší smysl, nebo je to jen security by obscurity?

5. Nenapadá mne, jak by mohl vypadat paket, který by se objevil v řetězci FORWARD a měl jako výstupní rozhraní lokální smyčku.

6. Testování vstupního rozhraní v řetězci OUTPUT postrádá smysl. Ono je většinou otázkou, zda má vůbec smysl něco filtrovat v řetězci OUTPUT.

7. Source NAT, a tedy i maškaráda, se zásadně provádí až na konci, tedy v řetězci POSTROUTING.

30.3.2005 21:25 petr.motejlek | skóre: 4 | Sloveč
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Omlouvam se... Vim, ze by se problem mel popsat, ale nenapadlo me, jak :] ve sve podstate to, o co zadam, vyjadruje spise ta druha cast titulku, kde prosim o kontrolu...

Diky za Vasi poznamku
29.3.2005 22:14 SMidrs
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj ... trochu sem na to mrknul ;-) Poupravil jsem par veci a nejvice podivny se mi zdaly dve veci: MASQUERADA a LOOPBACK.
echo "Starting firewall ..."
echo "1" > /proc/sys/net/ipv4/ip_forward

#Default policy = DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ROP

#CLEAR all rules
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

#---- INPUT ----#
#lo & eth0 = secure, should be accepted
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#eth1,lo,eth0 ESTABLISHED,RELATED packets should be acceted
iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

#eth1 = port 8022 is SSH -> accept
iptables -A INPUT -i eth1 -p tcp --dport 8022 -j ACCEPT

#---- OUTPUT ----#
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT

#---- FORWARD ----#
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT


#---- PREROUTING ----#
#Adds masquerade
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
29.3.2005 22:29 Michal Kubeček
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
1. Poněkud mi uniká, proč vlastně nastavujete řetězci OUTPUT politiku na DROP, když pak povolíte pakety na (pravděpodobně) všechna dostupná rozhraní…

2. Doporučoval bych maškarádovat jen pakety, u kterých to má smysl. Netfilter je pravděpodobně inteligentní a pokud zjistí, že paket už má správnou zdrojovou adresu, maškarádovat ho nebude, ale i tak bude lépe ho nezkoušet. Takže bych přidal něco na způsob '-s $INT_RANGE'

3. Osvědčilo se mi nepsat věci, které jsou konfigurovatelné (vnitřní rozhraní, vnější rozhraní, adresy, rozsahy apod.) všude po skriptu, ale dát si je na začátek do proměnných. Až budete muset prohodit vnitřní a vnější interface, pochopíte proč.

4. Vaše víra v to, že ve vnitřní síti žijí jen ti hodní je obdivuhodná, ale z bezpečnostního hlediska krajně nerozumná. Zvláště v dnešní době pravidelných epidemií červů a další havěti. Doporučoval bych v řetězci INPUT povolit i z vnitřního rozhraní jen to, co je skutečně potřeba.

5. Trvá moje pochybnost o SSH na portu 8022 a překlep v politice řetězce FORWARD (viz body 4 a 2 v příspěvku z 21:58).

29.3.2005 22:36 SMidrs
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Pouze jsem opravil chyby ktere jsem videl (nic sem nepridaval) .... nejsem TEN co zadal o pomoc ........ ale jinak s Vami souhlasim ve vsech bodech.
29.3.2005 22:46 Michal Kubeček
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Tak to se omlouvám, nedíval jsem se na jméno.
30.3.2005 21:13 petr.motejlek | skóre: 4 | Sloveč
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Odpovědět | | Sbalit | Link | Blokovat | Admin
omlouvam se, ze mi tak dlouho trvalo nez jsem se ozval. nemel jsem k dispozici internet, az ted, beru vsechny vase poznamky na vedomi 1. 8022 je z ciste bezpecnostniho hlediska :} pokud by se nasel hacker co nezna nmap nebo neco podobneho 2. tenhle skript je pro domaci sit, kde jsou 4 PC i s routerem, takze doufam, ze se tam nic vyskytovat nebude 3. vyzkousim to a pak napisu, jak a co mi pomohlo
30.3.2005 22:10 Michal Kubeček
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
1. Trikům typu dám SSH na port 8022, tam ho nenajdou se říká security by obscurity a s bezpečností nemají nic společného. Je to jen takové hraní si na bezpečnost.

2. A jste schopen odpřisáhnout, že absolutně nikdy nedojde k tomu, že někdo z uživatelů spustí nějaký kód neznáméno původu, který se k němu dostane e-mailem, z webové stránky nebo jakýmkoli jiným způsobem?

31.3.2005 00:27 jm
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Od te doby, co mi bezi SSH na jinem portu nez 22, mi jeste neprisel zadny mail, ze by se nekdo pokousel opakovane neuspesne nalogovat. Predtim jich chodilo asi dvacet denne - celkem opruz. Nechapu, proc bych to SSH nemel presunout jinam a co je na tom tak hrozne divneho.
31.3.2005 01:01 Michal Kubeček
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Já zase nechápu, proč to dělat, když to, kromě falešného pocitu bezpečí, nic nepřináší.
31.3.2005 01:03 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Odstíní to šum ;-)
31.3.2005 07:16 ...... | skóre: 41 | blog: ...
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
no po pravdě ho mám taky na jiném portu...nějaký robot totiž zkouší prolomit heslo u SSH a zkouší prostě slovníkový útok, ale je dost tupý ...prostě mě to rozčilovalo v lozích (jak se skloňuje log? ;-) ) tak jsem změnil port.
30.3.2005 21:39 petr.motejlek | skóre: 4 | Sloveč
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takze, prvni poznatky ... vami upraveny skript {eldar.cz/motyl/rc.firewall -> nova verze} stale zakazuje veskery provoz z eth0, neda se udelat ani ping. A to jak z localu toho routeru na stanici v siti, tak ani ze stanice v siti na router...
30.3.2005 23:19 SMidrs
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Zbezne jsem zkousel upraveny script a vse co se tyka ETH0 funguje. Nemohu vyzkouset tu samou situaci co mate u sebe, ale pravidla povolujici ETH0 funguji. Kdyztak se podivejte do logu, nebo se zkuste podivat zda jsou pravidla nactena ... iptables -L
30.3.2005 23:22 SMidrs
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
eldar.cz/motyl/rc.firewall .... tam mate chybu ... zapomel jste povolit OUTPUT ... takze tam pridejte:
iptables -P OUTPUT ACCEPT
30.3.2005 23:38 SMidrs
Rozbalit Rozbalit vše Re: Nefunkcni skript pro IPTABLES; prosim o kontrolu
Jeste takovy drobny dotaz ..... co furt mate s tim LOOPBACKem ve FORWARDu ?!? To nejak nemohu pochopit. LOOPBACK je jen adresa toho routeru a nelze ji FORWARDovat a take neni potreba .... LOOPBACK se defaultne povoli v CHAINu INPUT a OUTPUT a hotovo. Pokud to ma nejaky skryty vyznam tak bych byl rad kdyby jste ho zverejnil.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.