Logicky Blog

Logickyの開発ブログです

さくらVPSにUbuntu16.04を入れた後の各種設定方法(1)

さくらVPSにUbuntu16.04を入れました。設定をしていきます。

参考:Ubuntuインストール

アップデート

$ sudo apt-get update
$ sudo apt-get upgrade

SSH関連の設定

.sshディレクトリの作成

とりあえず.sshディレクトリを作成します。

$ mkdir ~/.ssh

公開鍵・秘密鍵を作成して公開鍵をサーバに転送する

次にローカルで秘密鍵を作成します。今windows10を使っていますが、gitをインストールしたらssh-kegenが入っているのでそれを使えるようです。あるいは、Tera Termでも簡単に作れます。作成した公開鍵をサーバに転送します。scpの場合下記のようになります。

$ cd .ssh
$ scp hoge.pub hoge@hogehogehoge.sakura.ne.jp:~/.ssh/.

サーバでauthorized_keysを作成する

サーバで、転送した公開鍵を./ssh/authorized_kesyに追加します。

$ cd
$ cat hoge.pub >> ~/.ssh/authorized_keys
$ rm hoge.pub

SSHログインチェック

ローカルで下記のようにやってみます。windowsの場合、TeraTermを使ったりします。下記のhoge_rsaは秘密鍵です。

$ cd .ssh
$ ssh -i hoge_rsa hoge@hogehogehoge.sakura.ne.jp

パスワード聞かれずにログインできたら成功です。

パスワードログインを禁止にする

$ sudo vi /etc/ssh/sshd_config
  • Portを1万台にする
  • ルートログインを禁止する
    PermitRootLogin no
  • パスワードログインを禁止する
    PasswordAuthentication no
  • 指定したユーザーだけログイン可能にする(最下段に追加)
    AllowUsers ユーザー名
$ sudo vi /etc/services

ファイル内のポート番号22を上記で変更した値にすべて変える

$ sudo sshd -t

何も起こらなければ成功

sshサーバの再起動

$ sudo service ssh restart

TeraTermのマクロ作成

私はwindows10を使うときに、Teratermのマクロを使っていますので、それを作成します。

username = 'hoge'
hostname = 'hogehogehoge.sakura.ne.jp'
keyfile  = 'C:\Users\hoge\.ssh\hoge_rsa'

msg = hostname
strconcat msg ':11223 /ssh /auth=publickey /user='
strconcat msg username
strconcat msg ' /keyfile='
strconcat msg keyfile

connect msg

ファイヤーウォールの設定

ufwというコマンドで設定します。

全部拒否にする
$ sudo ufw default deny
先程変更したSSH用ポートを開放する
$ sudo ufw allow 12233
アクセス回数制限をかける
$ sudo ufw limit 12233
$ sudo ufw limit 22
ファイヤーウォールを有効にする
$ sudo ufw enable
ファイヤーウォールの状態確認
$ sudo ufw status

VimとGitも入れておく

$ sudo apt-get -y install vim git 

fail2banを入れる

下記を参考にやってみた。まず、/etc/fail2banに移動して、jail.localというファイルをつくって、そこに設定を書くといいらしい。

参考:Fail2ban fails to run after upgrade to Ubuntu 16.04 参考:How To Protect SSH With Fail2Ban on CentOS 7 参考:How To Protect SSH with Fail2Ban on Ubuntu 14.04

$ sudo apt-get -y install fail2ban
$ cd /etc/fail2ban
$ sudo vim jail.local

jail.local

[DEFAULT]
# Ban hosts for one hour:
bantime = 3600
destemail = hoge@hoge.com
action = %(action_mwl)s

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport

[sshd]
enabled = true

fial2banを再起動する。enableは自動起動設定らしい。

$ sudo systemctl enable fail2ban
$ sudo systemctl restart fail2ban

下記で状態をチェックできる。statusの次にjail_nameをつけると、その詳細が表示される。

$ sudo fail2ban-client status
$ sudo fail2ban-client status sshd

間違ったrootログインをしたら、fail2ban-client status sshdが更新された。しっかり動いている。でもメールの設定とかはまだ不十分かもしれない。

ログの場所のメモ

fail2banのログ

$ tail -n 100 /var/log/fail2ban.log

認証関連のログ

$ tail -n 100 /var/log/auth.log

つかれた。残りは今度やる。セキュリティ対策は沢山やることあるなー。 参考: Ubuntu 12.04 LTSサーバーを安全にする