1. Linux ファイアウォールの概要
Fedora、CentOS、Red Hat およびその他の同様のディストリビューションでは、デフォルトでインストールされるファイアウォール ソフトウェアは firewalld であり、firewall-cmd コマンドによって設定および制御されます。この記事では主に firewalld について説明します。
- ネットワーク ゾーンによって定義されたネットワーク リンクとインターフェイスのセキュリティ レベルをサポートする動的ファイアウォール管理ツール
- IPv4、IPv6 ファイアウォール設定およびイーサネット ブリッジをサポート
- ファイアウォール ルール インターフェイスを直接追加するサポート サービスまたはアプリケーション
- 2 つの構成モードがあります
- 実行時設定 (一時的な設定)
- 永続的な構成
Firewalld と iptables の関係
ネットフィルター
Linux カーネルにあるパケットフィルタリング機能の体系を
Linux ファイアウォールの「カーネル状態」と呼びます
Firewalld/iptables
CentOS 7 のファイアウォール ルールを管理するためのデフォルト ツール (Firewalld) は、
Linux ファイアウォールの「ユーザー モード」と呼ばれます。
ファイアウォール | iptables | |
---|---|---|
設定ファイル | /usr/lib/firewalld、/etc/firewalld | /etc/sysconfig/iptables |
ルールの変更 | すべてのポリシーを更新する必要がなく、現在の接続が失われることもありません。 | すべての戦略を更新する必要があり、リンクが失われます。 |
ファイアウォールの種類 | 動的ファイアウォール | 静的ファイアウォール |
2. Firewalld が起動、表示、終了します。
#启动: firewalld
systemctl start firewalld
#查看状态:
systemctl status firewalld
#查看firewall运行状态
firewall-cmd --state
#停止:
systemctl stop firewalld
#禁用:
systemctl disable firewalld
#重新加载firewall 一般是修改firewalld以后需要重新加载
firewall-cmd --reload
#重启firewalld
systemctl restart firewalld
3.firewalld-cmd関連コマンド
#查看版本:
firewall-cmd --version
#查看帮助:
firewall-cmd --help
#显示状态:
firewall-cmd --state
#查看所有放行的端口:
firewall-cmd --zone=public --list-ports
#更新防火墙规则:
firewall-cmd --reload
#查看区域信息:
firewall-cmd --get-active-zones
#查询指定接口所属的区域:
firewall-cmd --get-zone-of-interface=eth0
#拒绝所有包:
firewall-cmd --panic-on
#取消拒绝状态:
firewall-cmd --panic-off
#查看是否拒绝:
firewall-cmd --query-panic
4.firewalldリリースポート
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 新建永久规则,开放8080端口(TCP协议)任何ip都可以访问此端口
firewall-cmd --permanent --add-port=8080/tcp
# 移除上一个命令新建的规则
firewall-cmd --permanent --remove-port=8080/tcp
# 新建永久规则,批量开放一段端口(TCP协议)9001-9100区间的端口都开放
firewall-cmd --permanent --add-port=9001-9100/tcp
#添加或者移除规则后重新加载firewall后配置才会生效
firewall-cmd --reload
5.firewalldがホワイトリストIPをリリース
# 新建永久规则,开放192.168.1.1单个源IP的访问
firewall-cmd --permanent --add-source=192.168.1.1
# 新建永久规则,开放192.168.1.0/24源IP段的访问
#192.168.1.0/24这个网络是指192.168.1.1-192.168.1.255之间的ip,24代表网络位24位,主机位8位
firewall-cmd --permanent --add-source=192.168.1.0/24
# 移除上述规则
firewall-cmd --permanent --remove-source=192.168.1.1
6.ルールの設定
# 允许指定IP访问本机8080端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept'
# 允许指定IP段访问本机8080-8090端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="8080-8090" accept'
# 禁止指定IP访问本机8080端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" reject'
#移除第一条规则(所有的移除规则基本都是add改成remove)
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="8080" accept'
コマンドの説明:
accept、allow、reject、reject、drop、reject
–add-rich-rule、add settings
–remove-rich-rule、remove settings
–permanent、永続的に有効になり、有効にするにはリロードする必要があります。
7. ファイアウォールゾーン(ドメイン)の概念
#可以得到所有的域
firewall-cmd --get-zones
1. ドロップ: ドロップ ゾーンが使用されている場合、受信パケットはすべてドロップされます。これは、以前に使用した iptables -jdrop に似ています。ドロップ ルールを使用すると、応答がなくなります。
2. ブロック: ブロック領域は受信ネットワーク接続を拒否し、icmp-host-prohibited を返します。サーバーによって確立された接続のみが通過します。つまり、システムによって初期化されたネットワーク接続のみが許可されます。
3. パブリック: 選択した接続のみを受け入れますデフォルトでは、ssh と dhcpv6-client のみが許可されます。このゾーンはデフォルトのゾーンです。
4. 外部: この領域は、ルーターのマスカレード有効化オプションに相当します。指定された接続 (ssh など) のみが受け入れられ、他の接続はドロップされるか受け入れられません。
5. 隔離 (dmz): 一部のサービスのみを外部からアクセスできるようにしたい場合は、dmz 領域で定義できます。sshのみで接続できるのも特徴です。
6. 作業: この領域では、内部ネットワークのみを定義できます。たとえば、プライベート ネットワーク通信のみが許可され、ssh、ipp-client、および dhcpv6-client のみが許可されます。
7. ホーム: このエリアは家庭環境専用です。また、選択された接続 (ssh、ipp-client、mdns、samba-client、dhcpv6-client) のみが許可されます。
8. 内部: このエリアはワークエリア (作業) に似ていますが、ホームエリアと同様に、選択された接続のみを介します。
9. 信頼済み: 信頼済みゾーンでは、すべてのネットワーク通信の通過が許可されます。覚えておいてください。trusted は最も信頼されているため、サービスが設定されていない場合でも、trusted はすべての接続を許可するため、依然として許可されます。