1. SSHサービスのセキュリティ設定
SSHサービスはデフォルトでrootユーザーのログインを許可しています。rootユーザーはユーザー名が既に判明しているためパスワードが判明すると、管理者権限でサーバーへログイン出来るため、これを拒否する設定を行います
SSHサービスの設定ファイル変更
SSHサービスの設定を変更するために設定ファイルを変更します。SSHサービスの設定ファイは"/etc/ssh/sshd_config"になります。
今回はデフォルトのSSHポート22から2244に変更して進めます。
# vi /etc/ssh/sshd_config
14行目 : コメント解除しPort 2244に変更
Port 2244
16行目 : コメント解除
ListenAddress 0.0.0.0
33行目 : コメント解除(rootについてはパスワード認証を無効にする)
PermitRootLogin prohibit-password
SSHサービスの再起動
# systemctl restart sshd
2. ファイヤーウォールの設定
Debianでは「ufw」というソフトウェアを使ってファイアウォールを設定することが多いので、ufwを利用したファイアウォール設定を行います。
ufwはOSの導入時にはインストールされていませんので、設定を行う前にufwパッケージのインストールを行います。
2.1 ufwパッケージのインストール
# apt install -y ufw
ufwパッケージのインストール後の確認
インストールされたパッケージを、パッケージを表示するための"dpkg"コマンドで確認
# dpkg -l | grep ufw
ii ufw 0.36.2-9 all program for managing a Netfilter firewall
インストールした「ufwパッケージ」が表示されました
ufwの動作状況を確認するために"systemctl status"コマンドを実行
# systemctl status ufw
○ ufw.service - Uncomplicated firewall
Loaded: loaded (/usr/lib/systemd/system/ufw.service; enabled; preset: enabled)
Active: inactive (dead)
Docs: man:ufw(8)
ufwサービスが停止していることが「Active: inactive (dead)」と表示されていることから確認できます。
ufwを有効にし、起動する
# systemctl enable ufw
Synchronizing state of ufw.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable ufw
# ufw enable
Firewall is active and enabled on system startup
# systemctl start ufw
2.2 基本的なファイアウォールルールの設定
ufwを有効にするとデフォルトのファイアウォールルールが適用されます。このまま有効にするとサーバーと通信ができなくなる可能性がありますので、ufwを有効にする前に基本的なルールを設定しておきます。
2.2.1 受信パケット デフォルトルールの設定
まず受信パケットに対するルールを設定します。受信パケットは特定の通信以外、全てを拒否する形が一般的なルールになります。全ての受信パケットを基本的に拒否するように"ufw default deny incoming"を実行します。
# ufw default deny incoming
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
2.2.2 送信パケット デフォルトルールの設定
送信パケットは全てを許可する形が一般的なルールになります。送信パケットを基本的に許可するように"ufw default allow outgoing"を実行します。
# 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です。次のコマンドで許可設定
# ufw allow ssh
# ufw reload
独自に2244ポート(例)に設定している場合は
# ufw allow 2244/tcp
# ufw reload
2.4 ufwの設定確認
有効後にファイアウォールに設定したルールの確認を行います。"ufw status verbose"を実行します。
# 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等その他サービスの許可
ポート番号を指定して接続を許可する方法と、アプリケーションを指定しての設定も行えます。
以下のコマンドでアプリケーションの一覧が見れます。
# vi /etc/services
たとえばWEBサービスのhttpとhttpsを有効にするには
# ufw allow http
Rule added
Rule added (v6)
# ufw allow https
Rule added
Rule added (v6)
# ufw reload
2.6 ipv6のufwを無効
# vi /etc/default/ufw
7行目
IPV6=yes → IPV6=no 書き換える
すべての作業の後ファイアウオールを再起動
# systemctl restart ufw
