カテゴリー別アーカイブ: サーバ設定

複数のアドレス宛メールを送信しようとするとエラーになる – sendmail設定 sendmail.cf

 開発環境で、エラーメールをPHPで同時複数宛に送信しようとするとエラーになる。
 普通に複数宛だと、To:フィールドに列挙するが、sendmailがスパム対策でこれをはじく。 オプション指定でCCやBCCにすればいいのだが、今回は単純にToでの列挙を許可する。

ServersMan@VPSデフォルトのcf(/etc/mail/sendmail.cf)では

#maximum number of recipients per SMTP envelope
#O MaxRecipientsPerMessage=0

というコメントアウトがある。
 MaxRecipientsPerMessageの値がToに設定できるアドレス数の上限値なので、コメントアウトをはずして

O MaxRecipientsPerMessage=8

のように、必要な任意のアドレス数を指定してやればよい。

(1722)


カテゴリー: サーバ設定 | コメントをどうぞ

デフォルトのTOMCAT5

 ServersMan@VPSのサーバ内でTOMCAT5とLAMP環境を同居させていたのだけど、メモリ使用率が結構高いのがちょっと気になっていた。
 けど、特に問題もないのでそのままにしていたのだが、先日、連動処理のバッチを回そうとしたらメモリ不足で転けたのでメモリの設定を見直すことにした。

 どのプロセスがどのくらいメモリを使っているかというのを知るのには、psコマンドにalxオプションを付けるとわかりやすい。
 VSZ項目がバーチャル、RSSがリアルのメモリ消費。

 今回かけたら、タイトルのTOMCAT5がバーチャルで1.2GB程消費していた。
 他のプロセスが500MBほど消費しているので、合計で1.7GB消費している状態。 うちの環境ではMax4GBだが、通常時は2GBくらいが使える領域であるので、余裕は300MBと言うことだ。
 しかし、見かけ上は4GBメモリがあるので、TOMCATが自動的にワーク用に1GB確保していて、本体の200MB+1GBで1.2GBになっている状態だった。
 Javaサイトの占有メモリは1接続で50MBもあれば十分なので、メモリの確保超過。
 /etc/sysconfig/tomcat5ファイルにCATALINA_OPTS=”-Xmx384M”として、384MB上限設定としてTOMCATをリスタートしてやると、TOMCATプロセスは600MB程度に収まって、全体で1.1GB消費で余裕が900Mになって、問題解消。

 ServersMan@VPSのようにMax割り当てできないけど見た目だけメモリ量が多い場合、自動割り当てをするプログラムには注意が必要だ(VMware ESXiの仮想マシンで多めにメモリ指定している場合なども)

(507)


カテゴリー: サーバ設定 | コメントをどうぞ

さくらVPSでWindowsを利用していて再インストール無しに上位プランへ移行する

※この記事は古いです。 新しいバージョンの記事を参照してください。

 DTIのServersman@VPSだと、プランのアップグレードは管理画面操作で移行できて、特別な操作は不要だけど、さくらVPSの場合には新しいサーバとして契約して、環境は自分で引っ越し作業をしなければならない。
 Linuxでrsyncを使う方法が公式にあるけど、Windows化している場合には使えないので、独自に移行する方法を考えた。

まず、Windows版DDを入手する。
http://www.chrysocome.net/dd

 ローカルPCにPPTPサーバの設定を行う(Windows7ならば、スタート>コントロールパネル>ネットワークとインターネット>ネットワーク接続を開き、Altキーでメニューを出して、ファイル>新しい着信接続、ユーザを選んで次へ、インターネット接続をチェックして次へ、アクセスを許可をクリックするとPPTPの着信接続が出来る。 ルータでNAPTを使っている場合は、静的ルートでTCPポート1723とGREプロトコル(プロトコル番号47)をPPTPサーバにしたマシンに転送する様にする)
 VPS上のWindowsからPPTPダイアルアップ(新しい接続ウィザード>職場のネットワークへ接続する>仮想プライベートネットワーク接続>IPアドレスにPPTPサーバを設定したマシンのグローバルIPを設定し、それ以外は適当で作成。 このダイアルアップ接続を開いて、PPTPサーバのユーザとパスワードを入力して接続)して、VPSよりサイズの大きいドライブをマウントする。

dd if=\\?\Device\Harddisk0\Partition0 of=z:\sakura_windows.dd

 これで丸コピーしたら、新規導入時と同様、新しいVPSに踏み台Linux経由でdd書き込みしてやれば環境そのまま新サーバに移ることが出来る。 一応、イメージをgzかbz2で圧縮しておいたほうが速いかもしれない。
 ただし、イメージが大きくなっている場合には、踏み台の容量が足りなくなる。
 今回は980円プランから1480円プラン(空きディスクは/dev/sdbの10GBだけ)で足りなかったので、別のサーバにbz2圧縮したイメージを配置して

ssh -l user hoge.piyo “cat ~/sakura_windows.dd.bz2″|bzip2 -dc|dd of=/dev/sda

※userは接続先のユーザ名、hoge.piyoはサーバのアドレス(ヒナギク.com等)である。
みたいに、ssh経由で処理した。
 1980円プランなら/dev/sdbに30GBの空きがあるので、/dev/sdaの20GB全てを放り込んでも余裕がある。

 ちなみに、UNIX系OSで移動する場合には、ssh経由で、

ssh -l user hoge.piyo “dd if=/dev/sda | bzip2 -c”|bzip2 -dc|dd of=/dev/sda

 みたいにして、終始パイプで済ますのもあり。

 これだと、イメージが起動した状態なので、新VPSで起動するときにchkdskをかけてやる必要がある。
 セクタ単位で処理しているから、どこかで致命的なエラーが出るかもしれないが、基本的にはこれで動く。 Acronisのツールなどを入れてシャドウコピー併用でやればもう少し信頼性が上がるかもしれない。

(413)


カテゴリー: サーバ設定 | コメントをどうぞ

postfixを利用する

 sendmailであるとかqmailとかと言ったSMTPDがあるけど、最近利用しているのはpostfixだ。
 開発環境で、全ての送信メール内容を確認したいという場面があるけど、postfixだとこれが簡単にできる。

yum install postfix
yum install cyrus-sasl

 ついでなのでSMTP Authも導入するため、Cyrus-saslも導入しておく。
>>/etc/postfix/main.cf

myhostname = wp.xn--ockc3f5a.com #ホスト名を設定
mydomain = xn--ockc3f5a.com #ドメインを設定
mydestination = wp.xn--ockc3f5a.com, xn--ockc3f5a.com, $myhostname, localhost.$mydomain, localhost #このホストが目的地であるドメインを設定
mynetworks = 127.0.0.0/8, 210.170.x.y #信頼するネットワークを設定(このアドレスから送信されたメールはリレー許可される)
home_mailbox = Maildir/ #メールをデフォルトのDovecotの位置に保管する
always_bcc = catch_all@wp.xn--ockc3f5a.com #これで全てのメールのBCCが送信される
smtpd_sasl_auth_enable = yes #SMTP Authを使用する
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_auth_destination,reject_unauth_destination #メールの許可設定;信頼されるネットワーク、SMTP Authで認証されたユーザ、認証された宛先を許可し、認証されない宛先を拒否する
broken_sasl_auth_clients = yes #非標準のSMTP Authサポート通知を有効にする
smtpd_sasl_security_options = noanonymous #匿名ユーザからのメールを拒否する

 あとは、開発サーバで外にメールを送りたくない場合、

default_transport = local

 この設定をすると、a@yahoo.co.jp宛でもb@microsoft.com宛でも、a@localhostやb@localhostに配送しようとする(つまり、外へのメール送信が出来なくなる) そこで、

luser_relay =catch_all

でキャッチオールしてしまえばほとんどのメールを収集できる(存在するユーザ名宛のメールはそのユーザに配信される)
しかし、Postfixは不明なユーザ宛メールを拒否しようとするので

local_recipient_maps =

の設定でその拒否を解除する。

あとはサービス設定と起動

/sbin/chkconfig sendmail off
/sbin/chkconfig –add postfix
/etc/init.d/sendmail stop
/etc/init.d/postfix start

 こんな感じで、簡単な設定で色々使える。

(609)


カテゴリー: サーバ設定 | コメントをどうぞ

VMware ESXiの導入 – USBメモリにESXi 4.1U1を導入する

 ServersMan@VPSじゃなく、自前サーバでの話。

 仮想ソフトのVMwareが色々無料化されている。
 メインサーバでWindows上で動くVMware Serverを使っていたんだけど、最近、OS無しに動くVMwareESX(と言うか、小型Linuxがベースになっている)の限定版であるESXiが無料化されていた。
 通常のOS上で動作する物に比べて、低レベル動作するので動作が軽くなるハズなので導入してみた。

 サーバ環境は、AMD785GチップセットのマザーにPhenom X4 9850BE、12GB主記憶、500GB HDDx2の構成。 NICがオンボードはRealtek RTL8112である。
 このESXiはデバイスの対応が少なく、HCLを参照するとかなり厳しい条件が提示されている。
 今回の環境のNICもHCLになく、通常の手順でインストーラを立ち上げると対応したNICが無いためにvmfs3のロードでfailueになって止まってしまう。
 Realtekの8111について、対応したドライバパッケージを公開している人が居るのだが、8112でもこのパッケージで対応可能だった。

 インストールの方法について、インストーラにドライバを追加してインストールして、インストール後のディスクに再度ドライバを追加して動作するようにする方法と、インストーラを使わずにインストールイメージを書き込んでドライバを追加する方法がとれる。 今回は手っ取り早いので後者の方法で導入した。
 導入先にはUSBメモリを利用することにする(クラッシュすることがほぼ無いし、仮想マシンを管理する機能だけなので大してアクセスが重要ではない。 容量も1GBあれば大丈夫)

事前準備
 VMwareのページでESXi(Visor)のインストーライメージと管理パッケージ(Client)をダウンロードしてくる http://www.vmware.com/jp/products/vsphere-hypervisor/overview.html
 追加ドライバパッケージをダウンロードしてくる(今回はAdds support for Realtek 8168 / 8111 NICs and the Intel P55 SATA (8086: 3b22) controllerと言うヤツにした) http://www.vm-help.com/esx40i/customize_oem_tgz.php 
 DD for Windowsをダウンロードしてくる http://www.si-linux.co.jp/wiki/silinux/index.php?DDforWindows
 WinRARを導入しておく http://www.diana.dti.ne.jp/~winrar/
 CentOS LiveCDをダウンロードしてCDに焼いておく http://www.centos.org/

作業開始
 VisorのISOをWinRARで開いてimagedd.bz2を展開する
 展開したimagedd.bz2を更にWinRARで開いてimageddを展開する
 DD for Windowsでimageddを導入先のUSBメモリに書き込む
 LiveCD Linuxで起動してUSBメモリのHypervisor1と言う名前のパーティションをマウントする(HDD無しの状態のPCに挿入していれば/mnt/disc/sda5にマウントされている。 CentOS LiveCD5.6だとリードオンリーでマウントされているので、mount /dev/sda5 -o remount -wで書き込み可能で再マウント)
 Hypervisor1のoem.tgzをドライバパッケージファイルで置換する
作業完了

 これでUSBメモリにカスタムドライバ入りESXiが導入されたので、PCのBIOS設定でUSB MassStorageをHDDエミュレーションに設定して、USBメモリの起動順位を適切に設定してやればESXiが起動できる。
 起動後、IP設定などをしてやる。
 後は、管理マシンにClientを導入して、ESXiに接続してやればOK。

(748)


カテゴリー: サーバ設定 | コメントをどうぞ

SSL設定 – 関連コマンド

SSL証明書を取得するのに、作ったCSR(証明書要求)の中身が間違っていないか確認したい場合。

openssl req -in /etc/pki/tls/certs/hoge.csr -text

これで、CSR作成時に入力した内容が表示される

受け取った証明書の中身を確認する場合は

openssl x509 -in /etc/pki/tls/certs/hoge.crt -text

一般的にこれで表示できる。 先のコマンドは、タイプにreq(csREQuest)を指定していて、今回はx509(X509証明書)を指定している。 別の形式の証明書が送られている場合は、そのタイプにあわせる。

(157)


カテゴリー: サーバ設定 | コメントをどうぞ

SSL設定-中間証明書

 先日入れた証明書はルート証明機関からの証明書を利用していた。
 ルート証明機関から発行された証明書は高額で、最近はルート証明機関から認証された証明機関(中間証明機関;電子証明書には目的という項目があり、普通のSSL証明書はそのWebサーバを証明するのみだが、認証機関には証明書の発行が目的に含まれている)が安価に証明書を発行していたりする。
 この安価な証明書をサーバに導入した場合は、併せて中間証明機関の証明書も導入しないとオレオレ証明書のような警告が発生する。
 中間証明機関の証明書は、ssl.confのバーチャルサーバディレクティブ内

SSLCertificateChainFile /etc/pki/tls/certs/piyo.crt

のように記述して、証明書発行機関が示す証明書を/etc/pki/tls/certs/piyo.crtの中に書いておけば良い。

(644)


カテゴリー: サーバ設定 | コメントをどうぞ