だめねこ飼育日誌 By suteneko
リネ2関連で検索して来たかたはこっちのwikiのほうがいいかも // プロフィール


2004-12-15 (Wed) 「あげる・ください」リストもこっそり更新してます。そちらもよよしく

[サーバ] 設定メモ書き(3) [22:22]

昨日の続きのメモ書きです。(たぶん今週いっぱいかかる)

●システム設定

【/etc/fstab】

ディスク割り当ては、RAID 部分を /home など、データが飛んではまずい部分に。

IDE の(単体)ディスクを swap や /tmp などのデータが飛んでも良い部分と、RAID の backup に。

(RAID 導入の目的はデータの保護で、無停止運用ではないので、全部 RAID にはしなかった。hotswap もコストかかるし、やってない。

ディスクが飛んだらシステムは止まるけど(RAIDの1台が飛んでも箱をあけて中身を交換)、データは保護される仕組み)

# Device Mountpoint FStype Options Dump Pass#

/dev/da0s1a / ufs rw 1 1

/dev/da0s1g /home ufs rw,userquota 2 2

/dev/ad0s1d /tmp ufs rw 2 2

/dev/da0s1d /usr ufs rw 2 2

/dev/da0s1e /var ufs rw,userquota 2 2

/dev/da0s1f /var/log/httpd ufs rw 2 2

/dev/ad0s1e /backup ufs rw 2 2

#/dev/acd0 /cdrom cd9660 ro,noauto 0 0

procfs /proc procfs rw 0 0



【/usr/local/etc/rc.d/000.swapon-md0】

fstab を見て判るとおり swap が無い。IDE のディスクが昔のサーバから引っ越したものであり、歴史的事情による (bsdlabel するわけにいかなかったのだ) 

swap が無いのは不安なので、/backup 上に swap というファイル(2Gバイト)を作り、それを md デバイス経由で swapon している。

# dd if=/dev/zero of=/backup/swap bs=1M count=2048

# chmod 600 /backup/swap

そして、mdconfig を実行するスクリプトを rc.d で走らせている。

このスクリプト、mdconfig でできるデバイスが md0 であると仮定しているのであまり良くないが、

起動時にしか実行されない(=起動後1回目の実行なので必ず0番が割り当てられるはず)のなら問題は無いだろうということで、そのままで放置。

#!/bin/sh


case "$1" in

start)

# swap

mdconfig -a -t vnode -f /backup/swap

swapon /dev/md0

;;

stop)

swapoff /dev/md0

mdconfig -d -u md0

;;

*)

echo ""

echo "Usage: `basename $0` { start | stop }"

echo ""

exit 64

;;

esac



【/etc/rc.conf】

このサーバが置いてあるネットワークは特殊で、NIC には 192.168.xxx.xxx を振って、router で tunnel して global IP を振っている。

(こうすることで 8IP の契約でそのまま 8IP が使えるそうだ)

ここで載せているのは前半部、ports の起動設定は後の項目にて。

hostname="mike.suteneko.jp"


cloned_interfaces="gif0"

ifconfig_fxp0="inet 192.168.xxx.xxx netmask 255.255.255.0"

ifconfig_gif0="inet 218.44.240.166 netmask 255.255.255.255 218.44.240.xxx

tunnel 192.168.xxx.xxx 192.168.xxx.xxx mtu 1454"

defaultrouter="-iface gif0"



kern_securelevel_enable="NO"


keymap="jp.106"


inetd_enable="NO"


sshd_enable="YES"

portmap_enable="YES"


ntpdate_enable="YES"

ntpdate_flags="xxxxxxxx.ocn.ad.jp"

ntpd_enable="YES"


named_enable="YES"

named_flags="-u bind"


firewall_enable="YES"

firewall_type="/etc/ipfw.conf"

firewall_quiet="NO"

firewall_logging="YES"

firewall_flags="-q -p /usr/bin/cpp"


blanktime="NO"


enable_quotas="YES"

check_quotas="YES"


sendmail_enable="NO"


usbd_enable="YES"


ipv6_enable="NO"


clear_tmp_enable="YES"



【/etc/ipfw.conf】

FreeBSD に pf が導入されたのは知っているんですが、まだ導入されたばっかりで枯れては居ないと思うので、ipfwを使っている。

そのまま使うとわかりにくいので、cpp をかませてる。rc.conf にこんな感じで書いてる。

firewall_enable="YES"

firewall_type="/etc/ipfw.conf"

firewall_quiet="YES"

firewall_logging="YES"

firewall_flags="-p /usr/bin/cpp"

以下が /etc/ipfw.conf

ホントはstatefulにしたい(check-stateルール)ところだけど、CPUがしょっちゅう100%に貼り付くような状態では不可能 (T_T)

(この設定内容を書くのはすごく不安……ということで適当に編集します。コピペしてうまく動く保証はありません)

/*

* ipfw setting for mike.suteneko.jp

* 2002/10/24-2004/12/15, suteneko

*

* ipfw -p /usr/bin/cpp /etc/ipfw.conf

*

* rule 01xxx : trust I/F

* rule 02xxx : allow established packet

* rule 03xxx : skipto

* rule 04xxx : any to GLOBAL_IP in

* rule 05xxx : GLOBAL_IP to any out

* rule 06xxx : from IRC-Servers to GIP in

* rule 65xxx : log denied packets

*/


#define GIP 218.44.240.166

#define LIP 192.168.xxx.xxx

#define GIF gif0

#define LIF fxp0

#define LOOP lo0


#define LOG log logamount 0


#define IRCNARAWIDE 192.244.23.2

#define IRCTOKYOWIDE 192.244.23.1

#define IRCFUJISAWAWIDE 192.244.23.3

#define SLAVENAMESERVER1 218.xxx.xxx.xxx

#define SLAVENAMESERVER2 219.xxx.xxx.xxx


#define ROUTER 192.168.xxx.xxx


/* delete rules made by rc.firewall */

flush



/* trusted I/F */

add 01001 allow all from any to any via LOOP


/* local connection */

add 01002 allow all from GIP to GIP

add 01003 allow all from LIP to LIP


/* tunnel I/F */

add 01011 allow 4 from ROUTER to LIP

add 01012 allow 4 from LIP to ROUTER



/* allow TCP packet if setup success */

add 02001 allow tcp from any to any established

add 02002 allow tcp from any to any frag



/* spam sites */

add 02501 deny ip from xxx.xxx.xxx.xxx to any

add 02502 deny ip from xxx.xxx.xxx.xxx to any

add 02503 deny ip from xxx.xxx.xxx.xxx to any

add 02504 deny ip from xxx.xxx.xxx.xxx to any



/* skipto */

add 03001 skipto 06001 all from IRCNARAWIDE to GIP in

add 03002 skipto 06001 all from IRCTOKYOWIDE to GIP in

add 03003 skipto 06001 all from IRCFUJISAWAWIDE to GIP in


add 03011 skipto 04001 all from any to GIP in

add 03011 skipto 04001 all from any to LIP in

add 03012 skipto 05001 all from GIP to any out

add 03012 skipto 05001 all from LIP to any out


add 03021 deny LOG all from any to any



/* any to me in */

/* services by admin */

add 04001 allow tcp from any to any http,ssh,ftp,20,smtp,pop3

add 04002 allow udp from any to any domain,ntp

add 04003 allow tcp from any ssh to any

add 04004 allow udp from any domain to any


/* allow some ICMP

* icmptypes 0: Echo Reply (used in ping)

* icmptypes 3: destination unreachable (RFC2979)

* icmptypes 8: Echo (used in ping)

* icmptypes 11: time-to-live exceeded (used in traceroute)

*/

add 04011 allow icmp from any to any icmptypes 0,3,8,11


/* application software support

* FTPD passive port: xxxxx-xxxxx

* IRC-bot:

* (略)

*/

add 04021 allow tcp from any to any xxxxx-xxxxx

add 04021 allow tcp from any to any xxxx,xxxx,xxxx,...


/* allow dns transfer */

add 04032 allow tcp from SLAVENAMESERVER1 to any domain

add 04033 allow tcp from SLAVENAMESERVER2 to any domain


/* deny others */

add 04041 deny tcp from any to any 137-139

add 04042 reset tcp from any to any ident

add 04043 deny LOG tcp from any to any setup

add 04044 deny tcp from any to any

add 04045 deny all from any to any



/* me to any out */

add 05001 allow all from any to any out


/* IRC-servers to me in */

add 06001 allow tcp from any to any http,ssh,ftp,20,smtp,pop3,ident

add 06002 allow udp from any to any domain,ntp

add 06003 allow tcp from any ssh to any

add 06004 allow udp from any domain to any


add 06011 allow icmp from any to any icmptypes 0,3,8,11


add 06021 reset tcp from any to any

add 06022 deny all from any to any

[サーバ] 設定メモ書き(4) [23:59][随時最新情報に更新:最終更新 01/19 20:46]

今度はports。関係ないけど ports といった場合は collection 全体で、1つ1つは port と言うそうだ。知らなかった(^^;

●各portの設定

パッケージ名設定意味
editors/vimWITHOUT_X11=yes-
java/jdk14MINIMAL=yes最小インストール。いろいろ入れない
mail/qpopperWITH_DRAC=yesPOP before SMTP を使う場合にon
WITH_PAM=yes-
WITH_POPPASSD=yes-
WITH_SHY_ENABLED=yesqpopper のバナーに version を出さない
WITH_STANDALONE_MODE=yesinetd からの起動ではなくて daemon 化する
net/rsyncWITH_POPT_PORT=yesbuildに必須
sysutils/xmbmonWITHOUT_X11=yes-
www/apache2WITH_MPM=workerworker thread を有効に
WITH_THREADS=yesthread を有効にする
WITH_SUEXEC=yes-
SUEXEC_DOCROOT=/home-
SUEXEC_LOGFILE=/var/log/httpd/httpd-suexec.log-
SUEXEC_UIDMIN=2000-
SUEXEC_GIDMIN=2000-
www/mod_fastcgiWITH_APACHE2=yesApache2で使うためのオプション
www/webalizerWITH_LZW=yesGIF関連。特許が解決されたのでオプションなくなった?


以上の部分を /usr/local/etc/pkgtools.conf の MAKE_ARGS 欄に記載。こんな感じ

MAKE_ARGS = {

'java/jdk14' => 'MINIMAL=yes',

本日のツッコミ