「FreeBSD 2.2.1-RELEASE インストールログ」
その7 FreeBSD詳細設定その2

...X680x0 spirit inside...



「その6 FreeBSD詳細設定その1」 「その8 tips」
「表紙へ戻る」 「FreeBSDページの表紙へ戻る」
「会議室」 「日記」


■詳細設定その2

ここでは、細かい設定を一気に行ないます。本当はここがいちばん面倒なのですが、設定ファイルさえあればすぐに終了する作業ばかりです。


■再びスーパーユーザー

以下の作業は、すべてスーパーユーザーで行なう必要があります。FreeBSDサーバーマシンのコンソールから、下線部分を入力してください。


%su
Password: RootPass
#


■再びファイルのコピー

その6」と同様に、以下のファイルを/usr/samba/へ転送してください。

これらのファイルをしかるべき場所に配置します。


#cp etc.tar.gz /etc
#cp usr.tar.gz /usr
#

これらのファイルのエンコーディングを解いて、使用可能なファイルを作ります。


#cd /etc
#tar xvzf etc.tar.gz
(表示メッセージ省略)
#cd /usr
#tar xvzf usr.tar.gz
(表示メッセージ省略)
#


■ネームサーバー(DNS)の設定

ネームサーバー(DNS)とは、"provider-test.or.jp"を"aa.bb.cc.dd"に変換する(その逆も行なう)ための機構です。ここでは、名前の解決をインターネットプロバイダにすべて任せる設定を行ないます。

下線部分のように入力してください。


#cd /etc/namedb
#sh make-localhost
以上で、自動的にネームサーバー(DNS)用の索引が作られます。


■iij-pppの最終設定

インターネットプロバイダの設定」で、「ゲートウェイIPアドレス」が"aa.bb.cc.ee"となっていますが、これは一般的には「接続してはじめて得られる値」です。ここで、実際に接続してこの値を得ておく必要があります。

まず、etc/ppp/ppp.conf編集して、モデム・ユーザー名・パスワードなどの「プロバイダに接続するための設定」を行なってください。

終わったら、下線部分のように入力してください。


#ppp provider-test
User Process PPP. Written by Toshiharu OHNO.
Log level is 281
Warning: No password entry for this host in ppp.secret
Warning: All manipulation is allowed by anyone in the world
Using interface: tun0
Interactive mode
Dial attempt 1
Phone: 123-4567
(ここでモデムが動作を始める)
dial OK!
login OK!
ppp ON home> Packet mode.
ppp ON home>
(ここでプロバイダとの接続が行なわれる)
PPP ON home>
"ppp"が"PPP"に変化したことが、ppp接続に成功したことを示しています。Alt+F2などで別のコンソールに移ってログインし、pingやtracerouteが行なえることを確認してみるのもいいでしょう。

この状態で、さらに下線部分のように入力してください。


PPP ON home>show ipcp
IPCP [Opend]
 his side: aa.bb.cc.ee, 2d0f01
 my  side: aa.bb.cc.ff, 2d0f00
connected: 159 secs, idle: 159 secs

Defaults:
 My Address:  0.0.0.0/0
 His Address: 0.0.0.0/0
 Negotiation: 0.0.0.0/0
PPP ON home>
この時点で、"aa.bb.cc.ee"が得られます。"aa.bb.cc.ff"はプロバイダより一時的にマシンに与えられた「世界でただ一つのIPアドレス」です。

確認が終了したので、回線を切断してpppを終了します。さらに下線部分のように入力してください。


PPP ON home>close
ppp ON home>
ppp ON home>
(ここで回線の切断が行なわれる)
ppp ON home>quit
#


■設定ファイルの編集

この時点で詳細設定のほぼすべては終了していますが、実際に「何のためにどのような設定が行なわれたか」を順を解説しておきます。当ネットワークシステムを参考に独自のシステムを作る場合に、参考にしてください。

また、ここまでの設定ではインターネットプロバイダの設定が「仮のもの」でしかありません。マニュアルを読まれる方々のすべてで異なるパラメータ(*)であるため、必ず設定を行なってください。

(*) ppp接続の際のログイン名&パスワードなど、公には公開できないものもあります。

編集用エディタは、viやeeなどがこの時点でインストール済みです。viの使用経験がある方はviを、そうでない方はeeをお薦めします。


#vi /etc/sysconfig (viの場合)
#ee /etc/sysconfig (eeの場合)
などとして起動してください。

usr.tar.gz
usr/local/etc/rc.d/dhcps.sh	DHCPサーバー自動起動シェルスクリプト
usr/local/etc/rc.d/ppp.sh	ppp自動起動シェルスクリプト
usr/local/etc/lmhosts		samba設定ファイル
usr/local/etc/smb.conf		samba設定ファイル
etc.tar.gz
etc/namedb/named.boot		DNS設定ファイル
etc/ppp/ppp.conf		ppp接続設定ファイル
etc/ppp/ppp.linkup		pppルーティング設定ファイル
etc/ppp/ppp.secret		pppパスワード設定ファイル
etc/dhcpdb.pool			DHCP設定ファイル
etc/dhcpdb.relay		DHCPリレーエージェント設定ファイル
etc/host.conf			ホスト情報参照順設定ファイル
etc/hosts			ホスト情報設定ファイル
etc/inetd.conf			インターネットスーパーサーバー設定ファイル
etc/resolv.conf			ドメイン名解決先設定ファイル
etc/services			IPサービス設定ファイル
etc/start_if.tun0		pppトンネルデバイス起動設定シェルスクリプト
etc/sysconfig			システム設定ファイル

etc/sysconfig

etc/sysconfigは、FreeBSDシステム全般の設定を行なうための設定ファイルです。設定内容は非常に多岐にわたりますが、ここでは最低限必要な設定の説明を行ないます。

hostname="home.gorry.local"
ホスト名の設定です。「ネットワークインターフェースの設定」で設定した内容がここに反映されます。
network_interfaces="lo0 ed1 tun0"
ネットワークに接続しているハードウェアの設定です。"lo0"は「自分自身」を意味し、いかなる場合であっても必ず登録されます。"ed1"は「ネットワークインターフェースの設定」で設定した内容がここに反映されます。"tun0"はiij-pppで使用するトンネルデバイスです。
ifconfig_lo0="inet 127.0.0.1"
"lo0"デバイスの設定内容です。"127.0.0.1"を自分自身のIPアドレスとして割り当てます。
ifconfig_ed1="inet 192.168.1.1 netmask 255.255.255.0"
"ed1"デバイスの設定内容です。"192.168.1.1"をネットワークインターフェースのIPアドレスとして割り当てます。
"tun"デバイスの設定内容です。"aa.bb.cc.ee"をトンネルデバイスのIPアドレスとして割り当てます。

etc/start_if.tun0

etc/start_if.tun0は、トンネルデバイスの起動シェルスクリプトです。

ifconfig tun0 inet 1.1.1.1 aa.bb.cc.ee
"tun"デバイスの設定内容です。"aa.bb.cc.ee"をトンネルデバイスのIPアドレスとして割り当てます。

etc/inetd.conf

etc/inetd.confは、インターネットスーパーサーバーの設定ファイルです。

netbios-ssn stream tcp nowait root /usr/local/sbin/smbd smbd
netbios-ns dgram udp wait root /usr/local/sbin/nmbd nmbd
NetBEUI接続デーモン「Samba」の設定です。

etc/services

etc/servicesは、IPによるサービスの設定ファイルです。

dhcps 67/udp # dhcp server
DHCPサーバーの設定です。
dhcpc 68/udp # dhcp client
DHCPクライアントの設定です。

etc/host.conf

etc/host.confは、ホスト情報の参照順を決定する設定ファイルです。

hosts
etc/hostsを参照して、「ホスト名→IPアドレス」の解決を試みます。
bind
etc/resolv.confを参照し、ネームサーバー(DNS)を使用して「ホスト名→IPアドレス」の解決を試みます。

書いた順番のとおりに検索を行ないます。hostsbindの順に書いた場合、まず内部での解決を試みて、解決しなければ外部(この場合はインターネットプロバイダ上にあるネームサーバー)での解決を試みます。


etc/hosts

etc/hostsは、ホスト名をIPアドレスに変換するためのデータベースです。

127.0.0.1 localhost.gorry.local localhost
"localhost.gorry.local"・"localhost"をIPアドレス"127.0.0.1"に変換します。
192.168.1.1 home.gorry.local home www.gorry.local
"home.gorry.local"・"home"・"www.gorry.local"をIPアドレス"192.168.1.1"に変換します。
192.168.1.16 x68fake0.gorry.local x68fake0
"x68fake0.gorry.local"・"x68fake0"をIPアドレス"192.168.1.16"に変換します。
192.168.1.20 ssdevg0.gorry.local ssdevg0
"x68fake0.gorry.local"・"x68fake0"をIPアドレス"192.168.1.16"に変換します。
192.168.1.80 dhcp80.gorry.local dhcp80
"dhcp80.gorry.local"・"dhcp80"をIPアドレス"192.168.1.80"に変換します。

etc/resolv.conf

etc/resolv.confは、ネームサーバー(DNS)を設定するファイルです。

domain gorry.local
ドメインの名前を"gorry.local"に設定します。
nameserver 192.168.1.1
ネームサーバー(DNS)のIPアドレスを"127.0.0.1"(内部)に設定します。

etc/dhcpdb.pool

etc/dhcpdb.poolは、DHCPの設定ファイルです。

global:!snmk=255.255.255.0:tmof=32400:
homenetwork:tblc=global:rout=192.168.1.1:dnsv=192.168.1.1:dnsd="gorry.local":dht1=500:dht2=850:brda=192.168.1.255:
DHCPサーバーの設定です。
host0: :ipad=192.168.1.80:dfll=3600:maxl=7200:tblc=homenetwork:
DHCPクライアントの設定です。

etc/dhcpdb.relay

etc/dhcpdb.relayは、DHCPのリレーエージェント設定ファイルです。今回の設定では、このファイルは存在のみあればよく、内容は必要ありません。


etc/namedb/named.boot

etc/namedb/named.bootは、DNSの設定ファイルです。

forwarder aa.bb.cc.dd
名前の解決をIPアドレス"aa.bb.cc.dd"(この場合はインターネットプロバイダ上にあるネームサーバー)に任せます。

etc/ppp/ppp.conf

etc/ppp/ppp.confは、iij-pppの設定ファイルです。大きく分けて3つのブロックに分かれています。

■デフォルト設定
default:
デフォルト設定ブロックの開始です。
set device /dev/cuaa1
モデムの接続先を/dev/cuaa1(シリアルポート2番目)とします。
set speed 115200
モデムとの通信速度を115200bpsとします。
disable lqr
deny lqr
lqr動作を無効にします。
set timeout 600
600秒データの入出力がない場合、回線を切断します。
set dial "ABORT NUMBER\\sBLACKLISTED ABORT NO\\sCARRIER ABORT BUSY \"\" ATZ OK ATS7=55L0M1&M5&K1&H1&I0&R2B0X4 OK ATD\\T CONNECT"
ダイヤルの際にモデムと交信するデータ列です。
  • "ABORT NUMBER\\sBLACKLISTED" "NUMBER BLACKLISTED"という文字がモデムから送信されたら、ダイヤルが失敗したことを示す。
  • "ABORT NO\\sCARRIER" "NO CARRIER"という文字がモデムから送信されたら、ダイヤルが失敗したことを示す。
  • "ABORT BUSY" "NO BUSY"という文字がモデムから送信されたら、ダイヤルが失敗したことを示す。
  • "\"\"" 以後はダイヤルのための交信データとなる。
  • "ATZ OK" "ATZ"を送信し、"OK"が返るまで待つ。
  • "ATS7=55L0M1&M5&K1&H1&I0&R2B0X4 OK" モデム初期化コマンドを送信し、"OK"が返るまで待つ。
  • "ATD\\T CONNECT" ダイヤルコマンドを送信し、"CONNECT"が返るまで待つ。
インターネットプロバイダへの手動接続設定
provider-test:
"provider-test"という名前の手動接続設定ブロックの開始です。
set ifaddr 0 0
pppにより得るIPアドレスに制限を設けないこととします。
deny chap
chapでの接続を行ないません。
accept pap
papでの接続を行ないます。
set phone 1234567
ダイヤル先を"1234567"とします。
set authname username-test
ユーザー名を"username-test"とします。
set authkey password-test
パスワードを"password-test"とします。
set openmode active
回線接続後、こちらからLCPパケットを送ってLCPモードを開始します。
インターネットプロバイダへの自動(on demand)接続設定
provider-test-auto:
"provider-test-auto"という名前の自動接続設定ブロックの開始です。
set ifaddr 0 aa.bb.cc.ee/0
pppにより得るIPアドレスをaa.bb.cc.ee(プロバイダ側ゲートウェイIPアドレス)とします。
add 0 255.255.255.0 aa.bb.cc.ee
IPアドレスの探索経路(ルーティング)にaa.bb.cc.ee(プロバイダ側ゲートウェイIPアドレス)を追加します。
set taddr 192.168.1.0/24
こちら側の内部で使用しているIPアドレスを"192.168.1.??"とします。
deny chap
chapでの接続を行ないません。
accept pap
papでの接続を行ないます。
set phone 1234567
ダイヤル先を"1234567"とします。
set authname username-test
ユーザー名を"username-test"とします。
set authkey password-test
パスワードを"password-test"とします。
set openmode active
回線接続後、こちらからLCPパケットを送ってLCPモードを開始します。
set dfilter 0 permit 0/32 0/0 tcp
set dfilter 1 deny 0/0 0/0 tcp
set dfilter 2 deny udp src eq 520
set dfilter 3 permit 0/0 0/0
set afilter 0 deny udp src eq 520
set afilter 1 permit 0/0 0/0
自動接続のためのパケットで不要なダイヤルを行なわない、また勝手に切れないようにします。
set ifilter 1 permit icmp
set ofilter 1 permit icmp
set ifilter 2 permit udp dst gt 33433
set ofilter 2 permit udp dst gt 33433
tracerouteとpingを許可します。
set dfilter 4 deny icmp
set dfilter 5 permit 0/0 0/0
ICMPパケットによるダイヤルを行なわないようにします。
set ifilter 3 deny tcp src eq 137
set ofilter 3 deny tcp dst eq 137
set ifilter 4 deny tcp src eq 138
set ofilter 4 deny tcp dst eq 138
set ifilter 5 deny tcp src eq 139
set ofilter 5 deny tcp dst eq 139
set ifilter 6 deny udp src eq 137
set ofilter 6 deny udp dst eq 137
set ifilter 7 deny udp src eq 138
set ofilter 7 deny udp dst eq 138
set ifilter 8 deny udp src eq 139
set ofilter 8 deny udp dst eq 139
NetBEUIによるパケットでダイヤルを行なわないようにします。

etc/ppp/ppp.linkup

etc/ppp/ppp.linkupは、ppp接続開始時にルーティングを再設定するための設定ファイルです。大きく分けて3つのブロックに分かれています。

インターネットプロバイダへの手動接続設定
provider-test:
"provider-test"という名前の手動接続設定ブロックの開始です。
delete ALL
既存の経路探索(ルーティング)情報をクリアします。
add 0 0 HISADDR
経路探索(ルーティング)情報に「ppp接続相手先」を追加します。
インターネットプロバイダへの自動(on demand)接続設定
provider-test-auto:
"provider-test-auto"という名前の自動接続設定ブロックの開始です。
delete ALL
既存の経路探索(ルーティング)情報をクリアします。
add 0 0 HISADDR
経路探索(ルーティング)情報に「ppp接続相手先」を追加します。
■それ以外の接続設定
MYADDR:
「該当する接続設定ブロックがない時」に使用する接続設定ブロックの開始です。
add 0 0 HISADDR
経路探索(ルーティング)情報に「ppp接続相手先」を追加します。

etc/ppp/ppp.secret

etc/ppp/ppp.secretは、ppp接続時にパスワードを設定するためのファイルです。ここでは、パスワードを必要としないため空のファイルを与えています。


usr/local/etc/rc.d/dhcps.sh

usr/local/etc/rc.d/dhcps.shは、OS立ち上げ時に自動的にDHCPを起動するためのシェルスクリプトです。


usr/local/etc/rc.d/ppp.sh

usr/local/etc/rc.d/ppp.shは、OS立ち上げ時に自動的にiij-pppを起動するためのシェルスクリプトです。


usr/local/etc/lmhosts

usr/local/etc/lmhostsは、Sambaが使用するIPアドレスの設定ファイルです。

0.0.0.0 workgroup G
Sambaのワークグループ名を"workgroup"とします。
192.168.1.1 home M
Sambaの公開名を"home"とし、IPアドレスを192.168.1.1とします。
192.168.1.255 workgroup S
ブロードキャストするワークグループ名を"workgroup"、IPアドレスを"192.168.1.255"とします。

usr/local/etc/smb.conf

usr/local/etc/smb.confは、Sambaの設定ファイルです。基本的なことは資料を参考にしていただくとして、ここでは独自に設定した部分のみを解説します。

[samba]
セクション"samba"の開始です。これがディレクトリの共有名となります。
path = /usr/samba
実際にアクセスを行なうディレクトリを指定します。Sambaの設定で作ったディレクトリを指定しています。
comment = FreeBSD samba
ディレクトリに対してのコメントを指定します。
read only = no
「読み込み専用」でないことを指定します。
writable = yes
「書き込み可能」であることを指定します。"read only"の逆スイッチです。
public = yes
guestのログインを許可します。
create mode = 0777
ファイルやディレクトリの読み書き制御を「パブリック」(誰でも読み書きができる)にします。

メールはこちらへ...[後藤浩昭 / Hiroaki Goto / GORRY / gorry@shonan.ne.jp]

「その6 FreeBSD詳細設定その1」 「その8 tips」
「表紙へ戻る」 「FreeBSDページの表紙へ戻る」
「会議室」 「日記」