さくらのVPSを標準のOSの設定したときの情報(今はDebianで運用中)


利用目的

  1. CentOSの扱いを学習
  2. iPadに仮想デスクトップを提供

構築手順

(シリアル・コンソールから)
# useradd otsuka -m
# passwd otsuka
(いつものパスワード)

# visudo
otsuka  ALL=(ALL)       ALL

$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ cat >authorized_keys

$ chmod 600 authorized_keys
$ cd ..

$ sudo -i
# yum groupinstall "GNOME Desktop Environment"
# yum groupinstall "X Window System"

# vi /etc/sysconfig/vncservers
VNCSERVERS="1:otsuka"
VNCSERVERARGS[1]="-geometry 1280x1024 -nolisten tcp -nohttpd -localhost \
 -fp /usr/share/X11/fonts/misc/,/usr/share/X11/fonts/100dpi/,/usr/share/X11/fonts/75dpi/"

$ vncpasswd

$ sudo /sbin/service vncserver start
$ sleep 60
$ sudo /sbin/service vncserver stop
$ vi ~/.vnc/xstartup
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

$ sudo /sbin/service vncserver start

日本語入力

日本語入力できるようにする 参考

sudo yum install anthy scim scim-anthy

vi ~/.vnc/xstartup
export XMODIFIERS="@im=scim"
export GTK_IM_MODULE="scim"
export QT_IM_MODULE="scim"
export XIM_PROGRAM=/usr/bin/scm

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

デフォルトは Ctrl-Space だが、emacs と重なるので、 System: Preferences: More Preferences: SCIM Method Setup: で Shift-Space に割り当てる。vncviewerで漢字キーを使えるように 設定すれば Kanji 等を割り当てても良いかもしれない。

ローマ字で「ちゃ・ちゅ・ちょ」が「cya cyu cyo」で出ない。 CIM Method Setup で、Key bindings theme を Microsoft IME に、 Romaji typing: Romaji table: も Microsoft IME にすればよい。

emacs 21

emacs22だとUTF-8を扱うのは難しくないのだが、CentOS 5は emacs21 なので 少し設定が必要なようだ。

$ sudo yum install emacs anthy-el

$ cat >.Xresources
emacs.geometry: 110x40
Emacs.Font: fontset-standard
^D

$ vi ~/.emacs

(require 'un-define)
(coding-system-put 'utf-8 'category 'utf-8)
(set-language-info
"Japanese"
'coding-priority (cons 'utf-8
(get-language-info "Japanese" 'coding-priority)))
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)

デスクトップの設定

  1. スクリーンセーバーを無効にする
  2. クリップボードの接続
    System:Preferences:More Preferences:Sessions
    Startup Programs(TAB)
    Add
    vncconfig -iconic=1
  3. ssh-addをStartupセッションに加える

Firefox

$ sudo yum install firefox

コンテンツ言語に日本語を追加し最優先にする

  1. Edit:Preferences:Content:Languages:Choose...
  2. Select a language to add..:Japanese [ja]
  3. Add:Move Up:Move Up

IPAフォント

標準のフォント Sazanami が汚いので、IPAフォントに変えてみる。ここに載っている手順でよいが、 タイプミスがあるためはまった。

cd src/
mkdir meguri-font
cd meguri-font
wget http://www.geocities.jp/ep3797/snapshot/modified_fonts/meguri-fonts-20100114.tar.bz2
tar xjvf meguri-fonts-20100114.tar.bz2
sudo cp meguri-fonts-20100114/meguri*.ttf /usr/share/fonts/japanese/TrueType/

wget "http://luke.skr.jp/hsj/?plugin=attach&refer=Sakura%2FVPS&openfile=local.conf.txt" -O local.conf
sudo cp local.conf /etc/fonts/

cd ~/src
mkdir ipa-font
cd ipa-font/
wget http://ossipedia.ipa.go.jp/ipafont/IPAexfont00102.php
unzip IPAexfont00102.zip 
sudo cp IPAexfont00102/*.ttf /usr/share/fonts/japanese/TrueType/
sudo fc-cache -fv

iptables

物理レンタル・サーバーで iptables の設定をミスするとオペレータのお世話になるので気をつかったものだが、VPSだと仮想シリアルから入ってファイアーウォールの修正できるので気軽になった。

system-config-securitylevel-tui で Security Level を Enabled にして Customize ボタンで ssh だけアクセスできるようにする。VPSのシリアル・コンソールから実行しないと操作途中で切れることがあるので注意。シリアル・コンソールだと表示が乱れる。

ここで SELinux を Enforce にして再起動すると、誰もログインできなくなって再インストールが必要になるのでやらないこと。

[2010/8/5 17:50] 何気なく /var/log/secure を見ていたら、ssh ブルートフォースアタックを受けていることが判明した。 ユーザー名やパスワードを辞書を使って総あたりで破ろうとしているようだ。 rootやotsukaのパスワードは乱数なので破られることは無いと思われるが、 念のためパスワードによるssh接続を無効にした。

sudo vi /etc/ssh/sshd_config
:s/PasswordAuthentication yes/PasswordAuthentication no/
:w
:q
sudo /sbin/services sshd restart

ログを確認 ( tail -F /var/log/secure ) していたら、パスワードでの接続を無効にしているにもかかわらず執拗に アタックが続くようなので IPアドレスでフィルタするようにした。

sudo /sbin/iptables -I INPUT 1 -p tcp -s (攻撃元IP) --dport 22 -j REJECT

攻撃元IPを APNIC の WHOIS で調べてみたところ韓国からのようだ。 一時的なフィルタとして設定するつもりなので、再起動するか sudo /sbin/iptables -D INPUT 1 とすれば解除できる。

手動でフィルタするのが追いつかなくなったので、/etc/sysconfig/iptables で ssh を通すフィルタの手前に8回/分以上の新規接続を 検出すれば、応答しないように修正。sudo /etc/init.d/iptables restart して様子を見る。

  -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
+ -A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
+ -A RH-Firewall-1-INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

cat /proc/net/ipt_recent/SSH すれば、アタックしてきたIPが出てくる(正規のアクセスも含まれる)

日本以外からのssh接続を拒否するフィルタを設定するのも手かもしれない。

[2010/12/15] ポート番号を22から適当な番号に変更した。クライアント側の設定変更が面倒だが、セキュリティ上は好ましい。 新規接続の頻度でフィルタする iptables のエントリも削除した。

root宛てのメール

少なくとも1日1通 Logwatch からのメールが届くので、 root宛てのメールを Thunderbird で読めるようにする。

$ sudo yum install dovecot thunderbird

$ sudo vi /etc/dovecot.conf
protocols = imap
mail_location = mbox:~/mail:INBOX=/var/mail/%u
$ sudo service dovecot start
$ sudo chkconfig dovecot on

$ sudo vi /etc/aliases
root: otsuka
$ sudo newaliases

これまで溜まっていた root 宛てのメールを inbox へ移動

$ cd /var/mail
$ sudo cp root otsuka
$ sudo chown otsuka.mail otsuka
$ sudo chmod 660 otsuka

Thunderbird で以下ようなアカウントを作成 (外にメールを出すことがあるのなら、 実在するメールアドレスで設定する)。

Your Name: Koichi Otsuka
Email Address: otsuka@sakura-vps.local
Server Type: IMAP Mail Server
Server Name: localhost
User Name: otsuka

Outgoing Server
Server Name: localhost

httpサーバー

localhostでp2 (PHPでつくった2ch Viewer)を入れるために httpサーバーを立ち上げる。 p2はSakuraのレンタルサーバーでも動作するが、最近過負荷が酷くなってきたのでVPSに移すことにした。 ポート80(http)への外からのアクセスは、デスクトップの Firefox からのみアクセスするのであれば、 不要だがiPhone等からもアクセスしたいときは、乗っ取られないように慎重に開ける。

$ sudo yum install httpd php php-mbstring

$ sudo vi /etc/sysconfig/iptables
  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
+ -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
$ sudo service iptables restart
$ sudo service httpd start
$ sudo chkconfig httpd on
$ sudo vi /etc/php.ini
mbstring.* のコメントを全て外した

安全性に問題ないのか検証していないが、一般ユーザーでもhttpdのアクセスログを見れるようにした。

$ sudo chmod go+rx /var/log/httpd
$ tail -F /var/log/httpd/access_log

httpサーバーを開放する場合は、インストールするモジュールなどを慎重に設定する。 php-admin等、デフォルトのフォルダ構成や簡単なパスワード等で公開しない、等の注意が必要。

その他チューニング


免責事項

ここに記載されている内容を実際に運用した場合のトラブルに関しては一切責任を負えませんのでご了承ください。
Copyright 2000-2011 Koichi Otsuka


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-08-03 (水) 10:23:13 (4643d)