标签: firewalld

AllowZoneDrifting - Firewalld:它是什么,我应该禁用它吗?

我是新来的,所以如果我问一些愚蠢的事情,请原谅我。

我在 CentOS 8 上创建了一个 DO droplet。安装 firewalld 后,我检查了它的状态并给出了警告。

4 月 24 日 05:56:31 centos-s-1vcpu-1gb-blr1-01 firewalld[2956]:警告:AllowZoneDrifting 已启用。这被认为是不安全的配置选项。它将在将来的版本中删除。

我有一些 Linux 的基本知识,但我对 firewalld 一无所知。如果有人能向我解释什么AllowZoneDrifiting是,那就太好了。

谢谢!

vps server firewalld centos8

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

如何使Docker容器看到真正的用户IP?

问题

nginx-proxyDocker容器内部(下面有更多信息),我总是看到每个连接都有相同的IP地址:( 172.18.0.1这是nginx-proxy网络网关).例如:

nginx.1    | www.my-site.tld 172.18.0.1 - - [28/Nov/2017:17:22:21 +0000] "GET /some/path HTTP/2.0" 200 46576 "https://www.my-site.tld/some/path" "Mozilla/5.0 (Linux; Android 4.4.2; PSP5507DUO Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 YaBrowser/17.10.0.446.00 Mobile Safari/537.36"
Run Code Online (Sandbox Code Playgroud)

无论我是从外部网络,本地机器,还是从服务器(主机)本身发出请求,IP地址始终是172.18.0.1.

我需要的是看到真正的客户端IP.

试图解决

我搜索了很多,并尝试了不同的解决方案,但没有一个适合我.我尝试了以下方法:

  • 禁用firewalld(在这种情况下什么都不起作用,当然,iptables是空的);
  • 使用--userland-proxy=false(没有运气);
  • 使用--net=host(根本不是解决方案,也不起作用).

相关链接:

那么,有什么想法吗?似乎是iptables路由问题或内部Docker错误.无论如何,它肯定与Docker有关,因为以下显示正确的远程用户IP:

[root@server]# nc -lv 12345

[user@remote-client]$ nc -vz MY.IP.ADDRESS.HERE 12345
Run Code Online (Sandbox Code Playgroud)

很奇怪!

现在我将提供有关系统的完整信息,请耐心等待.:)

基本

我安装了Centos 7.4和Docker:

# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)

# uname -r
3.10.0-693.5.2.el7.x86_64

# …
Run Code Online (Sandbox Code Playgroud)

networking docker docker-networking firewalld jwilder-nginx-proxy

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

如何设置 FirewallD 来过滤到 docker 暴露端口的流量

我已经设置了一个 pi-hole docker 容器并在 CentOS7 上公开了 dns 端口和端口 80。然而,这些端口现在可用于所有来源,这不是很方便,因为它在 VPS 上运行。

所以我试图让 firewallD 过滤到我的 docker 容器的流量。

所以我的 docker 容器运行如下:

docker ps
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS                       PORTS                                                        NAMES
18881454da0c        pihole/pihole:latest   "/s6-init"          24 hours ago        Up About an hour (healthy)   0.0.0.0:53->53/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:53->53/udp   pihole
Run Code Online (Sandbox Code Playgroud)

在 firewallD 上,我设置了以下 acl(通过此过滤器可以很好地过滤到 CentOS 的流量):

sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: docker0
  sources:
  services: 
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
        rule family="ipv4" source address="<home ip>/32" accept
Run Code Online (Sandbox Code Playgroud)

我已经将 docker0 …

iptables docker firewalld

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

如何使用 Ansible 重新加载 Firewalld 服务?

我使用 ansible 在 centos 7 中向 firewalld 添加了一些规则。但我必须重新加载 firewalld 守护进程,这样服务才能正常工作。有什么想法吗?

这是我的ansible代码:

- name: Add port to firewalld
  firewalld:
    port: "{{ item }}"
    permanent: yes
    state: enabled
  when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'
  loop:
    - 8080/tcp
    - 8000/tcp
    - 8090/tcp
    - 8040/tcp
Run Code Online (Sandbox Code Playgroud)

daemon centos ansible firewalld

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

如何更正 firewalld 和 docker/nginx 的配置?

我有一个 CentOS 7 服务器,它运行了 600 多天,直到最近重新启动,之后传入的 Web 请求接收到 HTTP523(源无法访问)错误代码(通过 Cloudflare,如果这有区别?)除非我停止了 firewalld服务。没有firewalld,事情运行良好,但我不想让它被禁用!

我试过以各种顺序停止dockerfirewalld重新启动它们,但523除非我停止,否则会发生相同的错误firewalld

/var/log/firewalld 包含一些可能有帮助的警告:

  • WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-8acb606a3b50 -o br-8acb606a3b50 -j DROP' failed: iptables: Bad rule (does a matching rule exist in that chain?).
  • WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker0 -j DROP' failed: iptables: Bad rule (does a matching rule exist in that chain?).
  • WARNING: AllowZoneDrifting is enabled. This is considered …

nginx cloudflare docker centos7 firewalld

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

Ansible:firewalld 并添加新区域

我试图将以下内容添加到 Ansible 剧本中:

firewall-cmd --permanent --new-zone dockerc
firewall-cmd --permanent --zone dockerc --add-source 172.17.0.0/16
firewall-cmd --permanent --zone dockerc --add-port 8443/tcp
firewall-cmd --permanent --zone dockerc --add-port 53/udp
Run Code Online (Sandbox Code Playgroud)

但根据http://docs.ansible.com/ansible/firewalld_module.html区域没有添加新区域的选项。

有谁知道是否可以dockerc使用 Ansible添加为新区域?

ansible firewalld

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

docker使集装箱港口向公众开放

我在 centos7 docker 容器上安装了 nginx。

端口 80 可从外部使用,尽管该端口未在防火墙中打开。公共区域规则如下:

# firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno3
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:
Run Code Online (Sandbox Code Playgroud)

但是 DOCKER 链中这个端口有一条自动规则:

# iptables -L DOCKER
Chain DOCKER (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             172.17.0.2           tcp dpt:http
Run Code Online (Sandbox Code Playgroud)

如何从外部关闭此端口?我已经运行了该命令,但没有帮助:

# firewall-cmd --zone=public --remove-port=80/tcp --permanent
Warning: NOT_ENABLED: 80:tcp
success
Run Code Online (Sandbox Code Playgroud)

我已阅读文档 - https://docs.docker.com/engine/userguide/networking/ 但仍然不明白..实际上我只需要为我指定的网络 1.2.3.4/24 打开此端口 80。

port containers docker centos7 firewalld

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

firewalld 更改默认目标

来自firewalld手册页:

\n\n
\n

\xe2\x80\x93permanent [\xe2\x80\x93zone=zone] --set-target=target\n 设置永久区域的目标。目标是以下之一:默认、接受、删除、拒绝

\n
\n\n

默认目标是 REJECT。是否可以将默认目标更改为 DROP?如果不是,为什么总是存在 REJECT 的默认选项?

\n\n

我使用的是CentOS 7.4

\n\n

我知道我可以以任何我想要的方式配置防火墙,而无法更改默认目标,但我想知道如何更改它(如果可能)。

\n

centos centos7 firewalld

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

端口打开时telnet超时

我买了一个 VPS 并在其上构建了一个 shadowsocks 服务器。它运行良好大约 2 个月,突然无法工作,即我无法使用它来克服 GFW。所以我检查了服务器,重新安装了所有东西,检查了防火墙,但仍然无法解决问题。请帮我解决这个难题!

首先,我可以通过 ssh 连接到服务器。我使用的是 mac,服务器操作系统是 CentOS7。

我试图从 mac ping 服务器,它连接了。

PING vultr (108.61.215.163): 56 data bytes
64 bytes from 108.61.215.163: icmp_seq=0 ttl=50 time=485.473 ms
64 bytes from 108.61.215.163: icmp_seq=1 ttl=50 time=407.054 ms
64 bytes from 108.61.215.163: icmp_seq=2 ttl=50 time=429.089 ms
64 bytes from 108.61.215.163: icmp_seq=3 ttl=50 time=552.046 ms
^C
--- vultr ping statistics ---
5 packets transmitted, 4 packets received, 20.0% packet loss
round-trip min/avg/max/stddev = 407.054/468.416/552.046/56.118 ms
Run Code Online (Sandbox Code Playgroud)

然后我用我在 shadowsocks 中定义的特定端口 telnet 它,但它无法连接。 …

firewall netstat telnet centos7 firewalld

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

如何使用 docker 20.10 配置 firewalld

我意识到最近 docker 添加了与 firewalld 的集成,我只想使用 firewalld 而不是 iptables 无聊的规则和链来设置我的服务器。

这是我的 docker zone 输出:


root@test:~# sudo firewall-cmd --zone=docker --list-all 
docker (active)
  target: DROP
  icmp-block-inversion: no
  interfaces: br-0a659f93a5b6 br-be2e44b2b069 docker0
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
Run Code Online (Sandbox Code Playgroud)

我使用上述配置运行了多个服务,包括 Laravel(nginx 端口绑定 80 -> 5050)、mysql 等。我希望任何人都无法访问端口 5050、3306(mysql),但不幸的是防火墙不起作用,一切都是开放的,可以从外部访问。

这是 docker 模块 码头模块

现在如何真正配置 firewalld 以丢弃除允许端口之外的每个请求?

firewall iptables docker firewalld

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