さくらのVPSでリモート共有デスクトップ

#contents

#navi(Sakura)

**概要 [#j7c03cc3]
レンタル・サーバーの利用者向けに、7/15から8/31まで無料でベータテストが行われている。2010/8/16 に正式版サービスへの申し込み案内が届く。初期費用なし、最低利用期間3ヶ月、月額980円もしくは年額10,780円。

デスクトップをクラウドに置いておいて、VNCなどでいろんな場所からいろんなデバイスで接続して使うのは思いのほか便利だ。


2010/9/1より正式サービス開始。クラウド・デスクトップに月額980円はもったいない気もするが、暫く使ってみることにする。Amazonアソシエイトで費用の足しにできないかと始めてみた。

**To Do [#sc123f47]
+パケットフィルタをかける
+ssh-addをセッションに加える
+日本語入力できるようにする [[参考:http://bluebonnet.way-nifty.com/cyberham/2009/06/centos-5-3e9c.html]]

**利用目的 [#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]
 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

**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(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接続を拒否するフィルタを設定するのも手かもしれない。

-[[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 の不要なコンソールも停止。

**リンク [#ae929186]
-[[さくらのVPS|VPS(仮想専用サーバ)はさくらインターネット:http://vps.sakura.ad.jp/]]
-[[SAKURA Internet // サポート - オンラインマニュアル - さくらのVPS OSセットアップ情報:http://support.sakura.ad.jp/support/vps/tips_ossetup.shtml]]
-[[さくらインターネット創業日記:http://tanaka.sakura.ad.jp/]]
-[[1,000円を切る低価格で登場、「さくらのVPS」をチェック――徹底ベンチマーク編 - SourceForge.JP Magazine : オープンソースの話題満載:http://sourceforge.jp/magazine/10/09/02/1757222]]
-[[1,000円を切る低価格で登場、「さくらのVPS」をチェック――サーバー構築編 - SourceForge.JP Magazine : オープンソースの話題満載:http://sourceforge.jp/magazine/10/10/04/0020218]]
-[[月額980円で高速快適! 「さくらのVPS」を試用してみた -INTERNET Watch:http://internet.watch.impress.co.jp/docs/special/20100907_390781.html]]
-[[Linux/SAKURA/VPS980 - Tomocha WikiPlus:http://wiki.tomocha.net/Linux_SAKURA_VPS980.html]]
-[[おさかなラボ - iPadのVNCがハンパじゃない件:http://kaede.to/~canada/doc/vnc-connect-with-ipad]]

**参考 [#d72c893c]
&amazon_associate(4798121401);

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS