Você também pode usar iptables
para permitir / restringir pelas portas udp / tcp nas interfaces desejadas.
Por exemplo, vamos introduzir uma regra na tabela filter
na cadeia OUTPUT
para permitir todo o tráfego na porta tcp / udp 143 (IMAP).
(sudo) iptables -A OUTPUT -o eth0 -p udp --destination-port 143 -j ACCEPT
(sudo) iptables -A OUTPUT -o eth0 -p tcp --destination-port 143 -j ACCEPT
(sudo) iptables -A OUTPUT -o eth0 -j DROP
Acho que o IMAP passa pelo TCP, mas apenas no caso de eu restringir também o protocolo UDP. Para este assunto, estou assumindo sua interface para a internet como eth0
. E que o seu cliente de e-mail usa o protocolo IMAP para conectar um servidor de e-mail remoto. Eu apenas tentei por mim e só tenho acesso ao servidor de email. Lembre-se de que a ordem das regras é importante; caso contrário, não fará o que você espera.
Editar # 1: Como você pediu no comentário. Para restaurar o tráfego da Internet, basta remover as regras que você acabou de inserir. Você pode fazer isso da seguinte maneira:
Longo caminho:
(sudo) iptables -D OUTPUT -o eth0 -p udp --destination-port 143 -j ACCEPT
(sudo) iptables -D OUTPUT -o eth0 -p tcp --destination-port 143 -j ACCEPT
(sudo) iptables -D OUTPUT -o eth0 -j DROP
Caminho curto:
(sudo) iptables -nvL --line-numbers
Executar o comando acima mostrará na frente de cada regra um número correspondente que ajudará a remover as regras usando esse número em vez de reescrever a regra inteira. Um exemplo de saída seria o seguinte:
Chain OUTPUT (policy ACCEPT 73 packets, 8766 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT udp -- * eth0 0.0.0.0/0 0.0.0.0/0 udp dpt:143
E depois, para remover a regra, basta executar este comando:
(sudo) iptables -D OUTPUT 1
O caminho curto também é recomendado se você não tiver configurado a regra e não souber exatamente como foi. Embora você possa reconstruir a regra a partir da saída dos parâmetros iptables
with -nvL
.
Observação: essa é a maneira non-persistent
de usar iptables
, o que significa que você não manterá as regras se reinicializar o sistema. Se você quiser que suas regras sejam persistent
, a maneira mais fácil é executar o seguinte:
(sudo) iptables-save > /etc/iptables/rules.v4
que salva / despeja suas regras atuais em /etc/iptables/rules.v4
. Então, após a reinicialização do iptables, a configuração armazenada seria lida. Por IPv6
você usa esse outro arquivo rules.v6
. Tenha em mente que isso vale para Debian
, onde você precisa instalar um pacote adicional. Por favor, verifique este guia para uma explicação detalhada. Para o Ubuntu eu encontrei este outro guia . Para outros sistemas, você pode navegar na Internet, mas o princípio é o mesmo: You dump your current rules to file and set up a script at boot time to apply those saved rules to the current iptables configuration.