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

以前の記事で書いた、さくらVPSでKNOPPIXを動かす記事のおまけ

 以前、KNOPPIXさくらのVPS(virtio_blk)上で動作するようにする記事を書いたけど、今回、仕事関係で複数のVPSサーバーをまとめて設定する必要が生じた為、KNOPPIX利用のイメージングをて行った。
 せっかくminirt.gzを作成したので、基本設定状態で差し替えればいいminirt.gzイメージを置いておく。

Virtio起動対応KNOPPIX用Bootイメージこのファイルをminirt.gzとして配置してやれば、KNOPPIXがVirtio起動デバイスなお名前VPSさくらVPSで動作するようになる。

  1. KNOPPIXを入手する(最新CD版を利用した)
  2. DaemonTools or WinRARを入手する
  3. KNOPPIXのISOイメージをDaemonToolsでマウントするかWinRARで開く。
    CDの/KNOPPIXをVPSの/KNOPPIXとしてコピーする。
    CDの/boot/isolinuxの中身をVPSの/boot/KNOPPIXにコピーする。
    ついでに、上に置いてあったknoppix_virtio.gzファイルで/boot/KNOPPIX/minirt.gzを置き換える。
  4. VPSのGRUB設定を追加する。
    VPSの/boot/grub/menu.lstに追記して、KNOPPIXを起動できる様にする(最下行に追記)

    title KNOPPIX
    root (hd0,1)
    kernel (hd0,0)/KNOPPIX/linux ramdisk_size=100000 init=/etc/init ro
    initrd (hd0,0)/KNOPPIX/minirt.gz

     デフォルトインストールのさくらVPSだと、hd0,0が/bootで、hd0,1が/なので、ルート配下の/KNOPPIXにアクセスする場合はhd0,1である。 なお、kernelとinitrdでは/boot/KNOPPIXに配置したファイルを使いたいので、hd0,0である。

  5. システムを再起動して、直ちにVNCコンソールを開く。
    GRUBのスタート画面でカーソルキーか何か押すと選択画面が開く。 この時、先ほど追記したKNOPPIXがあるので、選んでEnter。
    KNOPPIXが起動する。
  6. (116)


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

お名前.comのVPSとRTX1000の間にOpenswanを使ってIPSec方式のVPNを設定した

 Windows化したさくらVPSサーバー固定IPプロバイダでつないだRTX1000の間にアグレッシブモードメインモードIPSecを張っていたわけだけど、今回はCentOS 6環境のお名前.com VPS(KVM)サーバーとの間にメインモードのIPSec VPNの設定を行った。

 IPSecはオープンな規格であるものの、独自実装が多くて、なかなか相互互換が得られない困ったちゃん。
 特にLinuxのIPSec実装には色々なソフトがあって、つながる組み合わせ、つながらない組み合わせが難しい。
 今回使ったLinuxのIPSec実装であるOpenswanは、CentOS標準パッケージなのでメジャー系ではあるものの、あまり普及しているとはいえず、ネット上で情報収集してもL2TPと組み合わせてスマホを接続するような情報ばかりで、最終的にソースコードを眺めつつ、設定を詰めるのに1週間以上かかってしまったが、何とか構築することが出来たのでメモしておく。

RTX1000の設定

ip route VPSのグローバルIPアドレス gateway tunnel 1 filter 1001 1002 1999

ip filter 1001 reject * * udp * 500
ip filter 1002 reject * * esp
ip filter 1999 pass * *

tunnel select 1
tunnel name VPN2VPS
ipsec tunnel 1
ipsec sa policy 1 1 esp 3des-cbc sha-hmac
ipsec ike always-on 1 on
ipsec ike encryption 1 3des-cbc
ipsec ike esp-encapsulation 1 off
ipsec ike group 1 modp1024
ipsec ike hash 1 sha
ipsec ike local address 1 192.168.0.1
ipsec ike local id 1 192.168.0.1
ipsec ike payload type 1 3
ipsec ike pfs 1 on
ipsec ike pre-shared-key 1 text 秘密だよ
ipsec ike remote address 1 固定IPだよ
ipsec auto refresh 1 on
ip tunnel tcp mss limit auto
tunnel enable 1

3des-sha1の組み合わせで、ESP有効、MODP1024設定でPFS有効のポリシー(軽いdes-md5を試みたが、yumパッケージ版ではdesはサポートされておらずビルドし直さなければならない)

Openswanの導入は、CentOS標準のyumからの導入でOK(yum install openswan)

Openswanの設定
/etc/ipsec.conf

 auto=startだと起動時に接続にいく。 addにすると、コマンドラインから ipsec auto –up homenetwork のようにコマンドを打つことでリンクアップできる。
 今回は認証がsecret(事前共有鍵)なので、/etc/ipsec.secretsに
: PSK “事前共有鍵”
 のように記述しておく。
 電子証明書認証も出来る。

 VPN接続がうまくいくと、LAN側のPCで”traceroute VPSサーバーの固定IP”とか実行すると、デフォルトゲートウェイVPSサーバーのIPの順で表示される(VPNが無いと、デフォルトゲートウェイ対向ルータインターネットVPSサーバーのIPというように、中間のアドレスが表示される=トンネルモードVPNだと仮想的に1ホップになる)
VPSサーバー側でnetstatを実行すると、VPNで繋がっていないとルータの外側IPが表示されるが、繋がっているとLAN内部のIPがそのまま表示されることでも確認できる。

 VPNを設定しておくと、VPSサーバーからsambaを経由してLAN上のWindowsマシンの共有ストレージを利用したり、LAN上のマシンからPOP3接続したりしたときに、VPSサーバー<=>ルーター間の情報はすべて暗号化されるためセキュアで良い。

参考
参考
RTXのIPSec設定参考
新しいRTXだとこんな事も出来る

(891)


カテゴリー: サーバ設定 | タグ: , , , , , | 1件のコメント

VPSを開発で利用する為にバーチャルドメイン&キャッチオールメールを活用する – postfix

 お名前.com VPSさくらのVPSを利用している人は、サイト運用以外に開発環境としている人も結構居ると思う。
 Web系の開発をしていると、メールアドレスを色々使ってテストしたい場合があるけど、アドレスをいくつも作るのは面倒なので、キャッチオールで飛んできたメールを全て特定のアドレスで受信してしまうのが便利。 しかし、本番環境共存の場合にキャッチオールするとぐちゃぐちゃになるので、開発テスト用のバーチャルドメインも設定しておく。

・前準備 DNS設定
 DNSのMXレコードを設定する。

mx mail.hoge.tld. 10 orange
mx mail.hoge.tld. 10 yellow

のように、サブドメインのMXを受信するメールサーバに向ける。

・postfixの設定
main.cfに追記する

/etc/postfix/main.cf

virtual_alias_domains = orange.hoge.tld, yellow.hoge.tld
virtual_alias_maps = hash:/etc/postfix/virtual

・virtualを設定する

/etc/postfix/virtual

@orange.hoge.tld orange@hoge.tld
@yellow.hoge.tld yellow@hoge.tld

dbを生成して、postfixを再起動する
#postmap /etc/postfix/virtual
#/etc/init.d/postfix restart

以上の設定で、foo@orange.hoge.tldやbar@orange.hoge.tldはorange@hoge.tldに、foo@yellow.hoge.tldやbar@yellow.hoge.tldはyellow@hoge.tldに配信されるようになる。
 開発時にテストユーザのメール受信を一括できて良い。

(410)


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

攻撃を受けた可能性がある場合にメール送信する – VPSセキュリティ設定

 昨日、ログイン試行して失敗した場合にbtmpに記録が取られる関連の記事を書いた。
 今日は、このファイルを監視して、サイズが変更された(ログイン失敗した)場合に通知するようにしてみる。

#!/bin/bash
LAST_SIZE_FILE=’/var/log/last_btmp_size’
BTMP_SIZE=wc -c < /var/log/btmp
LAST_SIZE=cat $LAST_SIZE_FILE
if test $BTMP_SIZE -ne $LAST_SIZE; then
NOW=LC_ALL=en_US.utf8 date
LOG=lastb -n 20
echo "HOGEHOGE's btmp file size was changed.[old:$LAST_SIZE, now:$BTMP_SIZE]
$LOG"|mail -s "HOGEHOGE's btmp file size was changed.[$NOW]" hoge@piyo.tld
fi
echo $BTMP_SIZE > $LAST_SIZE_FILE

 こんな感じのスクリプトをCRONで回してみる。
 btmpファイルのサイズをLAST_SIZE_FILEに設定したファイルに保存しておいて、現在のbtmpファイルのサイズと差違があった場合、hoge@piyo.tld宛にサイズが変わったことと、最近20行のbtmpログをメール送信するスクリプト。
 まぁ、とりあえず回しておくとある程度は役立つだろう。

(186)


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

不正アクセス元っぽいIPを集計する – btmpとwtmpを元にVPSセキュリティ設定

 Linuxで不正アクセスっぽいモノを記録するログが

/var/log/btmp

で、こいつはプレーンテキストではないので

lastb

コマンドで中身を確認する。

 セキュリティ対策をしていないサイトだと膨大なログになるのでちょっとフィルタする。
 不正アクセスっぽいモノのIPを抽出するには

lastb -ia|sed -e “s/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)$/\1/g”|sort|uniq

lastbの出力でホスト名ではなくIPで表示して、一番最後にアドレスを出す。 それをsedに流してIP部分を切り出して、ソートして、重複を取り除いている。

 正常なアクセスっぽいモノが記録されるログは

/var/log/wtmp

で、こいつもプレーンテキストではないので

last

コマンドで中身を確認できる。
 不正アクセスっぽいモノ同様に

last -ia|sed -e “s/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)$/\1/g”|sort|uniq

を通すと正常ログイン出来たアドレス一覧が得られる。

 それぞれをリダイレクトして、

lastb -ia|sed -e “s/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)$/\1/g”|sort|uniq > btmp.list
last -ia|sed -e “s/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)$/\1/g”|sort|uniq > wtmp.list

の様にファイルに落として・・・

cat btmp.list wtmp.list|sort|uniq -d > dup.list

-dオプション=重複行のみを出力する
 すると、ログインを成功したり失敗したりしたアドレスのリストが得られるので、このアドレス一覧がセーフかどうか確認する。
>このセーフでないモノがあったら、不正アクセスでログインされている訳で、システム総チェックが必要になる・・・
 このセーフなリストを(safe.listとでもして)保存して

cat btmp.list safe.list|sort|uniq -u

-uオプション=重複していない行のみを出力する
みたいにすると、セーフリストに記載されていない不正アクセスっぽいモノが得られる。
(「失敗リスト」+「成功リスト」に存在するモノから作ったセーフリストを失敗リストから除外すると「失敗リストだけに載っているモノ」+「失敗リスト+成功リストに存在するモノのうちセーフリストに載っていないモノ」が得られる)

この不正っぽいリストをまとめて拒否するなら

cat btmp.list safe.list|sort|uniq -u|sed -e “s/\(.*\)/ALL:\1/” >> /etc/hosts.deny

で、拒否ホストリストに全部突っ込める(但し、最終行にbtmp~と言う行がつくので、これだけ削除する)

 お名前.com VPSさくらのVPSで標準状態だと不正っぽいリストがいっぱい出てくるのでアクセス制限に注意。
 しかし、基本的には、フレッツ光対応、固定IPサービスの「ZOOT NEXT for フレッツ光」みたいな固定IPを契約して、hosts.deny sshd:ALLにして、hosts.allow ALL:固定IPみたいにして接続できるIPを制限しておいた方が安全で良い。

(1091)


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

RTX1000とWindows VPS間でIPSec方式VPN(メインモード)を構築する

 VPNのパターンとして、一般的なのは↓図の上のパターンだけど、お名前.com VPSでもさくらのVPSでもグローバルIPでネットに直結されているから、下のパターンを構築しなければいけない。

 しかし、この下のパターンの設定例がイマイチ見つからないので、色々試行してみた。
 MR504DVの場合はごくごく普通に設定を書けば下のパターンで動くんだけど、RTX1000の場合には普通の設定だとHost Aへの暗号化されたルートが自動で生成されないために、Host AからPINGを送るとRTXに受信されるけど、応答が宛先不明になる。
 ならば静的ルートを設定すればいいと言うことになるけど、

ip route XXX.XXX.XXX.XXX gateway tunnel 1

 とか書いてみる事になるけど、これっておかしい。 だって、XXX.XXX.XXX.XXXとの間に設定されているのがトンネル1だけど、XXX.XXX.XXX.XXXとの経路はそのトンネルを必要とする訳だから、鶏と卵になってしまう気がする。 で、実際、これじゃ動作しない。
 色々調べた結果、

ip route XXX.XXX.XXX.XXX gateway tunnel 1 filter 1001 1002 1999
ip filter 1001 reject * * udp * 500
ip filter 1002 reject * * esp
ip filter 1999 pass * *

 みたいに、フィルターを付けてやる事で通信できるようになった。

 IPSecまわりの設定のみ抜き出した

ip route XXX.XXX.XXX.XXX gateway tunnel 1 filter 1001 1002 1999
tunnel select 1
tunnel name VPSIPSec
ipsec tunnel 1
ipsec sa policy 1 1 esp des-cbc md5-hmac
ipsec ike always-on 1 on
ipsec ike encryption 1 des-cbc
ipsec ike esp-encapsulation 1 off
ipsec ike group 1 modp1024
ipsec ike hash 1 md5
ipsec ike local address 1 192.168.0.1
ipsec ike local id 1 YYY.YYY.YYY.YYY
ipsec ike payload type 1 3
ipsec ike pfs 1 off
ipsec ike pre-shared-key 1 text 事前共有鍵
ipsec ike remote address 1 XXX.XXX.XXX.XXX
ipsec auto refresh 1 on
ip tunnel tcp mss limit auto
tunnel enable 1
ip filter 1001 reject * * udp * 500
ip filter 1002 reject * * esp
ip filter 1999 pass * *

 これで、IPSecを実装したVPSと、RTX1000ルータ間でIPSec VPNが実現した。
 この状態だと、RTX1000側のLANにあるPCからVPSに平文通信を行ってもネット上では全て暗号化されるので、かなりセキュアである。

 RTX1000はかなり安く入手できて高機能&コンパクトでなかなかの優良ルータだ。 帯域制御とか優先制御とかも入れたくなるとCISCO 1812Jあたりが良い。
 どちらも、業務用だから設定がコマンドを基本としていてなかなか取っつきにくいところもあるが、色々と高度なことが出来るので導入して損はないと思う。 エンジニアとしては、CISCOがいじれるというのは一種のステータスでもあるし。

 なお、メインモードIPSecでは両端に固定IPが必要である。
 VPS側は普通に固定IPだからお名前.com VPSさくらのVPSあたりを利用して構築して、RTX1000側は固定IPが月額1,155円と激安のGMOとくとくBBを利用した。

 Linuxのままの場合は、L2TPの記事OpenVPNの記事が参考になる。 OpenVPNはCISCOのSSL-VPNと通信可能だったかな・・・?

(562)


カテゴリー: Windows VPS, サーバ設定 | タグ: , | コメントをどうぞ

さくらVPSを再インストール無しに上位プランへ移行する(Linux編) – ddによるイメージコピーでお手軽複製・プラン変更

 今回は以前書いたWindows化したさくらのVPSでの移行方法を多少修正して、Linux版でもイメージコピーで移行する方法を解説する。

Virtioで動いている仮想マシン上でKNOPPIXを使う場合は、こちらの記事も参照のこと
◆:前回と同じ

  1. KNOPPIXを入手する(最新CD版を利用した)
  2. DaemonTools or WinRARを入手する
  3. Skip
  4. KNOPPIXのISOイメージをDaemonToolsでマウントするかWinRARで開く。
    CDの/KNOPPIXをVPSの/KNOPPIXとしてコピーする。
    CDの/boot/isolinuxの中身をVPSの/KNOPPIXにコピーする。
  5. VPSのGRUB設定を追加する。
    VPSの/boot/grub/menu.lstに追記して、KNOPPIXを起動できる様にする(最下行に追記)

    title KNOPPIX
    root (hd0,1)
    kernel /KNOPPIX/linux ramdisk_size=100000 init=/etc/init ro
    initrd /KNOPPIX/minirt.gz

     デフォルトインストールのさくらVPSだと、hd0,0が/bootで、hd0,1が/なので、/KNOPPIXにアクセスする場合はhd0,1である。

  6. システムを再起動して、直ちにVNCコンソールを開く。
    GRUBのスタート画面でカーソルキーか何か押すと選択画面が開く。 この時、先ほど追記したKNOPPIXがあるので、選んでEnter。
    KNOPPIXが起動する。
    ※GrubからKNOPPIXを実行したとき Error 2: Bad file or directory type. が出る場合。
    古いGrubでは、ext2fsのInode sizeは128までしか対応していないが、大きいパーティションはInode size 256で切られるために読み込みに失敗する。
    この場合、isolinuxを/boot/KNOPPIXとしてコピーして、menu.lstを
    root (hd0,1)
    kernel (hd0,0)/KNOPPIX/linux ramdisk_size=100000 init=/etc/init ro
    initrd (hd0,0)/KNOPPIX/minirt.gz
    のように編集して、KNOPPIX本体はルートパーティションに、起動用のイメージのみbootパーティションに配置して起動することで対応できる。

    GrubをGrub2等にアップグレードする方法もあるが、失敗したときに起動不能になるのでこちらの方法が良いと思う。

  7. ◆システムドライブのイメージを丸ごと新サーバにコピーする。
    ・ネットワークの設定

    #ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.254.0
    #route add default gw yyy.yyy.yyy.yyy
    #cat > /etc/resolv.conf
    nameserver 8.8.8.8
    ctrl+d

    xxx.xxx.xxx.xxxはVPSの割り当てIPアドレス
    yyy.yyy.yyy.yyyは指定されたデフォルトゲートウェイ
    8.8.8.8はPublic DNS

    KNOPPIXのターミナルから操作する場合

    #dd if=/dev/sda | ssh -l hoge piyo.tld “dd of=/dev/sda”

    hoge:新サーバのユーザ piyo.tld:新サーバのアドレス
    ダイレクトにDD出来ない場合は、

    #dd if=/dev/sda | ssh -l hoge piyo.tld “cat > /tmp/sda.dd”

    みたいにすると、/tmp/sda.ddにイメージを保存できる。
    イメージファイルをどこかのサーバに配置しておけば、クラウド風に複製イメージ起動も出来るだろう。

 これで、旧サーバのディスクイメージを丸ごと新サーバに移すことが出来る。
 LinuxでもKNOPPIXから行っているので、メインのLinuxが途中でファイルを書き換える心配がない。

 移行後の環境では、
残りのHDD領域(通常/home)の設定

#fdisk /dev/vda
#mke2fs -j /dev/fdiskで確保したパーティション

ネットワーク設定修正

vi /etc/sysconfig/network-scripts/ifcfg-eth0

ディスクマウント設定修正

vi /etc/fstab

/dev/hdb1 /home ext3 defaults 0 0

/dev/fdiskで確保したパーティション /home ext3 defaults 0 0

最低限、これらを修正する。
旧環境のhomeをコピーする場合は、

scp -p -r hoge@nnn.nnn.nnn.nnn:/home/* /home

※hoge:旧VPSのユーザ nnn.nnn.nnn.nnn:旧VPSのIP
で、旧VPSのhome以下を全て新VPSのhome以下にコピーする(旧VPSは通常起動状態で作業。 rootのsshを一時的に許可して、rootでコピーするのが楽)

 ちなみに dd の進行状況を確認する場合には、 kill -USR1 をddのプロセスに送ると標準エラー出力に進捗が出る。

 このサイトをこの方法で旧さくらのVPS 4GBから、新さくらのVPS 2GBに移行して動作確認済み。

(554)


カテゴリー: サーバ設定 | タグ: , , , , , , , | 1件のコメント