torsdag 4 juli 2013

Extern access för Apache i CentOS

Installerade nyligen CentOS 6.3 och där efter Apache2 via yum. Men jag kunde inte nå Apache utifrån hur jag än gjorde, däremot fungerade ssh fint utifrån.
Jag tittade i Apache-konfigurationen och allt såg riktigt ut, jag tittade i netstat och såg att listen för port 80 accepterade på alla interface.
Till slut prövade jag att i ren desperation stänga ner iptables, det fungerade. Tydligen blockerar CentOS port 80 som standard, men tillåter port 22.

En snyggare lösning än att stänga ner iptables är att lägga till en regel som tillåter port 80.
När jag googlade lösningen skulle det vara okej att köra följande kommando och sedan spara konfigurationen med /sbin/service iptables save.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

För mig räckte inte detta, det visade sig att ordningen som reglerna står i spelar roll.
Så jag redigerade /etc/sysconfig/iptables manuellt.

Före:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:968]
-A INPUT -m state --state RELATED,ESTABLISHED -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
COMMIT


Efter:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:968]
-A INPUT -m state --state RELATED,ESTABLISHED -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 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT



Källa:
StackExchange

Inga kommentarer:

Skicka en kommentar