关键词:
若生产中使用有docker,建议不要使用firewalld,改用iptables,用firewalld坑很多,暂时还未找到解决办法,在此做下记录:
说明:若加参数permanent为永久添加即添加至zone配置中,reload生效,重启firewalld也会生效,若不加 --permanent,重启后不再生效)
docker和firewalld共存时,使用命令添加开放端口规则,且加 --permanent参数
firewall-cmd --add-port=80/tcp --permanent 添加规则后,80端口被外部正常访问,
然后使用firewall-cmd --remove-port=80/tcp --permanent 永久移除规则,按正常情况80端口将不能被外部网络访问,
但实际确依然能被外部访问,而且此后防火墙像是被关闭了一样,所有服务端口都能被外部访问到。但查看配置中已经没有开放80端口的
规则,firewalld也是runing状态,此后重新开一台测试机,不安装docker进行测试,firewalld不再出现以上问题。
1、启动firewalld
systemctl start firewalld
systemctl enable firewalld #加入到开机启动
2、查看状态
systemctl status firewalld
或
firewall-cmd --state
3、关闭firewalld
systemctl stop firewalld
service说明:
在 /usr/lib/firewalld/services/ 目录中,还保存了另外一类配置文件,每个文件对应一项具体的网络服务,如 ssh 服务等.
与之对应的配置文件中记录了各项服务所使用的 tcp/udp 端口,在最新版本的 firewalld 中默认已经定义了 70+ 种服务供我们使用.
当默认提供的服务不够用或者需要自定义某项服务的端口时,我们需要将 service 配置文件放置在 /etc/firewalld/services/ 目录中.
service 配置的好处显而易见:
第一,通过服务名字来管理规则更加人性化,
第二,通过服务来组织端口分组的模式更加高效,如果一个服务使用了若干个网络端口,则服务的配置文件就相当于提供了到这些端口的规则管理的批量操作快捷方式。
每加载一项 service 配置就意味着开放了对应的端口访问
4、查看系统自带默认有那些service可以进行配置
firewall-cmd --get-services
5、查看当前已经开放的service和port
firewall-cmd --list-services
firewall-cmd --zone=public --list-services # 指定区域进行查看
firewall-cmd --list-ports
firewall-cmd --zone=public --list-ports # 指定区域进行查看
6、查看所有已开放的service和port等
firewall-cmd --list-all # 查看默认区域的
firewall-cmd --zone=public --list-all # 只查看指定pubilc区域的
firewall-cmd --list-all-zones # 查看所有区域的
7、查询单个服务的启用状态[返回值yes/no]
firewall-cmd --query-service http
8、动态添加一条防火墙规则至默认区域(public),比如开放服务或端口(此方法可以立即生效,但重启firewalld服务或reload后将不再生效,因为没有保存在配置文件中)
firewall-cmd --add-service=ftp
firewall-cmd --add-port=2326/tcp
firewall-cmd --zone=public --add-port=4990-4999/udp #添加4990-4999 udp端口 ,并指定区域
9、动态添加规则后若想保存至zone配置中需要添加参数 --permanent(reload才生效)
firewall-cmd --add-service=ftp --permanent
firewall-cmd --add-port=12222/tcp --permanent
firewall-cmd --zone=public --add-port=4990-4999/udp --permanent #添加4990-4999 udp端口 ,并指定区域
firewall-cmd --reload #配置生效
10、动态移除规则,但需要重载防火墙才可生效
firewall-cmd --remove-service=http #移除直接生效
firewall-cmd --remove-port=2327/tcp --permanent #永久移除、删除,需reload才生效
firewall-cmd --reload
11、重载防火墙规则
通常手动修改zone配置进行规则添加后,需要进行重载生效,以 root 身份输入以下命令,重新加载防火墙,并不中断用户连接,即不丢失状态信息
firewall-cmd --reload
注意:通常在防火墙出现严重问题时,这个命令才会被使用。比如,防火墙规则是正确的,但却出现状态信息问题和无法建立连接。
firewall-cmd --complete-reload
12、‘将同一台服务器上80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
13、如果要将端口转发到另外一台服务器上
1)在需要的区域中激活 masquerade
firewall-cmd --zone=public --add-masquerade
2)添加转发规则
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.0.10.15
14、防火墙伪装IP
firewall-cmd --query-masquerade # 检查是否允许伪装IP
firewall-cmd --add-masquerade # 允许防火墙伪装IP
firewall-cmd --remove-masquerade# 禁止防火墙伪装IP
危险命令:[立即生效]
如果是远程的机器执行上面的规则会立刻断开网络连接,必须紧记不能随便执行。如果你只是虚拟机或者物理机器登陆就可以执行来调试。
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
***************************************************************************************************************
拒绝访问操作:
#添加禁止响应ping
firewall-cmd --permanent --add-rich-rule=‘rule protocol value=icmp drop‘
#查看是否有此规则[等号后面跟详细的名称]
firewall-cmd --query-rich-rule=‘rule protocol value=‘icmp‘ drop‘
#删除方法
firewall-cmd --remove-rich-rule=‘rule protocol value=icmp drop‘
firewall-cmd --add-rich-rule "rule family=ipv4 source address=10.0.10.1 service name=‘ssh‘ reject"
或直接丢弃
firewall-cmd --add-rich-rule "rule family=ipv4 source address=10.0.10.1 service name=‘ssh‘ reject"
或对端口进行操作
firewall-cmd --add-rich-rule=‘rule family=ipv4 source address=10.0.10.1 port port=22 protocol=tcp reject‘
firewall-cmd --add-rich-rule=‘rule family="ipv4" source address="10.0.10.1" accept‘
#允许一个IP(10.0.10.1)仅能通过指定端口(8080-8090)访问到目标(10.0.10.13):
firewall-cmd --add-rich-rule=‘rule family="ipv4" source address="10.0.10.1" destination address="10.0.10.13/32" port port="8080-8090" protocol="tcp" accept‘
firewall-cmd --remove-rich-rule=‘rule family="ipv4" source address="10.0.10.1" destination address="10.0.10.13/32" port port="80" protocol="tcp" accept‘
最后说明:
centos7firewalld
CentOS7默认使用的是firewalld来管理主机的网络连接,当然,如果对firewalld不熟悉的话,安装iptables-services就可以像管理之前的版本一样使用iptables对网络进行配置。这里分别对两种方式进行简单的介绍。Firewalld介绍Firewalld使用firewal... 查看详情
centos7firewalld
1、firewalld简介firewalld是centos7的一大特性,最大的好处有两个:1.支持动态更新,不用重启服务;2.加入了防火墙的“zone”概念 firewalld有图形界面和工具界面,由于我在服务器上使用,图形界面请参照官方文档,本文以字符... 查看详情
centos7firewalld操作集合(代码片段)
=============================================== 2019/4/15_第1次修改 ccb_warlock ===============================================由于一直使用cent... 查看详情
centos7firewalld基本配置方法
说明:此规范分为两部分:一是,常规配置方法;二是集合配置方法常规的配置方法是指对于端口,服务及源地址的限制方法集合配置方法是针对于源地址和端口组合限制,但源地址是一个IP地址集合,此集合中可以任意添加IP... 查看详情
centos7firewalld防火墙配置
[[email protected]~]#firewall-cmd--version //查看版本0.3.9[[email protected]~]#firewall-cmd--state //查看状态running[[email protected]~]#[[email protected]~]#firewall-cmd--zone=public--list-ports //查看所有打开的... 查看详情
jstl日常使用集锦
根据自己使用不断积累更新一、JSTL使用c:forEach累加变量值 使用举例如下:<tbody><c:setvalue="0"var="amountTotal"/><c:forEachitems="${medicine.medicineInformationVos}"var="medicine"><tr><td>${medic 查看详情
swaggerui日常使用(代码片段)
最近公司项目集成springFox,记录一些swaggerUI日常使用,包括数组,文件,默认值,允许值,参数/结果类注解,响应码..等等。 一.参数注解: 单参数:@ApiImplicitParam 多参数:@ApiImplicitParams1@ApiImplicitParams(2@ApiIm... 查看详情
日常使用css总结
对于很多的css,日常经常使用到,但是面试的时候或者突然问起这个时候,就会忘记。刚好今天浏览了一个回答,我也给自己总结一下,以防忘记。参考链接地址:https://zhuanlan.zhihu.com/p/84212558?from_voters_page=true 第一 查看详情
svn的简单学习与日常使用
portainer的日常使用
portainer的日常使用一、登录portainer界面二、创建容器1.选择创建容器2.配置容器三、查看创建的容器四、容器的管理1.进入容器控制台内2.监控容器的状态3.查看容器的日志四、容器相关网络查看五、查看宿主机信息一、登录portaine... 查看详情
laravel日常使用总结(代码片段)
字段当做键值key集合的keyBy()方法详情:戳这里 查看详情
日常使用命令
showstatus;#查看当前会话的数据库状态信息showgloabalstatus;#查看整个数据库运行状态信息,用于分析和监控showprocesslist;#查看正在执行的SQL语句showfullprocesslist;#查看正在运行的SQL语句,可以显示语句整句setglobalkey_buffer_size=34234254... 查看详情
saltstack日常使用
1.安装启动配置服务及简单使用yuminstallpython-jinja2saltsalt-mastersalt-minion-ysystemctlstartsalt-master&&systemctlstartsalt-minion&&systemctlenablesalt-master&&systemctlenablesalt-minion或者 查看详情
charles介绍及日常使用
在日常测试工作中,经常需要测试前端数据正确性,或帮助开发人员定位问题,这样就需要抓包检查接口返回数据。在WEB页面可以使用F12来进行抓包,但app端则需要其他辅助工具帮忙,例如Charles和Fiddler,这一类代理服务器。Char... 查看详情
日常使用
1、Linux如何挂载windows下的共享目录?mount.cifs//IP地址/server/mnt/server-ouser=administrator,password=123456linux下的server需要自己手动建一个后面的user与pass是windows主机的账号和密码注意空格和逗号2、如何查看http的并发请求数与其TCP连接状... 查看详情
如何使用 PySpark 从日常文件中加载滚动窗口?
】如何使用PySpark从日常文件中加载滚动窗口?【英文标题】:HowtousePySparktoloadarollingwindowfromdailyfiles?【发布时间】:2017-04-2713:54:16【问题描述】:我有大量相当大的日常文件存储在博客存储引擎(S3、Azuredatalakeexc..exc..)data1900-01... 查看详情
使用 WorkManager 的定期日常工作请求
】使用WorkManager的定期日常工作请求【英文标题】:PeriodicdailyworkrequestsusingWorkManager【发布时间】:2018-10-2516:37:24【问题描述】:如何正确使用来自AndroidJetpack的新WorkManager来安排每天一次的定期工作,该工作应该每天执行一些操... 查看详情
linq日常关键字使用
1.fromvarscoreQuery=fromstudentinstudentsfromscoreinstudent.Scoreswherescore>90selectnew{Last=student.LastName,score};2.wherevarqueryLowNums3=fromnuminnumberswherenum<5wherenum%2==0selectnum;&nb 查看详情