linux
NEC IX2015とAmazon EC2インスタンスをIPsecトンネルモードで接続してみました。ほぼ自分用の備忘録なんですが、不備などご指摘いただけると嬉しいです。IX2015は動的IPのPPPoEに接続されています。EC2側のみ固定IPを確保できるため、IX2015からEC2に向かっ…
VRRPはデフォルトゲートウェイの冗長化で多く使われています。LinuxのクラスタミドルであるkeepalivedもVRRPに対応しており、ハードウェアルータと組み合わせることができます。今回はkeepalivedとIX2015でVRRPを構成してみました。といっても特殊な使い方を…
Linux KVMにWindows Server 2008 R2をインストールする際のポイントを紹介します。 virtioドライバを準備する QEMUはe1000などの各種のデバイスをエミュレートしてくれますが、余分なオーバーヘッドが発生します。virtioは仮想I/Oデバイスのフレームワークで…
いわゆるtopのlibvirt版です。Gentooではebuildが用意されていないので、ソースからビルドします。さくっと入るかと思ったら予想外に手こずりました。 dev-lang/ocaml dev-ml/findlib dev-ml/extlib ocaml-libvirt-0.6.1.0 - ocaml-libvirt OCaml bindings f…
ログ監視はシステムの異常を検知する重要な方法です。外部にサービスを公開すると侵入される可能性がありますし、サービス障害に気づかない可能性もあります。syslog-ngではログに特定のパターンが出現したらメールで通知することが可能です。destinationのp…
クラスタ構成のサーバでは、障害発生後にクライアントがすぐに復旧しない場合があります。サーバ側がフェイルオーバした後にクライアント側が再接続するまでの時間を短くする方法を紹介します。クライアントからサーバに接続するとソケットはESTABLISHEDにな…
出先からサーバをメンテナンスするには、SSHサーバをインターネットに公開する必要があります。SSHはデフォルトではIDとパスワードだけでログインできてしまうため、狙われやすい侵入経路の一つです。ここではSSHサーバの安全性を高める設計を挙げてみます。…
ファイル転送用のアカウントでは、sshを制限してsftpのみ許可したい場合があります。ログインシェルを/sbin/nologinに変更すると、sshだけでなくsftpも制限されてしまいます。そのような場合はsshd_configのForceCommandを使います。例えば、 # /etc/ssh/ssh…
地デジじゃなくて地アナ。KRTV-7131は玄人志向のテレビキャプチャカードです。2006年秋に買ってしばらく使ってませんでしたが、引越しで地アナが受信できるようになったので復活させてみました。マンションをダウングレードしたら地アナが受信できるようにな…
パッケージ名が変更されたようです。 emerge -pv qemu-kvmqemu-kvmにアップデートしたら /usr/bin/kvm がなくなってしまいました。libvirt XMLを変更したくないので、kvmという名のラップシェルを置きました。 #!/bin/sh exec /usr/bin/qemu-system-x86_64 -…
LAN上にメールサーバが立っている場合、ローカルのメール送信にsendmailやPostfixを使うのは重すぎます。SMTPさえ喋れればよいので、ssmtpやnbsmtpを使います。しばらくssmtpを使っていたのですが、Fromに名前が付加される、Toが勝手に書き換えられる、とい…
Linuxの仮想化技術であるKVMが広まりつつあります。昨年の今頃はWindowsゲストが起動しただけで感動してましたが、今や多くのディストリビューションで動くようになりました。デスクトップ内の開発環境として使う場合はオールインワンですぐ使えることが大事…
以前、システムロガーにmetalogを使っていました。分かりやすいログ配置、分かりやすい設定ファイル、自動ローテーション等の利点があって重宝していましたが、たった一つ欠点がありました。それは他ホストからのsyslogを受信できないことでした。複数のホス…
/etc/pam.d/system-authが気になって夜も眠れないので調べてみました。この設定ファイルはOS全体の認証*1を司るものです。コンソールでログインするとき、SSHで接続するとき、su(switch user)するときなど、多くの場面で利用されます。/etc/pam.d以下にあ…
kvm-ifupはブリッジを勝手に選んでしまうため、シンボリックリンクでブリッジを指定できるスクリプトを書きました。 #!/bin/bash # /etc/kvm/kvmtap: TAP device wrapper for KVM cmd="`basename "$0"`" spec="${cmd#*-}" iface="${spec#*-}" operation="${s…
libvirtdでVMを起動するにはドメインXMLファイルが必要ですが、QEMUの引数からXMLファイルを生成する方法を紹介します。まず、QEMUのコマンドラインをテキストファイルに保存します。下記例では見やすくするため改行していますが、すべて1行で書いてください…
Linux KVM(Kernel-based Virtual Machine)の物理マシンを仮想マシンに移行する手順をまとめました。すでにある物理マシンを仮想マシンに移行する場合を考えます。仮想マシンを実行するための環境はハイパーバイザと呼びます。ディストリビューションに依存…
ディスクを積んでいないノートPCを使い、無線LANによるネットワークブートをやってみました。今回起動したディストリビューションはGentoo Linuxです。11gのためかそこそこ速く、意外と快適に使えています。仕組みはこんな感じになっています。 (1)(2) 最初…
起動時にCtrl+Bを押してgpxeコンソールに落ちるのは面倒です。そこで、gpxeのコンパイル時にスクリプトを仕込むことで自動起動が可能です。gpxeのソースコードと同じディレクトリにスクリプトファイル(例:iscsi-boot.gpxe)を作成します。 #!gpxe dhcp net…
ボリューム全体をファイルシステムに使った方がよいです。TargetからもInitiatorからも1つのパーティションとして扱えるため、Initiatorで問題が起こった場合にもTargetホストでの対処が容易になります。 パーティションを切らない場合 iSCSI Targetホストの…
initramfsを操作するユーティリティを書きました。 Create image: geninitramfs <initramfs.gz> [directories]Resolve and copy libraries: geninitramfs -r [--test]Show list contents: geninitramfs -l <initramfs.gz>Extract image: geninitramfs -x <initramfs.gz> http://coderepos.org/share/bro</initramfs.gz></initramfs.gz></initramfs.gz>…
とりあえずインストーラが動いたのでメモです。気が向いたら空白を埋めます。 gpxeのインストール hpa-tftpのインストール pxe-pdhcpのインストール Ubuntu Netboot Installerの配置 http://ubuntu-ashisuto.ubuntulinux.jp/ubuntu/dists/jaunty/main/instal…
pxe-pdhcpはProxy DHCPサーバーの実装です。Proxy DHCPはPreboot Execution Environment (PXE)というネットワークブートの標準規格を使ってディスクレスコンピュータをネットワークブートする際に使います。 http://d.hatena.ne.jp/viver/20080720/p2 pxe-pd…
多くのLinuxでは、カーネルイメージは以下の名前で格納されています。 /boot/vmlinuz-2.6.27-gentoo-r8 /boot/System.map-2.6.27-gentoo-r8 /boot/config-2.6.27-gentoo-r8 これだと複数のカーネルイメージを持つとごちゃごちゃして分かりにくい。バージョン…
0.0.0.0でListenしているアプリがある状態で、ネットワークインタフェースが追加された場合、新しいインタフェースへの接続要求はAcceptされるのか?とりあえずLinuxのOpenSSHで試してみたところ、普通にAcceptされました。まあeth1が増えたからといってデー…
RAID1+LVMのボリューム上にルートファイルシステムを置くには、起動時にRAID1ボリュームとLVMボリュームの両方を認識してやる必要があります。そのためにはinitramfsを使います。下記の構成を考えます。 物理ボリューム RAIDボリューム タイプ /dev/sda1 + /…
バーチャルホストごとに実行ユーザを変更できるMPMとしてperuserがあります。example.comならwwwpublicで実行、private.example.comならwwwprivareで実行といったことができます。Gentoo Linuxの場合、Apacheにperuserを組み込むには/etc/portage/package.us…
サーバ構成が落ち着いてきたので、システム設計編としてまとめてみます。12月に書いたエントリの続編になります。 X27Dで始める自宅サーバ(概説) - GeekFactory X27Dで始める自宅サーバ(カーネル構築編) - GeekFactory システム設計の体系はネット上では…
一切のストレージを積んでいないPCでOSを起動させる方法。それがネットワークブートです。起動時にHDDやCD-ROMからOSを読み込む代わりに、ネットワークからOSをダウンロードします。最近のPCであればたいていPXEという方式に対応しています。Intel Boot Mana…
本来のパーティションテーブルを書き戻せば復旧できる可能性があります。ddを暴走させてパーティションテーブルを破壊してしまい、ひどい目に遭いました。ターミナルのスクロールログに残っていたテーブルを書き戻したら、後ろのデータは復旧できました。タ…