けんども日記

月に1回くらいの更新を目標にしています。

2010-09-14

さくらのVPSでSELinuxを有効にする

話題のさくらのVPSを借りた。すでにレビューや初期設定に関する情報は他にたくさんあるので、ここでは少々マニアック(?)な話題を。 KVMならディスクやNICは virtio だとおもったら、ここは完全仮想化(ゲストの汎用性を考えて?)。

さて、せっかくCentOS5で完全仮想化なのに、SELinuxが無効化されているのはもったいない。 SSHのアクセス制限等の基本的な設定が終わってから、すぐにSELinuxを有効にすることにした。

まず、初期状態でもラベルはある程度ついているが、怪しいのでこれは再ラベル必要か。

# ls -lZ /
drwxr-xr-x  root root system_u:object_r:bin_t:s0       bin
drwxr-xr-x  root root system_u:object_r:boot_t:s0      boot
drwxr-xr-x  root root                                  dev
drwxr-xr-x  root root system_u:object_r:etc_t:s0       etc
drwxr-xr-x  root root system_u:object_r:home_root_t:s0 home
drwxr-xr-x  root root system_u:object_r:lib_t:s0       lib
drwxr-xr-x  root root system_u:object_r:lib_t:s0       lib64
drwx------  root root                                  lost+found
drwxr-xr-x  root root system_u:object_r:mnt_t:s0       media
drwxr-xr-x  root root system_u:object_r:mnt_t:s0       misc
drwxr-xr-x  root root system_u:object_r:mnt_t:s0       mnt
drwxr-xr-x  root root system_u:object_r:usr_t:s0       opt
dr-xr-xr-x  root root                                  proc
drwxr-x---  root root root:object_r:user_home_dir_t:s0 root
drwxr-xr-x  root root system_u:object_r:sbin_t:s0      sbin
drwxr-xr-x  root root system_u:object_r:file_t:s0      selinux
drwxr-xr-x  root root system_u:object_r:var_t:s0       srv
drwxr-xr-x  root root                                  sys
drwxrwxrwt  root root system_u:object_r:tmp_t:s0       tmp
drwxr-xr-x  root root system_u:object_r:usr_t:s0       usr
drwxr-xr-x  root root system_u:object_r:var_t:s0       var

ということで、次回起動時にラベルの再付与できるように。

# touch /.autorelabel

その際はPermissiveモードで起動できるように、/etc/selinux/config を書き換えておく。

#SELINUX=disabled
SELINUX=permissive

再起動すると起動中にラベルが再付与される。コントロールパネルのリモートコンソールで次のようなメッセージを確認。

*** Warning -- SELinux targeted policy relabel is required.
*** Relabeling could take a very long time, depending on file
*** system size and speed of hard drives.
/sbin/setfiles:  labeling files under /
******************************************** 

ログインしてPermissiveモードになっていることを確認。

# getenforce 
Permissive

続いて、SSHのポートを変えてみよう。安全にSSHを使うために、接続元の制限や公開鍵認証をするのは当然として、あわせてポートも変えておきたい。このようなサービスのポートを変更するのはSELinuxのポリシに違反するので、対応が必要。例として 10022 番ポートにする(本当はもっとわかりにくいものを設定している)。これで /etc/ssh/sshd_config でポートを変更してもsshdを立ち上げることができる。

# semanage port -a -t ssh_port_t -p tcp 10022

sermanage コマンドで ssh_port_t タイプのポートで 10022 が追加されていることを確認。

# semanage port -l|grep ssh
ssh_port_t                     tcp      10022, 22

さくらのVPSでは標準では auditd が起動していないので、SELinuxに関するログは /var/log/messages や dmesg で確認ができる。ログを確認して問題がないようであれば、Enforcingモードに切り替える。

# setenforce 1
# getenforce 
Enforcing

起動時にEnforcingモードとなるように、 /etc/selinux/config も書き換える。

#SELINUX=disabled
#SELINUX=permissive
SELINUX=enforcing

これで再起動して動作に問題がなければOK。さくらのVPSの場合、リモートコンソールがあるので、万一SELinuxの設定をミスして起動できなくなっても安心(GRUB で enforcing=0 すればよい)。

SELinuxを有効にしたからセキュリティは万全というわけでもないし、運用も面倒だったりするのだけど、何もしないよりは安心できる気がする。

自分が設定したサーバを他人へ提供する場合、SELinuxの運用は難しい。例えば、初期状態ではWebアプリケーションがDBに接続したり、ネットワークを介して外部へ接続することすらできない。かといって、httpd_t に対して何でも許可してしまうと、SELinuxを有効にしている意味が薄れるので、ユーザが何をしたいのかをすべて把握する必要がある。それに対して、自分が使うサーバであれば、好きなように設定ができる。

わからずにSELinuxを有効にしていると「ホームディレクトリから移動したファイルがApacheで表示できない」「ポートを変更したらサービスが起動しない」「DocumentRoot を変更したらApacheが起動しない」「FTPでファイルが転送できない」なんてことになるので、SELinuxが悪者扱いされることが多いのは残念。

2010-06-14

RHEL5.5 で PacketiX VPN を使ったIPv6トンネル接続実験サービスに接続

久々にサーバの設定ネタなのだけれども、RHEL5.5でソフトイーサ株式会社及び筑波大学システム情報工学研究科産学間連携推進室のグローバル・固定 IPv6 アドレス割当型トンネル接続実験サービスを使ってみたメモ。

クライアント接続とブリッジ接続の2つがあり、今回は1台でだけで割り当てられたIPv6アドレスを使いたかったので、クライアント接続で試すことにした。 今回は PacketiX VPN Client 3.0 をダウンロードし、ソフトイーサ株式会社のマニュアルを見ながら導入。 PacketiX VPN のサーバ版は有償らしいのだけれども、クライアントやブリッジは無償で利用できる。

make して質問に答えると vpnclient と vpncmd という実行ファイルが生成されるので、 vpnclient ディレクトリごと /usr/local/ に設置して、起動スクリプトを用意すれば導入は完了。RHEL5.5では gcc などの開発環境の他に ncurses-devel, readline-devel, libtermcap-devel, openssl-devel, zlib-devel などが必要である。

$ tar zxf vpnclient-v3.00-6890-rtm-2010.03.15-ja-linux-x86-32bit.tar.gz
$ cd vpnclient/
$ make
# mv vpnclient/ /usr/local/
# cd /usr/local/vpnclient/
# chown -R root:root .
# chmod 600 *
# chmod 700 vpnclient vpncmd

起動スクリプト /etc/init.d/vpnclient は以下の内容で用意。

#!/bin/sh
# chkconfig: 2345 99 01
# description: PacketiX VPN Client 3.0

DAEMON=/usr/local/vpnclient/vpnclient
LOCK=/var/lock/subsys/vpnclient

test -x $DAEMON || exit 0

case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"

exit 1
esac
exit 0

/etc/init.d/vpnclient start で vpnclient を起動させてから vpncmd コマンドで設定する。「2. VPN Client の管理」を選択し、localhost に接続する。

# ./vpncmd 
vpncmd コマンド - PacketiX VPN コマンドライン管理ユーティリティ
PacketiX VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 3.00 Build 6890   (Japanese)
Compiled 2010/03/15 05:56:28 by yagi at pc25
Copyright (C) 2004-2010 SoftEther Corporation. All Rights Reserved.

vpncmd プログラムを使って以下のことができます。

1. VPN Server または VPN Bridge の管理
2. VPN Client の管理
3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)

1 - 3 を選択: 2

接続先の VPN Client が動作しているコンピュータの IP アドレスまたはホスト名を指定してください。
何も入力せずに Enter を押すと、localhost (このコンピュータ) に接続します。
接続先を入力: 

VPN Client "localhost" に接続しました。

VPN Client>

VPN Client> というプロンプトになったら、ここからクライアントの設定や確認ができる。最初は Check コマンドを実行すると、この環境で利用できるかをチェックしてくれる。

VPN Client>Check
Check コマンド - PacketiX VPN の動作が可能かどうかチェックする
---------------------------------------------------
PacketiX VPN 動作環境チェックツール

Copyright (C) 2004-2010 SoftEther Corporation.
All Rights Reserved.

この動作環境チェックツールを実行したシステムがテストに合格した場合は、PacketiX 
VPN ソフトウェアが動作する可能性が高いです。チェックにはしばらく時間がかかる場
合があります。そのままお待ちください...


'カーネル系' のチェック中...
              [合格] ○
'メモリ操作系' のチェック中...
              [合格] ○
'ANSI / Unicode 文字列処理系' のチェック中...
              [合格] ○
'ファイルシステム' のチェック中...
              [合格] ○
'スレッド処理システム' のチェック中...
              [合格] ○
'ネットワークシステム' のチェック中...
              [合格] ○

すべてのチェックに合格しました。このシステム上で PacketiX VPN Server / Bridge 
が正しく動作する可能性が高いと思われます。

コマンドは正常に終了しました。

続いて、仮想のVPN Clientが使うLANカードを作成。今回は v6ip という名前にした。

VPN Client>NicCreate 
NicCreate コマンド - 新規仮想 LAN カードの作成
仮想 LAN カードの名前: v6ip

コマンドは正常に終了しました。

VPN Client>

ここでシェルに戻って ifconfig で確認すると、vpn_v6ip というインターフェイスが立ち上がっているのが確認できる。 続いて、接続アカウントの設定。接続の名前はわかりやすいように v6ip_client にした。登録時の情報と、先ほど作成したLANカード名を入力。

VPN Client>AccountCreate
AccountCreate コマンド - 新しい接続設定の作成
接続設定の名前: v6ip_client

接続先 VPN Server のホスト名とポート番号: v6ip.tsukuba.wide.ad.jp:443

接続先仮想 HUB 名: ACVPN

接続するユーザー名: アカウント

使用する仮想 LAN カード名: v6ip

コマンドは正常に終了しました。

VPN Client>

次は先ほどの設定のパスワードを設定。

VPN Client>AccountPasswordSet
AccountPasswordSet コマンド - 接続設定のユーザー認証の種類をパスワード認証に設定
接続設定の名前: v6ip_client

パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。

パスワード: **************
確認入力  : **************


standard または radius の指定: standard

コマンドは正常に終了しました。

VPN Client>

AccountConnect コマンドで接続名を指定して接続。

VPN Client>AccountConnect v6ip_client
AccountConnect コマンド - 接続設定を使用して VPN Server へ接続を開始
コマンドは正常に終了しました。

AccountList コマンドで状態が「接続完了」ならば接続されており、より詳細な情報は AccountStatusGet で確認できる。

VPN Client>AccountList v6ip_client
AccountList コマンド - 接続設定一覧の取得
項目               |値
-------------------+----------------------------------------------
接続設定名         |v6ip_client
状態               |接続完了
接続先 VPN サーバー|v6ip.tsukuba.wide.ad.jp:443 (直接 TCP/IP 接続)
仮想 HUB 名        |ACVPN
仮想 LAN カード名  |v6ip
コマンドは正常に終了しました。

VPN Client>

これで先ほど立ち上がった vpn_v6ip インターフェイスにグローバルユニキャストアドレスが付与される。/etc/init.d/vpnclient start 時に自動的に接続されるようにするには AccountStartupSet で設定できる。

PacketiX VPN を使ってみたのは初めてなのだけれども、NAT環境下やHTTP Proxyを経由しても使えるというのはおもしろい。NATのセッションを維持するための接続維持機能もあったりするので、いろいろな環境で使えそう。

Pingで確認する限りでは、IIJ方面は近いが、OCNやフリービット(Feel6)方面は100msを超えてしまう。DKNのプライマリDNSはOCNなので、しばらく使ってみて安定して使えるようならば、セカンダリDNSサーバ用に使いたいと思っている。

2010-05-31

IPアドレスのWhois情報を非公開にできるか

複数の固定IPアドレスのインターネット接続サービスを契約すると、Whoisで契約者の名前などが公開されてしまうのだけれども、以下のJPNICのページによると、個人名に限りそれが非公開にできるらしい。

プロバイダに非公開にできないかと問い合わせてみたところ、[組織名]に記載されている個人名のみ非公開にすることが可能とのことで、非公開手続きを進めてくれた。

その結果がコレ。まさに「非公開」な状態となった。

f. [組織名]                     非公開
g. [Organization]               hidden

しかし、連絡先や担当窓口はそのままなわけで、あまり意味がないなぁ。

2010-04-24

RHEL6 Beta

RHEL6 Beta 1が出たので早速RHEL5上のKVMにインストールしてみた。 私の場合、未知のLinuxディストリビューションを試すときは、いつもデスクトップ環境をインストールしてみることにしている。普段使っているデスクトップ環境と比べたいというのもあるし、視覚で楽しみたいという理由でもある。

今回のBeta版はデフォルトでRed Hatの公開FTPサーバがリポジトリとして設定されており、RHNの登録なしでFTPサーバからパッケージを入手してインストールが可能。ただし、結構重いので、ISOイメージをマウントしてリポジトリとして使った方がよいかもしれない。

/etc/inittab の中身がやけに変わったと思ったら、UbuntuのようなUpstartになっていたりなど、しばらくFedoraを追いかけていなかったので、いろいろな環境の変化が把握し切れていない。パッケージのバージョンで判断すると、Fedora 12ベースっぽい。

正規リリースまでにサーバ構築を中心に、いろいろ試しておいた方がよさげ。 ただし、今クライアントとして使っているRHEL5はUbuntuに移行予定なのだけれども(もちろん主要なサーバは引き続きRHELを使い続ける予定)。

2010-03-30

RHEL5.5

先ほど確認したところ、RHEL5.5がリリースされていた。 最近はやりの xz というファイル圧縮ユーティリティが加わったり、postgresql84 という名前で PostgreSQL 8.4 が使えるようになったりなど、地味に新しいパッケージが増えている。RHEL5は3年以上前にリリースされたので古くさくなってきており、今回の postgresql84 のように、既存のパッケージ名とは異なる名称にしていろいろと出して欲しいところ。

私はクライアントとしても使っているので、OpenOffice.org 3.1.1 が使えるようになったのがうれしい。Firefox もメジャーアップデートしてくれるのではないかと期待していたのだけれども、今のところ Firerfox は 3.0 系のまま。

さて、大変なのはこれからのアップデート作業で、、、

2010-02-28

Cisco 1760の静音化

今までのCatalyst 2950とCatalyst 2960に続いてCiscoの静音化第3弾。 今回はCisco 1760を静かにしてみることにした。このルータはちょっと古い機種なのだけれども、IP−PBX の機能があり、Ciscoの電話をぶら下げるというおもしろい使い方ができる。私はVPNで接続して拠点間の内線電話として使っている。

我慢できないほどではないけど、ちょっとうるさいかな。ということで、買ってきた交換用のファンはPC用の40mm*20mmのもの。 ところが、取り付けてみたところ、あまりにも風力が弱すぎるばかりか、電源を入れたときにさわってやらないと回転すらしないこともある。。 よく確認したところ、1760のファンは5Vで、今回買ってきたものは12Vだった!どうりでそのはず。。

調べても5Vで静かそうなファンというのも見つからないので、あまりにも不格好ながら12VのACアダプタを使って外部給電にすることにした。 幸い、この機種はファンのセンサがないので、ファンを外部の電源にしてもアラートはあがらない。 実は1760の基板上に12Vという表示の端子があるのだけれども、用途や許容電流が不明ののため、つなぐわけにはいかなかった。

今回のファン交換の結果、随分と静かにすることができた。風量は若干弱くなったかもしれないが、筐体の反対側へ風がちゃんと流れていることも確認できている。 また、ファンのACアダプタの電源を入れ忘れ防止のために、ファンの電源供給時に点灯するLEDを1つつけてみた。

WICの左側の穴で光っているのがFANのLED

関連
Catalyst 2960へファンコンをつける
Catalyst うるさいよ Catalyst

2010-01-31

XREAからCORESERVER miniへ

このWebサイト(Home@けんどもネット)は昨年末までXREAのs1サーバで公開していた。s1サーバというのは初期のサーバなので、今となってはアクティブなアカウントは少なくなり、一時期は快適だったのだけれど、最近不安定でWebに接続できないことが頻発したので上位のCoreserverのminiへ移行することにした。これが快適。

SSHで接続した際、シェルがrbashで最低限のファイル操作やDB操作くらいしかできなかったXREAのs1サーバと異なり、普通にBashなので自由度がとても高い。viでその場でファイルが編集できたりと便利すぎ。後で気づいたのだけど、XREAも新しいサーバはシェルがbashらしい。

他人(他社)の運用しているサーバへSSHでログインしてシェルが使えるというのはとても興味深いもので、psコマンドの出力を見るだけでもどのようなプロセスがどのように立ち上がっているかという自分にとっては未知の世界にふれることができる。

気づいた点をいくつか(勝手な想像もあり):

念のためバックアップはこまめに行った方がよいかもしれない。

2009-12-07

RHEL5.4でKVMのゲストが固まる現象(解決済)

RHEL5.4でKVMを導入した当初、KVM上のゲスト(ゲストもRHEL5.4)ゲストが固まる現象が発生していた。ゲストを起動してから数日(1〜4日くらい)で固る。固まるとKVMのホスト側ではゲストに割り当てたCPUをいっぱいに使った状態になり、 virsh console や virt-manager では操作不能。virsh shutdown でも停止できず、virsh destroy で強制終了せざるを得ない状態だった。障害が発生すると監視システムがアラートを出すので、寝ている間もしょっちゅう起こされていた。

そのゲストはx86版、インストールしているパッケージはいわゆるLAMPという構成で、たいしてアクセスもないので普段の負荷はきわめて低い。ディスクはLVMで割り当てていた。新規インストールではなく、Xen環境からディスクイメージをddでコピーしてからKernelとinitrdイメージを差し替えるような方法で構築していたので、その辺も疑っていた。そこで、新たな仮想マシンにRHEL5.4を新規にインストールしてみるものの、同じ構成で動かしてみると、同じく数日で固まる。NICやディスクのvirtioを使うのをやめてみても変化なし。

Virtualization Guide の KVM guest timing management の章に気になることがかかれていた。不正確な時計とカウンタによってゲストが停止したり、クラッシュしたりするかもしれないと。。

KVM uses the constant Time Stamp Counter (TSC) feature of many modern CPUs. Some CPUs do not have a constant Time Stamp Counter which will affect the way guests running on KVM keep time. Guest’s running without accurate timekeeping can have serious affects on some networked applications as your guest will run faster or slower than the actual time.

Guests can have several problems caused by inaccurate clocks and counters:

↑の後にはCPUが対応しているかの確認方法やコンスタントTSC非対応のCPUの場合はゲストでNTPDを動かすようにかかれている。

最近のCPUのコンスタントTSC機能により、ゲストはホスト側に合わせて時計の維持を行うらしい。確かに、完全仮想化ながらKVMのゲストでは時計が狂わない。このコンスタントTSCに対応しているかどうかは次のように確認できる。

$ grep constant_tsc /proc/cpuinfo
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm
constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm
constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

注)適当に改行を入れております

私の環境では対応しているので、不正確な時計により固まるのは該当しないような気がするのだけれど、同じページにゲストでコンスタントTSCを無効にする起動パラメタもかかれており、試しに無効にしてみた。ゲストのGRUBの /kernel のオプションを追加して起動。そして、ゲストではNTPDを動かすことにした。このオプションはアーキテクチャやRHELのバージョンによって異なるので注意!

divider=10 clocksource=acpi_pm lpj=n

この状態起動して1ヶ月近くたつが、あれだけ固まっていたのが嘘のように全く固まらない。ちょっと納得がいかないけれども。。

2009-11-10

Red Hat Enterprise Linux 3 - 1-Year End Of Life Notice

Errataに「Red Hat Enterprise Linux 3 - 1-Year End Of Life Notice」というのが出ている。RHEL3の7年間のライフサイクルがあと1年で終了するというお知らせ。

私のRHEL3に対する思い入れは深く、はじめて購入したRHELだった。もう5年以上も前になる。クライアントとして使う目的だったのでWrokstation版(Red Hat Enterprise Linux WS 3)だったが、当時は購入の申請書を販売店にFAXで送る必要があったりとなかなか面倒な手続きをした覚えがある。

7年間というのはこのような製品のライフサイクルとしては長いような気がするのだけれど、RHEL5のライフサイクルが今の時点であと4年4ヶ月ほどと考えると少ない。いまから新しいハードウエアを購入してRHEL5をインストールしても4年ちょっとでソフトウエアの保守が切れることになってしまう。正直、最近はRHEL5ではいろいろと古くさく感じることも増えたので、はやく新バージョンが出て欲しい。

2009-10-31

ウエブサイト更新情報

10月は写真サイトのリニューアル(Tumblrへ移行)とコンピュータ関係では周辺機器やアクセサリページの更新などを行った。このサイトでは5年ほど昔の写真をたくさん並べており、今と比べると使っている機器があまりにも安っぽい(B○f○○l○のハブとか!)ので、ほかにもいろいろ更新したいのだけれども。。

Information

サイト内検索

けんども日記

直近 10 件
RSS
RSS 1.0
Home@けんどもネット
diary.php(v2): 2005-06-11
Copyright © 2003-2005 Kendomo.net.