さくらのVPSを標準のOSの設定したときの情報(今はDebianで運用中)
利用目的 †
- CentOSの扱いを学習
- 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)
デスクトップの設定 †
- スクリーンセーバーを無効にする
- クリップボードの接続
System:Preferences:More Preferences:Sessions Startup Programs(TAB) Add vncconfig -iconic=1
- ssh-addをStartupセッションに加える
Firefox †
$ sudo yum install firefox
コンテンツ言語に日本語を追加し最優先にする
- Edit:Preferences:Content:Languages:Choose...
- Select a language to add..:Japanese [ja]
- 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 のエントリも削除した。
- sshへの総当り攻撃をiptablesの2行で防ぐ方法 (blog@browncat.org)
- ファイアウォール構築(iptables) - CentOSで自宅サーバー構築
- 世界の国別 IPv4 アドレス割り当てリスト
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等、デフォルトのフォルダ構成や簡単なパスワード等で公開しない、等の注意が必要。
その他チューニング †
- CentOSをサーバーとして活用するための基本的な設定 (さくらインターネット創業日記) にあるように不要なデーモンを一気にoff、 inittab の不要なコンソールも停止。
免責事項
ここに記載されている内容を実際に運用した場合のトラブルに関しては一切責任を負えませんのでご了承ください。
Copyright 2000-2011 Koichi Otsuka