Contents
1. SSHサービスのセキュリティ設定
SSHサービスはデフォルトでrootユーザーのログインを許可しています。rootユーザーはユーザー名が既に判明しているためパスワードが判明すると、管理者権限でサーバーへログイン出来るため、これを拒否する設定を行います
SSHサービスの設定ファイル変更
SSHサービスの設定を変更するために設定ファイルを変更します。SSHサービスの設定ファイは"/etc/ssh/sshd_config"になります。
今回はデフォルトのSSHポート22から2244に変更して進めます。
1 |
# vi /etc/ssh/sshd_config |
1
2 # This is the sshd server system-wide configuration file. See
3 # sshd_config(5) for more information.
4
5 # This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
6
7 # The strategy used for options in the default sshd_config shipped with
8 # OpenSSH is to specify options with their default value where
9 # possible, but leave them commented. Uncommented options override the
10 # default value.
11
12 Include /etc/ssh/sshd_config.d/*.conf
13
14 #Port 22
15 Port 2244
16 #AddressFamily any
17 ListenAddress 0.0.0.0
18 #ListenAddress ::
19
20 #HostKey /etc/ssh/ssh_host_rsa_key
21 #HostKey /etc/ssh/ssh_host_ecdsa_key
22 #HostKey /etc/ssh/ssh_host_ed25519_key
23
24 # Ciphers and keying
25 #RekeyLimit default none
26
27 # Logging
28 #SyslogFacility AUTH
29 #LogLevel INFO
30
31 # Authentication:
32
33 #LoginGraceTime 2m
34 PermitRootLogin prohibit-password
35 #StrictModes yes
36 #MaxAuthTries 6
37 #MaxSessions 10
38
39 #PubkeyAuthentication yes
#15行目 : ssh接続ポート2244を追加
#17行目 : ListenAddress 0.0.0.0 をコメント解除
#34行目 : ”PermitRootLogin prohibit-password”パラメータを変更します。パラメータ”prohibit-password”はrootについてはパスワード認証を無効にするという意味合いになります。
#PermitRootLogin prohibit-password
↓ コメント#を削除
PermitRootLogin prohibit-password
SSHサービスの再起動
1 |
# systemctl restart sshd |
2. ファイヤーウォールの設定
Debianでは「ufw」というソフトウェアを使ってファイアウォールを設定することが多いので、ufwを利用したファイアウォール設定を行います。
ufwはOSの導入時にはインストールされていませんので、設定を行う前にufwパッケージのインストールを行います。インストール後に最低限のフィルタ設定を行う手順を紹介します。
ufwで設定するフィルタルール
• サーバーに転送されるパケットは全て拒否
• サーバーから外部へ送信されるパケットは全て許可
• 最初に許可するポートはSSH用のポート
• サーバーに入ってくるパケットを制限
2.1 ufwパッケージのインストール
1 |
# apt install -y ufw |
ufwパッケージのインストール後の確認
インストールされたパッケージを、パッケージを表示するための"dpkg"コマンドで確認
1 2 |
# dpkg -l | grep ufw ii ufw 0.36.2-9 all program for managing a Netfilter firewall |
インストールした「ufwパッケージ」が表示されました
ufwの動作状況を確認するために"systemctl status"コマンドを実行
1 2 3 4 5 |
# systemctl status ufw ○ ufw.service - Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; preset: enabled) Active: inactive (dead) Docs: man:ufw(8) |
ufwサービスが停止していることが「Active: inactive (dead)」と表示されていることから確認できます。
ufwを有効にします。
1 2 3 |
# systemctl enable ufw Synchronizing state of ufw.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable ufw |
1 2 |
# ufw enable Firewall is active and enabled on system startup |
2.2 基本的なファイアウォールルールの設定
ufwを有効にするとデフォルトのファイアウォールルールが適用されます。このまま有効にするとサーバーと通信ができなくなる可能性がありますので、ufwを有効にする前に基本的なルールを設定しておきます。
2.2.1 受信パケット デフォルトルールの設定
まず受信パケットに対するルールを設定します。受信パケットは特定の通信以外、全てを拒否する形が一般的なルールになります。全ての受信パケットを基本的に拒否するように"ufw default deny incoming"を実行します。
1 2 3 |
# ufw default deny incoming Default incoming policy changed to 'deny' (be sure to update your rules accordingly) |
2.2.2 送信パケット デフォルトルールの設定
送信パケットは全てを許可する形が一般的なルールになります。送信パケットを基本的に許可するように"ufw default allow outgoing"を実行します。
1 2 3 |
# ufw default allow outgoing Default outgoing policy changed to 'allow' (be sure to update your rules accordingly) |
2.3 SSHポートの許可
ufwの自動起動を有効にします。が、SSHリモート接続できなくなる可能性がありますので、先にSSH接続の許可を設定します。デフォルトのSSHポートは22です。次のコマンドで許可設定
1 2 |
# ufw allow ssh # ufw reload |
独自に2244ポート(例)に設定している場合は
1 2 |
# ufw allow 2244/tcp # ufw reload |
2.4 ufwの設定確認
有効後にファイアウォールに設定したルールの確認を行います。"ufw status verbose"を実行します。
1 2 3 4 5 6 7 8 9 10 11 |
# ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 2244/tcp ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6) 2244/tcp (v6) ALLOW IN Anywhere (v6) |
2.5. web等その他サービスの許可
ポート番号を指定して接続を許可する方法と、アプリケーションを指定しての設定も行えます。
以下のコマンドでアプリケーションの一覧が見れます。
1 |
# vi /etc/services |
たとえばWEBサービスのhttpとhttpsを有効にするには
1 2 3 4 5 6 7 |
# ufw allow http Rule added Rule added (v6) # ufw allow https Rule added Rule added (v6) # ufw reload |
2.6 ipv6のufwを無効
1 2 |
# vi /etc/default/ufw IPV6=yes → IPV6=no 書き換える |
すべての作業の後ファイアウオールを再起動
1 |
# systemctl restart ufw |