FreeBSDでCATV&家庭内LAN&PPPサーバー

8.ソフトのインストール&設定 [目次へ]

8.1 インストールを楽にするために一時的にrootでのftpを可能にする

/etc/ftpusers の変更
 #ee /etc/ftpusers

   #root (#をつける)  ←セキュリティのため後で戻した方が良い

  #reboot

8.2 wide-dhcp-1.4.0p1 (DHCPサーバ&クライアント)のインストール&設定

 ed1は、wide-dhcpのなかのdhcpc(dhcpクライアント)を使用して、アドレスを取得できるようにする。起動時は、192.168.13.7という仮のアドレスを設定しているので、それを置き換えるようにします。

 1) wide-dhcp-1.4.0p1のインストール

  #/stand/sysinstall
  「c.Configure」「P.Packages」「1.CD-ROM」[All]「[X]wide-dhcp-1.4.0p1」
  「OK」「Install」「OK」
  インストールが終了したら「Exit」「OK」「Exit Install」

 2)カーネルを再構築

 カーネルに bpfilter を追加してなければ、"pseudo-device bpfilter 4" を追加してカーネルを再構築する。すでに前項でbpfilter 4にしていればカーネルの再構築ありません。

  bpf0〜bpf3 のデバイスファイルがあるか確認する

  #cd /dev
  #ls bpf* ←でbpf0〜bpf3 のデバイスファイルがあるか確認する

  なければ

  ./MAKEDEV bpf0
  ./MAKEDEV bpf1 bpf2 bpf3 ←で3つ一度にできる

  ついでに同様にtun0〜tun3 のデバイスファイルがあるか確認する(dhcpとは関係ないが)

  #cd /dev
  #ls tun* ←でtun0〜tun3 のデバイスファイルがあるか確認する

  なければ

  ./MAKEDEV tun0
  ./MAKEDEV tun1 tun2 tun3 ←で3つ一度にできる

 3) DHCP Server が起動するようにSetup

 WIDE-DHCP の設定は /etc/dhcpdb.pool と /etc/dhcpdb.relay という2つのファイルで行なう。
 relay の方は、今回の場合はリレーエージェントの設定の必要がないので、0バイトファイルとして作成する。

  #touch /etc/dhcpdb.relay

/etc/dhcpdb.pool の変更
 #ee /etc/dhcpdb.pool

   # define a global entry which specifies the stuff every host uses.
   global:!snmk=255.255.255.0:tmof=32400:

   # define different master entries for each subnet.
   internal:tblc=global:rout=192.168.13.11:dht1=500:dht2=850:\(←半角)
       :brda=192.168.13.255:\(←半角)
       :dnsv=210.ddd.nnn.sss(CATV側のDNS)

   # entries for dynamic / automatic allocation (DHCP)
   1001: :ipad=192.168.13.32:dfll=3600:maxl=7200:tblc=internal:
   1002: :ipad=192.168.13.33:dfll=3600:maxl=7200:tblc=internal:
   1003: :ipad=192.168.13.34:dfll=3600:maxl=7200:tblc=internal:
   1004: :ipad=192.168.13.35:dfll=3600:maxl=7200:tblc=internal:

  上記のように、192.168.13.32〜192.168.1.35 の 4つのアドレスを DHCP アドレスに割り当てる。



  snmk:割り当てられるIPアドレスのサブネット
  tmof:UTCからのオフセットを秒数で示す
  tblc:別エントリへの参照
  rout:クライアントのいるサブネット上のルータのIPアドレスのリスト
  dht1:DHCP クライアントがユニキャストにより割り当て期限の延長を開始する時期を指定する
  (WIDE-DHCPでは、サーバが返す割り当て期間に対する千分率で示す)
  dht2:DHCP クライアントがブロードキャストにより割り当て期限の延長を開始する時期を指定する
  (WIDE-DHCPでは、サーバが返す割り当て期間に対する千分率で示す)
  brda:クライアントの接続されたサブネットのブロードキャスト・アドレス
  dnsv:DNSサーバのIPアドレスのリスト
  nmsv:nameサーバのIPアドレスのリスト
  ipad: 割り当てるIPアドレス
  dfll:デフォルトの割り当て期間
  maxl:許容する最大の割り当て期間を秒数で記述

  起動時に、DHCP サーバ dhcps を起動するようにrc.localに追加する。

/etc/rc.local の変更
 #ee /etc/rc.local

    echo -n 'dhcps setup'
    /usr/local/sbin/dhcps ep0

   を追加する。(ep0は内部LAN側)

 4) DHCP Client が起動するようにSetup

/etc/rc.local の変更
 #ee /etc/rc.local

   echo -n 'dhcpc setup'
   /usr/local/sbin/dhcpc -r -n ed1

  を追加する。(ed1は外部CATV側)

  -r:/etc/resolv.confを、dhcpサーバーから知らされたDNSサーバーアドレスに書き換える
  -n:クライアントのホスト名をdhcpサーバーから知らされた名前に書き換える。

  これにより、ed1に192.168.13.7 を仮設定しておいたものを、FreeBSDの立ち上げ時に、
  CATVのグローバルのIPアドレスをCATVのDHCPサーバーからのグローバルなIPアドレスに置き換える。

  #ls -l /usr/local/etc/rc.d で、dhcp関係の*.shがないことを確認して、もしあればどこかに移動してください。
  #mkdir /usr/sato
  #mv /usr/local/etc/rc.d/wide-dhcps.sh.sample /usr/sato/wide-dhcps.sh.sample

 5) 確認

  #ifconfig -a でed1のIPアドレスを確認する 192.168.13.7のはずです
  #/usr/local/sbin/dhcpc -r -n ed1
  #ifconfig -a でed1のIPアドレスを確認する 210.rrr.uuu.abcのはずです

  OKなら

  #reboot し、#ifconfig -a で、ed1 がDHCPからグローバルなアドレスが割り当てられているかを確認する。
  pingがep0,ed1のどちらも通るか確認する。

  #ping -c 3 210.rrr.uuu.ttt (CATVのルータなどにpingを3回くらいかけてみる)
  #ping -c 3 192.168.13.1 (MN128SOHOのアドレスなどにpingを3回くらいかけてみる)

/etc/rc.local の変更
 #ee /etc/rc.local

  いつもFreeBSD起動時にチェックできるように、/etc/rc.localの最後に

  netstat -rn
  ping -c 3 210.rrr.uuu.ttt
  ping -c 3 192.168.13.1
  ifconfig -a
  tcpdump -i ed1 -e

  を入れておくと良いかも、、、

8.3 ip_fil3.2.10.tar.gz (IP Filter)のインストール&設定

  IP Filter Current version: 3.2.10
   http://coombs.anu.edu.au/~avalon/

  ip_fil3.2.10.tar.gzを、Windowsで1.44MBのFDにダウンロードする。

 1) IP Filterのダウンロード&コピー

  #mount -t msdos /dev/fd0 /mnt
  #cp /mnt/ip_fil3.2.10.tar.gz /
  #cd /
  #tar zxvf ip_fil3.2.10.tar.gz で /ip_fil3.2.10 が解凍される
  #mv /ip_fil3.2.10 /usr/local/bin/
  #umount /mnt
  #ee /usr/local/bin/ip_fil3.2.10/INST.FreeBSD-2.2 でインストール方法を確認する。

 2) IP Filterのインストール

  1.#cd /usr/src/sys/i386/conf
   #cp MYKERNEL FIREWALL
   #config FIREWALL

  2.#cd /usr/local/bin/ip_fil3.2.10
   #make freebsd22 IPFILKERN=FIREWALL

  3.#make install-bsd

  4.#FreeBSD-2.2/minstall
   Kernal configuration to update [FIREWALL] [returnキー]

  5.#cd /usr/src/sys/i386/conf
   #config FIREWALL
   #cd /usr/src/sys/compile/FIREWALL
   #make depend;make

  6.#make install

  7./etc/rc.local に追加する

/etc/rc.local の変更
 #ee /etc/rc.local

  modload /lkm/if_ipl.o         ←モジュールを読み込む
  ipnat -f /etc/natrules        ←NAT 変換ルールを読み込む
  sysctl -w net.inet.ip.forwarding=1  ←ルーティングを有効化

  8./etc/natrules を次のように作成する

/etc/natrules の変更
 #ee /etc/natrules

  map ed1 192.168.13.0/24 -> 210.rrr.uuu.abc/32 portmap tcp/udp 10000:65000

  ep0のプライベートの192.168.13.0/24(192.168.13.1〜192.168.13.254までの254台分)までの
  IPアドレスをed1のグローバルのdhcpcで割り当てられたアドレスに変換する。

  ed1はNICの外部CATV側
  192.168.13.0はep0の内部側
  210.rrr.uuu.abc は、dhcpcで割り当てられたグローバルなアドレスにする。
  #ifconfig -a で確認できる(ed1のアドレス) これは、自動的にならないので強制的に入力する。

  注)ed1のdhcpcからのアドレスが変わったら210.rrr.uuu.abcを変更すること。

  DHCPCによるIPアドレス配給が変わっても
  map ed1 192.168.13.0/24 -> 0/32 portmap tcp/udp 10000:65000
  とすればよいとの情報もあります。

  9./etc/rc.conf に追加する

/etc/rc.conf の変更
 #ee /etc/rc.conf

  defaultrouter="NO"
  static_routes="foo"
  route_foo="192.168.13.0 -netmask 0xffffff00 -interface 192.168.13.11"
  gateway_enable="YES"
  router_enable="NO"
  router="routed"
  router_flags="-q"

  "foo" は 識別子なので,上の2行が同じ識別子であればよい.
  192.168.13.11は、ローカル側のNIC(ep0)のアドレス

  network_interfaces="ep0 ed1 lo0"
  ifconfig_ep0="inet 192.168.13.11 netmask 255.255.255.0"
  ifconfig_ed1="inet 192.168.13.7 netmask 255.255.255.0" ←あとでdhcpcで書き換えられる
  ifconfig_lo0="inet 127.0.0.1"

  10.#reboot

  11.確認

   ipnat -ls ←To check and see if it is loaded, as root type
   ifconfig -a
   netstat -rn

 ここまでのインストールで、ローカルなLANから192.168.13.11をゲートウエイとして、
 210.rrr.uuu.abcのアドレスでインターネットのアクセスができるようになります。
 家庭内LANからインターネットへは、wwwとメールとブラウザからのftpは問題ありませんが、
 Fetchのftpはサーバーによって通らないものもありました(Fetch設定不備!?)。
 外からのアクセスについては、WWW,FTPとも問題はないようです。

 注)PASV(パッシブモード)転送の設定が出来るFTPソフトであれば、この設定をすることにより、
 FTPが可能となります。(poohさん情報有り難うございました)1999.9


 [目次へ]