3階のゲートウェイマシン作成方針
【目次】
 
はじめに
パソコンを,3階のゲートウェイマシンになるように設定したい. 現在は,yoda.db.is.kyushu-u.ac.jp/luke.4f.db.is.kyushu-u.ac.jp (133.xxx.yyy.166/192.168.33.1)が3階のゲートウェイである。 なお、「local.db.is.kyushu-u.ac.jp」とあるのは、「内部ネットマシ ン」の意味です.
3階のゲートウェイは, (xxx, yyy の部分は、適切なアドレスを記入してください)。
- host名 yoda/luke
- IPアドレス 133.xxx.yyy.166/192.168.33.1
として設置するが,設置する前に必ず「テスト」を行なうこと. また、作業内容は詳細にメモしておくこと。
参考情報として,DNSセカンダリサーバ,
NISスレーブサーバ,
NAT,ipfw, dhcp サーバ,xntpd のホームページが作成される予定
なので,参照されたい.
 
インストール準備
- FreeBSD4.5インストールと基本設定を行なう
- 牧之内研ネットワーク設定を行なう
- CVSupでバージョンアップを行なう
- FreeBSD牧之内研設定を行なう
- rootパスワードを確認せよ.周りの修士学生に聞くこと
- host名を決めよ(例えば,gate.4f.db.is.kyushu-u.ac.jp).
- IPアドレスを決めよ(例えば,192.168.33.75).IP アドレス の情報 等は,ifconfig -a で調べることができる.インターフェイスはvr1を使用し ている.
 
3階ゲートウェイマシンが提供すべき機能
- DNSセカンダリサーバ
3階内部ネットにサービスを提供
.local.db.is.kyushu-u.ac.jpを管理 - NISスレーブサーバ
3階内部ネットにサービスを提供 - NAT
vr0, vr1の2つのネットワークのインターフェイスがあるので、どちらかを外部に、どちらかを内部にする - ipfw
フィルタの設定(ipfw) - dhcpサーバ
3階内部ネットにサービスを提供
現在のyoda/lukeの設定を見て、同じ範囲のIPを割り当てる
(多分 192.168.0.240 〜 192.168.0.254 )
 
セキュリティ上の方針
- NFSマウントはしない
(NFS クライアントにならない.もちろんamdも起動しない) - NFSサーバにならない
- inetdは起動しない
/etd/rc.conf でinetd_enable="NO"
- sendmailは起動しない(3階のゲートウェイ)
/etd/rc.conf でsendmail_enable="NO"
- ipfw(またはipfilter)を使用する
- 禁止されたパケットについてのログを録ること
動作確認中は許可したパケットのログも録った方がよい - telnet での外部への接続を禁止
- 133.xxx.yyy.* に向けての接続はtelnet以外全て許可
- tcpで外部に接続するのはtelnet以外全て許可
- udpで133.xxx.yyy.* 以外への接続はDNS(port番号 53)のみ許可
- icmpは全て許可(不確かですので、調べてみます.一応こうしておいてください)
- 許可していないものは全部禁止
- 禁止されたパケットについてのログを録ること
- パスワードの盗聴に関して木村さんのコメントより
- sudoを導入し、ルートのパスワードを打つ機会を無くす
- otp、s/keyを使う
とあるが、個人的には現状維持がよいと思う。頻繁に使うコマンドだけ sudoで使用出来てもよいかも。でも、% sudo su
はダメ。一般ユーザがのっとられると、簡単にrootになれてしまうので。 - sftpをインストール
- 動かすべきデーモン
- ypbind
- syslogd
- sshd
- portmap
- cron
- moused
- 他にNISスレーブサーバ関連(ypserv)、 NAT関連(natd)、dhcp関連(dhcpd ? dhcps ?)、DNS関連(named) のデーモンが動く
- TCPラッパーの設定
sshd : ALL : allow ALL : ALL : deny
- 木村さんのコメント
最近のFreeBSDでは、tcp wrapperの機能がlibwrapというライブラリに なっている。sshdも別にinetd経由で起動されるのではないが、libwrap にリンクされているため、/etc/hosts.allowの設定が効く。 他にもこういうプログラムはあるので、時にはlibwrapがリンクされて いるか確認する必要があることもある。確認方法は% ldd hogehoge
/etc/hosts.allowの設定は「first match」である。最初に記述したもの にマッチするのに注意。よって、ALL:ALL:allow ssh:xxx:deny
と書いたら、先に「ALL:ALL:allow」に引っ掛かるので2行目は意味がない。 この辺は設定したら、tcpdchkやtcpdmatchといったコマンドで確認をする。
- 木村さんのコメント
- カーネルのバージョンはできれば最新版を利用
- 現在は9/10の時点での最新版が入っている
- 木村さんのコメント
基本的にcvsup + make worldでstableにするのがベストだが、たまに 「stableに上げたら挙動不審になった」ということも存在する。この辺の挙 動はFreeBSDのメーリングリストを読んでおくことを勧める。日本語なら tech-jp,users-jp辺り。本家ならstableか。心配なときには、むやみに make worldでシステム全体を作り直さず、必要なところだけにパッチを当て る。パッチはANNOUNCEで流れる。
 
参考資料
- 研究室ホームページ
https://www.kkaneko.jp/sitemap-j.html
から様々な資料を見つけることができる.
https://www.kkaneko.jp/tools/freebsd/FreeBSD_lab.html
など。 - FreeBSDの日本のサイト
http://www.jp.freebsd.org - 4階に沢山本があります.