さくら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"