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
19
| $ vim ~hoge/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
PATH=$PATH:$HOME/bin:/sbin:/usr/sbin
alias vi='vim'
export PATH
|
13行目で、/sbinと/usr/sbinへのパスと追加しています。
16行目で、vimの別名をviとしています。
現在ログインしている状態で、上記の編集情報を有効にするには、
$ source ~hoge/.bash_profile
|
とすればOKです。
SSHのポートを変更する。
まずは、SSHのポートを変更して、簡単にアタックされないようにしておきます。指定するポート番号は、10000以降の適当なポート番号を割り当てましょう。
$ vi /etc/ssh/sshd_config
Port 10022
:
Protocol 2
:
PermitRootLogin no
:
PasswordAuthentication yes
:
PermitEmptyPasswords no
:
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 ページからどうぞ。
無料お試し期間は10日です。
2012年1月15日, 4:29 PM
[…] […]
2012年7月17日, 11:30 PM
[…] $ vim /home/★作業用ユーザ/iptablesSet $ /etc/rc.d/init.d/iptables save $ /sbin/service iptables restart $ chmod 755 iptablesSet ./iptablesSet ココまでの参考資料 http://server-setting.info/blog/cloudcore_vps_centos_first_setup.html […]