業務用エアコン関連の技術情報、エラーコード、環境問題対策に関する別サイト「エアコンの安全な修理・適切なフロン回収」

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

スポンサーリンク
スポンサーリンク

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

$  passwd root
password for <user名> ← 現在のユーザのパスワード
Enter new UNIX password: ← 設定するrootパスワードを入力
Retype new UNIX password: ← 設定するrootパスワードを再入力
passwd: password updated successfully

2. SSHの初期設定

$ su –
パスワード :
# cd /etc/ssh
# vi sshd_config
PermitRootLogin no ← #rootでログイン不可にする

3. SSH鍵認証の設定

#一般ユーザーになり、RSA でキーペアを作成します
$ ssh-keygen -t rsa
Enter file in which to save the key (/home/masa/.ssh/id_rsa):
#保存先 変更なければそのままEnter
Created directory ‘/home/<user>/.ssh’.Enter passphrase (empty for no passphrase):#パスワード設定(そのままEnterでパスワードなし)
Enter same passphrase again:
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys$ chmod 600 ~/.ssh/authorized_keys

この後、WINSCPなどを用いて id_rsa ファイルをWindowsの適当なところにコピー

#パスワード認証をできないようにするために設定ファイルを書き換える。

$ su –

# vi /etc/ssh/sshd_config

#56行目 パスワード認証不可にする

PasswordAuthentication no  → PubkeyAuthentication yes

#SSHサービス再起動
# systemctl restart ssh

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

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

# sudo ufw status

Status: inactive

#inactiveと表示されているように、最初はufwの設定が無効になっているはずです。

#そのためufwを一度有効化させるために以下のコマンドを打ちます。

# sudo ufw enable

#上記のコマンドを打つと、人によっては以下のような表示が出る可能性があります。

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

#「現在のssh接続を中断させる可能性があります。操作を続けますか?」という意味で、ssh接続などでサー#バーに繋いでいるユーザーには出るそうです。

#自分の環境ではy(yes)を入力してもsshが切断されるなんてことは無かったため、yを入れても問題ないと思#います。

# ufw status

Status: active

#(activeと表示されているため有効)

#この状態で以下のコマンドを打つとiptablesにいろんな設定が書き込まれているはずです。

# iptables -nL

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

# ufw disable

 

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

# ufw default DENY

Default incoming policy changed to ‘deny’

(be sure to update your rules accordingly)

#これにより、外からの通信は全て遮断されます。(現状繋いでいるままのssh接続に関しては途中で切れるこ
#とはありますが、一度ログアウトすると再度sshから接続するのは不可能になってしまうのでご注意くださ
#い)

#一度全ての通信を遮断し、ここからそれ以外の何の通信は許可するかを決めていきます。

#ちなみにこの設定を行っても、無効化した通信はあくまで「外→内」に向かって来る通信であり、
#「中→外」の外に向かっていく通信は無効化はされていません。

実際に設定を行う

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

# ufw allow [ポート番号]

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

# ufw deny [ポート番号]

 ssh接続を許可

#まずは今後もリモートから接続できるように、ssh接続を許可します。

#ssh接続を許可するには、以下のコマンドを打ちます。sshポートを5001番に設定と仮定

# ufw allow 5001

#ssh接続は5001番ポートに変更のため、5001番への通信を許可します。

#5001番ポートに対して適当なパスワードを打ち込み、偶然一致を試みてログイン出来るように連続でアクセ#スを試みてきます。これをブルートフォース攻撃とも言います。

#これの対策として、「連続してアクセスしてくるIPアドレスの接続を許可しない」設定を施しましょう。以下のコマンドを打ちます。

# ufw limit 5001

#これにより「30秒間の間に6回以上接続を試みた IP アドレスを許可しない」ルールが設定されます。

#一度これで設定を確認します。以下のように表示されるはずです

# ufw status

Status: active

To                              Action      From

—                               ——        —-

5001                         LIMIT       Anywhere                 

5001 (v6)      1          LIMIT       Anywhere (v6)   

#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接続を許可)

# ufw allow from 192.168.11.0/24 to any port 5001

Rule added

#(192.168.11.10からのssh接続を許可)

# ufw allow from 192.168.11.10 to any port 5001

Rule added

#設定を確認してみると、以下のようになっているはずです。

 #(192.168.11.0/24からのssh接続を許可した場合の結果)

# ufw status

Status: active

To                         Action      From

—                         ——      —-

5001                         LIMIT       Anywhere                 

5001                         ALLOW     192.168.11.0/24           

5001 (v6)                     LIMIT       Anywhere (v6)  

#ただし、この状態でも外部からの接続回数制限付きのssh接続を許可してしまいます。

#そのため、LIMITをつけているルールを削除します。

#以下のコマンドでルール番号を表示して設定を確認します。

# ufw status numbered

Status: active

    To                         Action      From

     —                         ——      —-

[ 1] 5001                         LIMIT IN    Anywhere                 

[ 2] 5001                         ALLOW IN  192.168.11.0/24           

[ 3] 5001 (v6)                     LIMIT IN    Anywhere (v6)     

#上記の用に表示された場合、1と3のルールが不要なため、番号を指定してルールを削除してしまいます

# ufw delete 1

Deleting:

 limit 5000

Proceed with operation (y|n)? y

Rule deleted

#これで1番のルールが削除されました。3番も上記同様にルールを削除します。

 

WEBへのアクセスを許可する

#WEBサーバーのファイアウォールを設定するのが今回の目的なので、80(HTTP)と443(HTTPS)への接続を
#許可します。

#ポート番号を指定して接続を許可するのもいいですが、アプリケーションを指定しての設定も行えます。

#以下のコマンドでアプリケーションの一覧が見れます。

# vi /etc/services

#以下のコマンドでHTTP(80),HTTPS(443)の接続を許可します。

# ufw allow http

Rule added

Rule added (v6)

# ufw allow https

Rule added

Rule added (v6)

#設定を確認すると以下のようになっているはずです。

# ufw status

Status: active

To                         Action      From

—                         ——      —-

5001                      ALLOW       192.168.11.0/24           

80                          ALLOW       Anywhere

443                        ALLOW       Anywhere

80  (v6)                  ALLOW       Anywhere               

443 (v6)                 ALLOW       Anywhere (v6) 

#これで外部から80,443(WEB)へのアクセスが行えるようになりました。

ipv6のufwを無効

# vi /etc/default/ufw

IPV6=yes  →   IPV6=no

#全ての作業後

# systemctl restart ufw

5.

error:Content is protected !!
タイトルとURLをコピーしました