はじめてもつサーバーにわくわくしっぱなしですが、セキュリティの設定が甘くて簡単に乗っ取られSPAMメール送信拠点になってしまったら笑えません。
のでドットインストールさんのさくらVPSの基礎という講座を参考に各種設定を行いました。
ドットインストールのサイトでは一回3分程度のYoutube動画で21回に渡り解説されているさくらVPSの基礎ですが、ここではさらっと確認するためにやったことを文字にまとめてみました。
誰かの参考になったら良いと言うよりは自分自身の備忘録ですね。
ちなみにローカルはMacOSX10.6.8です。
※赤文字一字下げはvimで変更する箇所
1.rootのパスワードを変更
2.パッケージのアップデート
→ yum update
3.日本語化
→ vim /etc/sysconfig/i18n
LANG = "ja_JP.UTF-8"に変更
4.作業用ユーザの作成
→ useradd userA
passwd *****
usermod -G wheel userA //sudo権限を移譲
visudo //wheelグループの有効化
wheelを検索して先頭の#を削除しコメントを解除
5.公開鍵認証の設定
→mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa -v //ローカルで
鍵の名前をid_rsa_userA、id_rsa_userA.pubに変更
chmod 600 .ssh/id_rsa_userA.pub //公開鍵のパーミッション変更
scp ~/.ssh/id_rsa_userA.pub userA@IP.ADD.RE.SS:~/.ssh/authorized_keys
ssh -i ~/.ssh/id_rsa_userA userA@IP.ADD.RE.SS //公開鍵を用いたssh
6.ポート番号、パスワードログイン、rootログインの禁止
→ sudo -s //root権限取得
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org //バックアップ
vim /etc/ssh/sshd_config
#Port 22 → Port ***** //は1024〜65534の任意の数字
Port 5555 //仮設定
PasswordAutentication yes → Passwordauthentication no
#PermitRootLogin yes → PermitRootLogin no
service sshd restart
ssh -p 5555 userA@IP.ADD.RE.SS
7.ファイアウォールの設定
→ vim /etc/sysconfig/iptables
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :SERVICES - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p tcp -m state --state NEW -j SERVICES -A INPUT -p udp --sport 53 -j ACCEPT -A INPUT -p udp --sport 123 --dport 123 -j ACCEPT -A SERVICES -p tcp --dport YOUR_PORT_NUMBER -j ACCEPT -A SERVICES -p tcp --dport 80 -j ACCEPT -A SERVICES -p tcp --dport 443 -j ACCEPT COMMITservice iptables restart
iptables -L //設定の確認
8.Webサーバーのインストール
→ yum install httpd
chkconfig httpd on //自動起動
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
vim /etc/httpd/conf/httpd.conf
ServerTokens Prod
ServerSignature Off
Options -Indexes FollowSymLinks
service httpd configtest //設定のテスト
service httpd start
9.PHPのインストール
→ yum install php php-devel php-mysql php-mbstring php-gd
php -v //バージョンチェック
cp /etc/php.ini /etc/php.ini.org
vim /etc/php.ini
error_log = /var/log/php.log //エラーログの場所
mbstring.language = Japanese //文字を日本語に設定
mbstring.internal_encoding = UTF-8 //エンコーディングをUTF-8に
mbstring.http_input = auto
mbstring.detect_order = auto
expose_php = Off
date.timezone = Asia/Tokyo //タイムゾーンを日本に
service httpd restart
10.MySQLのインストール
→ yum install mysql-server
cp /etc/my.cnf /etc/my.cnf.org
vim /etc/my.cnf
service mysqld start
mysql_secure_installation
chkconfig mysqld on
mysql -u root -p
これでLAMP(Linux,Apache,MySQL,PHP)の環境構築完了です。
このあとRuby On RailsとmongoDBのインストールも行いましたが省略します。
個人的に引っかかったポイントとしてパスワードログインの禁止後に新規ユーザを作成した際のsshログインの仕方について記述します。
1.新規ユーザーの追加
→ useradd userB
passwd *****
2.新規ユーザの鍵ペアの作成
→ 省略しますがid_rsa_userB、id_rsa_userB.pubという鍵を作成
3.新規ユーザのホームに.sshディレクトリの作成
→ userA $ → sudo -s → root # //ルート権限の委譲
mkdir /home/userB/.ssh/
chmod 700 /home/userB/.ssh/
chown userB /home/userB/.ssh/
chgrp userB /home/userB/.ssh/
exit
logout
4.公開鍵の移動
→ scp -P 5555 -i id_rsa_userA id_rsa_userB.pub userA@IP.ADD.LE.SS:~/.ssh/authorized_userB
ssh -i ~/.ssh/id_rsa_userA userA@IP.ADD.RE.SS
sudo -s
cp /home/userA/.ssh/authorized_userB /home/userB/.ssh/aurhorized_key
chmod 600 /home/userB/.ssh/aurhorized_key
chown userB /home/userB/.ssh/aurhorized_key
chgrp userB /home/userB/.ssh/aurhorized_key
exit
logout
5.userBで公開鍵認証
→ ssh -p 5555 -i ~/.ssh/id_rsa_userB userB@IP.ADD.LE.SS
6.(Mac限定?)sshを簡単にするconfigの設定
→ ローカルの~/.sshディレクトリの中のconfigを設定する
Host userA HostName IP.ADD.LE.SS Port 5555 IdentityFile ~/.ssh/id_rsa_userA User userA Host userB HostName IP.ADD.LE.SS Port 5555 IdentityFile ~/.ssh/id_rsa_userB User userB
この様にすればssh userAとすればuserAにssh userBとすればuserBでログインすることが可能です。
簡単に言うと.sshフォルダとauthorized_keysの所有者がuserBになっていれば大丈夫です。ここがわからなくてかなりの時間を消費しました。
0 件のコメント:
コメントを投稿