本稿ではクラウド利用初心者の方向けにクラウドセキュリティ設定について解説を行います。
#目次
- はじめに
- Port番号変更
- rootログイン禁止
- FIrewall設定
- 参考URL
#はじめに
ご自身でクラウドを構築した場合、サーバーのセキュリティはどのようにしていますか?
「まさか、そんな自分が狙われているはずがない」「ちょっと使うだけだから〜」
こんな風にセキュリティ設定がいい加減になっていませんか?
サーバーを立てたその瞬間から、世界中からネット経由であなたのクラウドは脅威に晒されています。
サーバーが乗っ取られ悪用、情報が抜き取られる可能性もあります。
後の様々なリスクを回避するためにも、サーバーの設定変更をお勧めします。
最低限次の3項目は押さえて!
- Port番号変更
- rootログイン禁止
- Firewall設定
#Port番号変更
1. 既存のconfig fileのバックアップ
これから行う様々な設定変更を行う前に既存のconfig fileをバックアップしておきます。
$ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.old
2. viコマンドによるPort変更
config fileを編集します。既存設定でport22となっていますがこれを任意のポート番号に変更しましょう。
$ vi /etc/ssh/sshd_config
viエディタの設定変更の仕方→port項目が探すことができればi
(insert)で入力、見つけられなければ/
(search)でportを入力してみてください。22番ポートから任意のportに変更できれば、:wq
で保存します。
3. 再起動(変更の反映)
$ /etc/init.d/ssh restart
で再起動させてください。
4. 変更の確認
今まで通りに$ ssh root@xxx.xxx.xx.xx
でログインを試してみてください。
$ ssh: connect to host 161.202.86.30 port 22: Connection refused
となればportが変更できています。
port変更後は$ ssh -p(ポート指定) zzzz(任意ポート) root@xxx.xxx.xx.xx
でアクセスしてください。
#rootログイン禁止
先ほどまでは管理者アカウントであるrootからログインを行なっていました。これではrootとIPアドレスさえ判明すればログインができてしまいます。なのでここで任意のユーザーを作成し、rootでアクセスできないようにします。
1. 新規ユーザーの追加
$ useradd abcde(任意の名前)
2. パスワード設定
$ passwd abcde(新規ユーザー名)
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
ここで任意のパスワードを設定します。
3. rootログイン禁止
ここまでできれば、新規ユーザー名と設定したパスワードでサーバーにアクセスすることができるのでrootログインを禁止します。rootログイン設定は先ほどのconfig file上にあるので、先ほどport番号を変更した手順を参考にしてください。
( $ vi /etc/ssh/sshd_config
でviエディタを開き、PermitRootLogin ___
項目を探し、PermitRootLogin yes
と入力、$ /etc/init.d/ssh restart
で再起動させてください。)
4. 変更の確認
一度ログアウトし、新規ユーザー名とパスワードでアクセスしてみましょう!
ssh -p(ポート指定) zzzz(任意ポート) abcde(名前)@xxx.xxx.xx.xx
パスワードの入力が求められるので、先ほどご自身で設定したパスワードを入力してください。
#Firewall設定
ポート番号の変更・rootユーザーでのログインをしてきましたが、最後にFirewallを設定します。
Firewallを設定することで使用するポートの制限などよりサーバーの安全性を高めます。
ufw(Uncomplicated Firewall)というpythonで実装されているfirewallを今回は使用します。
1. ufwのインストール
$ sudo apt-get install ufw
(もともとufwが入っていない場合インストール。)
2. 指定ポート開放
使用するポートを解放する。例えばHTTP(80), HTTPS(443)など。
$ ufw allow 80
Rules updated
$ ufw allow 443
Rules updated
3. 指定ポート以外を閉鎖
デフォルトで通信が許可されていないポートは閉鎖、変更設定を有効にする。
$ ufw default deny
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
$ ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
4. Firewall設定の確認
今回行ったFirewallの設定が有効化されているかステータスを確認する。
$ ufw status
Status: active
To Action From
-- ------ ----
80 ALLOW Anywhere
443 ALLOW Anywhere
これで基本的な設定はできました。
Have a great cloud life :)
####参考URL
vi エディタコマンド集:http://net-newbie.com/linux/commands/vi.html
代表的なポート番号:http://eng-entrance.com/network-port
Ubuntu ufw設定:http://exoself.hatenablog.com/entry/2013/04/24/170540