以前の記事「評判のKDDI CPIのVPS ( CloudCore ( クラウドコア ) VPS ) を使ってみた」で KDDI CPIのVPS ( CloudCore ( クラウドコア ) VPS ) の契約およびログインまでについて、簡単に解説しました。
さくらのVPSの時(評判のさくらのVPSを使うときに最初にやっておきたいこと(CentOS編))と同じように、ここでは、初期状態のCloudCore VPSで、最初になっておきたいことを整理しておきます。
CloudCore ( クラウドコア ) VPSのCentOSで最初にやっておきたいこと
CloudCore ( クラウドコア ) の場合、とりあえず、申しこんで、CloudCore VPSのコントロールパネルからサーバーを起動すれば、CentOSが立ち上がります。
良くも悪くも、さくらのVPS以上に何もインストールされていません。
CloudCore VPSの場合、自宅サーバーと違って、既に外部に直接つながった状態ですから、まず、セキュリティ面の強化とサーバー設定をする必要があります。
ここでは、CentOSの初期状態から、各サーバー系をインストールする手前までにやることを記述してみます。
- CentOSを最新にアップデートする。
現在(2012.01.14)では、デフォルトのCentOS のバージョンは、5.6 (64bit版) となります。
これを最新のCentOSへアップデートしてましょう。
※現在(2012.01.14)のCentOS 5 系の最新バージョンは、5.7です。
$ cat /etc/redhat-release CentOS release 5.6 (Final) $ yum update .. Install 1 Package(s) Upgrade 99 Package(s) Total download size: 129 M Is this ok [y/N]: y Downloading Packages: .. zlib.x86_64 0:1.2.3-4.el5 Complete! $ cat /etc/redhat-release CentOS release 5.7 (Final)
ここでは、まず、現在のCentOSのバージョンを確認した後、yum updateでシステムのアップデートを実施しています。
アップデート完了後、再度、現在のCentOSのバージョンを確認し、更新されていることを確認しています。
- iptables , vimをインストールする。
iptables は、LinuxでIPマスカレードおよびパケットフィルタリングを実施するソフトウェアです。
vim は、多言語に対応した テキストエディタ ( vi ) です。
標準のviエディタでも良いのですが、日本語の入力が楽な面もありますし、使い勝手は間違いなく良いですから、インストールしておきます。
$ yum -y install iptables .. Installed: iptables.x86_64 0:1.3.5-5.3.el5_4.1 Complete! $ yum -y install vim-enhanced .. Installed: vim-enhanced.x86_64 2:7.0.109-7.el5 Dependency Installed: gpm.x86_64 0:1.20.1-74.1 vim-common.x86_64 2:7.0.109-7.el5 Complete! $
これだけで、自動的にインストールできます。
- ユーザを追加する。
ここでは、SSHで唯一ログインを許可するようにしたhogeユーザを追加してみましょう。
$ useradd hoge $ passwd hoge Changing password for user hoge. New UNIX password: passwd: all authentication tokens updated successfully. $ usermod -G wheel hoge $
useraddで、hogeというユーザを追加しています。
passwdで、hogeのパスワードを設定しています。
usermodで、hogeをwheelのユーザグループに追加しています。
wheelは、管理者グループになります。
/usr/sbin/ へのパスが設定されていない場合は、useradd などのコマンドを指定する際、フルパスで指定します。
例)
$ /usr/sbin/useradd hoge
- ログイン環境を編集する。
vimを標準のエディタとして使うために、vi のaliasとして登録しておきます。
また、/sbin へのパスも設定しておくと便利です。パスをとおしておくと、いちいち/sbinを先頭にタイプしなくて良くなりますからね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
$ vim ~hoge/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin:/sbin:/usr/sbin # alias alias vi='vim' export PATH
13行目で、/sbinと/usr/sbinへのパスと追加しています。
16行目で、vimの別名をviとしています。
現在ログインしている状態で、上記の編集情報を有効にするには、とすればOKです。$ source ~hoge/.bash_profile
- SSHのポートを変更する。
まずは、SSHのポートを変更して、簡単にアタックされないようにしておきます。指定するポート番号は、10000以降の適当なポート番号を割り当てましょう。
$ vi /etc/ssh/sshd_config # ポート番号を 22 (デフォルト)から10022へ変更する #Port 22 Port 10022 : # SSHのプロトコルをSSH2のみ対応とする Protocol 2 : # rootでのログインを不可とする PermitRootLogin no : # パスワードでのログインを許可する PasswordAuthentication yes : # パスワードなしでのログインを不可とする PermitEmptyPasswords no : # hoge というユーザだけログインを許可する AllowUsers hoge :
ここでは、ポート番号、SSHプロトコル、rootでのログイン不可、ログイン可能なユーザ名を指定しています。
(後でhogeというユーザを追加しています。)
また、ログインするIPアドレスが決まっているなら、許可するIPアドレスも指定した方がより良いです。
設定を終えたら、sshd の設定ファイル再読み込みを実施します。
$ /etc/init.d/sshd reload sshd を再読み込み中: [ OK ] $
この状態で、上記の例で言うと、
ユーザ : hoge
ポート番号 : 10022
でログインできるか確認しましょう。
ログインできればOKです。
できない場合は、設定を再度見直しましょう。
sshd reload がポイントです。
とりあえず、再読み込みの場合は、現在SSHで接続しているクライアントには影響ありません。そのため、もしも設定に誤りがあった場合に、再編集することができます。
sshd を再起動してしまうと、現在接続しているクライアントは解放されてしまうので注意が必要です。
- ファイアウォール(iptables)の設定を行う。
ここでは、単純にiptablesを使っていないポートを外部に非公開とするようにします。
シェルファイルを作成して、一気にやってしまいます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#!/bin/sh /sbin/iptables -F /sbin/iptables -X /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROP /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A OUTPUT -o lo -j ACCEPT /sbin/iptables -A INPUT -s 10.0.0.0/8 -j DROP /sbin/iptables -A INPUT -s 172.16.0.0/12 -j DROP /sbin/iptables -A INPUT -s 192.168.0.0/16 -j DROP /sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 10022 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT /etc/rc.d/init.d/iptables save /sbin/service iptables restart
ここでは、10022(SSH),80(HTTP)の2つのポートのみを公開し、それ以外をすべて非公開にしています。
また、プライベートIPアドレス(10.x.x.x,172.16.x.x,192.168.x.x)は、すべて拒否してます。
pingを受け付けたくない場合は、17行目のicmpの許可を行っているところをコメントアウトしてください。
また、上記は、必要最小限のポートしか開いていません。pop3やmailなどの必要なポートは、19行目を真似て開くと良いでしょう。
ファイルにしたら、実行権限を与えるのを忘れないでね。で実行できるはずです。$ chmod 755 ファイル名 $ ./ファイル名
SSHのポートだけは、絶対に間違えないようにしましょう。この例では、10022を開放しています。
誤ってSSHのポートを閉じてしまうと、二度とアクセスできなくなります。 CloudCoreでは、現在(2012.01.30)、リモートコンソールが提供されていますので、最悪の場合は、リモートコンソールからのアクセスで修正することができます。
- 不要なサービス(デーモン)を停止する。
最後に、無駄に動作しているプロセスを停止するようにします。
ただ、CloudCore VPS の場合、無駄なプロセスは無いと思います。
デフォルトで動作している全プロセスは、以下のとおりです。
$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 10372 756 ? Ss 10:09 0:00 init [3] root 2 0.0 0.0 0 0 ? S< 10:09 0:00 [migration/0] root 3 0.0 0.0 0 0 ? SN 10:09 0:00 [ksoftirqd/0] root 4 0.0 0.0 0 0 ? S< 10:09 0:00 [watchdog/0] root 5 0.0 0.0 0 0 ? S< 10:09 0:00 [events/0] root 6 0.0 0.0 0 0 ? S< 10:09 0:00 [khelper] root 23 0.0 0.0 0 0 ? S< 10:09 0:00 [kthread] root 27 0.0 0.0 0 0 ? S< 10:09 0:00 [kblockd/0] root 28 0.0 0.0 0 0 ? S< 10:09 0:00 [kacpid] root 96 0.0 0.0 0 0 ? S< 10:09 0:00 [cqueue/0] root 99 0.0 0.0 0 0 ? S< 10:09 0:00 [khubd] root 101 0.0 0.0 0 0 ? S< 10:09 0:00 [kseriod] root 166 0.0 0.0 0 0 ? S 10:09 0:00 [khungtaskd] root 167 0.0 0.0 0 0 ? S 10:09 0:00 [pdflush] root 168 0.0 0.0 0 0 ? S 10:09 0:00 [pdflush] root 169 0.0 0.0 0 0 ? S< 10:09 0:00 [kswapd0] root 170 0.0 0.0 0 0 ? S< 10:09 0:00 [aio/0] root 306 0.0 0.0 0 0 ? S< 10:09 0:00 [kpsmoused] root 334 0.0 0.0 0 0 ? S< 10:09 0:00 [ata/0] root 335 0.0 0.0 0 0 ? S< 10:09 0:00 [ata_aux] root 342 0.0 0.0 0 0 ? S< 10:09 0:00 [kstriped] root 351 0.0 0.0 0 0 ? S< 10:09 0:00 [kjournald] root 371 0.0 0.0 0 0 ? S< 10:10 0:00 [kauditd] root 399 0.0 0.0 12640 772 ? S<s 10:10 0:00 /sbin/udevd -d root 779 0.0 0.0 0 0 ? S< 10:10 0:00 [vballoon] root 955 0.0 0.0 0 0 ? S< 10:10 0:00 [kmpathd/0] root 956 0.0 0.0 0 0 ? S< 10:10 0:00 [kmpath_handlerd] root 1236 0.0 0.0 5932 612 ? Ss 10:10 0:00 syslogd -m 0 root 1239 0.0 0.0 3828 424 ? Ss 10:10 0:00 klogd -x root 1248 0.0 0.0 3824 572 ? Ss 10:10 0:00 /usr/sbin/acpid root 1259 0.0 0.0 62652 1204 ? Ss 10:10 0:00 /usr/sbin/sshd ntp 1270 0.0 0.2 19216 4908 ? SLs 10:10 0:00 ntpd -u ntp:ntp -p /var/r root 1276 0.0 0.0 3812 528 tty1 Ss+ 10:10 0:00 /sbin/mingetty tty1 root 1277 0.0 0.0 3824 592 ttyS0 Ss+ 10:10 0:00 /sbin/agetty -h 115200 tt root 1289 0.0 0.1 90944 3412 ? Ss 10:21 0:00 sshd: root@pts/0 root 1291 0.0 0.0 66048 1592 pts/0 Ss 10:21 0:00 -bash root 1327 0.0 0.0 65608 1016 pts/0 R+ 10:28 0:00 ps aux $ chkconfig --list acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off haldaemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off kudzu 0:off 1:off 2:off 3:off 4:off 5:off 6:off lvm2-monitor 0:off 1:off 2:off 3:off 4:off 5:off 6:off mcstrans 0:off 1:off 2:off 3:off 4:off 5:off 6:off messagebus 0:off 1:off 2:off 3:off 4:off 5:off 6:off multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off netfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off netplugd 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off rawdevices 0:off 1:off 2:off 3:off 4:off 5:off 6:off rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off tcsd 0:off 1:off 2:off 3:off 4:off 5:off 6:off xfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
動作している各サービスは、以下のようなものです。
サービス 概要 acpid システムの電源を管理する network ネットワーク設定・管理する ntpd ネットワークタイムプロトコル(NTP)を使用してシステム時刻の同期をとる sshd sshによるリモートログインを可能にする syslog システムのログを記録する
これを見ると不要なものが見当たりません。
あえて止めるなら、ntpd ぐらいだと思いますが、これは、あえてKDDI で動作させているサービスなので、KVMのホスト側で設定していない?のでしょう。(さくらのVPSでは、ゲスト側で設定する必要はありません)
そのため、そのまま起動しておく方が無難でしょうね。
もしも止めるなら、以下のように設定すればOKです。
$ /sbin/chkconfig ntpd off
acpid : 電源管理 は、
立ち上げておいた方が良いです。ホスト側でリブートなどした場合、電源断を検知してくれるので、より安全に再起動できます。
さくらのVPSで実施していた、
不要なコンソール、selinuxなどは、デフォルトで停止になっています。また、日本語環境もデフォルトで設定されていますので、ここでの記載は省いています。
また、ここに書いているのは、あくまで必要最小限としての記載ですので、ユーザによっては、もっと、セキュリティ面で強化を図ることもできると思います。
いろいろ設定してみて、Logwatch ぐらいは確認しておきましょう。
変なアクセスがないかぐらいは、チェックしておきましょう。
CloudCore ( クラウドコア ) VPS を試してみたい方は、CloudCore ( クラウドコア ) VPS ページ
タグ: CloudCore



2012年1月15日, 4:29 PM
[...] [...]