Filtrando com IPTABLES
Isso pode ser feito criando um conjunto de regras para o tráfego permitido e eliminando o restante.
Para OUTPUT
chain, crie regras para aceitar tráfego de loopback e tráfego para 192.168.24.0/24
network. A ação padrão é aplicada quando nenhuma regra é correspondida, defina como REJECT
.
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
iptables -P OUTPUT REJECT
Para INPUT
chain, você pode criar regras semelhantes. Permitir tráfego de loopback e rede local, descarte o restante.
Você pode corresponder o tráfego estabelecido (responder ao tráfego às conexões iniciadas pelo seu host) com uma única regra usando -m conntrack --ctstate ESTABLISHED
. Dessa forma, você não precisa alterar a cadeia quando quiser ativar o acesso à Internet. Isso funciona quando você não executa nenhum programa / daemons esperando conexões fora de sua rede local.
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -P INPUT DROP
Se você precisar permitir conexões iniciadas fora de sua rede local, precisará configurar a INPUT
chain da mesma maneira que a OUTPUT
chain e usar um mecanismo semelhante para aplicar
Para permitir acesso irrestrito à rede (acesso à WAN), altere a ação padrão para ACCEPT
. Para colocar os limites de volta, altere a ação padrão de volta para REJECT
. O mesmo efeito é alcançado adicionando / removendo -j ACCEPT
como última regra.
iptables -P OUTPUT ACCEPT
Você também pode usar o módulo iptables tempo para aceitar o tráfego em uma hora específica de um dia, caso em que você não precisa usar o cron. Por exemplo, para permitir qualquer tráfego de saída entre as 12:00 e as 13:00 com a seguinte regra:
iptables -A OUTPUT -m time --timestart 12:00 --timestop 13:00 -j ACCEPT