web-dev-qa-db-ja.com

Linux上のすべてのネットワークをbashから「シャットオフ」する方法は?

ネットワークカードを介して通信するマシンの機能を「オフ」にして、すべてのネットワークを効果的にシャットダウンするbash/Shellスクリプトを作成したいと思います。コマンドラインから:

# To turn all networking off
sh networking.sh OFF

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

これを行うために私が考えることができる唯一の方法は、IPTABLESを介してポートレベルで行うことですが、これまで実験したことがないので、正しい道を進んでいるのか、それとも私が基地から離れたところにいます。前もって感謝します。

4
pnongrata

ほとんどのLinuxフレーバーには、これを行うためのスクリプトがすでに付属しています。それらは起動/シャットダウンプロセスの一部です。

Fedora/RHELフレーバーでは、スクリプトは通常/etc/init.d/を介してアクセスされます。したがって、「/etc/init.d/network stop」を実行してネットワークを停止することができます。開始するには、「停止」を「開始」に置き換えます。

コマンドラインから、これらのフレーバーの設定は、serviceコマンドを使用することです:「service network stop」または「service network start」。

これらのコマンドはrootユーザーに限定されています。通常のユーザーにこのようなことを許可しないことをお勧めします。

7
dafydd

あなたが言ったように、あなたはこれのためにiptablesを使うことができます

これらのルールは、すべての着信パケットと発信パケットをドロップします

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

設定されたルールを確認するには

iptables -L

これらのルールを削除するには

iptables -D INPUT -j DROP
iptables -D OUTPUT -j DROP
1
daya