さくらの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(免責事項)