Regras Iptables dependendo da rede conectada a

1

Eu estou lutando em torno de algo que gostaria de colocar em prática. Eu uso meu laptop 18.04 no trabalho e em casa.

Eu gostaria que meu iptables descartasse todas as conexões de entrada (exceto as já estabelecidas, é claro) quando eu não estivesse em casa, mas permitiria acesso à porta 22, por exemplo, quando estou em casa.

Eu realmente não sei como lidar com esse problema, já que não sei como identificar o fato de que estou em casa diretamente em uma regra do iptables. Pensei em tentar executar um script quando uma rede está conectada, pingar um servidor distante para obter meu endereço IP público e, em seguida, liberar o iptables / definir novas regras. Eu não gosto dessa solução porque ela não está limpa e eu posso ter algumas portas abertas por alguns segundos (logo após a conexão / antes de receber o endereço IP externo), algo que eu não gosto

Você tem alguma ideia de como eu posso lidar com isso?

Obrigado

    
por Nisalon 01.10.2018 / 17:48

1 resposta

0

Você pode identificar "estar em casa" pelo seu endereço de rede e fazer:

# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP

Onde você troca o 192.168.0.0/24 pelo endereço da sua rede local em casa. Isso ainda abrirá a porta quando você estiver em uma rede com o mesmo endereço de rede e sub-rede de sua rede doméstica, portanto, escolha um que não seja muito comum.

Mas isso foi apenas para responder sua pergunta sobre como identificar "casa". Este não é um método adequado nem seguro em que você deve confiar para proteger um servidor SSH (pense em IP-Spoofing). Melhor seguir as diretrizes de segurança comprovadas, por exemplo 2FA, alterando portas comuns, usando autenticação de chave, desabilitar logins de raiz, bloqueando tentativas fracassadas, etc.

Veja isto: link

    
por 01.10.2018 / 18:02