Porta aberta 80 no CentOS 6.5

14

Estou tentando abrir a porta 80 no meu CentOS 6.5, na minha máquina virtual, para poder acessar o apache no navegador da minha área de trabalho.

insira a descrição da imagem aqui

Se você der uma olhada na captura de tela acima .... Adicionei a linha antes da seta azul, como está escrito em http://www.cyberciti.biz/faq/linux-iptables-firewall-open-port- 80 / Agora eu recebo a página de teste do apache ao inserir o endereço IP no meu navegador, mas ainda assim, ao reiniciar as tabelas de ip, recebo um "FAILED" quando o CentOS tenta aplicar a nova regra.

Alguém sabe uma solução para isso? Ou preciso ignorar a falha?

Erik van de Ven
fonte

Respostas:

28

Em vez de digitar as regras manualmente, você pode usar iptablespara adicionar as regras às cadeias apropriadas e salvá-las. Isso permitirá que você depure as regras ao vivo, confirmando que estão corretas, em vez de precisar adicioná-las ao arquivo como você parece estar fazendo.

Para abrir a porta 80, faço isso:

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

O último comando salvará as regras adicionadas. Essa é a regra que eu usaria para abrir a porta para o tráfego da web.

Por que sua regra está causando problemas

Se você observar a regra que está tentando usar:

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

Possui uma cadeia chamada "RH-Firewall-1-INPUT". Se você não possui essa cadeia ou um link da INPUTcadeia para essa cadeia, essa regra nunca será alcançável. Essa regra provavelmente pode ser assim:

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

Ou sua INPUTcadeia deve vincular a essa cadeia RH-Firewall-1-INPUTcom uma regra como esta:

$ 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
....

NOTA: Você pode ver quais cadeias você possui com este comando:

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

Além disso, os estados podem precisar ser modificados para que as conexões existentes também sejam permitidas.

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

Além disso, ao usar a -Aopção, você anexa a regra à cadeia INPUT. Se houver outras regras anteriores que estejam bloqueando e / ou interferindo no alcance dessa regra, ela nunca será executada. Portanto, convém movê-lo para o topo inserindo, em vez de anexar, o seguinte:

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

Usando a GUI

Os firewalls podem ser bestas complicadas. Portanto, você pode tentar a TUI (as TUI são GUIs do terminal).

$ sudo system-config-firewall-tui

Você pode então percorrer as várias telas configurando iptablesregras.

            ss # 1

            ss # 2

Referências

slm
fonte
A última regra excluiu todas as regras anteriores no meu arquivo iptables e adicionou apenas a anterior (sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT). Agora também não consigo acessar a página apache no meu navegador.
Erik van de Ven
1
@ErikVandeVen - desculpe, não deixei isso mais claro. As outras regras que você tinha precisariam ser adicionadas da mesma maneira e salvas (no mesmo horário), ou você pode ir para o arquivo /etc/sysconfig/iptablese adicioná-las. Suas entradas originais devem estar neste arquivo /etc/sysconfig/iptables.save,.
slm
Obrigado, consegui restaurar o iptables copiando o iptables.save. Mas eu ainda não consegui adicionar a regra sem obter uma falha e poder abrir a página de teste do apache no meu navegador, ao mesmo tempo. Vou dar uma olhada no tutorial whcih riclags publicou, em primeiro lugar :)
Erik van de Ven
1
Cara, eu realmente não entendi por que essa resposta recebeu um single ainda. Excelente resposta detalhada. Considere o meu como mil agradecimentos.
Samiron 23/03
1
Essa GUI do firewall é um envio divino, nunca vi isso antes!
Matt Fletcher
0

Instalei recentemente o CentOS 6.5 como uma máquina virtual pelo mesmo motivo, para usar como um servidor web virtual. Enfim, eu segui este tutorial muito detalhado do wiki do CentOS . Então, conforme a resposta do @slm, adicionei a porta 80 e salvei usando sudo /etc/init.d/iptables save.

iptables -L -v tem esta saída:

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
fonte
0

Se você quiser editar as configurações do firewall, mas não estiver familiarizado iptables, sugiro que você use a system-config-firewall-tuiferramenta, se você não tiver um servidor X, use o system-config-firewall, que é a ferramenta da GUI.

ludiegu
fonte