Firewalldファイアウォールのインストールと開始-Ubuntu 22.04|20.04|18.04
Firewalldファイアウォールのインストールと開始をUbuntuでバージョン22.04、20.04、18.04ようにメモしておきたいと思います。ワードプレス時に使用しています。
FirewalldはLinuxオペレーティングシステム用の素晴らしいホストベースのファイアウォール管理ツールです。FirewalldはFedoraで開発されたが、今ではほとんどのLinuxディストリビューションで利用できる。そのため、Ubuntu ServerにはデフォルトのファイアウォールシステムとしてUFWがありますが、FirewalldはUbuntu Serverにもインストールできます。FirewalldはUFWよりも堅牢で、メンテナンスも簡単だと思う。そこで、Ubuntu ServerにFirewalldをインストールして設定する方法を説明します。
※他の記事で紹介しているufwコマンドはdisable にしています。
※Ubuntuの練習にラズベリーパイを使用の方はこちらから
※日本でドメイン取るならどこ?日本?もしくは海外?(←記事はこちら購入は↓下記バナー)
Firewalldの基本概念
Firewalldデーモンはゾーンベースのファイアウォールアプリケーションである。ゾーン」とは、インターネットトラフィックを許可または拒否するルールを定義するエンティティです。ネットワークインターフェイスは、ファイアウォールが許可すべき動作を指示するためにゾーンに割り当てられます。
Firewalldデーモンには、信頼レベルに基づいて以下の9つの定義済みゾーンがあります。
- drop: 最も低い信頼レベルで、着信接続は一切許可されません。したがって、すべての着信接続は応答なしで切断され、内部からの発信接続のみが可能になります。
- block: ブロック: drop ゾーンと似ていますが、接続を切断する代わりに、着信要求は禁止メッセージとともに拒否されます。
- public: 信頼されていないネットワークで、ほとんどのサービスが無効になっています。必要なサービスやポートは手動で有効にする必要があります。
- external: ファイアウォールをゲートウェイとして使用している場合の外部ネットワークです。NATマスカレードが設定されているため、内部ネットワークはプライベートなままですが、アクセスは可能です。
- internal: 外部ゾーンの反対側で、ゲートウェイの内部部分に使用されます。コンピュータはかなり信頼でき、いくつかの追加サービスも利用できます。
- dmz:DMZ(ネットワークの残りの部分にはアクセスできない隔離されたコンピュータ)にあるコンピュータに使用されます。DMZゾーンでは特定の着信接続のみが許可されます。
- work: 作業用マシンに使用します。ネットワーク内のほとんどのコンピュータを信頼します。さらにいくつかのサービスが許可される場合があります。
- home: 家庭環境。一般に、他のほとんどのコンピュータを信頼し、さらにいくつかのサービスが許可されることを意味する。
- trusted: ネットワーク内のすべてのマシンを信頼する。利用可能なオプションの中で最もオープンで、控えめに使うべきである。
- Firewalldファイアウォールを使うには、アクセスルールや拒否ルールを作成し、任意のゾーンのプロパティを変更し、最適なゾーンに任意のネットワークインターフェイスを割り当てることができます。
Firewalldファイアウォールのインストールと開始-Ubuntu 22.04|20.04|18.04
Firewalldファイアウォールのインストールと確認
sudo apt update
sudo apt install firewalld
startとenable
sudo systemctl enable firewalld
sudo systemctl start firewalld
確認
sudo firewall-cmd --state
デフォルトのファイアウォールの停止
sudo ufw disable
Firewalldファイアウォールの使用開始
Firewalldファイアウォールのリストとコンフィグ
udo firewall-cmd --list-all
firewalldファイアウォールサービスを立ち上げた際には’ssh’ and ‘dhcpv6-client’サービス がデフォルトでenabledになっているはずです。
enableにできるサービスのリストすべてを取得する
sudo firewall-cmd --get-services
httpサービスをenableに
–permanent でリブートした際も稼働するようにする。
sudo firewall-cmd --add-service=http --permanent
http,httpsを同時にenableに
sudo firewall-cmd --permanent --add-service={http,https} --permanent
firewalldのリスタート
sudo systemctl restart firewalld
TCPポート7070を有効にする
sudo firewall-cmd --add-port=7070/tcp --permanent
UDPポート514を有効にする
sudo firewall-cmd --add-port=514/udp --permanent
新しいゾーンの作成
sudo firewall-cmd --new-zone=myzone --permanent
特定のゾーンでサービスを有効にする
sudo firewall-cmd --zone=myzone --add-port=4567/tcp --permanent
デフォルトゾーンを設定する
sudo firewall-cmd --set-default-zone=public --permanent
ゾーンにインターフェースを追加する
sudo firewall-cmd --get-zone-of-interface=eth0 --permanent
sudo firewall-cmd --zone=<zone> --add-interface=eth0 --permanent
特定のサブネット/IPからのポートへのアクセスを許可する。
# Allow access to ssh from 192.168.0.12 sing IP address
sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="192.168.0.12/32" accept' --permanent
# Allow access to ssh from 10.1.1.0/24 network
sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="10.1.1.0/24" accept' --permanent
リッチルールの一覧
sudo firewall-cmd --list-rich-rules
ポート転送の設定
# Enable masquerading
sudo firewall-cmd --add-masquerade --permanent
# Port forward to a different port within same server ( 22 > 2022)
sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toport=2022 --permanent
# Port forward to same port on a different server (local:22 > 192.168.2.10:22)
sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toaddr=192.168.2.10 --permanent
# Port forward to different port on a different server (local:7071 > 10.50.142.37:9071)
sudo firewall-cmd --add-forward-port=port=7071:proto=tcp:toport=9071:toaddr=10.50.142.37 --permanent
ポート/サービスの削除
Replace --add with –-remove
その他
関連:
LinodeでNginxをUbuntu 22.04 | 20.04 にインストール
「Firewalldファイアウォールのインストールと開始-Ubuntu 22.04|20.04|18.04」への1件のフィードバック