1. サーバー再起動
- 申込完了メール記載の「VPSコントロールパネル ログイン情報」を参考に、ブラウザからVPSコントロールパネルへログイン
- 「起動」ボタンを押して仮想サーバーを起動する
- 「再起動」ボタンを押して仮想サーバーを再起動する(これをやらないとSSH接続ができない場合があるので必ずやる)
2. sshログイン
rootユーザーでsshログインする(0.0.0.0の部分はVPSのIPアドレスに置き換え)
$ ssh root@0.0.0.0
下記を聞かれたら「yes」と入力
Are you sure you want to continue connecting (yes/no)?
パスワードを聞かれるのでVPSのパスワードを入力
3. rootユーザーのパスワード変更
パスワード変更コマンドを入力
# passwd
新しいパスワードを入力、再入力したら完了
新しいパスワード:
一度ログアウト
# exit
新しいパスワードで再ログイン
$ ssh root@0.0.0.0
4. 一般ユーザー追加
ユーザー追加コマンドを入力(***の部分は任意のユーザー名に置き換え)
# useradd ***
パスワード変更コマンドを入力(***の部分は前述のユーザー名に置き換え)
# passwd ***
パスワードを入力、再入力したら一度ログアウト
# exit
新しいユーザー、パスワードで再ログイン
$ ssh ***@0.0.0.0
5. sudo設定
前述で追加したユーザーをwheelグループに追加(wheelグループというのはroot権限を得られる特別なユーザーグループのこと)
$ sudo usermod -G wheel ***
wheelにsudoを設定するためvisudoコマンド実行
$ sudo visudo
下記行頭の「#」を削除して保存(操作はvi)
# %wheel ALL=(ALL) ALL
wheel以外にsudo権限を与えない設定にする
$ sudo vi /etc/pam.d/su
下記行頭の「#」を削除して保存
# auth required pam_wheel.so use_uid
下記ファイルにも設定
$ sudo vi /etc/login.defs
最下部に下記行を追加
SU_WHEEL_ONLY yes
ssh認証鍵設定
リモートに.sshディレクトリを作る
$ mkdir ~/.ssh/
$ chmod 700 ~/.ssh/
ローカルPCで下記scpコマンドを実行してリモートに鍵設定。
id_rsa.pubが既に生成されていることが前提。
0.0.0.0にはリモートのIPアドレス、USER_NAMEには前述のユーザー名をそれぞれ入力。
$ scp ~/.ssh/id_rsa.pub root@0.0.0.0:/home/USER_NAME/.ssh/authorized_keys
またリモートに戻り、認証ファイルの所有者や権限を変更。
USER_NAMEには前述のユーザー名を入力。
$ sudo chown USER_NAME:USER_NAME ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
ssh接続を簡略化
ローカルPCで下記コマンドを実行
$ vi ~/.ssh/config
下記のような形式で記述して保存
Host test-server
HostName 0.0.0.0
Port 00000
IdentityFile ~/.ssh/id_rsa
User user_name
上記設定後はssh接続を簡略化できる
$ ssh test-server
sshログイン設定の変更
リモートで下記ファイルを編集
$ sudo vi /etc/ssh/sshd_config
下記のように設定して保存(sshd再起動まで)
# ポート変更(10000〜65535の間で他と被らないような数値を指定)
Port 00000
# ルートログイン禁止
PermitRootLogin no
# パスワードログイン禁止
PasswordAuthentication no
sshdを再起動するため、下記コマンドを実行
$ sudo /etc/init.d/sshd restart
ファイアウォール設定
特に何も設定されていないことを確認
$ sudo iptables -L
データを持たないパケットの接続を破棄に設定
$ sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
SYNflood攻撃と思われる接続を破棄に設定
$ sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
ステルススキャンと思われる接続を破棄に設定
$ sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
localhostからの通信とpingを許可に設定
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p icmp -j ACCEPT
確立済みの通信を許可に設定
$ sudo iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
許可した通信以外のサーバに受信するパケットを拒否し、サーバから送信するパケットを許可に設定
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT ACCEPT
80番ポートによるhttp通信を許可
$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
前述で設定したポート番号によるssh接続を許可
$ sudo iptables -A INPUT -p tcp -m tcp --dport 00000 -j ACCEPT
iptablesの設定を設定ファイルに保存
$ service iptables save
正しく設定されていることを確認
$ sudo iptables -L
システムアップデート
yumでシステムを最新の状態にする
$ sudo yum update -y
参考サイト
http://support.sakura.ad.jp/manual/vps/start/
http://morizyun.github.io/blog/sakura-vps-centos63-ssh-setup/
http://superbrothers.hatenablog.com/entry/20090730/1248971671