[MEGOLDVA]apache és IPTABLES

hello

Egy CentOS 6.3-on felraktam egy Apache-t. Szépen megy is ha nincs tűzfal. A tűzfalam így néz ki:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http

Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain LOGDROP (0 references)
target prot opt source destination
LOG tcp -- anywhere anywhere limit: avg 2/sec burst 10 LOG level warning prefix `TCP LOGDROP:'

Nem értem hogy miért nem megy, hiszen a RELATED, ESTABLISHED és a 80-as port is nyitva van neki.
A neten nem találtam egyebet csak azt hogy
"-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT" adjam hozzá az /etc/sysconfig/iptables állományhoz majd restart iptables. Ez meg is történt és ennek ellenére elhasal a tűzfalon a kapcsolat. Próbálom loggolni de eddig nem mondott semmit.

Valakinek valami ötlet?

Hozzászólások

Az
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
a
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

után van. Vagyis soha nem használja.

Igaz, van korábban egy
ACCEPT all -- anywhere anywhere

ami viszont elvileg mindent engedélyez.....

Köszönöm, igazad volt. Most már így megy:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain LOGDROP (0 references)
target prot opt source destination
LOG tcp -- anywhere anywhere limit: avg 2/sec burst 10 LOG level warning prefix `TCP LOGDROP:'

--
A legértékesebb idő a pillanat amelyben élsz.
http://phoenix-art.hanzo.hu/
https://sites.google.com/site/jupiter2005ster/

Sajnos ez a formátum nem mutat közel sem mindent (pl. kimenő-bejövő interfészek), szóval a
ACCEPT all -- anywhere anywhere
közel sem biztos, hogy azt jelenti, hogy mindenhonnan mindenhova lehet közlekedni. Ilyen általában a loopback interfészre szokott lenni bekapcsolva alapból, ami jelen esetben nem határoz semmit.
Egy iptables -S sokkal többet mutatna ennél, meg lehetne mondani, mint is csinál az említett sor.

az interfészekre nem mentem rá. igazából semmit nem is változtattam rajta még csak az apache láncot hoztam előbbre.

iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

--
A legértékesebb idő a pillanat amelyben élsz.
http://phoenix-art.hanzo.hu/
https://sites.google.com/site/jupiter2005ster/

Tehát ez a CentOS alap tűzfal konfigja.
Úgy tűnik, igazam volt, a '-A INPUT -i lo -j ACCEPT' sor hozza létre a "mindent engedő" szabályt, ami jelen esetben csak annyit tesz, hogy a loopback interfészről minden csomagot beengedünk (de ugye oda csak a saját gép tud üzenetet küldeni...)
Egyébként a többi szabály kb ezt jelenti (ha érdekel):
Kifelé minden mehet a gépről (nincs külön szabály definiálva és az OUTPUT lánc policy-je ACCEPT)
Át nem engedünk semmit, ezt a FORWARD lánc szabálya mondja meg, bár én inkább -j DROP -ra cserélném a végét, mert REJECT-nél küld visszafelé icmp csomagot a géped (jelen esetben icmp-host-prohibited), amit rosszindulatú emberek rossz célra használhatnak :)
Befelé jöhet a kimenő kapcsolatra küldött válasz, új kapcsolat jöhet létre a 80-as illetve a 22-es portokon(bármelyik interfészről). Lehet pingelni a szervert (bármelyik interfészről). A loopback interfészről minden forgalmat beengedünk.
Az utolsó szabály itt is a tiltás, tehát ha valami nem jutott át a fenti szabályokon, azt visszautasítjuk. Ezt szintén lehetne DROP-ra cserélni, vagy elhagyni ezt a szabályt és a lánc policy-jét állítani DROP-ra (a legelső sort átírni: -P INPUT DROP).

Na en ezek miatt kezdtem el shorewall-t hasznalni. Az futtat par validaciot a szabalyokon, es nem igazan tudsz vele nem mukodo konfigot kifozni (de: ha nem engeded be az SSH portot), viszont mindent tud, amit az iptables. Raadasul egy csomo mindent alapbol beallit, tehat pl az ESTABLISHED,RELATED csomagokkal se kell torodni.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal