ntmemo のメモ

メモです。

Raspbian Stretch Lite のファイアウォール設定 (firewalld)

はじめに

ファイアウォールの設定を行います。 セキュリティの観点から、使用しないポートは閉じておいた方が良いです。 ファイアウォールは firewalld を使って設定します。

今回、ラズパイが用いるサービスは ssh のみであるとします。 デフォルトでは ssh のポート番号は 22 番が使用されています。 よって、22 番であることが知られているため、サーバーを外部公開する際は、このポートが攻撃されます。 そこで、ssh のポート番号は 22 番ではなく別の番号 (例えば 55555 番) に変更すべきです。

firewalld のインストールは apt を用いて行います。 apt の使い方は ntmemo.hatenablog.com を参考にしてください。

firewalld をインストール

firewalld のインストールは

$ apt-get install firewalld

とすれば終わります。

$ systemctl status firewalld

として

Active: active (running)

となっていれば起動しています。

自動起動を設定するには

$ systemctl enable firewalld

とすれば良いです。

デフォルトの firewalld の設定を確認するには

$ firewall-cmd --list-all

とします。 デフォルトでの public ゾーンのサービスは ssh と dhcpv6-client が許可されています。 これらの設定を取り除くには

$ firewall-cmd --remove-service=ssh --zone=public --permanent
$ firewall-cmd --remove-service=dhcpv6-client --zone=public --permanent

とします。

今回は ssh サーバーのみを用いるため

$ firewall-cmd --add-port=55555/tcp --zone=public --permanent

とします。 ここでポート番号は 55555 としています。

また、

$ firewall-cmd --change-interface=wlan0 --zone=public --permanent

とすることで、public ゾーンの設定を wi-fi のインターフェースに割り当てます。 今回の wi-fi のインターフェース名は wlan0 です。

最後に

$ firewall-cmd --reload

として

success

となれば設定は保存されます。

もう一度 firewalld の設定を確認して

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: wlan0
  sources: 
  services: 
  ports: 55555/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

となっていれば ok です。

おわりに

今回は、firewalld を使ってファイアウォールの設定 (ポート開放) を行いました。

ラズパイでの ssh サーバーの設定は ntmemo.hatenablog.com を参考にしてください。