思いのほか何もやっていない感があったので
何かやらねば、と思い、タスク管理がしたかったので Redmine を動かすために
去る7月1日にさくらのVPSを借りてみました。
さくらのVPSを借りる
HDD プランのメモリ 1G のやつを借りました。月額約1000円、年間1万円ちょっとで自由に使えるサーバがあるなんて最高な気分です。
どうせなので2週間無料お試しで借りました。
スペックは 料金・サービス仕様 | VPS(仮想専用サーバ)は「さくらのVPS」 で
OS は CentOS6 x86_64 の標準 OS です。
アカウント登録とクレカ登録などを済ませてちょっとしたら「お申込受付完了のお知らせ」、
その10分後くらいに「[さくらのVPS] 仮登録完了のお知らせ」のメールが届きました。
たしか仮登録完了のお知らせが来るまで何もできないです。
用語定義
- USER
- サーバの作業ユーザ名
- IP.ADD.RE.SS
- サーバの IP アドレス
- PORT
- 変更した SSH のポート番号
- %
- Mac でのコマンド
- $
- サーバのコマンド
- #
- コメント
VPS を起動する
さくらインターネットVPSコントロールパネルで仮想サーバ操作の起動ボタンを押します。Updating RPMS on system: で結構待たされるのでエラーかと思いますが、ひたすら待ちます。
参考: さくらのVPSの初回起動時に応答が無くなるように見えるけど、気長に待つ | ただのにっき。
ここから先は さくらのVPSで最初にやっておくこと - 飲んだり寝たり を参考にした。
VPS に接続する
Mac の Terminal からいつものように SSH 接続。IP アドレスとパスワードは仮登録のメールにある。ssh root@IP.ADD.RE.SS
root パスワードの変更
passwd # パスワード入力セキュリティ対策。
SSH のポートを変更する
# 設定ファイルのバックアップ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
vi /etc/ssh/sshd_config
-Port 22 +Port PORTセキュリティ対策:サーバの 22 番ポートを調べて脆弱性がないか確認するポートスキャンという手法対策。
10022 に変える記述が多いけど 10022 に変えるのがデファクトスタンダードになったら
10022 にもポートスキャンしてくるんじゃないかなーと思ったり。
49513 〜 65535 が自由に使えるダイナミックポート/プライベートポートと呼ばれるポートらしいので
僕はその間のポートにしました。
参考: ポート番号は何番を使えばいいのか教えて下さい - ポート開放ナビ
SSH 接続設定の再読み込み
/etc/rc.d/init.d/sshd reloadCommand + T で Terminal のタブを増やして動作確認(元のタブは万が一のために閉じない)
ssh -p PORT root@IP.ADD.RE.SS # 変更したパスワードを入力
作業用ユーザの追加と設定
作業用ユーザの追加
useradd USER
passwd USER # パスワード入力USER: ユーザ名
以降、root ユーザでは接続せず、作業用ユーザで接続する。
必要のある場合のみ sudo su - で root になる。
root ユーザでのログイン禁止
sudo vi /etc/ssh/sshd_config
#PermitRootLogin yes PermitRootLogin no
sudo の設定
sudo が使える wheel グループに追加する
usermod -G wheel USER参考
「wheelグループ」とは:ITpro
[Linux] なぜ sudo する権限のあるグループが「 wheel 」という名前なのか « Codaholic
wheel が sudo を使えるようにする
visudo
## Allows people in group wheel to run all commands -# %wheel ALL=(ALL) ALL +%wheel ALL=(ALL) ALL
SSH 接続方式を公開鍵認証方式に変更
Mac でキーペア(秘密鍵, 公開鍵)の生成
ssh-keygen -t rsa
ssh-add ~/.ssh/id_rsa
公開鍵をサーバーに転送
scp -P PORT ~/.ssh/id_rsa.pub USER@IP.ADD.RE.SS:~/
公開鍵を登録する
ssh -p PORT USER@IP.ADD.RE.SS
mkdir ~/.ssh
chmod 700 ~/.ssh
mv id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
パスワード認証の無効化
sudo vi /etc/ssh/sshd_config
-PasswordAuthentication yes +PasswordAuthentication no
sudo service sshd restart # 問題がなければ [OK] と表示される
接続の確認
ssh -p PORT USER@IP.ADD.RE.SS # ログイン出来る(パスワードが聞かれない)
ssh -p PORT root@IP.ADD.RE.SS ログイン出来ない
SSH 接続の簡略化
vi ~/.ssh/config
HOST ALIAS HostName IP.ADD.RE.SS Port PORT User USER identityfile ~/.ssh/id_rsa
ssh ALIASエイリアスで SSH 接続できるので便利です。
参考: .ssh/configで設定すると接続が楽になる方法 - Qiita
iptables (Firewall)の設定
参考俺史上最強のiptablesをさらす - Qiita
さくらVPS/Cent OS 6.4 iptableの設定[Railsサーバへの道][セキュリティ] - 酒と泪とRubyとRailsと
iptablesでパケットフィルタリングするための設定 - 飲んだり寝たり
sudo mkdir /root/bin/
sudo vim /root/bin/iptables.shwada811/iptables.sh
sudo sh /root/bin/iptables.sh
sudo iptables -L
sudo chkconfig iptables on # OS起動時にiptablesを起動するようにする
chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off # 3:on になっていれば OK
設定完了
とりあえず必須な初期設定はこれで完了だと思います。必ずコレはやっておけみたいなのとか、間違ってるとか、もっとこうした方が良いとかあればコメント下さい。