Como “desligar” toda a rede no Linux do bash?

2

Eu gostaria de escrever um script bash / shell que "desligue" a capacidade da máquina de se comunicar através da placa de rede, desligando efetivamente toda a rede. Na linha de comando:

# To turn all networking off
sh networking.sh OFF

# Then to turn it back on
sh networking.sh ON

A única maneira que eu posso pensar em fazer isso seria no nível da porta via IPTABLES , mas nunca tendo experimentado isso antes, eu não tenho certeza se estou mesmo descendo a avenida certa ou se eu Estou fora da base. Agradecemos antecipadamente.

    
por pnongrata 23.12.2012 / 22:58

2 respostas

6

A maioria dos sabores de linux vem com scripts para fazer isso já. Eles fazem parte do processo de inicialização / desligamento.

Nos sabores do Fedora / RHEL, os scripts geralmente são acessados via /etc/init.d/ . Então, você poderia executar " /etc/init.d/network stop " para parar a rede. Para começar, substitua "start" por "stop".

Na linha de comando, a preferência por esses tipos é usar o comando service : " service network stop " ou " service network start ."

Estes comandos estão limitados ao usuário root. Eu recomendaria não permitir que usuários comuns fizessem algo assim.

    
por 23.12.2012 / 23:26
1

Como você mencionou, você pode usar o iptables para isso

Estas regras eliminarão todos os pacotes de entrada e saída

iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP

Para verificar as regras configuradas

iptables -L

Para excluir essas regras

iptables -D INPUT -j DROP
iptables -D OUTPUT -j DROP
    
por 23.12.2012 / 23:48