24
FreeBSD 4.6.2- FreeBSD 4.6.2- RELEASE RELEASE でででで でででで 龍龍龍龍龍龍龍龍 龍龍 龍 龍龍龍龍龍龍龍龍 龍龍 龍 [email protected] [email protected] http://www.st.ryukoku.ac.jp/~kjm/ http://www.st.ryukoku.ac.jp/~kjm/

FreeBSD 4.6.2-RELEASE で行こう

  • Upload
    glynn

  • View
    44

  • Download
    2

Embed Size (px)

DESCRIPTION

FreeBSD 4.6.2-RELEASE で行こう. 龍谷大学理工学部 小島 肇  [email protected] http://www.st.ryukoku.ac.jp/~kjm/. FreeBSD って何ですか ?. Linux と人気を二分する、 free に利用できる UNIX 系 OS 少なくとも、日本では「 Linux と人気を二分する」と思う … 雑誌まであるくらいだし … ISP などの「裏方」で活躍している事例がかなりある模様 Yahoo! とか …. 私が FreeBSD を使っている理由. - PowerPoint PPT Presentation

Citation preview

Page 1: FreeBSD 4.6.2-RELEASE  で行こう

FreeBSD 4.6.2-FreeBSD 4.6.2-RELEASE RELEASE で行こうで行こう

龍谷大学理工学部 小島 肇 龍谷大学理工学部 小島 肇 [email protected]@rins.ryukoku.ac.jp

http://www.st.ryukoku.ac.jp/~kjm/http://www.st.ryukoku.ac.jp/~kjm/

Page 2: FreeBSD 4.6.2-RELEASE  で行こう

FreeBSD FreeBSD って何ですかって何ですか ??

Linux Linux と人気を二分する、と人気を二分する、 free free に利用でに利用できる きる UNIX UNIX 系 系 OSOS 少なくとも、日本では「 少なくとも、日本では「 Linux Linux と人気を二分と人気を二分

する」と思う…する」と思う… 雑誌まであるくらいだし…雑誌まであるくらいだし…

ISP ISP などの「裏方」で活躍している事例がかなどの「裏方」で活躍している事例がかなりある模様なりある模様

Yahoo! Yahoo! とか…とか…

Page 3: FreeBSD 4.6.2-RELEASE  で行こう

私が 私が FreeBSD FreeBSD を使っている理を使っている理由由

安定して動作する安定して動作する OS OS 全体として維持されている全体として維持されている

個別モジュール毎の 個別モジュール毎の Linux Linux とは違うとは違う 4.6.x-RELEASE 4.6.x-RELEASE はちょっと混乱があったがはちょっと混乱があったが

豊富なドキュメント豊富なドキュメント OS OS 全体として維持されている全体として維持されている

ドキュメントと実際の中身とでけっこう違和感がドキュメントと実際の中身とでけっこう違和感がある ある Linux Linux とは違うとは違う

活発なユーザコミュニティ活発なユーザコミュニティ

Page 4: FreeBSD 4.6.2-RELEASE  で行こう

私が 私が FreeBSD FreeBSD を使っている理を使っている理由由

source source があるがある source source が基本が基本

make make 一発一発 source treesource tree portsports

慣れ 慣れ :-):-)

Page 5: FreeBSD 4.6.2-RELEASE  で行こう

注意点注意点 早い(早すぎる) 早い(早すぎる) OS OS リリースリリース

3 3 カ月おきに新リリースが登場カ月おきに新リリースが登場 古いリリースには 古いリリースには security fix security fix がされないがされない

現状、現状、 4.4-RELEASE 4.4-RELEASE 以降のみ以降のみ ずいぶん長くサポートされる ずいぶん長くサポートされる Red Hat Linux Red Hat Linux とは違とは違

うう 追いかけるための仕掛けはあるにはある追いかけるための仕掛けはあるにはある

しかし、それなりの手間は必要しかし、それなりの手間は必要 source source が基本、が基本、 binary only binary only では追いかけられでは追いかけられ

ない。ない。 fix package fix package を を rpm rpm などでインストールなどでインストールすればよい すればよい Linux Linux 方面とは違う方面とは違う

Page 6: FreeBSD 4.6.2-RELEASE  で行こう

インストールインストール 「「 FreeBSD FreeBSD 徹底入門 徹底入門 [[ 改訂版改訂版 ] ] 」を読ん」を読ん

でくださいでください X Window X Window はインストールすべきかはインストールすべきか ??

安全性を優先するならインストールすべきで安全性を優先するならインストールすべきではない(特にサーバ機)はない(特にサーバ機)

X Window X Window を必要とする を必要とする packages/ports packages/ports をイをインストールする時点で一部が自動的にインスンストールする時点で一部が自動的にインストールされる可能性ありトールされる可能性あり

Page 7: FreeBSD 4.6.2-RELEASE  で行こう

インストールした後のチューニインストールした後のチューニングング

kernel kernel つくりなおしつくりなおし 手順:手順:

cd /usr/src/sys/i386/confcd /usr/src/sys/i386/conf cp GENERIC MyConfcp GENERIC MyConf vi MyConfvi MyConf config MyConfconfig MyConf cd ../../compile/MyConfcd ../../compile/MyConf make dependmake depend makemake make installmake install

さまざまなパラメータ設定(さまざまなパラメータ設定( /etc/rc.conf /etc/rc.conf など)など)

Page 8: FreeBSD 4.6.2-RELEASE  で行こう

kernel kernel つくりなおしつくりなおし 設定ファイルから不要なデバイスを削る設定ファイルから不要なデバイスを削る

CPUCPU network devicenetwork device SCSI deviceSCSI device RAID deviceRAID device

不要な機能を削る不要な機能を削る IPv6IPv6 BPFBPF

なぜつくりなおすなぜつくりなおす ?? サイズが小さくなるのでリソースを有効利用できるサイズが小さくなるのでリソースを有効利用できる 使わない機能を侵入者に悪用されないために使わない機能を侵入者に悪用されないために 標準(標準( GENERICGENERIC )カーネルには存在しない機能を追加する場)カーネルには存在しない機能を追加する場

合合

Page 9: FreeBSD 4.6.2-RELEASE  で行こう

削るものの例(あくまで例)削るものの例(あくまで例) CPUCPU

cpu I366_CPUcpu I366_CPUcpu I486_CPUcpu I486_CPUcpu I586_CPUcpu I586_CPU

optionsoptionsoptions MATH_EMULATEoptions MATH_EMULATEoptions INET6options INET6

devicedevicedevice fd1device fd1device atapistdevice atapistdevice ahbdevice ahbdevice adv0 at isa?device adv0 at isa?device asrdevice asrdevice sio2device sio2device ppc0device ppc0device dedevice de

pseudo-devicepseudo-devicepseudo-device bpfpseudo-device bpfpseudo-device sl 1pseudo-device sl 1

Page 10: FreeBSD 4.6.2-RELEASE  で行こう

さまざまなパラメータ設定さまざまなパラメータ設定 /etc/rc.conf /etc/rc.conf ファイルに記述ファイルに記述

/etc/default/rc.conf /etc/default/rc.conf ファイルにデフォルト設定が記載ファイルにデフォルト設定が記載されているので、これを参考にして、変更すべき場されているので、これを参考にして、変更すべき場所だけを記載する所だけを記載する

/etc/rc.conf /etc/rc.conf にはサイト内で共通する要素を記述し、にはサイト内で共通する要素を記述し、 //etc/rc.conf.local etc/rc.conf.local にホスト独自の内容を記載してもよにホスト独自の内容を記載してもよいい

/etc/sysctl.conf /etc/sysctl.conf ファイルに記述ファイルに記述 カーネル設定ファイルでは設定しきれない、カーネカーネル設定ファイルでは設定しきれない、カーネ

ルパラメータの細かい調整ルパラメータの細かい調整 各種 各種 daemon daemon (サーバプログラム)の設定ファ(サーバプログラム)の設定ファ

イルに記述イルに記述 daemon daemon 毎に設定毎に設定

Page 11: FreeBSD 4.6.2-RELEASE  で行こう

/etc/rc.conf /etc/rc.conf ファイル記述例ファイル記述例 セキュリティ関連セキュリティ関連 説明説明

tcp_drop_synfin=“YES”tcp_drop_synfin=“YES” SYN+FIN SYN+FIN を破棄を破棄icmp_drop_redirect=“NO”icmp_drop_redirect=“NO” ICMP redirect ICMP redirect を破棄を破棄icmp_log_redirect=“NO”icmp_log_redirect=“NO” ICMP redirect ICMP redirect を記録を記録ipfilter_enable=“YES”ipfilter_enable=“YES” ip filter ip filter を有効化を有効化ipmon_enable=“YES”ipmon_enable=“YES” ipmon ipmon を有効化を有効化firewall_enable=“YES”firewall_enable=“YES” ipfwipfw を有効化を有効化firewall_type=“simple”firewall_type=“simple” ipfw ipfw を「を「 simplesimple 」で初期化」で初期化

ロギングロギングaccounting_enable=“NO”accounting_enable=“NO” アカウンティングを有効化アカウンティングを有効化inetd_flags=“-wWl”inetd_flags=“-wWl” デフォルトは デフォルトは -wW-wW

kernel securelevel kernel securelevel 機能機能kernel_securelevel_enable=“YES”kernel_securelevel_enable=“YES” kernel securelevelkernel securelevel を有効化を有効化kern_securelevel=1kern_securelevel=1 デフォルトは デフォルトは -1 -1

Page 12: FreeBSD 4.6.2-RELEASE  で行こう

/etc/sysctl.conf /etc/sysctl.conf 設定例設定例 高負荷サーバ高負荷サーバ

kernel.ipc.somaxconn=1024kernel.ipc.somaxconn=1024kern.ipc.maxsockets=16384kern.ipc.maxsockets=16384kern.ipc.nmbclusters=65535kern.ipc.nmbclusters=65535

blackhole(4) blackhole(4) (副作用に注意(副作用に注意 ! traceroute ! traceroute に反応しなくなる)に反応しなくなる)0: RST 0: RST を返す を返す  1: SYN 1: SYN には何も返さない には何も返さない  2: 2: 何も返さな何も返さないいnet.inet.tcp.blackhole=2net.inet.tcp.blackhole=2net.inet.tcp.blackhole=1net.inet.tcp.blackhole=1

squid squid みたいな特殊なもの用(?)みたいな特殊なもの用(?)kern.maxfiles=32767kern.maxfiles=32767kern.maxfilesperproc=16424kern.maxfilesperproc=16424net.inet.ip.portrange.first=8192net.inet.ip.portrange.first=8192net.inet.ip.portrange.last=65535net.inet.ip.portrange.last=65535

Page 13: FreeBSD 4.6.2-RELEASE  で行こう

各種 各種 daemon daemon の設定ファイルの設定ファイル ssh (/etc/ssh/sshd_config)ssh (/etc/ssh/sshd_config)

UsePrivilegeSeparation yesUsePrivilegeSeparation yes inetd (/etc/inetd.conf)inetd (/etc/inetd.conf)

ftpd –l –lftpd –l –l login (/etc/login.conf)login (/etc/login.conf)

:minpasswordlen=12::minpasswordlen=12:

Page 14: FreeBSD 4.6.2-RELEASE  で行こう

パケットフィルタで設定すべきパケットフィルタで設定すべき事事

あり得ない(はずの)パケットを取り除くあり得ない(はずの)パケットを取り除く http://www.sans.org/dosstep/index.htmhttp://www.sans.org/dosstep/index.htm

危険なパケットを取り除く(危険なパケットを取り除く( IP option IP option つき、パつき、パケット長が異常、など):ケット長が異常、など): ip filter ip filter での例での例block in log quick from any to any with ipoptsblock in log quick from any to any with ipoptsblock in log quick proto tcp from any to any with shortblock in log quick proto tcp from any to any with shortblock in log quick proto icmp from any to any icmp-type redirblock in log quick proto icmp from any to any icmp-type redirblock in log quick proto icmp from any to any icmp-type routeradblock in log quick proto icmp from any to any icmp-type routeradblock in log quick proto icmp from any to any icmp-type routersolblock in log quick proto icmp from any to any icmp-type routersol

その他、サイト毎の設定その他、サイト毎の設定 /etc/rc.firewall/etc/rc.firewall (( ipfw ipfw 設定ファイル)は参考になる設定ファイル)は参考になる

さきほどの「さきほどの「 simplesimple 」もここに記載されている」もここに記載されている

Page 15: FreeBSD 4.6.2-RELEASE  で行こう

IP filter v.s. IP firewall (ipfw)IP filter v.s. IP firewall (ipfw) IP filter – IP filter – いろんなプラットホームで使えるいろんなプラットホームで使える IP firewall – FreeBSD IP firewall – FreeBSD 標準標準 最近の標準状況最近の標準状況

FreeBSD – ipfwFreeBSD – ipfw NetBSD – ip filterNetBSD – ip filter OpenBSD – pf (packet filter)OpenBSD – pf (packet filter) BSD/OS - ?BSD/OS - ? Mac OS X – ipfwMac OS X – ipfw Linux – ipchains / iptablesLinux – ipchains / iptables HP-UX – ip filter (?)HP-UX – ip filter (?)

FreeBSD FreeBSD の場合、ふつうの人は、の場合、ふつうの人は、 ipfw ipfw の の simple simple ををベースにしてカスタマイズするのがよいような気がすベースにしてカスタマイズするのがよいような気がする。る。

Page 16: FreeBSD 4.6.2-RELEASE  で行こう

OS OS を最新状態にを最新状態に CVSup CVSup で最新のソースを入手で最新のソースを入手

cvsup –g supfilecvsup –g supfile supfile supfile の中身の中身

*default host=cvsup.jp.freebsd.org*default host=cvsup.jp.freebsd.org*default base=/usr*default base=/usr*default prefix=/usr*default prefix=/usr*default release=cvs tag=RELENG_4_6*default release=cvs tag=RELENG_4_6*default delete use-rel-suffix compress*default delete use-rel-suffix compresssrc-allsrc-all

複数の 複数の FreeBSD FreeBSD を維持する場合はローカルの を維持する場合はローカルの CVSup CVSup ミラーを構築し、そこから ミラーを構築し、そこから CVSup CVSup した方がよいした方がよい ports ports の の net/cvsup-mirror net/cvsup-mirror を利用すると簡単に構築できるを利用すると簡単に構築できる

変更点にあわせて再構築変更点にあわせて再構築 部分的でいい場合が多いが、部分的でいい場合が多いが、 make buildworld; make installworld make buildworld; make installworld

が必要な場合もたまにある。事例が必要な場合もたまにある。事例 : DNS resolver : DNS resolver 脆弱性脆弱性

Page 17: FreeBSD 4.6.2-RELEASE  で行こう

更新情報を得る更新情報を得る FreeBSD FreeBSD 友の会主催の 友の会主催の FreeBSD-announce-jp ML FreeBSD-announce-jp ML

に加入しておこうに加入しておこう http://www.jp.freebsd.org/http://www.jp.freebsd.org/

更新情報更新情報 : : 主にセキュリティ情報主にセキュリティ情報 情報をよく読んだ上で 情報をよく読んだ上で CVSup CVSup して して source source 更新し再更新し再

構築構築 体力があれば 体力があれば FreeBSD-users-jp ML FreeBSD-users-jp ML にも参加にも参加

特に新リリース登場時などでは、トラブル報告はま特に新リリース登場時などでは、トラブル報告はまず ず ML ML に現れるに現れる

かなりの流量があるので覚悟するかなりの流量があるので覚悟する

Page 18: FreeBSD 4.6.2-RELEASE  で行こう

ports/packages ports/packages 活用活用 ports - /usr/ports/*ports - /usr/ports/*

3rd party 3rd party ソフトウェアを有志が移植(ソフトウェアを有志が移植( portport )したもの)したものが、一定の手順に従って大量に集積されているが、一定の手順に従って大量に集積されている

他のソフトウェアに対する依存情報も含まれており、他のソフトウェアに対する依存情報も含まれており、依存するソフトウェアがインストールされていなけれ依存するソフトウェアがインストールされていなければ、そのソフトウェアもあわせて自動的にインストーば、そのソフトウェアもあわせて自動的にインストールされるルされる

つくりかたつくりかた : security/sudo : security/sudo の例の例 cd /usr/ports/security/sudocd /usr/ports/security/sudo makemake make installmake install

OS OS リリース時点での リリース時点での ports ports の内容を元に作成されたの内容を元に作成されたバイナリ「パッケージ」が バイナリ「パッケージ」が OS OS に添付されているに添付されている

Page 19: FreeBSD 4.6.2-RELEASE  で行こう

最新の 最新の portsports 最新の 最新の ports ports (( ports-currentports-current )は )は CVSup CVSup すれば入手できるすれば入手できる supfile supfile の中身の中身

*default host=cvsup.jp.freebsd.org*default host=cvsup.jp.freebsd.org*default base=/usr*default base=/usr*default prefix=/usr*default prefix=/usr*default release=cvs tag=.*default release=cvs tag=.*default delete use-rel-suffix compress*default delete use-rel-suffix compressports-allports-all

ports-current ports-current は は FreeBSD FreeBSD 開発版(開発版( -current-current )と安定版)と安定版(( -stable-stable )でしか試されていないので注意。)でしか試されていないので注意。 ある時点の安定版を取り出し、さらに検証を行ったものが ある時点の安定版を取り出し、さらに検証を行ったものが RELEASRELEAS

E E 版として登場する版として登場する ports-current ports-current は、たいていは は、たいていは RELEASE RELEASE 版でもちゃんと動くが、…版でもちゃんと動くが、…

Page 20: FreeBSD 4.6.2-RELEASE  で行こう

ports ports みてあるきみてあるき net/net/

bsdproxy – bsdproxy – 汎用 汎用 proxy proxy サーバサーバ stonestone

ethereal – ethereal – ネットワークアナライザネットワークアナライザ★★ honeyd – for honeyportshoneyd – for honeyports iplog – TCP/IP iplog – TCP/IP ロガーロガー★★ netcat – netcat – 強力ツール強力ツール★★ ngrep – ngrep – ネットワーク ネットワーク grepgrep ntop – ntop – ネットワーク ネットワーク toptop socks5 – NEC socks5socks5 – NEC socks5

dantedante

Page 21: FreeBSD 4.6.2-RELEASE  で行こう

ports ports みてあるきみてあるき security/security/

snort – snort – ネットワーク ネットワーク IDSIDS acid, snort-snarfacid, snort-snarf

amavis-perl – amavis-perl – アンチウィルス メールフィルタアンチウィルス メールフィルタ amavisd, amavisd-new, inflexamavisd, amavisd-new, inflex

arirang – web arirang – web スキャナスキャナ nessus, saint, whiskernessus, saint, whisker

bcwipe – bcwipe – ファイル ファイル / / ディスク消去ソフトディスク消去ソフト ca-roots – CA ca-roots – CA ルートファイル ルートファイル (old!)(old!) chkrootkit – rootkit chkrootkit – rootkit チェッカ チェッカ ★★ dsniff – dsniff – パスワード盗聴ソフトパスワード盗聴ソフト★★

Page 22: FreeBSD 4.6.2-RELEASE  で行こう

ports ports みてあるきみてあるき security/security/

fragrouter – IDS fragrouter – IDS テストツールテストツール hpinghping

gnupg – GNU OpenPGPgnupg – GNU OpenPGP pgp5, pgp6pgp5, pgp6

john – john – パスワード解読ソフトパスワード解読ソフト★★ crackcrack

nmap – nmap – ポートスキャナポートスキャナ★★ portscanner, strobeportscanner, strobe

portsentry – portsentry – ポートスキャン検知ソフトポートスキャン検知ソフト pscan – pscan – ソースコード検査ソフトソースコード検査ソフト

its4, ratsits4, rats

Page 23: FreeBSD 4.6.2-RELEASE  で行こう

ports ports みてあるきみてあるき security/security/

openssh – OpenSSHopenssh – OpenSSH openssh-portable, ssh2, lshopenssh-portable, ssh2, lsh

sudo sudo ★★ supersuper

swatch – simple watcherswatch – simple watcher logchecklogcheck

tripwire – tripwire – ファイル整合性検査ソフトファイル整合性検査ソフト★★ aide, integritaide, integrit

www/www/ squid – www proxysquid – www proxy

tinyproxy, transproxytinyproxy, transproxy

Page 24: FreeBSD 4.6.2-RELEASE  で行こう

その他その他 情報源情報源

本家 本家 - - http://www.freebsd.orghttp://www.freebsd.org FreeBSD FreeBSD 友の会 友の会 - - http://www.jp.freebsd.orghttp://www.jp.freebsd.org 各種 各種 MLML 雑誌雑誌

FreeBSD PressFreeBSD Press BSD magazineBSD magazine その他、ネットワーク系・セキュリティ系雑誌なその他、ネットワーク系・セキュリティ系雑誌な

ど ど