配置防火墙对机器的安全性非常重要:
查看系统版本:cat /etc/redhat-release 适用redhat系统的。
CentOS 7 系统中已包含firewalld , 之前版本主要用iptables,下面主要总结firewalld 常用命令:
# CentOS Linux release 7 之后
# 防火墙的配置文件在 /usr/lib/firewalld/zones/ 目录下,也可直接修改配置文件添加防火墙配置
systemctl status firewalld # 查看防火墙状态
systemctl start firewalld # 开启防火墙
systemctl enable firewalld # 启用防火墙
systemctl disable firewalld # 禁用防火墙
systemctl stop firewalld # 关闭防火墙
systemctl restart firewalld.service # 重启防火墙
firewall-cmd --list-all # 查看防火墙规则
firewall-cmd --query-port=2201/tcp # 查看某个端口开启情况
firewall-cmd --reload # 重载配置使其生效
# 防火墙区域: 针对特定位置&场景具有的各种信任级别的预构建规则集
firewall-cmd --get-default-zone # 防火墙默认区域
firewall-cmd --get-active-zones # 查看网络接口使用的区域
firewall-cmd --set-default-zone=internal # 修改默认区域
# 开放 & 不开放端口
# --zone 作用域
# --permanent 永久生效
# --add-port / --remove-port 添加 / 删除端口
firewall-cmd --zone=public --remove-port=2200/tcp --permanent # 2200不对外开放
firewall-cmd --zone=public --add-port=2201/tcp --permanent # 2201对外开放
# 指定IP开放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.111.11.11" port protocol="tcp" port="2203" accept" # 允许10.111.11.11访问2203端口
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="10.111.11.11" port protocol="tcp" port="2203" accept" # 删除某条规则
# 端口号查询常用命令:看端口的监听情况,只需要本机范围内,可只监听本机情况
lsof -i 2202
sudo netstat -tunlp|grep 2202
service iptables status #查看iptables状态
service iptables restart #iptables服务重启
service iptables stop #iptables服务禁用
# 增加规则: 可通过命令行(不执行service iptables save的话重启后失效),或者直接修改配置文件可一直生效
1》
# iptabls 配置文件,直接编辑/etc/sysconfig/iptables配置文件,保存后重启
*filter
:INPUT ACCEPT [0:0] # 输入的数据包,默认规则是允许
:FORWARD ACCEPT [0:0] # 转发数据包,默认规则是允许
:OUTPUT ACCEPT [0:0] # 处理输出数据包,默认规则是允许
# 默认是允许,主要配置需要拦截的情况
# -A INPUT -s 10.0.0.0/8 -p tcp -m tcp --dport 2201 -j ACCEPT
# -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp --dport 2201 -j DROP
2》 命令行 : 不执行service iptables save的话重启系统后会失效
# iptables
iptables -L -n # 查看端口开放情况
# 添加一条规则
iptables -I INPUT -s 10.0.0.0/8 -p tcp --dport 70201:70220 -j ACCEPT # 允许10.XX网段访问70201-70220的端口,访问一段连续的端口":"分割
# 删除某条规则
iptables -nvL --line-number # 查询规则, 带编号
iptables -D INPUT 40 # 根据编号删除某条规则,比如40
# *** 不要直接执行该命令,进入本机的包丢弃,会导致ssh登录不上,所有的都操作不了,如果没有执行save,可以重启系统
iptables -p INPUT DROP