freebsd:freebsd_11_ipfw

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
freebsd:freebsd_11_ipfw [2019-02-15 19:26]
Decomo 作成
freebsd:freebsd_11_ipfw [2020-03-23 08:01] (現在)
Decomo
行 7: 行 7:
   * FreeBSD 11.2-RELEASE-p7   * FreeBSD 11.2-RELEASE-p7
     * ipfw自体は相当昔から搭載されているので、かなり前のバージョンでも殆ど一緒だと思われる。     * ipfw自体は相当昔から搭載されているので、かなり前のバージョンでも殆ど一緒だと思われる。
 +  * FreeBSD 12.0-RELEASE-p4
  
-===== 手順 =====+===== ipfwサービスの有効化 =====
  
-==== ipfwの有効化 ==== +''/etc/rc.conf''に''firewall_enable''と、ファイヤウォールのルール設定''firewall_type''を追加する。ルール設定には下の値が指定可能。
- +
-おなじみ''/etc/rc.conf''に''firewall_enable''を追加する。''firewall_type''には下の値が指定可能。+
  
 ^  firewall_type  ^  意味  ^ ^  firewall_type  ^  意味  ^
行 23: 行 22:
 | ファイルパス | ファイアウォールのルールファイルのフルパス | | ファイルパス | ファイアウォールのルールファイルのフルパス |
  
-れらデフォルトルールの設定は''/etc/rc.firewall''処理される。client, simple, workstation場合、自ネットワークなどの追加設定が必要が、変数名など全て同ファイル内に記載がある。+こでの設定値の処理は''/etc/rc.firewall''スクリプト内行われる。client, simple, workstationを指定した場合、追加で自ネットワークなどの設定が必要となるが、この時に使う変数名の解説など全て同ファイル内に記載がある。
  
-ここではひとまず''open''とし全パケットを通過させる。+ひとまず''open''とし全パケットを通過させる。
  
 <code bash> <code bash>
-echo 'firewall_enable="YES"' >> /etc/rc.conf +sysrc firewall_enable=YES 
-echo 'firewall_type="open"' >> /etc/rc.conf+sysrc firewall_type="open"
 </code> </code>
  
-ファイアウォールを起動する(もしくはマシンを再起動)。確実に''firewall_type="open"''であることを再度確認のこと。ipfwのデフォルト設定は全パケット拒否なので、特にリモートで操作している場合に大変残念なことになる…。+''firewall_type="open"''となっていることを再度確認のこと。ipfwのデフォルト設定は全パケット拒否なので、特にリモートで操作している場合に大変残念なことになる…。そして必ずシステムを再起動する。前述の通り、''firewall_type''の処理はrcスクリプトで行われるため、サービスの再起動ではopen設定が行われず、ipfwが起動したとたんに通信が遮断されてしまう
 <code bash> <code bash>
-service ipfw start+reboot
 </code> </code>
  
-''ipfw -a list''でフィルタルールが表示されれば成功+システム再起動後、''ipfw -a list''以下のようなフィルタルールが表示されればおk
  
 <code bash> <code bash>
行 55: 行 54:
 </code> </code>
  
-==== 設定ファイルからのルール読み込み ====+===== フィルタルールの設定 ===== 
 + 
 +==== ルールファイル ==== 
 + 
 +ファイルを用いたipfwのルール適用方法として、FreeBSDには2つの方法が用意されている。 
 + 
 +=== firewall_type を使う方法 === 
 + 
 +冒頭の表にあるとおり、''firewall_type''にファイルパスを指定すると''rc.firewal''でルールファイルの読み込みが行われるようになる。 
 + 
 +ルールファイルにはipfwのサブコマンドを記述する。
  
-''firewall_type''にファイルのフルパス設定すると、ルールをファイルから読み込ませる事ができる。+=== firewall_script 使う方法 ===
  
 +ファイアウォール設定スクリプト用の変数''firewall_script''にファイルパスを指定する。指定されたシェルスクリプトはrcスクリプト実行中に呼び出される。デフォルト値は''/etc/rc.firewall''が指定されており、システム標準のipfw用シェルスクリプトとなっている。
  
-=== firewall_typefirewall_script違い ===+独自のシェルスクリプトを指定するこで、ipfwのルール設定はもちろんのこと、他のファイアウォール設定が行えるようになる。
  
-''firewall_script''は、rcスクリプトが処理するファイアウォール用スクリプトファイルを表す。デフォルトでは''/etc/rc.firewall''、すなわちipfw用のスクリプトが指定されている。 
  
-''firewall_type''は''/etc/rc.firewall''スクリプトに影響する設定変数である。よって''firewall_script''が独自のスクリプトの場合、特に意味のない値となる。とはいえ、ipfw自体がシステムに食い込んでいることもあり、デフォルト値''UNKNOWN''が設定されるようになっている。 
  
 ===== 参考サイト ===== ===== 参考サイト =====
   * [[https://www.freebsd.org/doc/handbook/firewalls-ipfw.html|30.4. IPFW]]   * [[https://www.freebsd.org/doc/handbook/firewalls-ipfw.html|30.4. IPFW]]
   * [[http://www.usupi.org/info/ipfw.html|How to IPFW]]   * [[http://www.usupi.org/info/ipfw.html|How to IPFW]]
  • freebsd/freebsd_11_ipfw.1550226376.txt.gz
  • 最終更新: 2019-02-15 19:26
  • by Decomo