标签: firewalld

Linux firewalld 区域逻辑和优先级

我试图了解 Linux firewalld 区域背后的逻辑,以及它们的评估方式。

  1. 据我了解,区域被定义为接口和 IP 范围的列表,可以应用允许/拒绝规则。这样对吗?对于包含接口和附加 IP 范围的区域。即使流量将从该范围内的 IP 到达机器,但通过不同的接口,该区域允许的服务是否也将被允许用于 IP 范围?

  2. 以什么顺序评估区域?与两个(可能相互矛盾的)区域匹配的传入流量会发生什么情况?例如,区域“Z1”允许从给定接口到机器的 nfs,区域“Z2”拒绝来自 IP 的所有传入流量。通过“Z1”中定义的接口但从“Z2”中定义的 IP 到达机器的 NFS 流量会发生什么?

linux zones firewalld

5
推荐指数
1
解决办法
4728
查看次数

带有 IP 别名的防火墙 (eth0:0)

(找到解决方案,见下文...)

服务器 (CentOS 7) 有多个公共 IP,这些都是通过常用的ifcfg-eth0:0配置文件设置的,并且运行良好。我正在尝试适应 firewalld(来自 iptables)。我喜欢能够为每个 IP 别名指定开放端口 - 使用 iptables,只需将目标 IP 设置为匹配端口所需的任何别名即可完成。

认为使用 firewalld 我可以对每个接口应用不同的区域以达到相同的效果,但似乎我不能这样做。

我们从:

# firewall-cmd --get-active-zones
public
  interfaces: eth0 eth0:0
trusted
  interfaces: eth1
Run Code Online (Sandbox Code Playgroud)

我创建了一个public_web我想用于的新区域eth0:0

# firewall-cmd --permanent --new-zone=public_web
success
# firewall-cmd --permanent --zone=public_web --add-service=http
success
# firewall-cmd --permanent --zone=public_web --add-interface=eth0:0
success
# firewall-cmd --reload
success
Run Code Online (Sandbox Code Playgroud)

但...

# firewall-cmd --get-active-zones
public
  interfaces: eth0 eth0:0
trusted
  interfaces: eth1
Run Code Online (Sandbox Code Playgroud)

我尝试了--remove-interface--change-interface以及各种顺序的各种其他命令,但eth0:0不会让步。我似乎无法在任何地方找到任何关于使用别名的文档,所以我不确定这是否是实现我想要的正确方法?

谢谢大家。


解决方案:

解决方案是destination …

firewalld centos7

5
推荐指数
1
解决办法
3566
查看次数

firewalld 不阻止 docker 容器端口

我想在我的 centos 7 机器上显式打开端口,因此我在面向公众的界面上将防火墙配置为 drop 作为默认区域和外部区域。当我运行python -m SimpleHTTPServer 8000并点击端口 8000 上的盒子时,它失败了。但是如果我将端口添加到外部区域。有用。一切都如预期。

但是,当我在端口 8000 上启动 docker 容器并在外部点击该框时,我可以访问该服务。这不是我想要发生的事情。我希望只有在外部区域上打开端口 8000 时才能访问它。

即使我将 docker 容器绑定到盒子的公共地址,它仍然可以绕过防火墙。如果需要,我可以提供更多信息,例如路由表和接口配置,但我不太知道什么有用。寻找学习。

该盒子上有两个物理接口,eth0 分配有公共 IP,eth1 连接到专用网络,我希望能够访问。

编辑已解决添加--iptables=false到泊坞窗选项。

firewalld docker centos7

5
推荐指数
1
解决办法
5975
查看次数

有没有办法在firewalld上刷新整个区域的丰富规则?

我添加了许多类似这样的丰富规则:

 firewall-cmd --permanent --zone="thezone" --add-rich-rule='rule family=ipv4 source address=1.2.3.4 reject'
Run Code Online (Sandbox Code Playgroud)

现在我想清除/删除我的“thezone”区域中的所有丰富规则。

另外,您尝试删除行的行:

 firewall-cmd --permanent --zone="thezone" --remove-rich-rule='rule family=ipv4 source address=1.2.3.4 reject'
Run Code Online (Sandbox Code Playgroud)

或者

 firewall-cmd --permanent --zone="thezone" --remove-rich-rule='rule family=ipv4 source address=1.2.3.4 accept'
Run Code Online (Sandbox Code Playgroud)

或者

 firewall-cmd --permanent --zone="thezone" --add-rich-rule='rule family=ipv4 source address=1.2.3.4 accept'
Run Code Online (Sandbox Code Playgroud)

使用 firewall-cmd --reload 仍然没有成功。

谁能告诉我如何清除所有内容或用一种方法告诉我我做错了什么?

firewalld firewall-cmd

5
推荐指数
1
解决办法
1万
查看次数

CentOS 7:全新安装 Firewalld 根本不起作用(致命错误:没有 IPv4 和 IPv6 防火墙)

我有以下问题。

我刚刚安装了 DVD CenOS 7。在我启动进入系统后,我通常以 root 用户身份登录。从那里我试图在我的服务器上配置防火墙。

因为我对这一切都比较陌生,所以我只是搜索了一些关于如何启动和管理 Firewalld 的搜索,它似乎是与 CentOS 7 一起使用的预期防火墙软件。

我尝试的第一件事是打字

systemctl status firewalld
Run Code Online (Sandbox Code Playgroud)

作为输出我得到

Warning: iptables not usable, disabling IPv4 firewall.
Warning: ip6tables not usable, disabling IPv6 firewall.
FATAL ERROR: No IPv4 and IPv6 firewall.
ERROR: Raising SystemExit in run_server
Run Code Online (Sandbox Code Playgroud)

我已经尝试重新启动系统,更新它。我重新安装了 iptables 和 firewalld。尝试使用其中任何一个被屏蔽或禁用。这些都没有奏效,但也许我错过了一些东西。

我通常只想设置一个 Teamspeak 服务器供外部使用,当我向防火墙添加特定规则时,该服务器在 Windows 下工作。我想在 CentOS 7 下做同样的事情,主要是出于学习目的或完全熟悉 Linux 作为服务器。

iptables firewalld systemctl centos7

5
推荐指数
1
解决办法
1964
查看次数

Centos 7 路由器和防火墙

我正在尝试使用 firewalld 设置 CentOS 7 VM,以在 2 个不同子网之间路由流量。

我有 2 个网络接口,ens192 用于外部网络,ens224 用于内部网络:

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:62:88:ba brd ff:ff:ff:ff:ff:ff
    inet 10.212.21.26/16 brd 10.212.255.255 scope global ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe62:88ba/64 scope link
       valid_lft forever …
Run Code Online (Sandbox Code Playgroud)

router firewalld centos7

5
推荐指数
1
解决办法
5704
查看次数

fail2ban 不会将 IP 添加到 ipset (firewalld)

由于某种原因我无法弄清楚,Fail2Ban 拒绝将 IP 地址添加到 ipset/firewalld。

我被一个中国 IP 地址强制使用,Fail2Ban 似乎确实试图禁止它(至少它出现在 fail2ban-client status sshd 命令中),但它实际上并没有停止对服务器进行暴力破解,而且它没有不会出现在 ipset/iptables/firewalld 中。

fail2ban 客户端状态 sshd:

[root@GITserver alex]# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 2
|  |- Total failed: 93613
|  `- File list:    /var/log/secure
`- Actions
   |- Currently banned: 2
   |- Total banned: 1003
   `- Banned IP list:   61.177.172.17 95.103.88.106
Run Code Online (Sandbox Code Playgroud)

ipset/防火墙:

[root@GITserver alex]# ipset list
[root@GITserver alex]# firewall-cmd --direct --get-all-rules
[root@GITserver alex]#
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?可以根据要求添加更多日志

编辑,仍然没有解决方案,仍然被蛮力和 DDoS 攻击,这里是完整的 /var/log/fail2ban.log 如果它可能有帮助https://paste.fedoraproject.org/paste/Y5aPF8~WY~fpuhaZBDo7Ml5M1UNdIGYhyRLivL9gydE=/raw …

linux ssh fail2ban firewalld centos7

5
推荐指数
1
解决办法
1万
查看次数

firewalld 停止到特定 IP 地址的传出流量

我有centos 7。我试图阻止从服务器到特定IP地址的所有出站流量,但firewalld不会阻止流量。这就是我所做的:

[root@server network-scripts]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
        rule family="ipv4" destination address="134.223.116.100" drop

[root@server network-scripts]# firewall-cmd --get-active-zones
public
  interfaces: ens192

[root@server network-scripts]# firewall-cmd --state
running
Run Code Online (Sandbox Code Playgroud)

但我仍然可以curl到ip地址,那么有什么问题吗?

[root@server network-scripts]# curl 134.223.116.100
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
Run Code Online (Sandbox Code Playgroud)

redhat centos firewalld

5
推荐指数
1
解决办法
1万
查看次数

防火墙完全禁用但仍然无法访问端口-Centos7

我已经禁用了selinux /etc/sysconfig/selinux

\n\n
SELINUX=disabled\n
Run Code Online (Sandbox Code Playgroud)\n\n

重新启动并禁用这两个firewalld服务iptables

\n\n
# sestatus\nSELinux status:                 disabled\n\n# systemctl status firewalld\n\xe2\x97\x8f firewalld.service - firewalld - dynamic firewall daemon\n   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)\n   Active: inactive (dead)\n     Docs: man:firewalld(1)\n\n# systemctl status iptables\n\xe2\x97\x8f iptables.service - IPv4 firewall with iptables\n   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)\n   Active: inactive (dead) \n\n# ufw status\nStatus: inactive\n
Run Code Online (Sandbox Code Playgroud)\n\n

我仍然无法使用特定端口访问服务器:

\n\n
# nc -v 10.0.12.3 8887\nnc: connect to 10.0.12.3 port 8887 (tcp) failed: Connection refused\n
Run Code Online (Sandbox Code Playgroud)\n\n

我可以 …

iptables ufw firewalld centos7

5
推荐指数
1
解决办法
2万
查看次数

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

firewalld ×10

centos7 ×6

firewall-cmd ×2

iptables ×2

linux ×2

centos ×1

docker ×1

fail2ban ×1

redhat ×1

router ×1

ssh ×1

systemctl ×1

ufw ×1

zones ×1