FreeBSD内で独自のファイアウォールスクリプトを作成しようとしていますが、少し問題が発生しています。誰かがもっと巧妙なことをして、例を教えてもらえないかと思っていました。
su-3.2#grep ^ firewall/etc/rc.conf firewall_enable= "YES"#ファイアウォール機能を有効にするにはYESに設定します firewall_type = "/ etc/ipfw.rules " firewall_quiet =" YES "#ルールの表示を抑制するにはYESに設定 Firewall_logging =" YES "#イベントロギングを有効にするにはYESに設定 ファイアウォール_logdeny =" YES "#に設定YESをログに記録すると、デフォルトで拒否された着信 su-3.2#cat/etc/ipfw.rules ${fwcmd} add 65000 pass all from any to any su-3.2#/ etc /rc.d/ipfw restart /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_enableがYESに設定されています。 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_enable YESに設定されます。 /etc/rc.d/ipfw:DEBUG:run_rc_command:doit:ipfw_stop net.inet.ip.fw.enable:1-> 0 /etc/rc.d/natd:DEBUG:checkyesno:natd_enableがNOに設定されています。 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_enableがYESに設定されています。 /etc /rc.d/ipfw:DEBUG:run_rc_command:start_precmd:ipfw_prestart /etc/rc.d/ipfw: DEBUG:checkyesno:dummynet_enableがNOに設定されています。 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_nat_enableがNOに設定されています。 /etc/rc.d/ipfw:DEBUG: load_kld:ipfwカーネルモジュールはすでにロードされています。 /etc/rc.d/ipfw:DEBUG:run_rc_command:doit:ipfw_start /etc/rc.d/natd:DEBUG:checkyesno:natd_enableが設定されています 1行目:不正なコマンド `$ {fwcmd} ' ファイアウォールルールが読み込まれました。 /etc/rc.d/ipfw:DEBUG:checkyesno:firewall_loggingがに設定されていますはい。 ファイアウォールロギングが有効になっています。 net.inet.ip.fw.enable:0リモートホストXXXXX.XXXからの読み取り:ピアによって接続がリセットされました XXXXX.XXXへの接続が閉じられました。 mbp:〜alexus $
${fwcmd}
を失います。あなたのファイルは引数としてipfwに提供されています。
ipfw [-cfnNqS] [-p preproc [preproc-flags]] pathname
構成を容易にするために、最後の概要行に示すように、ipfwを使用して処理されるファイルにルールを入れることができます。絶対パス名を使用する必要があります。ファイルは1行ずつ読み取られ、引数としてipfwユーティリティに適用されます。
ipfw /etc/ipfw.rules
を実行してみてください
ヒント: rc.dスクリプト(例:/usr/local/etc/rc.d/ipfw.sh)からIPFWにルールを入力する必要があります。/etc/ipfw.rulesは使用しないでください。 、それはまったく柔軟ではありません
基本的に、glebが言ったことを実行します。
rc.conf
でスクリプトを指定する場合は、ファイルの名前を変更し、次のようなものを使用する必要があります:firewall_script="/etc/ipfw.conf"
詳細については、/etc/defaults/rc.conf
を参照してください。
また、${fwcmd}
を定義する必要があります。通常、次のようなものです。
fwcmd="/sbin/ipfw"
詳細については、こちらを参照してください: http://www.freebsd.org/doc/en/books/handbook/firewalls-ipfw.html