さくらのVPS借りた時のはじめの設定
無料お試しで2週間使えるとのことだったのでさわさわした時の設定。
sshは公開鍵で認証し、セキュリティは最低限のみ設定。
環境
[VPS]
[クライアント]
- Mac OS X 10.10
- OpenSSH_6.2p2
1. rootのパスワード変更から作業ユーザー作成まで
rootのパスワード変更
[root@host ~]# passwd Changing password for user root. New password: Retype new password: passwd: all authentication tokens updated successfully.
作業用ユーザー作成
[root@host ~]# useradd hoge [root@host ~]# passwd hoge New password: Retype new password: passwd: all authentication tokens updated successfully.
2. ユーザーhogeをグループに追加し、グループがsudoとsuを実行できるようにする
ユーザーhogeをwheelに追加し、wheelグループがsudoコマンドを実行できるようにする
[root@host ~]# usermod -G wheel hoge [root@host ~]# visudo -- # %wheel ALL=(ALL) NOPASSWD: ALL ↑先頭の#を削除
suコマンドをwheel内のユーザーだけが実行できるようにする
[root@host ~]# vi /etc/pam.d/su -- #auth required pam_wheel.so use_uid ↑先頭の#を削除
参考
なぜ sudo する権限のあるグループが「 wheel 」という名前なのか
suについて(wiki)
3. ssh接続するための作業ディレクトリ作成
rootからログアウト
[root@host ~]# exit logout CentOS release 6.6 (Final) Kernel 2.6.32-504.1.3.el6.x86_64 on an x86_64
hogeでログインしてルートに入れるか確認した後にhogeのssh用のディレクトリ作成
host login:hoge Password: [hoge@host ~]$ sudo su [root@host hoge]# exit [hoge@host ~]$ [hoge@host ~]$ mkdir /home/hoge/.ssh [hoge@host ~]$ chmod 700 /home/hoge/.ssh [hoge@host ~]$ ls -al /home/hoge drwx------ 2 hoge hoge 4096 Nov 15 22:55 .ssh
chmod 700
所有者はディレクトリに対してあらゆる操作が可能。所有者以外はディレクトリに対する操作は一切不可(ディレクトリ内を見ることはできない)
4. macにて公開鍵を作成
鍵を作成
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/hoge/.ssh/id_rsa): /Users/hoge/.ssh/sakura_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again:
作成した鍵の確認
$ ls -al /Users/hoge/.ssh -rw------- 1 hoge staff 1766 11 16 01:47 sakura_rsa -rw-r--r-- 1 hoge staff 420 11 16 01:47 sakura_rsa.pub
公開鍵をmacからscpでvpsに配置
$ scp ~/.ssh/sakura_rsa.pub hoge@[IP Address]:/home/hoge/.ssh
5. vpsにて公開鍵の設定
scpで送信された公開鍵を設定
[hoge@host ~]$ cd /home/hoge/.ssh [hoge@host ~]$ cat id_rsa.pub >> authorized_keys [hoge@host ~]$ chmod 600 authorized_keys
sshd_configファイルの設定
[hoge@host ~]$ sudo vi /etc/ssh/sshd_config -- Port 10022 ↑10022に変更 -- PermitRootLogin no ↑rootでsshのログイン禁止 -- PasswordAuthentication no ↑パスワード認証を無効 -- PubkeyAuthentication yes ↑鍵認証を有効 --
sshを再起動
[hoge@host ~]$ sudo /etc/init.d/sshd restart
6. macにて./ssh/configファイルの設定
$ vi /Users/hoge/.ssh/config -- Host sakura HostName IP Address Port 10022 IdentityFile ~/.ssh/sakura_rsa User hoge --
7. macからssh接続してみる
$ ssh sakura
8. iptablesの設定
設定を追加
[hoge@host ~]$ sudo su
*データを持たないパケットの接続を破棄 [root@host hoge]# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP *SYNflood攻撃と思われる接続を破棄 [root@host hoge]# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP *ステルススキャンと思われる接続を破棄 [root@host hoge]# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP *localhostからの通信を許可 [root@host hoge]# iptables -A INPUT -i lo -j ACCEPT *localhostからのpingを許可 [root@host hoge]# iptables -A INPUT -p icmp -j ACCEPT *利用するポート番号を許可 [root@host hoge]# iptables -A INPUT -p tcp -m tcp --dport 10022 -j ACCEPT *確立済みの通信を許可 [root@host hoge]# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT *許可した通信以外のサーバに受信するパケットを拒否 [root@host hoge]# iptables -P INPUT DROP *サーバから送信するパケットを許可 [root@host hoge]# iptables -P OUTPUT ACCEPT *iptablesの設定を設定ファイルに保存 [root@host hoge]# service iptables save
iptablesの設定を確認
[root@host hoge]# iptables -L
iptablesの再起動
[root@host hoge]# /etc/init.d/iptables restart
おまけ
証明書認証を利用したい
- 証明書認証はOpenSSH5.4からなので最新バージョンにあげる
※CentOS6でのOpenSSHのデフォルトバージョンは5.3ssh -v
でsshのバージョン確認
- 最新は本家で確認
- 証明書認証をやろうとしてOpenSSHを6.7にあげようとしたがビルドに失敗したので調査せねば・・・