freebsd:freebsd_11_ipfw

差分

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

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

両方とも前のリビジョン 前のリビジョン
freebsd:freebsd_11_ipfw [2019-03-05 20:09]
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  ^  意味  ^
行 21: 行 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>
行 53: 行 54:
 </code> </code>
  
-===== 設定ァイからのルール読み込み =====+===== フルールの設定 =====
  
-''firewall_type''にファイルのフルパスを設定すると、ルールファイルから読み込ませる事ができる。+==== ルールファイル ====
  
-==== firewall_typeとfirewall_script違い ====+ファイルを用いたipfwのルール適用方法として、FreeBSDには2つの方法が用意されている。 
 + 
 +=== firewall_type を使う方法 === 
 + 
 +冒頭の表にあるとおり、''firewall_type''にファイルパスを指定する''rc.firewal''でルールファイル読み込みが行われるようになる。 
 + 
 +ルールファイルにはipfwのサブコマンドを記述する。 
 + 
 +=== firewall_script を使う方法 === 
 + 
 +ファイアウォール設定スクリプト用の変数''firewall_script''にファイルパスを指定する。指定されたシェルスクリプトはrcスクリプト実行中に呼び出される。デフォルト値は''/etc/rc.firewall''が指定されており、システム標準のipfw用シェルスクリプトとなっている。 
 + 
 +独自のシェルスクリプトを指定することで、ipfwのルール設定はもちろんのこと、他のファイアウォールの設定が行えるようになる。
  
-  ? ''firewall_script'' 
-  : rcスクリプト用のファイアウォール設定ファイルを指定する変数。デフォルトは''/etc/rc.firewall''、すなわちipfw用のファイルが指定されている。 
-  ? ''firewall_type'' 
-  : ''/etc/rc.firewall''スクリプト用の変数。指定する値は前述の表の通り。従って''firewall_script''が独自のスクリプトの場合、特に意味のない値となる。とはいえ、ipfw自体がシステムに食い込んでいることもあり、デフォルトで''UNKNOWN''が設定されている。 
  
-ざっくり言うと、firewall_scriptには設定用のシェルスクリプトファイル、firewall_typeにはipfwのサブコマンドファイルを指定することになる。 
  
 ===== 参考サイト ===== ===== 参考サイト =====
   * [[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.txt
  • 最終更新: 2020-03-23 08:01
  • by Decomo