さくらの VPS を借りたらまずやっておきたい15のこと (CentOS 6.2編)
さくらの VPS を借りたら、まずやっておきたい CentOS 6.2 の初期設定の手順です。
これが抜けてるぞ、とか、これは不要なんじゃ?というものがありましたら、コメントください。
(参考) 初期状態のメモ
# df -h Filesystem Size Used Avail Use% マウント位置 /dev/vda3 97G 1.3G 91G 2% / tmpfs 499M 0 499M 0% /dev/shm /dev/vda1 251M 32M 207M 14% /boot # cat /etc/redhat-release CentOS release 6.2 (Final) # uname -a Linux www4046ue.sakura.ne.jp 2.6.32-220.7.1.el6.x86_64 #1 SMP Wed Mar 7 00:52:02 GMT 2012 x86_64 x86_64 x86_64 GNU/Linux # free -m total used free shared buffers cached Mem: 996 90 906 0 6 28 -/+ buffers/cache: 54 942 Swap: 2047 0 2047 # netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 219.xx.xxx.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 219.xx.xxx.1 0.0.0.0 UG 0 0 0 eth0 # cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5645 stepping : 1 cpu MHz : 2400.084 cache size : 4096 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc unfair_spinlock pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor bogomips : 4800.16 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU E5645 stepping : 1 cpu MHz : 2400.084 cache size : 4096 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 apicid : 1 initial apicid : 1 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc unfair_spinlock pni ssse3 cx16 sse4_1 sse4_2 x2apic popcnt aes hypervisor bogomips : 4800.16 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management:
OS 基本設定作業
root パスワードの変更
ホスト名 sakura で VPS サーバにアクセスできるように、手許の端末の ssh の設定ファイルに設定を追加します。
host sakura hostname 219.xxx.xxx.xxx port 22 compression yes
手許の端末から root でログインします。
$ ssh -l root sakura
パスワードを変更します。
# passwd
パッケージの更新
インストールされているパッケージを更新します。
# yum check-update # yum -y update
現状のパッケージの一覧を記録しておきます。
# rpm -qa | sort > rpm-qa.20120405-1
etckeeperのインストール
バージョン管理システムと etckeeper をインストールします。
# yum -y install git mercurial etckeeper
etckeeper で使用するバージョン管理システムを git から hg に変更します。
# vi /etc/etckeeper/etckeeper.conf
--- /etc/etckeeper/etckeeper.conf.orig 2012-03-14 04:03:11.000000000 +0900 +++ /etc/etckeeper/etckeeper.conf 2012-04-05 12:53:25.887393308 +0900 @@ -1,6 +1,6 @@ # The VCS to use. -#VCS="hg" -VCS="git" +VCS="hg" +#VCS="git" #VCS="bzr" #VCS="darcs"
リポジトリを初期化しコミットします。
# etckeeper init # etckeeper commit "First Commit"
作業用ユーザの追加
ユーザを追加し、パスワードを設定し、wheel グループに追加します。
# useradd foo # passwd foo # usermod -G wheel foo
sudo の設定
wheel グループのユーザはすべてのコマンドを実行できるように変更します。
# visudo
%wheel のコメントを外します。
# %wheel ALL=(ALL) ALL ↓ %wheel ALL=(ALL) ALL
手許の端末から作業用ユーザでログインし、sudo できることを確認します。
作業ユーザのSSH公開鍵の登録
手許の端末から自分の公開鍵を登録します。
$ ssh-copy-id -i ~/.ssh/id_dsa.pub foo@sakura
作業用ユーザで公開鍵認証でログインできることを確認します。
sshd の設定
sshd のポート番号の変更と root によるログイン、パスワード認証を禁止します。
$ sudo vi /etc/ssh/sshd_config
--- a/ssh/sshd_config Thu Apr 05 12:54:12 2012 +0900 +++ b/ssh/sshd_config Thu Apr 05 13:01:35 2012 +0900 @@ -10,7 +10,7 @@ # possible, but leave them commented. Uncommented options change a # default value. -#Port 22 +Port 2222 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: @@ -39,7 +39,7 @@ # Authentication: #LoginGraceTime 2m -#PermitRootLogin yes +PermitRootLogin no #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 @@ -63,7 +63,7 @@ # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes #PermitEmptyPasswords no -PasswordAuthentication yes +PasswordAuthentication no # Change to no to disable s/key passwords #ChallengeResponseAuthentication yes
sshdを再起動します。
$ sudo service sshd restart
手許の端末からポート番号を指定してログインできることを確認します。
$ ssh -p 2222 sakura
iptables の設定
シェルスクリプトに設定を記載します。
$ vi iptables.sh
#!/bin/sh iptables -P INPUT ACCEPT iptables -F iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -s 10.0.0.0/8 -j DROP iptables -A INPUT -s 172.16.0.0/12 -j DROP iptables -A INPUT -s 192.168.0.0/16 -j DROP iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p tcp --dport 2222 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -j LOG --log-level info --log-prefix "[iptables] " iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -L -v
設定を有効にし、保存します。
$ sudo sh iptables.sh $ sudo service iptables save
手許の端末からログインできることを確認します。
不要なデーモンの停止
$ chkconfig --list abrt-ccpp 0:off 1:off 2:off 3:off 4:off 5:off 6:off abrt-oops 0:off 1:off 2:off 3:off 4:off 5:off 6:off abrtd 0:off 1:off 2:off 3:off 4:off 5:off 6:off acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:off 3:off 4:off 5:off 6:off cpuspeed 0:off 1:on 2:off 3:off 4:off 5:off 6:off crond 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 ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off kdump 0:off 1:off 2:off 3:off 4:off 5:off 6:off lvm2-monitor 0:off 1:on 2:off 3:off 4:off 5:off 6:off mdmonitor 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 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 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 ntpdate 0:off 1:off 2:on 3:on 4:on 5:on 6:off postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off psacct 0:off 1:off 2:off 3:off 4:off 5:off 6:off quota_nld 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 rngd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off smartd 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 sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off udev-post 0:off 1:on 2:off 3:off 4:off 5:off 6:off
on なのは、以下の通りです。
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off cpuspeed 0:off 1:on 2:off 3:off 4:off 5:off 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off lvm2-monitor 0:off 1:on 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 ntpdate 0:off 1:off 2:on 3:on 4:on 5:on 6:off postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off udev-post 0:off 1:on 2:off 3:off 4:off 5:off 6:off
停止してもよいサービスはどれでしょう?あまりなさそうですね。@TODO
パッケージ自動更新の設定
yum-cron でパッケージを自動更新するようにします。
$ sudo yum install -y yum-cron $ sudo service yum-cron start $ sudo chkconfig yum-cron on
root 宛メールの転送
root 宛のメールを自分に転送するに設定します。
$ sudo vi /etc/aliases
--- a/aliases Thu Apr 05 13:07:27 2012 +0900 +++ b/aliases Thu Apr 05 13:08:09 2012 +0900 @@ -93,4 +93,4 @@ decode: root # Person who should get root's mail -#root: marc +root: foo@example.jp
設定変更を反映させます。
$ sudo newaliases
テストメールを送信し確認します。
$ echo "test mail" | mail root
試用期間中は外部へのメール送信はできませんので、キューにたまります。
kernel panic 時の自動再起動
kernel panic になった場合、10秒後に自動再起動するように設定します。
$ sudo vi /etc/sysctl.conf
--- a/sysctl.conf Thu Apr 05 13:07:27 2012 +0900 +++ b/sysctl.conf Thu Apr 05 13:09:40 2012 +0900 @@ -38,3 +38,6 @@ # Controls the maximum number of shared memory segments, in pages kernel.shmall = 4294967296 + +# When kernel panic's, reboot after 10 second delay +kernel.panic = 10
設定を反映させます。
$ sudo sysctl -p
確認します。
$ cat /proc/sys/kernel/panic
ログローテートの設定
ログの保存期間を12週間に増やします。
$ sudo vi /etc/logrotate.conf
--- a/logrotate.conf Thu Apr 05 13:07:27 2012 +0900 +++ b/logrotate.conf Thu Apr 05 13:10:15 2012 +0900 @@ -3,7 +3,7 @@ weekly # keep 4 weeks worth of backlogs -rotate 4 +rotate 12 # create new (empty) log files after rotating old ones create
パッケージの追加
必要なパッケージを追加しておきます。
$ sudo yum -y install logwatch screen
再起動
設定が完了したら一度再起動しておきましょう。
$ sudo shutdown -r now
関連
- さくらの VPS 1GB、申し込み受付再開 - A Day in Serenity @ kenjis
- さくらの VPS がメモリ1GB、ディスク100GBで月額980円に - A Day in Serenity @ kenjis
- さくらの VPS と CloudCore VPS の WordPress によるベンチマーク - A Day in Serenity @ kenjis
- さくらの VPS と CloudCore VPS の PHP のベンチマークのまとめ - A Day in Serenity @ kenjis
- PHPspeed による「さくらの VPS」のベンチマーク - A Day in Serenity @ kenjis