linux防火墙使用以及配置
在 CentOs 7 中 firewalld,iptables,ebtables 这三种防火墙是共存的。
但是默认情况下使用 firewalld 来管理 netfilter 子系统。
Centos 7 firewall :
在使用 windows 连接 Linux 时 ,经常会出现因为防火墙的问题,导致 window 访问某个服务的端口失败。最后发现原来是端口的原因
1、firewalld的基本使用
# 启动
systemctl start firewalld
# 关闭
systemctl stop firewalld
# 查看状态
systemctl status firewalld
# 开机禁用
systemctl disable firewalld
# 开机启用
systemctl enable firewalld
2.systemctl是CentOS7的服务管理工具中主要的工具
# 启动一个服务
systemctl start firewalld.service
# 关闭一个服务
systemctl stop 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
3.配置firewalld-cmd
# 查看防火墙版本:
firewall-cmd --version
# 查看帮助:
firewall-cmd --help
# 显示状态:
firewall-cmd --state
# 查看所有打开的端口:
firewall-cmd --zone=public --list-ports
# 更新防火墙规则:
firewall-cmd --reload
# 查看区域信息:
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 --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
# 重新载入
firewall-cmd --reload
# 查看端口是否开放
firewall-cmd --zone= public --query-port=80/tcp
# 删除已开放的端口
firewall-cmd --zone= public --remove-port=80/tcp --permanent
调整默认策略(默认拒绝所有访问,改成允许所有访问):
# 调整策略 是的其他端口可以访问
firewall-cmd --permanent --zone=public --set-target=ACCEPT
firewall-cmd --reload
对某个IP开放多个端口:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.159.60.29" port protocol="tcp" port="1:65535" accept"
# 重启防火墙使设定生效
firewall-cmd --reload