さくらのVPSを標準のOSの設定したときの情報(今はDebianで運用中)
#contents
#navi(Sakura/VPS)
**利用目的 [#u359da86]
+CentOSの扱いを学習
+iPadに仮想デスクトップを提供
**構築手順 [#a780bdb0]
(シリアル・コンソールから)
# 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
**日本語入力 [#rbfbdc2b]
日本語入力できるようにする [[参考:http://bluebonnet.way-nifty.com/cyberham/2009/06/centos-5-3e9c.html]]
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 [#pee53ee4]
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)
**デスクトップの設定 [#s76ffe15]
+スクリーンセーバーを無効にする
+クリップボードの接続
System:Preferences:More Preferences:Sessions
Startup Programs(TAB)
Add
vncconfig -iconic=1
+ssh-addをStartupセッションに加える
**Firefox [#p65d8864]
$ sudo yum install firefox
コンテンツ言語に日本語を追加し最優先にする
+Edit:Preferences:Content:Languages:Choose...
+Select a language to add..:Japanese [ja]
+Add:Move Up:Move Up
**IPAフォント [#v5e2cc85]
標準のフォント Sazanami が汚いので、IPAフォントに変えてみる。[[ここ:http://tmcosmos.org/linux/centos/co5.html#japanesefonts]]に載っている手順でよいが、
タイプミスがあるためはまった。
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
-[[IPAフォントのダウンロード || OSS iPedia:http://ossipedia.ipa.go.jp/ipafont/index.html]]
-&ref(Sakura/VPS/local.conf.txt);
**iptables [#j2b9eb35]
物理レンタル・サーバーで 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 のエントリも削除した。
-[[sshへの総当り攻撃をiptablesの2行で防ぐ方法 (blog@browncat.org):http://blog.browncat.org/2007/07/sshiptables2.html]]
-[[ファイアウォール構築(iptables) - CentOSで自宅サーバー構築:http://centossrv.com/iptables.shtml]]
-[[世界の国別 IPv4 アドレス割り当てリスト:http://nami.jp/ipv4bycc/]]
**root宛てのメール [#yb43e0d5]
少なくとも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サーバー [#k6fb2828]
localhostで[[p2 (PHPでつくった2ch Viewer)>Sakura/rep2]]を入れるために
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等、デフォルトのフォルダ構成や簡単なパスワード等で公開しない、等の注意が必要。
**その他チューニング [#s5495657]
-[[CentOSをサーバーとして活用するための基本的な設定 (さくらインターネット創業日記):http://tanaka.sakura.ad.jp/archives/001065.html]] にあるように不要なデーモンを一気にoff、
inittab の不要なコンソールも停止。
----
#include(免責事項)