FreeBSD 4.6.2RELEASE で行こう 龍谷大学理工学部 小島

24 Slides93.00 KB

FreeBSD 4.6.2RELEASE で行こう 龍谷大学理工学部 小島 肇 [email protected] http://www.st.ryukoku.ac.jp/ kjm/

FreeBSD って何ですか ? Linux と人気を二分する、 free に利用で きる UNIX 系 OS 少なくとも、日本では「 Linux と人気を二分 する」と思う 雑誌まであるくらいだし ISP などの「裏方」で活躍している事例がか なりある模様 Yahoo! とか

私が FreeBSD を使っている理 由 安定して動作する OS 全体として維持されている 個別モジュール毎の Linux とは違う 4.6.x-RELEASE はちょっと混乱があったが 豊富なドキュメント OS 全体として維持されている ドキュメントと実際の中身とでけっこう違和感が ある Linux とは違う 活発なユーザコミュニティ

私が FreeBSD を使っている理 由 source がある make 一発 source が基本 source tree ports 慣れ :-)

注意点 早い(早すぎる) OS リリース 3 カ月おきに新リリースが登場 古いリリースには security fix がされない 現状、 4.4-RELEASE 以降のみ ずいぶん長くサポートされる Red Hat Linux とは違う 追いかけるための仕掛けはあるにはある しかし、それなりの手間は必要 source が基本、 binary only では追いかけられな い。 fix package を rpm などでインストールすれ ばよい Linux 方面とは違う

インストール 「 FreeBSD 徹底入門 [ 改訂版 ] 」を読ん でください X Window はインストールすべきか ? 安全性を優先するならインストールすべきで はない(特にサーバ機) X Window を必要とする packages/ports をイ ンストールする時点で一部が自動的にインス トールされる可能性あり

インストールした後のチューニ ング kernel つくりなおし 手順: cd /usr/src/sys/i386/conf cp GENERIC MyConf vi MyConf config MyConf cd ././compile/MyConf make depend make make install さまざまなパラメータ設定( /etc/rc.conf など)

kernel つくりなおし 設定ファイルから不要なデバイスを削る 不要な機能を削る CPU network device SCSI device RAID device IPv6 BPF なぜつくりなおす ? サイズが小さくなるのでリソースを有効利用できる 使わない機能を侵入者に悪用されないために 標準( GENERIC )カーネルには存在しない機能を追加する場合

削るものの例(あくまで例) CPU cpu I366 CPU cpu I486 CPU cpu I586 CPU device device fd1 device atapist device ahb device adv0 at isa? device asr device sio2 device ppc0 device de options options MATH EMULATE options INET6 pseudo-device pseudo-device bpf pseudo-device sl 1

さまざまなパラメータ設定 /etc/rc.conf ファイルに記述 /etc/sysctl.conf ファイルに記述 /etc/default/rc.conf ファイルにデフォルト設定が記載 されているので、これを参考にして、変更すべき場 所だけを記載する /etc/rc.conf にはサイト内で共通する要素を記述し、 / etc/rc.conf.local にホスト独自の内容を記載してもよい カーネル設定ファイルでは設定しきれない、カーネ ルパラメータの細かい調整 各種 daemon (サーバプログラム)の設定ファ イルに記述 daemon 毎に設定

/etc/rc.conf ファイル記述例 セキュリティ関連 説明 tcp drop synfin “YES” SYN FIN を破棄 icmp drop redirect “NO”ICMP redirect を破棄 icmp log redirect “NO” ICMP redirect を記録 ipfilter enable “YES” ip filter を有効化 ipmon enable “YES” ipmon を有効化 firewall enable “YES” ipfw を有効化 firewall type “simple” ipfw を「 simple 」で初期化 ロギング accounting enable “NO” アカウンティングを有効化 inetd flags “-wWl” デフォルトは -wW kernel securelevel 機能 kernel securelevel enable “YES” kernel securelevel を有効化 kern securelevel 1 デフォルトは -1

/etc/sysctl.conf 設定例 高負荷サーバ kernel.ipc.somaxconn 1024 kern.ipc.maxsockets 16384 kern.ipc.nmbclusters 65535 blackhole(4) (副作用に注意 ! traceroute に反応しなくなる) 0: RST を返す 1: SYN には何も返さない 2: 何も返さな い net.inet.tcp.blackhole 2 net.inet.tcp.blackhole 1 squid みたいな特殊なもの用(?) kern.maxfiles 32767 kern.maxfilesperproc 16424 net.inet.ip.portrange.first 8192 net.inet.ip.portrange.last 65535

各種 daemon の設定ファイル ssh (/etc/ssh/sshd config) inetd (/etc/inetd.conf) UsePrivilegeSeparation yes ftpd –l –l login (/etc/login.conf) :minpasswordlen 12:

パケットフィルタで設定すべき 事 あり得ない(はずの)パケットを取り除く http://www.sans.org/dosstep/index.htm 危険なパケットを取り除く( IP option つき、パ ケット長が異常、など): ip filter での例 block in log quick from any to any with ipopts block in log quick proto tcp from any to any with short block in log quick proto icmp from any to any icmp-type redir block in log quick proto icmp from any to any icmp-type routerad block in log quick proto icmp from any to any icmp-type routersol その他、サイト毎の設定 /etc/rc.firewall ( ipfw 設定ファイル)は参考になる さきほどの「 simple 」もここに記載されている

IP filter v.s. IP firewall (ipfw) IP filter – いろんなプラットホームで使える IP firewall – FreeBSD 標準 最近の標準状況 FreeBSD – ipfw NetBSD – ip filter OpenBSD – pf (packet filter) BSD/OS - ? Mac OS X – ipfw Linux – ipchains / iptables HP-UX – ip filter (?) FreeBSD の場合、ふつうの人は、 ipfw の simple をベー スにしてカスタマイズするのがよいような気がする。

OS を最新状態に CVSup で最新のソースを入手 複数の FreeBSD を維持する場合はローカルの CVSup ミラーを構築し、そこから CVSup した方がよい cvsup –g supfile supfile の中身 *default host cvsup.jp.freebsd.org *default base /usr *default prefix /usr *default release cvs tag RELENG 4 6 *default delete use-rel-suffix compress src-all ports の net/cvsup-mirror を利用すると簡単に構築できる 変更点にあわせて再構築 部分的でいい場合が多いが、 make buildworld; make installworld が必要な場合もたまにある。事例 : DNS resolver 脆弱性

更新情報を得る FreeBSD 友の会主催の FreeBSD-announce-jp ML に加入しておこう 更新情報 : 主にセキュリティ情報 http://www.jp.freebsd.org/ 情報をよく読んだ上で CVSup して source 更新し再 構築 体力があれば FreeBSD-users-jp ML にも参加 特に新リリース登場時などでは、トラブル報告はま ず ML に現れる かなりの流量があるので覚悟する

ports/packages 活用 ports - /usr/ports/* 3rd party ソフトウェアを有志が移植( port )したものが 、一定の手順に従って大量に集積されている 他のソフトウェアに対する依存情報も含まれており、依 存するソフトウェアがインストールされていなければ、 そのソフトウェアもあわせて自動的にインストールされ る つくりかた : security/sudo の例 cd /usr/ports/security/sudo make make install OS リリース時点での ports の内容を元に作成されたバ イナリ「パッケージ」が OS に添付されている

最新の ports 最新の ports ( ports-current )は CVSup すれば入手できる supfile の中身 *default host cvsup.jp.freebsd.org *default base /usr *default prefix /usr *default release cvs tag . *default delete use-rel-suffix compress ports-all ports-current は FreeBSD 開発版( -current )と安定版 ( -stable )でしか試されていないので注意。 ある時点の安定版を取り出し、さらに検証を行ったものが RELEAS E 版として登場する ports-current は、たいていは RELEASE 版でもちゃんと動くが、

ports みてあるき net/ bsdproxy – 汎用 proxy サーバ stone ethereal – ネットワークアナライザ honeyd – for honeyports iplog – TCP/IP ロガー netcat – 強力ツール ngrep – ネットワーク grep ntop – ネットワーク top socks5 – NEC socks5 dante

ports みてあるき security/ snort – ネットワーク IDS amavis-perl – アンチウィルス メールフィルタ amavisd, amavisd-new, inflex arirang – web スキャナ acid, snort-snarf nessus, saint, whisker bcwipe – ファイル / ディスク消去ソフト ca-roots – CA ルートファイル (old!) chkrootkit – rootkit チェッカ dsniff – パスワード盗聴ソフト

ports みてあるき security/ fragrouter – IDS テストツール gnupg – GNU OpenPGP crack nmap – ポートスキャナ pgp5, pgp6 john – パスワード解読ソフト hping portscanner, strobe portsentry – ポートスキャン検知ソフト pscan – ソースコード検査ソフト its4, rats

ports みてあるき security/ openssh – OpenSSH sudo logcheck tripwire – ファイル整合性検査ソフト super swatch – simple watcher openssh-portable, ssh2, lsh aide, integrit www/ squid – www proxy tinyproxy, transproxy

その他 情報源 本家 - http://www.freebsd.org FreeBSD 友の会 - http://www.jp.freebsd.org 各種 ML 雑誌 FreeBSD Press BSD magazine その他、ネットワーク系・セキュリティ系雑誌な ど

Back to top button