tech::hexagram

personal note for technical issue.

さくらのVPSと契約して初期設定しました

再び更新が途絶えてしまいました。

夏休みを頂いたので、まとまった時間を使ってWebの勉強をしていたりします。
今日はさくらのVPSを契約したので、その環境設定を行っていました。
2012.3.18追記:CentOS6.2で動作確認しました。いくつか加筆修正しています。




rootパスワード変更・ユーザ追加・rootユーザのSSHログイン禁止

root (管理者権限)のパスワードの変更
[root@ ~]# passwd

パスワードを2回聞かれるので、同じものを打ち込む。

新たにユーザを作成、管理者グループに追加

root以外のユーザを作成し、そちらからログインするようにする。

[root@ ~]# useradd hogehoge
[root@ ~]# passwd hogehoge

同じくパスワードを2回聞かれる。次に、作成したアカウントを管理者グループに追加する。

[root@ ~]# usermod -G wheel hogehoge

この変更を有効にするために、visudoを編集し以下のコメントアウトを消す。
その前に、PATHを追加しておく。

 vi ~/.bash_profile
# for sudo commands
PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin
$ source ~/.bash_profile

これを行ったあと、visudoの編集。

# visudo

以下のコメントアウトを外す。

 %wheel  ALL=(ALL)       ALL
wheel  ALL=(ALL)       ALL
/etc/ssh/sshd_configの設定
  • rootログインができないようにする
#PermitRootLogin yes

PermitRootLogin no
AllowUsers hogehoge
  • SSHのポート番号変更
#Port 22

Port 10022
[root@ ~]# service sshd restart
rootになれるユーザを管理者グループのみとする
[root@ ~]# vi /etc/pam.d/su

以下のように変更。

#auth	required	pam_wheel.so use_uid
auth	required	pam_wheel.so use_uid

セキュリティ強化(iptablesの設定)

iptables(アイピーテーブルズ)は、Linuxに実装されたパケットフィルタリング機能、またはその操作をするコマンドのこと。

vi /etc/sysconfig/iptables

これで適当に設定する。iptablesの中身の例はぐぐればでてくるし長いので省略。
さくらのVPS - iptablesの設定メモ - Rubellum fly light

/etc/rc.d/init.d/iptables restart

ただハマりポイントがあって、これの記法をミスると再起動したときにうまくいかない。
no command specified~ってでたときは、行末に不要な空白がある場合か、終わりの「COMMIT」の後にきちんと改行を入れていないとき。

各種インストールyumemacsApachephpphpMyAdmin

yum
sudo yum update

とりあえずこれ。

emacs
yum install emacs
Apache
sudo yum install httpd
sudo /etc/rc.d/init.d/httpd start #Apacheの起動
sudo /sbin/chkconfig httpd on #サーバ起動時に自動的に起動

ここのサイトが非常に参考になったので、こちらを参照してください。
http://curiosity-drives.me/linux/sakura-vps-4-apache/

MySQL
sudo yum -y install mysql-server
  • 設定ファイルの編集
sudo emacs -nw /etc/my.cnf

以下を変更・追加

# character-set
default-character-set=utf8
skip-character-set-client-handshake
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
  • ハマりポイント
    • mysqlのrestartがうまくいかなかった。

/var/log/mysqld.logを見るとTable 'mysql.host' doesn't existとでていた。
mysql_install_dbと入れるとうまく行った。

PHP

リポジトリの追加

wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/el5.i386/remi-release-5-8.el5.remi.noarch.rpm
rpm -Uvh remi-release-5-8.el5.remi.noarch.rpm epel-release-5-4.noarch.rpm

インストール

yum --enablerepo=remi install php-devel php-mbstring php-mysq
PHPMyAdmin

インストール

[root@ ~]# svn checkout https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/tags/STABLE/phpMyAdmin phpmyadmin
[root@ ~]# mv phpmyadmin/ /var/www/
[root@ ~]# cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
[root@ ~]# chmod 660 /var/www/phpmyadmin/config.inc.php
[root@ ~]# yum -y install expect

初期設定

[root@ ~]# mkpasswd -l 46
***** #パスワードが出る
[root@ ~]# vi /var/www/phpmyadmin/config.inc.php
$cfg['blowfish_secret'] = ‘*****’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
パス*****を挿入
$cfg['Lang']     = ‘ja-utf-8′; (追加)

[root@ ~]# chown -R root.apache /var/www/phpmyadmin/
[root@ ~]# vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /var/www/phpmyadmin
[root@ ~]# /etc/rc.d/init.d/httpd restart

その他

利用されていないデーモンを終了する

bluetooth など通常は使わないサービスが起動しているので、それを終了。

/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
CentOS の環境を日本語に設定
sudo vi /etc/sysconfig/i18n

以下の項目を編集・追加

LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"