docker防火墙配置firewall

docker防火墙配置firewall,第1张

亲您好,docker防火墙配置firewall *** 作如下:

1、通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启

systemctl status firewalld

登录后复制

查看防火墙规则

firewall-cmd --list-all

登录后复制

2、通过systemctl start firewalld开启防火墙,没有任何提示即开启成功

systemctl start firewalld

登录后复制

3、通过systemctl status firewalld查看firewalld状态,显示active(running)即已开启了

4、 关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能,没有任何提示则关闭成功

systemctl stop firewalld

登录后复制

5、开启端口,执行

firewall-cmd --permanent --zone=public --add-port=8080/tcp --permanent

登录后复制

6、查看端口,执行如下,提示yes,即查询成功

firewall-cmd --permanent --query-port=8080/tcp

登录后复制

7、把docker0网卡添加到trusted域

可以先通过如下查看

ip addr

登录后复制

firewall-cmd --permanent --zone=trusted --change-interface=docker0

登录后复制

8、重启防火墙,执行如下,提示success即执行成功

firewall-cmd --reload

登录后复制

二、重建docker0 网络

1、先关闭docker引擎

service docker stop

登录后复制

2、关闭docker0的网卡

ip link set dev docker0 down

登录后复制

3、删除docker0网桥

brctl delbr docker0

登录后复制

4、重建docker0网桥

brctl addbr docker0

登录后复制

5、设置IP段

ip addr add 17217422/24 dev docker0

登录后复制

6、启动docker0网桥

ip link set dev docker0 up

登录后复制

7、重启docker引擎

# 安装firewalld

yum install firewalld firewall-config

systemctl start  firewalld # 启动

systemctl status firewalld # 或者 firewall-cmd --state 查看状态

systemctl disable firewalld # 停止

systemctl stop firewalld  # 禁用

# 你也可以关闭目前还不熟悉的FirewallD防火墙,而使用iptables,命令如下:

yum install iptables-services

systemctl start iptables

systemctl enable iptables

配置

```

firewall-cmd --version  # 查看版本

firewall-cmd --help    # 查看帮助

# 查看设置:

firewall-cmd --state  # 显示状态

firewall-cmd --get-active-zones  # 查看区域信息

firewall-cmd --get-zone-of-interface=eth0  # 查看指定接口所属区域

firewall-cmd --panic-on  # 拒绝所有包

firewall-cmd --panic-off  # 取消拒绝状态

firewall-cmd --query-panic  # 查看是否拒绝

firewall-cmd --reload # 更新防火墙规则

firewall-cmd --complete-reload

# 两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务

# 将接口添加到区域,默认接口都在public

firewall-cmd --zone=public --add-interface=eth0

# 永久生效再加上 --permanent 然后reload防火墙

# 设置默认接口区域,立即生效无需重启

firewall-cmd --set-default-zone=public

# 查看所有打开的端口:

firewall-cmd --zone=dmz --list-ports

# 加入一个端口到区域:

firewall-cmd --zone=dmz --add-port=8080/tcp

# 打开一个服务,类似于将端口可视化,服务需要在配置文件中添加,/etc/firewalld 目录下有services文件夹,这个不详细说了,详情参考文档

firewall-cmd --zone=work --add-service=smtp

# 移除服务

firewall-cmd --zone=work --remove-service=smtp

# 显示支持的区域列表

firewall-cmd --get-zones

# 设置为家庭区域

firewall-cmd --set-default-zone=home

# 查看当前区域

firewall-cmd --get-active-zones

# 设置当前区域的接口

firewall-cmd --get-zone-of-interface=enp03s

# 显示所有公共区域(public)

firewall-cmd --zone=public --list-all

# 临时修改网络接口(enp0s3)为内部区域(internal)

firewall-cmd --zone=internal --change-interface=enp03s

# 永久修改网络接口enp03s为内部区域(internal)

firewall-cmd --permanent --zone=internal --change-interface=enp03s

服务管理

# 显示服务列表

Amanda, FTP, Samba和TFTP等最重要的服务已经被FirewallD提供相应的服务,可以使用如下命令查看:

firewall-cmd --get-services

# 允许SSH服务通过

firewall-cmd --enable service=ssh

# 禁止SSH服务通过

firewall-cmd --disable service=ssh

# 打开TCP的8080端口

firewall-cmd --enable ports=8080/tcp

# 临时允许Samba服务通过600秒

firewall-cmd --enable service=samba --timeout=600

# 显示当前服务

firewall-cmd --list-services

# 添加>

由于iptables可能会在未来的版本中消失,所以建议从现在起就使用Firewalld来代替iptables。话虽如此,现行版本仍然支持iptables,而且还可以用YUM命令来安装。不过可以肯定的是,在同一个系统中不能同时运行Firewalld和iptables,否则可能引发冲突。

在iptables中需要配置INPUT、OUTPUT和FORWARD CHAINS。而在Firewalld中新引入了区域(Zones)这个概念。默认情况下,firewalld中就有一些有效的区域(zones),这也是本文将要讨论的内容。

基础区域如同公共区域(public zone)和私有区域(private zone)。为了让作业在这些区域中运行,需要为网络接口添加特定区域(specified zone)支持,好让我们往firewalld中添加服务。

默认情况下就有很多生效的服务。firewalld最好的特性之一就是,它本身就提供了一些预定义的服务,而我们可以以这些预定义的服务为模版,复制之以添加我们自己的服务。

Firewalld还能很好地兼容IPv4、IPv6和以太网桥接。在Firewalld中,我们可以有独立的运行时间和永久性的配置。接下来让我们看看如何在区域(zones)中作业、创建我们的服务以及更好的利用firewalld这个防火墙机制吧。

测试环境如下:

Operating System : CentOS Linux release 701406 (Core)

IP Address: 192168055

Host-name: server1tecmintlocalcom

如何在RHEL/CentOS 7以及Fedora中配置FirewallD

步骤1:安装Firewalld组件

1Firewalld组件在RHEL/CentOS 7和Fedora 21默认已经安装了。如果没有可以使用如下YUM命令进行安装。

# yum install firewalld -y

2安装完毕,查看一下iptables是否正在运行。如果是,你需要用以下命令来stop和mask(不再使用)iptables。

# systemctl status iptables

# systemctl stop iptables

# systemctl mask iptables

步骤2:Firewalld组件的讨论

3在进行firewalld配置之前,我想来讨论一下区域(zones)这个概念。默认情况就有一些有效的区域。我们需要网络接口分配区域。区域规定了区域是网络接口信任或者不信任网络连接的标准。区域(zone)包含服务和端口。接下来让我们讨论Firewalld中那些有用的区域(zones)。

丢弃区域(Drop Zone):如果使用丢弃区域,任何进入的数据包将被丢弃。这个类似与我们之前使用iptables -j drop。使用丢弃规则意味着将不存在响应,只有流出的网络连接有效。

阻塞区域(Block Zone):阻塞区域会拒绝进入的网络连接,返回icmp-host-prohibited,只有服务器已经建立的连接会被通过。

公共区域(Public Zone):只接受那些被选中的连接,而这些通过在公共区域中定义相关规则实现。服务器可以通过特定的端口数据,而其它的连接将被丢弃。

外部区域(External Zone):这个区域相当于路由器的启用伪装(masquerading)选项。只有指定的连接会被接受,而其它的连接将被丢弃或者不被接受。

隔离区域(DMZ Zone):如果想要只允许给部分服务能被外部访问,可以在DMZ区域中定义。它也拥有只通过被选中连接的特性。

工作区域(Work Zone):在这个区域,我们只能定义内部网络。比如私有网络通信才被允许。

家庭区域(Home Zone):这个区域专门用于家庭环境。我们可以利用这个区域来信任网络上其它主机不会侵害你的主机。它同样只允许被选中的连接。

内部区域(Internal Zone):这个区域和工作区域(Work Zone)类似,只有通过被选中的连接。

信任区域(Trusted Zone):信任区域允许所有网络通信通过。

现在你对区域有个很好的认识了,让我们使用以下的命令来找出有用的区域、默认区域以及列出所有的区域吧。

# firewall-cmd --get-zones

# firewall-cmd --get-default-zone

# firewall-cmd --list-all-zones

注意:以上命令的输出不仅仅只有单页,因为它将会列出每种区域如block、dmz、drop、external、home、internal、public、trusted以及work。如果区域还有其它详细规则(rich-rules)、启用的服务或者端口,这些区域信息也会分别被罗列出来。

原因:windows防火墙没有关闭。

1、首先点击电脑桌面左下角的开始菜单按钮,如图所示。

2、然后在打开的菜单,点击控制面板,如图所示。

3、然后在控制面板里面点击系统和安全,如图所示。

4、然后在进入的界面,点击windows防火墙,如图所示。

5、然后在来到的界面,点击左侧的打开或关闭windows防火墙,如图所示。

6、然后在里面勾选关闭windows防火墙,一般就可以解决,

7、另外可以再点击允许程序或功能通过windows防火墙,如图所示。

8、然后勾选需要使用的程序,点击确定即可。

以上就是关于docker防火墙配置firewall全部的内容,包括:docker防火墙配置firewall、firewall-cmd命令详解、如何在RHEL/CentOS 7以及Fedora中配置FirewallD等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9687925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存