さくらVPSの初期設定

12

11月

2011

さくらVPS512Mを契約しました。
サーバ関連は分野ではなく知識が乏しいので、色々と弄って必要な作業を把握したいと思います。
parallelsにcentOSをいれて試すのも良いですが、金払ったほうがしっかりやりそうだったので。。。
知識が無いながらもいろいろなサイトを参考に設定してみました。

リモートコンソールでログイン

初期はVPSコントロールパネルのリモートコンソールからrootでログインします。
パスワードを聞かれるので初期パスワードを入力します。

login: root
Password:

SAKURA Internet [Virtual Private Server SERVICE]

rootのパスワードを変更する

パスワードが初期設定のままなので、変更します。

$ passwd
Changing password for user root.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

ユーザーを作成する

rootユーザーだけでは権限が強すぎ危険のため、ユーザーを作成します。

$ useradd 'ユーザー名'
$ passwd 'ユーザー名'
Changing password for user ユーザー名.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

これ以降はリモートコンソールではなく、Macのターミナルで行います。
ターミナルで以下を入力してサーバーにログインします。

$ ssh ユーザー名@IPアドレス

sshのポート番号を変更

ポート番号がデフォルトの22だと、悪意あるロボットに攻撃される可能性があります。
22以外に変更して攻撃対策をします。

rootユーザーでsshd_configを編集します。

su
vi /etc/ssh/sshd_config

コメントアウトをはずし、Port番号を任意に変更します。

#Port 22
Port 10022

変更して保存したらsshを再起動します。

$ /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

この時点でポート指定無しだとログインできなくなります。

ssh ユーザー名@IPアドレス
ssh: connect to host IPアドレス port 22: Connection refused

ポートを指定してログインします。

ssh -l ユーザー名 -p ポート番号 IPアドレス

公開鍵認証でsshログインできるようにする

まずはローカルで公開鍵を生成します。ターミナルで以下を実行します。

$ ssh-keygen

/Users/ユーザー名/.ssh/に下記ファイルが生成されます。

  • id_rsa
  • id_rsa.pub
  • known_hosts

生成された「id_rsa.pub」をサーバー側の「~/.ssh」に転送します。
サーバー側に「.ssh」フォルダがなければ予め作成しておきます。

$ scp -P ポート番号 ~/.ssh/id_rsa.pub ユーザー名@IPアドレス:~/.ssh/authorized_keys

転送したら、パーミッションを変更します。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

公開鍵でしかログインできないようにする

公開鍵でログインできるようにしましたが、
このままではパスワードでもログインができてしまいます。
これを公開鍵のみでしかログインできないようにします。

$ vi /etc/ssh/sshd_config

以下の項目を「no」にします。

PermitRootLogin no
PasswordAuthentication no

設定して保存したらsshdを再起動します。

$ /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

これで設定完了です。以下のコマンドでログインできます。

$ ssh -l ユーザー名 -p ポート番号 IPアドレス

sudoの設定

思いも寄らない処理をしてしまわないよう、
コマンド単位にroot権限を与えます。

sudoがインストールされていることを確認します。

$ yum list installed | grep sudo

sudo.x86_64 1.7.2p1-7.el5_5 installed

wheelグループの設定をします。
wheelはroot権限を得られるユーザーグループです。

$ usermod -G wheel ユーザー名

idコマンドでwheelに属しているか確認します。
10(wheel)と表示されていれば属していることになります。

$ id ユーザー名
uid=500(ユーザー名) gid=500(ユーザー名) groups=500(ユーザー名),10(wheel)

wheelグループに属しているユーザーにsodoを許可します。

$ visudo

viが起動するので以下の部分のコメントアウトをはずします。

$ %wheel ALL=(ALL) ALL
%wheel ALL=(ALL) ALL

これでsudoコマンドを使用する度にパスワードが聞かれます。

sudoコマンドのパスを通す

利用することの多いコマンドのPATHを通します。

$ vi ~/.bash_profile

以下のように追記します。

PATH=$PATH:$HOME/bin
PATH=$PATH:/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/local/sbin

追加後、再読み込みします。

$ source .bash_profile
PATH=$PATH:$HOME/bin:/sbin:/usr/sbin:usr/local/sbin

※似た名前でbashrcがありますが、bash_profileとの違いは、bashrcはbashが起動するたびに読み込まれ、bash_profileはログインしたときに読み込まれるようです。

ファイヤーウォールの設定

iptablesを編集します。
iptablesはパケットフィルタリングを行うプログラムです。
初期状態ではiptablesファイル自体がないので、新たに作成します。

$ sudo vi /etc/sysconfig/iptables

ssh,http,ftp,MySqlのポートのみ解放し、他は利用しないようにします。
sshは22から変更した番号とします。
ファイルは以下のようにします。

 *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, HTTP, FTP1, FTP2, MySQL
 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport ポート番号 -j ACCEPT
 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
 -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

※半角スペース等はエラーになるのようです。
※詳細は参考サイトを参照してください。

設定が完了したらiptablesを再起動します。
設定が問題なければ以下のようになります。

$ sudo /etc/rc.d/init.d/iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]

不要なデーモンを削除

参考サイトではデフォルトで起動している不要なデーモンをoffにするという説明がありますが、
現在は初期状態でoffになっているようです。
が、参考サイトのように念のため以下を実行したら使用メモリが減りました

/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

off前

 $ free
 total used free shared buffers cached
 Mem: 510540 211980 298560 0 26444 145076
 -/+ buffers/cache: 40460 470080
 Swap: 2048276 0 2048276

off後

 $ free
 total used free shared buffers cached
 Mem: 510540 167412 343128 0 23280 116976
 -/+ buffers/cache: 27156 483384
 Swap: 2048276 0 2048276

参考サイト

その他メモ

公開鍵を削除する

id_rsa.pub、id_rsaを削除する場合、併せて「known_hosts」も編集する必要があります。
IPアドレスに割り振られている公開鍵を削除するようです。

ssh-keygen -R IPアドレス

エラーログを確認する

うまくいかない時はログを確認します。

cat /var/log/secure

 

 


Tags:さくらVPS,サーバー

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

トラックバック:http://blog.orangemittoo.net/post/sakuravps_init/trackback/