「エアコンの安全な修理・適切なフロン回収」はこちら

Ubuntu Server 18.04でサーバー構築 初期設定

1. rootパスワードを設定し、SUコマンドを利用

2. SSHの初期設定

3. SSH鍵認証の設定

#一般ユーザーになり、RSA でキーペアを作成します

この後、WINSCPなどを用いて id_rsa ファイルをWindowsの適当なところにコピー
パスワード認証をできないようにするために設定ファイルを書き換える。

SSHサービス再起動

4. UFWによるファイアウォール

まずは以下のコマンドを打ってufwの設定状態を見てみます。

inactiveと表示されているように、最初はufwの設定が無効になっているはずです。
そのためufwを一度有効化させるために以下のコマンドを打ちます。

上記のコマンドを打つと、人によっては以下のような表示が出る可能性があります。
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
「現在のssh接続を中断させる可能性があります。操作を続けますか?」という意味で、ssh接続などでサーバーに繋いでいるユーザーには出るそうです。
自分の環境ではy(yes)を入力してもsshが切断されるなんてことは無かったため、yを入れても問題ないと思います。

(activeと表示されているため有効)
この状態で以下のコマンドを打つとiptablesにいろんな設定が書き込まれているはずです。

ちなみにufwを無効化したくなった場合は以下のコマンドを打ちます。

#まずは以下のコマンドを打って、一度全ての通信を無効化します。

これにより、外からの通信は全て遮断されます。(現状繋いでいるままのssh接続に関しては途中で切れることはありますが、一度ログアウトすると再度sshから接続するのは不可能になってしまうのでご注意ください)
一度全ての通信を遮断し、ここからそれ以外の何の通信は許可するかを決めていきます。
ちなみにこの設定を行っても、無効化した通信はあくまで「外→内」に向かって来る通信であり、「中→外」の外に向かっていく通信は無効化はされていません。
実際に設定を行う
ufwの設定で「ポート番号◯◯に来る通信を許可」としたい場合は以下のようにコマンドを打ちます。

逆に「ポート番号◯◯に来る通信を許可しない」としたい場合は以下のようにコマンドを打ちます。

ssh接続を許可
まずは今後もリモートから接続できるように、ssh接続を許可します。
ssh接続を許可するには、以下のコマンドを打ちます。sshポートを5001番に設定と仮定

ssh接続は5001番ポートに変更のため、5001番への通信を許可します。
5001番ポートに対して適当なパスワードを打ち込み、偶然一致を試みてログイン出来るように連続でアクセスを試みてきます。これをブルートフォース攻撃とも言います。
これの対策として、「連続してアクセスしてくるIPアドレスの接続を許可しない」設定を施しましょう。
以下のコマンドを打ちます。

これにより「30秒間の間に6回以上接続を試みた IP アドレスを許可しない」ルールが設定されます。
一度これで設定を確認します。以下のように表示されるはずです

IPv4とIPv6の5001番ポートに対してLIMIT(接続制限)が設定されています。

特定のネットワークからのssh接続のみ許可
上記の設定を施したとしても外部のインターネットにsshのポートを晒していることに変わりはありません。接続の回数に制限を設けたとしても、何らかの方法でパスワードを推測されて接続をされてしまったり、脆弱性を付いた攻撃などから接続をされてしまうことも考えられます。そのため、sshの接続を許可するのは内部からのネットワークのみにして、外部からのssh接続は全て許可しない設定にします。
ローカルエリアネットワーク内には「192.168.11.10」のIPアドレスが振られたホストがあります。
このホストからのみssh接続を許可する。又はこのネットワーク(192.168.11.0/24)からのみssh接続を許可するように設定するには以下のようなコマンドを打ちます。
(192.168.11.0/24からのssh接続を許可)

(192.168.11.10からのssh接続を許可)
設定を確認してみると、以下のようになっているはずです。
(192.168.11.0/24からのssh接続を許可した場合の結果)
ただし、この状態でも外部からの接続回数制限付きのssh接続を許可してしまいます。
そのため、LIMITをつけているルールを削除します。
以下のコマンドでルール番号を表示して設定を確認します。
上記のように表示された場合、1と3のルールが不要なため、番号を指定してルールを削除してしまいます
これで1番のルールが削除されました。3番も上記同様にルールを削除します。
WEBへのアクセスを許可する
WEBサーバーのファイアウォールを設定するのが今回の目的なので、80(HTTP)と443(HTTPS)への接続を許可します。
ポート番号を指定して接続を許可するのもいいですが、アプリケーションを指定しての設定も行えます。
以下のコマンドでアプリケーションの一覧が見れます。
以下のコマンドでHTTP(80),HTTPS(443)の接続を許可します。
設定を確認すると以下のようになっているはずです。
これで外部から80,443(WEB)へのアクセスが行えるようになりました。
ipv6のufwを無効
全ての作業後
タイトルとURLをコピーしました