Otwórz port 80 w CentOS 6.5

14

Próbuję otworzyć Port 80 w moim CentOS 6.5 na mojej maszynie wirtualnej, aby uzyskać dostęp do apache z przeglądarki na pulpicie.

wprowadź opis zdjęcia tutaj

Jeśli spojrzysz na powyższy zrzut ekranu .... Dodałem wiersz przed niebieską strzałką, jak napisano na stronie http://www.cyberciti.biz/faq/linux-iptables-firewall-open-port- 80 / Teraz dostaję stronę testową Apache podczas wpisywania adresu IP w mojej przeglądarce, ale mimo to po ponownym uruchomieniu iptables pojawia się komunikat „AWARIA”, gdy CentOS próbuje zastosować nową regułę.

Czy ktoś zna na to rozwiązanie? Czy też muszę zignorować awarię?

Erik van de Ven
źródło

Odpowiedzi:

28

Zamiast ręcznie wprowadzić reguły, możesz użyć ich iptablesdo dodania reguł do odpowiednich łańcuchów, a następnie ich zapisania. Umożliwi to debugowanie reguł na żywo, potwierdzanie ich poprawności, zamiast dodawania ich do pliku tak, jak się wydaje.

Aby otworzyć port 80, robię to:

$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save

Ostatnie polecenie zapisze dodane reguły. To jest zasada, której użyłbym do otwarcia portu dla ruchu sieciowego.

Dlaczego twoja reguła powoduje problemy

Jeśli zauważysz regułę, której próbujesz użyć:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Ma łańcuch o nazwie „RH-Firewall-1-INPUT”. Jeśli nie masz tego łańcucha lub połączenia między INPUTłańcuchem a tym łańcuchem, ta reguła nigdy nie będzie osiągalna. Ta reguła może wyglądać następująco:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Lub Twój INPUTłańcuch powinien połączyć się z tym łańcuchem RH-Firewall-1-INPUTza pomocą następującej reguły:

$ sudo iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
....

UWAGA: Możesz zobaczyć, jakie łańcuchy posiadasz dzięki temu poleceniu:

$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...

Konieczne może być również zmodyfikowanie stanów, aby dozwolone były również istniejące połączenia.

-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

Również gdy używasz -Aprzełącznika, dodajesz regułę do łańcucha INPUT. Jeśli istnieją jeszcze inne reguły, które blokują i / lub zakłócają osiągnięcie tej reguły, nigdy nie zostanie ona wykonana. Możesz więc przenieść go na górę, wstawiając, a nie dodając, w ten sposób:

-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

Korzystanie z GUI

Zapory ogniowe mogą być skomplikowanymi bestiami. Możesz więc zamiast tego spróbować TUI (TUI to GUI dla terminala).

$ sudo system-config-firewall-tui

Następnie możesz przejść przez różne ekrany konfigurujące iptablesreguły.

            ss # 1

            ss # 2

Bibliografia

slm
źródło
Ostatnia reguła usunęła wszystkie poprzednie reguły z mojego pliku iptables i dodała tylko jedną powyżej (sudo iptables -A WEJŚCIE -p tcp -m tcp --port 80 -j AKCEPTUJ). Teraz nie mogę już uzyskać dostępu do strony apache z przeglądarki.
Erik van de Ven
1
@ErikVandeVen - przepraszam, że nie wyjaśniłem tego. Inne reguły, które musiałeś dodać albo w ten sam sposób i zapisane (w tym samym czasie), albo możesz przejść do pliku /etc/sysconfig/iptablesi dodać je. Oryginalne wpisy powinny być w tym pliku /etc/sysconfig/iptables.save.
slm
Dzięki, udało mi się przywrócić iptables, kopiując iptables.save. Ale nadal nie byłem w stanie dodać reguły bez awarii i jednoczesnego otwarcia strony testowej apache w mojej przeglądarce. Najpierw przyjrzę się samouczkowi, który opublikował Riclags :)
Erik van de Ven
1
Człowieku, zupełnie nie rozumiem, dlaczego ta odpowiedź otrzymała jak dotąd taki singiel. Doskonała szczegółowa odpowiedź. Uważaj moje za tysiąc podziękowań.
Samiron
1
Ten GUI zapory ogniowej jest boskim posłaniem, nigdy wcześniej tego nie widziałem!
Matt Fletcher,
0

Niedawno zainstalowałem CentOS 6.5 jako maszynę wirtualną z tego samego powodu, aby używać go jako wirtualnego serwera WWW. W każdym razie podążałem za tą bardzo szczegółową instrukcją z wiki CentOS . Następnie, zgodnie z odpowiedzią @slm, dodałem do niego port 80 i zapisałem używając sudo /etc/init.d/iptables save.

iptables -L -v ma tę moc wyjściową:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
  214 17168 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1    44 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 169 packets, 15164 bytes)
 pkts bytes target     prot opt in     out     source               destination
baktin
źródło
0

Jeśli chcesz edytować ustawienia zapory, ale nie znasz się na niej iptables, sugeruję skorzystanie z tego system-config-firewall-tuinarzędzia, jeśli nie masz serwera X, lub skorzystanie z system-config-firewallnarzędzia GUI.

ludiegu
źródło