https://help.ubuntu.com/community/Router/Firewall
上記のリンクには、ファイアウォールスクリプトが記載されています。このスクリプトをUbuntu 10.0.4デスクトップにインストールするにはどうすればよいですか?
https://help.ubuntu.com/community/Router/Firewall
上記のリンクには、ファイアウォールスクリプトが記載されています。このスクリプトをUbuntu 10.0.4デスクトップにインストールするにはどうすればよいですか?
回答:
「高度な」ファイアウォールスクリプトは、内部インターフェイスと外部インターフェイスの両方が起動した後に実行されることになっているシェルスクリプトです。
最初に、スクリプトをどこかに置き、たとえば/etc/init.d/local/my_firewall_script
、実行可能に#!/bin/sh
し、スクリプトファイルの最初の行として追加します。
次に、両方のインターフェイスが起動した後にスクリプトが実行されるように調整する必要があります。次の2つのオプションがあります。
新興企業を通じて。これは、両方のインターフェイスが起動しているときにスクリプトを実行する必要があるため、私の好みです。/etc/init/my_firewall.conf
次のようなものを含むファイルを作成します。
description "My firewall script"
start on (net-device-up IFACE=br0 and net-device-up IFACE=eth0)
console output
pre-start exec /etc/init.d/local/my_firewall_script
これは完全にテストされていません。また、私はアップスタートの経験がないため、ファイルを調整する必要があるかもしれません。また、あなたに影響を与える可能性のあるnet-device-upイベントに関連するバグがあります。
ifupスクリプトを通じて。2番目のインターフェイスが起動したときにスクリプトを実行する必要があるため、これは少し厄介です。/etc/network/if-up.d/my_firewall
次のようなものを含むファイルを作成します(テストなし):
#!/bin/sh
if [ "$IFACE" = "br0" ] || [ "$IFACE" = "eth0" ]; then
if [ -n "$(ip addr show br0 | grep '^ *inet ')" ] 2>/dev/null &&
[ -n "$(ip addr show eth0 | grep '^ *inet ')" ] 2>/dev/null; then
/etc/init.d/local/my_firewall_script
fi
fi
単一のインターフェイスがあった場合、またはインターフェイスの1つが常に他のインターフェイスの後に常に起動するという保証があった場合、このメソッドはより単純で優先されますeth0
。
#!/bin/sh
if [ "$IFACE" = "et0" ]; then
/etc/init.d/local/my_firewall_script
fi
ここに記載されているスクリプトは、特定のセットアップにかなり固有のものであることに注意してください。これは、比較的高度なスクリプトの例です。少なくともIPアドレスの範囲とおそらくインターフェースの名前に合わせて、セットアップに合わせて調整する必要があります。
動作するメソッドを見つけたら、Wikiページにその方法の説明を書くことをお勧めします。
set -x; exec >/var/tmp/ 2>&1
ifupスクリプトの先頭に追加します。するとどうなりますかifdown eth0; ifup eth0
?
以下に、選択可能ないくつかのオプションを提供する包括的なドキュメントを示します。