Para o seu cenário, você precisa configurar as regras iptables
para isso. Você também pode usar o firewalld
, que é um comando rico para gerenciar o firewall no Linux. Eu vou explicar iptables
aqui.
O Iptables é para filtragem de pacotes ipv4 / ipv6 para o kernel do Linux. Em iptables existem três tabelas padrão, cada uma delas contendo três cadeias padrão:
- Entrada
- Saída
- Encaminhar
O comando Iptables está seguindo com opções diferentes. Para o seu cenário como um exemplo, você precisa escrever os seguintes comandos:
$ iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -s x.x.x.x -j ACCEPT
$ iptables -A INPUT -j DROP
Esses comandos aceitam apenas a conexão ssh da porta 22 do IP x.x.x.x e todos os pacotes recebidos serão descartados. Você pode fazê-lo para qualquer IP e qualquer porta que você deseja responder ao servidor. Para pacotes recebidos que você não sabe quais estados usam RELACIONADOS e INVALID em --state
.
Você deve observar que iptables
é ordem de regra sequencial. Por exemplo, se você bloquear qualquer coisa, então aceite algumas, então você não obteria nenhum resultado, porque quando o pacote de entrada corresponde a qualquer regra, outras regras não seriam consideradas.