さくらVPSにUbuntu16.04を入れた後の各種設定方法(1)
さくらVPSにUbuntu16.04を入れました。設定をしていきます。
参考:Ubuntuインストール
アップデート
$ sudo apt-get update$ sudo apt-get upgradeSSH関連の設定
.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.pubSSHログインチェック
ローカルで下記のようにやってみます。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 restartTeraTermのマクロ作成
私はwindows10を使うときに、Teratermのマクロを使っていますので、それを作成します。
username = 'hoge'hostname = 'hogehogehoge.sakura.ne.jp'keyfile = 'C:\Users\hoge\.ssh\hoge_rsa'
msg = hostnamestrconcat msg ':11223 /ssh /auth=publickey /user='strconcat msg usernamestrconcat 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 statusVimとGitも入れておく
$ sudo apt-get -y install vim gitfail2banを入れる
下記を参考にやってみた。まず、/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.localjail.local
[DEFAULT]# Ban hosts for one hour:bantime = 3600destemail = hoge@hoge.comaction = %(action_mwl)s
# Override /etc/fail2ban/jail.d/00-firewalld.conf:banaction = iptables-multiport
[sshd]enabled = truefial2banを再起動する。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サーバーを安全にする