Desejo bloquear a porta 22 para usuários em minha rede local. Meu servidor linux controla o tráfego com iptables
. Quais regras são as mais apropriadas?
iptables -A INPUT -i $LAN -p tcp --sport 22 -j DROP
ou
iptables -A INPUT -i $LAN -p tcp --dport 22 -j DROP
Importante: As regras são apenas um exemplo. Vocês podem escolher qualquer porta de exemplo em sua resposta
Eu só quero saber quais são os cenários em que dport
e sport
são usados na INPUT
cadeia. A resposta pode estar com outros exemplos
PS: A pergunta visa bloquear o acesso dos usuários da rede LAN local a esta porta (ou qualquer outra), portanto a regra deve ser apenas para a interface da rede LAN local (não WAN). $LAN
é uma variável da interface LAN (por exemplo enp2s1
, eth1
, etc).
Normalmente, você deseja restringir o acesso aos serviços em sua máquina ou de sua máquina. Como o pacote inicial em um handshake TCP é do cliente para o servidor, é mais comum usar
dport
naINPUT
cadeia para controlar o acesso a um serviço local ou usardport
naOUTPUT
cadeia para controlar o acesso a um serviço de remoção (do host local ).A maioria dos protocolos baseados em TCP não se preocupa com a porta à qual o cliente está vinculado. Você pode, como administrador, permitir apenas o acesso a um serviço local a partir de uma porta de cliente específica (lembre-se de que, por padrão no Linux, os números de porta abaixo de 1024 exigem privilégio extra para vincular), mas isso não é muito comum.
Irá bloquear o dataframe INPUT de um servidor SSH. Então você não conseguirá acessar um servidor SSH externo.
Irá bloquear o dataframe INPUT de um cliente SSH. Assim, ninguém poderá acessar seu servidor SSH. Eu acho que é o que você quer.
Nota: A maneira usual de proteger um host é bloquear tudo e permitir o que você precisa. Talvez
ufw
deva ajudá-lo a fazer sua proteção. É um firewall de nível mais alto que pode ser útil para a maioria das necessidades. (ufw
lida com a direção de uma conexão.iptable
, com a direção dos dataframes em um nível inferior).