gentoo
-
NICが認識しない件、解決
on
2008/02/20 by
, [diary, gentoo, server]
dmesg|grep eth してみたら、eth0からeth1にrenameしたよとか書いてあったorz ので、単純に ln -sf /etc/init.d/net.lo /etc/init.d/net.eth1 sed -i 's/eth0/eth1/g' /etc/conf.d/net /etc/init.d/net.eth1 start これだけでした。あとはルータ側でポート開けたり、スタティックルーティングしたりして、EM-ONE使って外から繋がることを確認。が、今度はメールが送れなくてしばし嵌った。プロバイダが変わったから、単純に/etc/postfix/main.cfのrelayhostを書き換えて、smtp_sasl_password_mapsで指定したファイルにSMTPホスト名とユーザ名とパスワード書いて、そいつをpostmapして/etc/init.d/postfix restartで終了だと思っていたのだが。 色々見直してmain.cfのrelayhostと、postmapするファイルの書き方を example.com:587 やら、[example.com]:587 やら試すもダメ。master.cf見直したりしても結局わからず。しかたないのでmain.cfの smtp* を全部虱潰しに調べるも特に以上は見あたらず。半ば諦めつつWebを検索してたらVine3.2のPostfixでSMTP認証ってエントリで →main.cf へ smtp_sasl の設定を追加。 smtpd_sasl じゃないので、要注意。 ……もしやと思って見てみたら、smtpd_sasl_auth_enable = yes という記述はあったけども、 smtp_sasl_auth_enable = yes がなかったのが原因でしたとさ…。疲れたわ。 gentoo, network, server
-
[memo] 異なるアーキテクチャ間でクロスコンパイル
on
2006/11/19 by
, [gentoo, memo, server]
前提条件 基本的にはGentoo distcc ドキュメント・DistCC クロスコンパイルガイド、この2つのドキュメントの通り行う。気をつけなきゃいけないのは、「資源を借りる側」と「資源を貸す側」で若干設定が異なる点。ここでは借りる側はi686(192.168.0.4)、貸す側はamd64(192.168.0.3)とする。 貸す側と借りる側で、gccのバージョンは同じであること。3.3.x同時はOKだが、3.3.xと3.2.xは混ぜないこと。 また、資源を借りる側は一方的に借りるだけで、相互に助け合わない設定とした。これは、貸す側はサーバなので24時間稼働しているが、借りる側はノートなのでそうした。 資源を貸す側の設定 # emerge distcc crossdev # vi /etc/make.conf MAKEOPTS="-j8" #(CPUの数+1)*2 ここは全体じゃなくてサーバ単体で計算すべきなのかも。詳細不明…もしかしたら-j6が当たりなのかも? FEATURES="distcc" DISTCC_DIR="/var/tmp/.distcc" PORTDIR_OVERLAY="/usr/local/portage" # distcc-config --set-hosts "localhost 192.168.0.4" # vi /etc/conf.d/distccd DISTCCD_OPTS="${DISTCCD_OPTS} --allow localhost --allow 192.168.0.4" #--allow 192.168.0.0/24でも可 # /etc/init.d/distcc start # rc-update add distcc default # crossdev -t i686 資源を借りる側の設定 # emerge distcc # vi /etc/make.conf MAKEOPTS="-j8" #(CPUの数+1)*2 FEATURES="distcc" DISTCC_DIR="/var/tmp/.distcc" # vi /etc/conf.d/distccd DISTCCD_OPTS="${DISTCCD_OPTS} --allow localhost" #相互に助け合いたい場合は--allow 192.168.0.3を足すか--allow 192.168.0.0/24にする # cd /usr/lib/distcc/bin # rm c++ g++ gcc cc # echo '#!/bin/bash' > i686-pc-linux-gnu-wrapper # [...]
-
[memo][Gentoo] SNMP+RRDtool+cactiでサーバ監視
on
2006/11/12 by
, [gentoo, memo, server]
インストールまでは上手くいったけど設定に嵌って酷い目にあった。 必要なものをインストールする 以下のものが必要。 net-snmp apache php mysql rrdtool cacti さくっとemergeするわけだが、USEフラグに注意。cactiにはapache2/snmp、phpにはapache2/snmp/sockets/mysqlあたりが必要(gdとかxmlも必須なのか?よくわらかんがこの辺は/etc/make.confでデフォルトで付けている)。 初期設定 cacti用のデータベースとユーザを作成し、付属のスクリプトでテーブルを作成する。 # mysqladmin -u root create cacti -p # mysql cacti -u root -p < /var/www/localhost/htdocs/cacti/cacti.sql # mysql -u root mysql -p -e"GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'p4ssw0rd'" # mysql -u root mysql -p -e"flush privileges" 次にphpのconfigファイルを、今設定したものに合わせて書き換える。 # /var/www/localhost/htdocs/cacti/include/config.php $database_username = "cactiuser"; $database_password = "p4ssw0rd"; cron実行用のシステムアカウント作成とパーミッション変更 # useradd -g apache -d /dev/null -s /bin/false -c cacti cacti ホームディレクトリを/dev/null、ログインシェルを/bin/falseにすることで、cactiというユーザでログインできないようにする。この辺は適当に手を抜いてrootでやったりすると怖いので忘れずに。次にcactiユーザでデータの読み書きするためにパーミションを変える。 # chown -R cacti:apache /var/www/localhost/htdocs/cacti 全部変えちゃったけどrraとlogディレクトリだけでいいかも。未検証。 cronの設定 適当なタイミングでスクリプトをブン回す。とりあえず5分間隔に設定。 # vi [...]
-
[memo] GentooにPlaggerをインストール
on
2006/11/11 by
, [gentoo, memo, plagger, server]
Gentooにはg-cpanという素晴らしいものがあるのだが、そこはあえて使わずにいく。というかなんか知らないけど上手くいかなかったので、仕方なく手動で入れたとも言う。とりあえず自宅サーバと言うことで、サックリrootになって入れることにする。そのほうが簡単。以前レンタルサーバで悩んだのがウソのようだ。ちゃんとログを取ってないので曖昧な記憶でメモ。 準備 別段何もない。 # perl -MCPAN -e shell 基本全部デフォルトのままENTER押してりゃよし。Gentooの場合、cpanでガンガン入れる前にまず # emerge expat これをやっておく。次にCPANのConfigを弄る。 # vi /usr/lib/perl5/5.8.8/CPAN/Config.pm $CPAN::Config = { 'build_cache' => q[100], 'build_dir' => q[/root/.cpan/build], 'bzip2' => q[/bin/bzip2], 'cache_metadata' => q[1], 'check_sigs' => q[0], 'colorize_output' => q[0], 'commandnumber_in_prompt' => q[1], 'cpan_home' => q[/root/.cpan], 'curl' => q[/usr/bin/curl], 'ftp' => q[/usr/bin/ftp], 'ftp_passive' => q[1], [...]
-
[memo] rep2をSSL+Basic認証で使う
on
2006/11/04 by
, [gentoo, memo, server]
通勤時の電車の中では本を読んでいるか、暇つぶしに2ch見てるわけだが。どうせ携帯で見るなら自宅サーバのリソースも余ってることだし有効活用したい。そんなわけでrep2を使うことにした。 インストール とりあえずダウンロードして、/var/www/localhost/rep2とかに置く。apacheは当然SSL有効でコンパイルしておくこと。phpはやたらに使用可能なフラグが多いのでメモっておく。 # emerge -pv php These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/php-5.1.6-r6 USE="apache2 bzip2 cjk cli crypt curl curlwrappers gd iconv mysql ncurses nls pcre readline sasl session spell ssl threads unicode xml xmlrpc zlib (-adabas) -apache -bcmath -berkdb (-birdstep) -calendar -cdb -cgi -concurrentmodphp [...]
-
[memo] GentooでUPS(APC ES 500)を使う
on
2006/10/30 by
, [gentoo, memo, server]
Amazonで\7,000ちょっとという値段だったので、購入したのが届いた。流石に24時間稼働だとUPSがないと怖い。今年の雷で瞬断も多くあったので。付属のPowerCuteはWindowsとMacOS Xと商用Linuxにしか対応していないので自力でどうにかする方法をメモ。 準備と接続、認識確認 # emerge apcupsd なにはなくともコレがないと始まらない。とりあえずインストールしたら一旦シャットダウンしてコンセントをUPSにつなぎ変え、付属のUSB通信ケーブルでUPSとサーバを接続して再起動。再起動したらdmesgを見てサーバがES500を認識しているか確認。 usbcore: registered new driver hiddev hiddev0: USB HID v1.10 Device [APC APC ES 500 FW:803.p6.A USB FW:p6] on usb-0000:00:10.2-2 上記のようなメッセージがあれば問題ない。が、 es500 hid device not claimed とか出てたら認識していない。俺の場合は思い切り認識していなかった。要するにまたカーネル再構築。だがもう手慣れたモンなのでサクサクと再構築する。こういうときはマシンパワーがあると非常に楽だ。お約束の以下の呪文を唱える。 # cd /usr/src/linux # make menuconfig そして今の設定をLOADして、以下のところにチェックを付けて保存。 Device Drivers ---> USB Support ---> /dev/hiddev raw HID device support またお約束の呪文。 # make && make modules_install # cp arch/x86_64/boot/bzImage /boot/なんか適当な名前 そしたら/boot/grub/grub.confを編集して再起動すればいい。今度はちゃんと認識されているはず。念のためapcaccess statusとやってエラーが出ないことを確認する。 設定と動作確認 次はapcupsdの設定を行う。 # vi /etc/apcupsd/apcupsd.conf UPSCABLE usb UPSTYPE usb DEVICE LOCKFILE /var/lock ONBATTERYDELAY 6 BATTERYLEVEL 5 MINUTES 3 TIMEOUT 10 ANNOY 300 ANNOYDELAY [...]
-
[修正版][memo] postfix + dovecotでSMTP AUTH & IMAPなメールサーバを立ち上げる
on
2006/10/29 by
, [gentoo, memo, server]
[memo] postfix + dovecotでSMTP AUTH & IMAPなメールサーバを立ち上げるがあまり正しくないので修正版。 ssmtpの削除 Gentooではいきなりpostfixを入れようとしても、デフォルトでssmtpが入っていてblockされるのでssmtpを消すのが先決。 # emerge -C ssmtp postfixとdovecotのインストール Gentooの基本だけど、emergeするときはemerge -pvでどんなフラグが有効になるか必ず確認。必要ないならpackage.useで外す。あとsaslが必要なのでこれは付けておく。あとなんでかわからないけどpostfixにsaslを付けるとついてくるcyrus-saslで、gdbmやcryptをUSEするとコンパイルに失敗したので外した。 # emerge -pv postfix dovecot # echo "mmail-mta/postfix -mysql sasl" >> /etc/portage/package.use # echo "dev-libs/cyrus-sasl -mysql -java -gdbm -crypt" >> /etc/portage/package.use # emerge postfix dovecot オレオレ認証局の作成 Gentooでの方法なので他のディストリではパスが違うようなので注意。 # mkdir /etc/certs # chmod 700 /etc/certs # cd /etc/certs # cp /etc/ssl/misc/CA.pl . # perl ./CA.pl -newca CA certificate filename (or enter to create) (ENTER) Making CA certificate ... Generating a [...]
-
[memo] iptablesが使えないのでkernel再構築 & sshdへのアタックをどうにかする
on
2006/10/28 by
, [gentoo, memo, server]
なんつーかね、某krからのsshdへのBrute force attacksが酷すぎる。auth.logを埋め尽くすほどのアタックを食らったので対策することに。だが普通にインストールするとiptablesが動いてくれないので、カーネル再構築に挑戦する。 別に今回はkernelのバージョンを上げたいわけではなく、単純にカーネルのオプションを変えたいだけなので、emerge gentoo-sourcesはやらない。以下、rootになって作業を行う。あとmenuconfigはscreenの中でやると表示が乱れて酷いことになるので、screenをデタッチするなり抜けるなりしてからやったほうがいい。 # cd /usr/src/linux # make menuconfig Confgurationが立ち上がったら、まずLoad an Alternate Configuration Fileを選ぶ。”.config”が入力されているはずなので、そのままOKすると現在の設定が読み込まれる。そしたら Networking ---> Networking options ---> Network packet filtering (replaces ipchains) ---> Core Netfilter Configuration ---> Netfilter Xtables support (required for ip_tables) を選択。その下に色々あるが、よくわからないならMにしといてあとでModuleとして読めるようにしておくと吉。必要なのに何もチェックしないでおくと、再度カーネル再構築が必要になって面倒なので。チェックしたら1つ戻ってIP: Netfilter Configurationの中に入る。とりあえず必須なのはIP tables support (required for filtering/masq/NAT)と、IP range match support、Packet filtering、REJECT target support、address type match support、Full NAT、MASQUERADE target [...]
-
[memo] postfix + dovecotでSMTP AUTH & IMAPなメールサーバを立ち上げる
on
2006/10/25 by
, [gentoo, memo, server]
2006/10/29追記: 以下の内容はイマイチ不正確なので[修正版][memo] postfix + dovecotでSMTP AUTH & IMAPなメールサーバを立ち上げるで書き直しています。 Gentooではいきなりpostfixを入れようとしても、デフォルトでssmtpが入っていてblockされるのでssmtpを消すのが先決。 # emerge -C ssmtp んでGentooの基本だけど、emergeするときはemerge -pvでどんなフラグが有効になるか必ず確認。postfixにmysqlがついちゃうので、必要ないならpackage.useで外す。あとsaslが必要なのでこれは付けておく。あとなんでかわからないけどpostfixにsaslを付けるとついてくるcyrus-saslで、gdbmやcryptをUSEするとコンパイルに失敗したので外した。 # echo "mmail-mta/postfix -mysql sasl" >> /etc/portage/package.use # echo "dev-libs/cyrus-sasl -mysql -java -gdbm -crypt" >> /etc/portage/package.use # emerge -v postfix postfixの設定は /etc/postfix/main.cf で行う。以下のように設定した。 soft_bounce = no myhostname = 普通はmyhostnameから最初の要素を取ったもの mydomain = gethostname()から得られるFQDN myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, localhost mynetworks_style = subnet mynetworks = 192.168.0.0/24, 127.0.0.0/8 relay_domains = $mydestination alias_maps = [...]
-
[memo] サーバのCPU動作周波数を動的に変える
on
2006/10/24 by
, [gentoo, memo, server]
[memo] サーバのCPU動作周波数を下げるの続き。 やってみないとわからんので、cpufreq_ondemandを試してみる。 # modprobe cpufreq_ondemand # echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor # cd /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ # ls ignore_nice_load sampling_down_factor sampling_rate sampling_rate_max sampling_rate_min up_threshold # cat ignore_nice_load 0 # cat sampling_down_factor 1 # cat sampling_rate 1040000 # cat sampling_rate_max 520000000 # cat sampling_rate_min 520000 # cat up_threshold 80 詳細はKernel メモ ondemand参照。とりあえずignore_nice_loadは1に設定しておいた。急がないけど負荷になりそうな作業なんかはniceすること。 実際にemerge –syncとかして/proc/cpuinfoを見てたら、普段1GHzで動作しているのが2GHz→1.8GHzとなって1GHzに戻った。上手く動いているっぽい。試しにnice revdep-rebuildとかすると1GHzから変わらないことも確認。とりあえずこのまま運用してみる。 cpu, gentoo, memo, server