标签: firewalld

我在 firewalld 的公共区域添加了一个端口,但仍然无法访问该端口

我一直在使用 iptables,但直到最近才使用firewalld。我使用以下命令通过 firewalld 启用了端口 3000 TCP:

# firewall-cmd --zone=public --add-port=3000/tcp --permanent
Run Code Online (Sandbox Code Playgroud)

但是我无法访问端口 3000 上的服务器。从外部框:

telnet 178.62.16.244 3000
Trying 178.62.16.244...
telnet: connect to address 178.62.16.244: Connection refused
Run Code Online (Sandbox Code Playgroud)

没有路由问题:对于从端口 80 到端口 8000 的端口转发,我有一个单独的规则,它在外部工作正常。我的应用程序肯定也在监听端口:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:3000            0.0.0.0:*               LISTEN      99         36797      18662/node
Run Code Online (Sandbox Code Playgroud)

firewall-cmd似乎也没有显示端口 -看看如何ports是空的。你可以看到我前面提到的转发规则。

# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports: port=80:proto=tcp:toport=8000:toaddr=
  icmp-blocks:
  rich …
Run Code Online (Sandbox Code Playgroud)

networking firewalld rhel7 centos7

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

如何在 Firewalld 中阻止 ip 范围

我知道我可以使用以下命令来阻止单个 IP:

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

但我需要阻止从 115.239.xx 开始的所有 ip

我有 Cent os 7。

谢谢

centos firewalld

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

firewalld:如果我更改了 ssh 服务端口,是否足以允许新端口号,还是应该添加新服务?

我将 ssh 端口更改为任意数字,并注意到 firewalld 不再允许 ssh 登录。我假设端口 22 是在 firewalld 的 ssh 服务定义中硬编码的。如果我允许 TCP 流量的新端口就足够了,还是应该为自定义 ssh 端口定义一个新服务?

ssh port firewalld

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

NAT 在 CentOS 7(Firewalld) 上不起作用

我已将 nat 配置为使我的 CentOS 7 成为路由器。我已经使用 firewalld 来做到这一点。但不幸的是它不起作用。我不知道是什么导致了这个问题。我在 Virtual Box 中尝试了相同的配置,它正在工作。如果我在生产服务器中进行了相同的配置,则不会。

Eth0 ip——我的静态ip

掩码-255.255.252.0

网关-我的 ISP 网关

eth1

ip-192.168.1.30

掩码-255.255.255.0

1) 启用数据包转发

vi /etc/sysctl.conf

added “net.ipv4.ip_forward=1”

sysctl –p 
Run Code Online (Sandbox Code Playgroud)

2)在firewalld中配置NAT

i) 将接口“eth1”集成到内部区域

Firewall-cmd --change-interface=eth1 --zone=internal --permanent
Run Code Online (Sandbox Code Playgroud)

• 伪装默认为“关闭”

ii) 将接口“eth0”集成到外部区域

Firewall-cmd --change-interface=eth0 --zone=external --permanent
Run Code Online (Sandbox Code Playgroud)

iii) 将“内部区域”更改为默认区域

Firewall-cmd --set-default-sone=internal --permanent
Run Code Online (Sandbox Code Playgroud)

iv) 添加 DNS 以通过“内部区域”

Firewall-cmd --zone=internal --add-service=dns –-permanent
Run Code Online (Sandbox Code Playgroud)

3) 保存防火墙配置

Firewall-cmd --reload

Firewall-cmd --complete-reload
Run Code Online (Sandbox Code Playgroud)

4)也在iptables里试过

Iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE

Iptables –A FORWARD –i eth1 –j ACCEPT

Echo …
Run Code Online (Sandbox Code Playgroud)

nat routing centos firewalld

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

防火墙管理

正如我在该主题的评论中所问的那样:使用 firewalld 阻止除少数 ips 之外的所有 ips

我正在寻找一种方法来拒绝所有公共 IP,但我在 firewalld 的公共区域中除外。

目前,我的公共区域只有 ssh/http/https 服务,并且我指定了整个互联网所需的源 IP。

问题是我不明白为什么 firewalld 没有按要求过滤源 IP?

通常,根据我的理解,将源 IP 指定给区域,要求 Firewalld 丢弃除来自指定 IP 的请求之外的所有请求。

但是在我的机器上它不起作用,因为我可以在家中连接到不是指定源 IP 之一的机器。

有人建议创建一个名为“内部/其他”的新区域,因为服务器不在私有局域网上,所以我只有一个公共接口,所以我为什么要创建/使用另一个区域,因为公共区域应该删除所有 IP来源清单上指定的除外。

Firewalld 公共区域是否会自动向世界开放添加在其上的服务?

如果我创建第二个名为 internal 的区域,只有 ssh 服务和源 IP,然后将此区域链接到我的 eth0,firewalld 会阻止所有非“源”IP 吗?

当然,执行这样的过程会假设我从公共区域服务的服务中删除 ssh 服务。

我的防火墙是:

[root@groot ~]# firewall-cmd --list-all-zones
block
  interfaces:
  sources:
  services:
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

dmz
  interfaces:
  sources:
  services: ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

drop (default)
  interfaces:
  sources:
  services:
  ports:
  masquerade: …
Run Code Online (Sandbox Code Playgroud)

firewalld centos7 firewalld-zone

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

使用 firewalld 允许一个接口的所有规则

我的 CentOS-7 VPS 中有两个接口。我想允许所有访问一个接口(eth1,这是我的专用网络)。我将 eth1 的区域更改为 home 如何添加规则以允许该接口上的所有内容?

centos private firewalld

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

即使已激活,Firewalld 也会阻止 http 流量

我正在尝试用 3 台机器配置一个简单的测试环境:

  • 一台Kali模拟互联网:IP = 10.99.0.2
  • 一台使用firewalld充当防火墙的CentOS:IP = 10.99.0.1, 10.4.1.1
  • 一台 CentOS,使用 httpd 作为 Web 服务器:IP = 10.4.1.2

环境的一个小表示:

|Kali|------------------(ens160) |Firewalld| (ens192)------------------- |Web Server|
10.99.0.2                    10.99.0.1 | 10.4.1.1                             10.4.1.2
Run Code Online (Sandbox Code Playgroud)

我可以从 10.99.0.2 ping 10.4.1.2,但是,只有当防火墙激活时,我无法从 10.99.0.2 获取 10.4.1.2 上的默认网页。

我尝试在固件上执行 tcpdump,我可以看到从 kali 到firewalld 的 http 请求,但随后firewalld 用 ICMP 数据包进行响应:ICMP host 10.4.1.2 unreachable - admin prohibited。据我所知,如果请求被阻止,则此 icmp 消息是从防火墙发送的。

这是两个区域的配置:public 和 dmz

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160
  sources:
  services: http https
  ports: 443/tcp 80/tcp
  protocols:
  masquerade: yes
  forward-ports:
  sourceports: …
Run Code Online (Sandbox Code Playgroud)

http httpd port-80 firewalld firewalld-zone

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

PPTP Passthrough Centos 7/Firewalld 路由器到 Windows Server

我有一台运行 firewalld 的 Centos 7 服务器,以允许公共服务访问单独 VLAN(双 NIC)上的内部服务。我导入了一个 Windows VM,但我不知道需要设置什么规则来允许 GRE 通过 firewalld,而不是打开 1723。我在网上找到的所有问题和指南都没有在 Centos 7 机器上设置 PPTP 本身,而不是将其传递到路由 IP(在本例中为 Windows 服务器)。

firewall pptp gre firewalld centos7

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

使用 firewall-cmd 进行端口转发

我有几个 VM 运行在服务器(虚拟机管理器,VMM)之上。我想将服务器上的端口 80 转发到我的一台虚拟机的端口 80。主机运行 CentOS7,因此 firewalld 负责。显然,VMM 也使用 firewalld 来处理虚拟连接,所以我不能把它扔出窗口。

我基本上没有成功地复制了这个线程中的所有命令,归结为:

firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.122.224
Run Code Online (Sandbox Code Playgroud)

或者

firewall-cmd --permanent --zone=public --add-rich-rule 'rule family=ipv4 forward-port port=80 protocol=tcp to-port=80 to-addr=192.168.122.224'
Run Code Online (Sandbox Code Playgroud)

firewalld 目前的状态如下:

[root@my-machine ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp8s0
  sources: 
  services: ssh dhcpv6-client samba smtp http
  ports: 25/tcp
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
  rule family="ipv4" forward-port port="80" protocol="tcp" to-port="80" to-addr="192.168.xxx.xxx"
Run Code Online (Sandbox Code Playgroud)

这是输出

iptables -L -n -v

Chain FORWARD (policy ACCEPT 0 packets, …
Run Code Online (Sandbox Code Playgroud)

virtual-machines port-forwarding firewalld centos7

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

使用 firewalld / firewalld.richlanguage 拒绝主机(不是 ip)

是否可以在 linux firewalld 中添加规则来拒绝整个主机(不是 ip 或 ip 范围)?

例如,我希望拒绝来自 my133y.org 的所有连接。

使用防火墙丰富的语言我可以删除 ip,但手册页中没有提供主机拒绝。

拒绝ip的例子

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.100.4/24" drop'
Run Code Online (Sandbox Code Playgroud)

当修改为:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="my133t.org" drop'
Run Code Online (Sandbox Code Playgroud)

我得到了错误:

Error: INVALID_ADDR: my133t.org
Run Code Online (Sandbox Code Playgroud)

linux firewalld centos7

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

带 Wireguard 的 Firewalld 转发功能

我之前问过如何在运行wireguard服务的VPS上转发端口,以ufw和iptables作为管理。

我必须这样做:

(56000是我选择的随机端口)(10.66.66.2是wireguard的内部ip)

ufw route allow proto tcp to 10.66.66.2 port 56000
Run Code Online (Sandbox Code Playgroud)

然后我会这样做来实际使用 iptables 转发端口:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 56000 -j DNAT --to-destination 10.66.66.2
Run Code Online (Sandbox Code Playgroud)

我有办法实现这一firewalld目标吗?这样我就不必将转发分成两个地方?

这里是否使用伪装/是否需要?因为我不知道它有什么作用,也不知道它有什么用。

VPSwireguardwg0conf供参考:

Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = ***


[Peer]
PublicKey = ***
PresharedKey = ***
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
Run Code Online (Sandbox Code Playgroud)

port-forwarding firewalld wireguard

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

无法从局域网中的另一台机器访问 Tomcat 网络服务器

我已经在我公司局域网内的服务器上设置了基本的 tomcat 网站(tomcat 8.0.3)。在我的工作计算机上,如果我尝试通过在 google chrome 中键入来访问该网站,则它无法正常工作。

运行Tomcat服务器的计算机IP为192.1xx.132.125:8080. 我的工作电脑的 IP 是192.1xx.129.75.

我能够将我的工作 PC ping 到服务器。如果我http://192.1xx.132.125:8080在 PC 上的 google chrome 浏览器上输入,则会出现以下错误。

谷歌浏览器错误!

有人可以指出为什么会这样吗?另外我的网络服务器是无头的。我可以使用 .I 访问该服务器上的网页curl。由于这是一个非常规端口号,我是否需要更新服务器上的 IP 表?

我已经运行了这个命令

 sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -m comment --comment "Tomcat Server port"
Run Code Online (Sandbox Code Playgroud)

如中所述 http://serverfault.com/questions/341804/opening-up-port-8080-in-centos

tomcat firewalld centos7

0
推荐指数
1
解决办法
9273
查看次数