さくらVPS 初期セットアップメモ

さくら VPS 契約後の最初のセットアップ手順メモです。
ほぼ自分用にメモしていたものですが、整理も兼ねてブログにアップしておきます。
以下、手順は すべて root に su した後の手順になります。

1. rootのパスワードを変更

passwd

2. yum のアップデート

yum update

3. 運用ユーザを追加

useradd [ユーザ名] -G wheel
passwd ******

4. root の制限

rootになれるユーザーの制限
vim /etc/pam.d/su

- # auth            required        pam_wheel.so use_uid
+ auth            required        pam_wheel.so use_uid

vim /etc/login.defs

+ SU_WHEEL_ONLY yes

一般ユーザーのsudo を許可
visudo

- # %wheel  ALL=(ALL)       ALL
+ %wheel  ALL=(ALL)       ALL

rootログイン・パスワード認証を禁止する
vim /etc/ssh/sshd_config

- PermitRootLogin yes
+ PermitRootLogin no
-  PasswordAuthentication yes
+ PasswordAuthentication no

5. SSHのセキュリティ向上(ポート/ホスト制限と認証鍵でログイン)

SSHのポートを任意の数値に変更
vim /etc/ssh/sshd_config

+ Port 123456

接続元のホストを制限
vim /etc/hosts.allow

+ ALL: 127.0.0.1
+ sshd: [ISPのドメイン名]

vim /etc/hosts.deny

+ sshd: ALL

運用ユーザの鍵情報ディレクトリを用意
su - [ユーザ名]
mkdir ~/.ssh/
chmod 700 ~/.ssh/

以下、接続元のPCで鍵のセットを作成。パスフレーズは省略してもOK
mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa

Enter file in which to save the key (/home/[ユーザ名]/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

作成した公開鍵をサーバに転送 scp id_rsa.pub root@[ホスト名]:/home/[ユーザ名]/.ssh/authorized_keys

引き続き、リモートサーバで転送した公開鍵のパーミッションを変更 sudo chown [ユーザ名]:[ユーザ名] ~/.ssh/authorized_keys
sudo chmod 600 ~/.ssh/authorized_keys

SSHを再起動して設定を有効化
/etc/init.d/sshd restart

この時点で上記設定がすべて有効化され、運用ユーザの鍵認証でしかログインできなくなります。 設定がミスってるとリモートアクセスができなくなるので要注意です。

6. iptables(ファイヤーウォール)の設定

前述の手順で SSH のポートを標準から変更しているため、ここでの SSH のポートの値は 変更したポートを指定するようにしてください。

vim /etc/sysconfig/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 123456 -j ACCEPT
# http
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# https
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
# POP3
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
# SMTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
# MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

再起動して設定を反映
/etc/rc.d/init.d/iptables restart

7. 利用しないデーモンを終了してメモリを確保する

/sbin/chkconfig auditd off
/sbin/chkconfig autofs off
/sbin/chkconfig avahi-daemon off
/sbin/chkconfig bluetooth off
/sbin/chkconfig cups off
/sbin/chkconfig firstboot off
/sbin/chkconfig gpm off
/sbin/chkconfig haldaemon off
/sbin/chkconfig hidd off
/sbin/chkconfig isdn off
/sbin/chkconfig kudzu off
/sbin/chkconfig lvm2-monitor off
/sbin/chkconfig mcstrans off
/sbin/chkconfig mdmonitor off
/sbin/chkconfig messagebus off
/sbin/chkconfig netfs off
/sbin/chkconfig nfslock off
/sbin/chkconfig pcscd off
/sbin/chkconfig portmap off
/sbin/chkconfig rawdevices off
/sbin/chkconfig restorecond off
/sbin/chkconfig rpcgssd off
/sbin/chkconfig rpcidmapd off
/sbin/chkconfig smartd off
/sbin/chkconfig xfs off
/sbin/chkconfig yum-updatesd off

実行できたのは以下のみ

/sbin/chkconfig auditd off
/sbin/chkconfig haldaemon off
/sbin/chkconfig lvm2-monitor off
/sbin/chkconfig mdmonitor off
/sbin/chkconfig messagebus off
/sbin/chkconfig netfs off
/sbin/chkconfig restorecond off
/sbin/chkconfig smartd off

実行前

free
             total       used       free     shared    buffers     cached
Mem:       1922240     679936    1242304          0      92940     473488
-/+ buffers/cache:     113508    1808732
Swap:      2097144          0    2097144

実行後

free
             total       used       free     shared    buffers     cached
Mem:       1922240     102724    1819516          0       7216      29720
-/+ buffers/cache:      65788    1856452
Swap:      2097144          0    2097144

8. 文字コードを日本語に対応させる

vim /etc/sysconfig/i18n

- LANG="C"
+ LANG="ja_JP.UTF-8"

参考サイト