Linux 防火墙的配置和使用(redhat7、redhat6)

一、redhat7中防火墙的配置和使用

RHEL7 虽然仍有iptables,但不建议使用了,而是使用新的firewalld服务。

1.systemctl:redhat7中使用了firewalld代替了原来的iptables

systemctl unmask firewalld                      #执行命令,即可实现取消服务的锁定
systemctl mask firewalld                        # 下次需要锁定该服务时执行
systemctl start firewalld.service               #启动防火墙  
systemctl stop firewalld.service                #停止防火墙  
systemctl reloadt firewalld.service             #重载配置
systemctl restart firewalld.service             #重启服务
systemctl status firewalld.service              #显示服务的状态
systemctl enable firewalld.service              #在开机时启用服务
systemctl disable firewalld.service             #在开机时禁用服务
systemctl is-enabled firewalld.service          #查看服务是否开机启动
systemctl list-unit-files|grep enabled          #查看已启动的服务列表
systemctl --failed                              #查看启动失败的服务列表

2.防火墙常用命令:

常用命令介绍
firewall-cmd --version                         ##查看版本
firewall-cmd --state                           ##查看防火墙状态,是否是running
firewall-cmd --reload                          ##重新载入配置,更新防火墙规则,执行结果success
firewall-cmd --list-all                        ##查看防火墙所有配置情况
firewall-cmd --list-ports                      ##查看所有打开的端口  
firewall-cmd --list-services                   ##查看所有允许的服务  
firewall-cmd --get-services                    ##获取所有支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp               ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --zone=public --list-ports        ##查看所有打开的端口

#区域相关
firewall-cmd --list-all-zones                    ##查看所有区域信息
firewall-cmd --get-zones                         ##列出支持的zone
firewall-cmd --get-active-zones                  ##查看活动区域信息
firewall-cmd --get-zone-of-interface=eth0        ##查看指定接口所属区域
firewall-cmd --set-default-zone=public           ##设置public为默认区域  
firewall-cmd --get-default-zone                  ##查看默认区域信息  
firewall-cmd --zone=public --add-interface=eth0  ##将接口eth0加入区域public


#开饭服务或端口
firewall-cmd --add-service=ftp                 ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口

iptables -L -n                                 ##查看规则,这个命令是和iptables的相同的
firewall-cmd --help                            ##查看帮助
man firewall-cmd                               ##查看帮助

firewall-cmd --panic-on                        ##拒绝所有包
firewall-cmd --panic-off                       ##取消拒绝状态
firewall-cmd --query-panic                     ##查看是否拒绝


#接口相关
firewall-cmd --zone=public --remove-interface=eth0       #从区域public中删除接口eth0  
firewall-cmd --zone=default --change-interface=eth0      #修改接口eth0所属区域为default  
firewall-cmd --get-zone-of-interface=eth0                #查看接口eth0所属区域  

#端口控制
firewall-cmd --add-port=80/tcp --permanent               #永久添加80端口例外(全局)
firewall-cmd --remove-port=80/tcp --permanent            #永久删除80端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent      #永久增加65001-65010例外(全局)  
firewall-cmd  --zone=public --add-port=80/tcp --permanent            #永久添加80端口例外(区域public)
firewall-cmd  --zone=public --remove-port=80/tcp --permanent         #永久删除80端口例外(区域public)
firewall-cmd  --zone=public --add-port=65001-65010/tcp --permanent   #永久增加65001-65010例外(区域public) 
firewall-cmd --query-port=8080/tcp    # 查询端口是否开放
firewall-cmd --permanent --add-port=80/tcp    # 开放80端口
firewall-cmd --permanent --remove-port=8080/tcp    # 移除端口
firewall-cmd --reload    #重启防火墙(修改配置后要重启防火墙)


-------------------------------------示例--------------------------------------------
# 添加服务端口
firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)
firewall-cmd --zone=public(作用域) --add-service=http(服务) --permanent(永久生效)
firewall-cmd --reload    # 重新载入,更新防火墙规则
firewall-cmd --zone= public --query-port=80/tcp  #查看
# 删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent  # 删除

# 控制IP段访问
# firewall-cmd --list-all  查看 默认是允许所有的访问
# firewall-cmd --permanent --remove-service=ssh     禁掉
# firewall-cmd --permanent --add-rich-rule 'rule service name=ssh family=ipv4 source address=192.168.1.0/24 accept'    允许访问
# firewall-cmd --permanent --add-rich-rule 'rule service name=ssh family=ipv4 source address=192.168.2.0/24 reject'     拒绝访问
# firewall-cmd --reload  重启一下
# firewall-cmd --list-all 在看一下变化。
# firewall-cmd --permanent --remove-rich-rule 'rule service name=ssh family=ipv4 source address=192.168.1.0/24 accept'  删除策略

## 检查设置是否生效
iptables -L -n | grep 21
 
## 设置黑/白名单
firewall-cmd --permanent --zone=trusted --add-source=ip  执行结果success
## 重新加载配置
firewall-cmd --reload  # 执行结果success
## 列出白名单
firewall-cmd --permanent --zone=trusted --list-sources  执行结果所有的ip
## 删除所有
firewall-cmd --zone=drop --list-all  需要重新加载配置
## 删除指定
firewall-cmd --permanent --zone=drop --remove-source=ip 需要重新加载配置

参数解释 :

–add-service #添加的服务
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效 

3.开启端口

# 开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

# 命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

二、iptables 使用(Redhat7 以下版本)

yum install iptables-services           #安装iptables  
systemctl stop firewalld.service        #停止firewalld  
systemctl mask firewalld.service        #禁止自动和手动启动firewalld  
systemctl start iptables.service        #启动iptables
systemctl start ip6tables.service       #启动ip6tables  
systemctl enable iptables.service       #设置iptables自启动  
systemctl enable ip6tables.service      #设置ip6tables自启动
  • iptables 语法:
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> –sport 源端口 <-d 目标IP/目标子网> –dport 目标端口 -j 动作
-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-m:加载其他模块功能;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
1.开放80,22,8080 端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
2.保存
/etc/rc.d/init.d/iptables save
3.查看打开的端口
/etc/init.d/iptables status
4.关闭防火墙 
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop

————————————————
版权声明:本文参考为CSDN博主「朽木o0」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/s_p_j/article/details/80979450

发布了18 篇原创文章 · 获赞 16 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/liangpingguo/article/details/103941557