Porta de firewall aberta no CentOS 7

339

Estou usando o CentOS 7 e tenho que garantir que as portas 2888 e 3888 estejam abertas.

Eu li este artigo, mas isso não funcionou porque no CentOS 7 OS não há iptables savecomando.

Alguém me disse que o URL acima não é válido para o CentOS 7. e devo seguir isso . Mas este artigo não está claro para mim sobre exatamente qual comando eu preciso executar.

Eu também encontrei

firewall-cmd --zone=public --add-port=2888/tcp 

mas isso não sobrevive às reinicializações.

Então, como posso abrir as portas e fazê-lo sobreviver a reinicializações?

Não sabe muito
fonte
Stack Overflow é um site para perguntas sobre programação e desenvolvimento. Esta questão parece estar fora de tópico, porque não se trata de programação ou desenvolvimento. Consulte Quais tópicos posso perguntar aqui na Central de Ajuda. Talvez o Superusuário ou o Unix e Linux Stack Exchange sejam um lugar melhor para perguntar.
JWW

Respostas:

653

Use este comando para encontrar suas zonas ativas:

firewall-cmd --get-active-zones

Dirá public, dmz ou outra coisa. Você deve se inscrever apenas nas zonas necessárias.

No caso de tentativa pública:

firewall-cmd --zone=public --add-port=2888/tcp --permanent

Lembre-se de recarregar o firewall para que as alterações entrem em vigor.

firewall-cmd --reload

Caso contrário, substitua public por sua zona, por exemplo, se sua zona for dmz:

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent
ganeshragav
fonte
29
Eu usei esse comando, mas não funcionou para mim, o que estava mudando --zone=dmzpara #--zone=public
Tom Hall
2
Sim, é útil usar o público também. Por favor, verifique o comando abaixo da Sotsir para correção também.
ganeshragav
23
Nenhuma das duas principais respostas aqui realmente explica o que --permanentfaz, elas apenas dizem para fazê-lo. Ambas seriam respostas mais completas e úteis se fosse explicado como a resposta funciona. De um dos recursos do OP: "As regras podem ser tornadas permanentes adicionando a opção --permanent [...]. Se as regras não forem permanentes, elas precisam ser aplicadas sempre que após o recebimento do início, reinicie ou recarregue a mensagem do firewalld usando o D-BUS ".
DKen
9
Não ative cegamente as portas em todas as zonas até encontrar a correta, por favor. Use firewall-cmd --get-active-zonespara descobrir qual zona é usada no seu sistema. Além disso, man firewall-cmd.
basic6
11
Ao ler a documentação do fedora, ele afirma The --permanent option needs to be the first option for all permanent calls. Não recebi nenhum erro ao usar o descrito acima, mas não tenho certeza se isso pode causar problemas a outra pessoa.
19416 Marc
113

A resposta de ganeshragav está correta, mas também é útil saber que você pode usar:

firewall-cmd --permanent --zone=public --add-port=2888/tcp 

mas se for um serviço conhecido, você pode usar:

firewall-cmd --permanent --zone=public --add-service=http 

e recarregue o firewall

firewall-cmd --reload

[Resposta modificada para refletir o comentário de Martin Peter, a resposta original tinha --permanentno final da linha de comando]

Sotsir
fonte
8
Eu não confiaria em usar a --permanentopção no final da declaração. A documentação indica explicitamente que essa deve ser a primeira opção.
Martin Peter
11
O @MartinPeter man firewall-cmdnão fornece essa indicação na minha máquina (Fedora 21).
Jonathon Reinhart
@JonathonReinhart Estou me referindo ao do Fedora FirewallD Wiki afirmando: The --permanent option needs to be the first option for all permanent calls.
Martin Peter
dá-me não firewallD correndo
Rahul Tathod
50

O CentOS (RHEL) 7 mudou o firewall para usar firewall-cmduma noção de zonas que é como uma versão do Windows de redes pública, doméstica e privada. Você deve procurar aqui para descobrir qual você acha que deve usar. O EL7 usa publicpor padrão, e é isso que meus exemplos abaixo usam.

Você pode verificar com qual zona está usando firewall-cmd --list-alle alterá-la firewall-cmd --set-default-zone=<zone>.

Você saberá em que zona permitir um serviço (ou porta) em:

firewall-cmd --permanent --zone=<zone> --add-service=http

firewall-cmd --permanent --zone=<zone> --add-port=80/tcp

Você pode verificar se a porta foi realmente aberta executando:

firewall-cmd --zone=<zone> --query-port=80/tcp

firewall-cmd --zone=<zone> --query-service=http

De acordo com a documentação ,

Ao fazer alterações nas configurações do firewall no modo Permanente, sua seleção só entrará em vigor quando você recarregar o firewall ou o sistema reiniciar.

Você pode recarregar as configurações de firewall com: firewall-cmd --reload.

Rick Smith
fonte
26

Fedora, fez isso via iptables

sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT
sudo service iptables save

Parece funcionar

Joviano Dias
fonte
23

Para visualizar portas abertas, use o seguinte comando.

firewall-cmd --list-ports

Usamos o seguinte para ver serviços cujas portas estão abertas.

firewall-cmd --list-services

Usamos o seguinte para ver serviços cujas portas estão abertas e ver portas abertas

firewall-cmd --list-all

Para adicionar um serviço ao firewall, usamos o comando a seguir; nesse caso, o serviço usará qualquer porta para abrir no firewall.

firewall-cmd --add-services=ntp 

Para que este serviço seja permanentemente aberto, usamos o seguinte comando.

firewall-cmd —add-service=ntp --permanent 

Para adicionar uma porta, use o seguinte comando

firewall-cmd --add-port=132/tcp  --permanent

Para executar o firewall deve ser recarregado usando o seguinte comando.

firewall-cmd --reload

Ya Ali

Hasan Barary
fonte
Acima "firewall-cmd -add-service = NTP --permanent" deve ser alterada como "firewall-cmd --add-service = NTP --permanent"
Maduranga Siriwardena
14

Embora ganeshragav e Sotsir forneçam abordagens corretas e diretamente aplicáveis, é útil observar que você pode adicionar seus próprios serviços /etc/firewalld/services. Para inspiração, veja /usr/lib/firewalld/services/onde estão localizados os serviços predefinidos do firewalld.

A vantagem dessa abordagem é que, mais tarde, você saberá por que essas portas estão abertas, conforme descrito no arquivo de serviço. Além disso, agora você pode aplicá-lo a qualquer zona sem o risco de erros de digitação. Além disso, as alterações no serviço não precisarão ser aplicadas a todas as zonas separadamente, mas apenas ao arquivo de serviço.

Por exemplo, você pode criar /etc/firewalld/services/foobar.xml:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>FooBar</short>
  <description>
    This option allows you to create FooBar connections between
    your computer and mobile device. You need to have FooBar
    installed on both sides for this option to be useful.
  </description>
  <port protocol="tcp" port="2888"/>
  <port protocol="tcp" port="3888"/>
</service>

(Para obter informações sobre a sintaxe, faça man firewalld.service.)

Depois que esse arquivo é criado, você pode firewall-cmd --reloaddisponibilizá-lo e adicioná-lo permanentemente a alguma zona com

firewall-cmd --permanent --zone=<zone> --add-service=foobar

seguido de firewall-cmd --reloadpara ativá-lo imediatamente.

equaeghe
fonte
6

Para visualizar portas abertas, use o seguinte comando:

firewall-cmd --list-ports

Usamos o seguinte para ver serviços cujas portas estão abertas:

firewall-cmd --list-services

Usamos o seguinte para ver serviços cujas portas estão abertas e ver portas abertas:

firewall-cmd --list-all

Para adicionar um serviço ao firewall, usamos o seguinte comando; nesse caso, o serviço usará qualquer porta para abrir no firewall:

firewall-cmd --add-services=ntp 

Para que este serviço seja permanentemente aberto, usamos o seguinte comando:

firewall-cmd -add-service=ntp --permanent 

Para adicionar uma porta, use o seguinte comando:

firewall-cmd --add-port=132/tcp  --permanent
Hasan Barary
fonte
4

As principais respostas aqui funcionam, mas achei algo mais elegante na resposta de Michael Hampton a uma pergunta relacionada. O "novo" (firewalld-0.3.9-11 +) --runtime-to-permanentopção para firewall-cmdpermite criar regras de tempo de execução e testá-los antes de fazer-los permanentes:

$ firewall-cmd --zone=<zone> --add-port=2888/tcp
<Test it out>
$ firewall-cmd --runtime-to-permanent

Ou para reverter as alterações somente de tempo de execução:

$ firewall-cmd --reload

Veja também o comentário de Antony Nguyen . Aparentemente, o firewall-cmd --reload pode não funcionar corretamente em alguns casos em que as regras foram removidas. Nesse caso, ele sugere reiniciar o serviço firewalld:

$ systemctl restart firewalld
Neal Gokli
fonte
1

Se você possui várias portas para permitir no Centos 7 FIrewalld, podemos usar o seguinte comando.

#firewall-cmd --add-port={port number/tcp,port number/tcp} --permanent

#firewall-cmd --reload


And check the Port opened or not after reloading the firewall.


#firewall-cmd --list-port


For other configuration [Linuxwindo.com][1]
Vinay Patil
fonte
0

Se você estiver familiarizado com o serviço iptables, como no centos 6 ou anterior, ainda poderá usar o serviço iptables pela instalação manual:

passo 1 => instalar o epel repo

yum install epel-release

passo 2 => instalar o serviço iptables

yum instalar iptables-services

passo 3 => parar o serviço firewalld

systemctl stop firewalld

etapa 4 => desativar o serviço firewalld na inicialização

systemctl desativar firewalld

passo 5 => inicie o serviço iptables

systemctl start iptables

etapa 6 => ativar o iptables na inicialização

systemctl enable iptables

finalmente, agora você pode editar sua configuração do iptables em / etc / sysconfig / iptables.

Então -> editar regra -> recarregar / reiniciar.

gosta de centos mais antigos com a mesma função que o firewalld.

dek.tiram
fonte
0

O Firewalld é um pouco não intuitivo para o veterano do iptables. Para aqueles que preferem um firewall acionado por iptables com sintaxe semelhante a iptables em uma árvore facilmente configurável, tente substituir o firewalld pelo fwtree: https://www.linuxglobal.com/fwtree-flexible-linux-tree-based-firewall/ e, em seguida, faça o seguinte:

 echo '-p tcp --dport 80 -m conntrack --cstate NEW -j ACCEPT' > /etc/fwtree.d/filter/INPUT/80-allow.rule
 systemctl reload fwtree 
Eric Wheeler
fonte
0

Olá no Centos 7 firewall-cmd. Sim, corrija se você usar o firewall-cmd --zone = public --add-port = 2888 / tcp, mas se você recarregar a firewall-cmd --reload

sua configuração não será salva

você precisa adicionar chave

firewall-cmd --permanent --zone = public --add-port = 2888 / tcp

Inv0k-er
fonte