ユーザ用ツール

サイト用ツール


サイドバー

vps:vps_02

prisoner fw設定

prisonerのfwをfirewallとnatboxにする。

jail起動前の設定

jailerから各設定ファイルを直接編集する。各設定ファイルのプレフィックスは/usr/jail/fwとなる。

  • etc/syslog.confでconsole出力をコメント化する。
    # *.err;kern.warning;auth.notice;mail.crit              /dev/console
  • etc/crontabで不要なcronをコメント化する。
     # 1,31  0-5     *       *       *       root    adjkerntz -a
  • etc/pw.confを新規作成する。prisoner内のuid, gidとjailerのuid, gidが同じになるとセキュリティ上の問題が発生するため、uid, gidの範囲を設定する。
    minuid 2001
    maxuid 2100
    mingid 2001
    maxgid 2100
  • etc/fstabをtouchで作成する。
  • etc/nsswitch.confでdnsを使用しない設定に変更する。
     hosts: files
  • etc/hostsにfw自身と内側のホスト(jailer, prisoner)を登録する。
    127.0.0.1             localhost localhost.example.com
    <Global IP>           fw fw.example.com
    <Global IP>           fw.example.com.
    192.168.1.254         gw gw.example.com
    192.168.1.254         gw.example.com.
    192.168.1.1           web web.example.com
    192.168.1.2           desktop desktop.example.com
    192.168.1.253         vps vps.example.com
  • etc/rc.confを新規作成する。
    hostname="fw.example.com"
    ifconfig_em0="inet <Global IP> netmask <netmask>"
    ifconfig_epair0b="inet 192.168.100.254 netmask 255.255.255.0"
    gateway_enable="YES"
    defaultrouter="<default route>"
    firewall_enable="YES"
    firewall_type="/etc/fw.txt"
    firewall_nat_enable="YES"
    • ifcofig_epair0b
      jailerで作成したepair0の一端。jailerからprisonerであるfwに割り当てる。
    • firewall_type
      指定したファイルにfirewallのルールが記載される。
    • firewall_nat_enable
      FreeBSD 8.2Rの時、firewall_nat_enableが無くても稼働していた。

jail起動スクリプト

prisoner:fwを起動するスクリプトを用意する。

  • /home/<username>/Tools/S02fw.sh
    #!/bin/sh
    
    jail -c vnet name="fw" host.hostname="fw.example.com" path=/usr/jail/fw persist
    mount -t devfs devfs /usr/jail/fw/dev
    mount -t procfs proc /usr/jail/fw/proc
    
    ifconfig epair0b vnet fw
    ifconfig em0 vnet fw
    
    jexec fw /bin/sh /etc/rc
    jexec fw service netif start
    jexec fw service routing start
    jexec fw service syslogd
    jexec fw service newsyslog start
    jexec fw service ipfw start
    jexec fw service sendmail stop
    jexec fw service sendmail start

jail起動後の設定

S02fw.shでprisoner:fwを起動後、以下の設定を行う。

  • prisoner:fwへ移動
    # jexec fw /bin/sh
  • newaliasesの実行
    # newaliases
     /etc/mail/aliases: 27 aliases, longest 10byte, 275 bytes total
  • sysinstallでそれぞれ設定。
    • Root Password
    • User Management
    • Time Zone

ipfwルール設定

/etc/rc.confで指定したfirewall_type=“/etc/fw.txt”を作成する。

  • /etc/fw.txt
    -f flush
    
    # 外部からのssh接続
    add nat 1 log dst-ip <Global IP> dst-port <ssh用ポート>
    nat 1 config log redirect_port tcp <desktop IP>:22 <Global IP>:<ssh用ポート>
    add allow log dst-ip <desktop IP> 22
    
    # ssh接続戻り
    add nat 2 log tcp src-ip <desktop IP> src-port 22
    nat 2 config log redirect_port tcp <desktop IP>:22 <Global IP>:<ssh用ポート>
    
    # 内部から外部はすべて可
    add nat 9 log src-ip 0.0.0.0/0 dst-ip 0.0.0.0/0
    nat 9 config log ip <Global IP>
    add allow log src-ip <Global IP>
    • Global IP
      em0に割り当てたIP
    • ssh用ポート
      22から変更した方が無難かも
  • /etc/fw.txt作成後、有効にする為、ipfwを再起動する。
    # /etc/rc.d/ipfw restart
vps/vps_02.txt · 最終更新: 2012/05/04 12:05 by dummy@dummy