インターネット上でLinuxサーバを構築した際に、セキュリティを高めるために、FWの設定について記載してみました。
FWのインストール
# yum -y install firewalld
FWのサービスを起動
# systemctl start firewalld
サーバを再起動しても、自動起動する設定
# systemctl enable firewalld
ここまで設定したら、再起動した方が無難です。
#reload
現在のゾーンの確認(デフォルトのゾーンの確認)
# firewall-cmd –get-default-zone
⇒publicになっていると思います。
ゾーンとは、ある程度分類されたFWの設定のテンプレートになります。
各分類は下記のとおりです。
私としては、「block」で外部からアクセスされるのを防いで、許可するポート番号やサービスを編集するのが楽かなと思います。
- drop 全てのパケットを破棄する。内部から外部へのパケットは許可されるが、返信されてきたパケットも破棄してしまうので実質的に通信不可となる。
- block 外部からのパケットは基本的に破棄される。内部からの通信パケットの返信は許可されるようになっている。
- public デフォルトでは「ssh」と「dhcpv6-client」のみ許可されている。
- external デフォルトでは「ssh」のみ許可される。ipマスカレードが有効になる。
- dmz デフォルトでは「ssh」のみ許可されている。
- work デフォルトでは「dhcpv6-client」と「ipp-client」、「 ssh」が許可される。
- home デフォルトでは「dhcpv6-client」と「ipp-client」と「mdns」と「samba-client」、「ssh」が許可される。
- internal デフォルトでは「dhcpv6-client」と「ipp-client」と「mdns」と「samba-client」、「ssh」が許可される。
- trusted 全てのパケットが許可される。
現状の設定の確認(各NICの設定されていた状態が分かります。)
# firewall-cmd –-list-all
デフォルトゾーンの設定をblockにする
# firewall-cmd –set-default-zone=block
デフォルト設定にした「block」に対して許可するサービスやPortを設定
# firewall-cmd –add-service=http –permanent (httpを許可)
# firewall-cmd –add-port=8000/tcp –permanent (port番号8000を許可)
設定後はFWの再起動
# firewall-cmd –reload
コメント