1、防火墙介绍
防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全。
目前Linux系统的防火墙类型主要有两种:分别是iptables和firewalld
1.1、iptables-静态防火墙
早期的Linux系统中默认使用的是iptables防火墙,配置文在/etc/sysconfig/iptables,主要工作在网络层。该防火墙使用链式规则,只可以过滤互联网的数据包,无法过滤从内网到内网的数据包。
- iptables只可以通过命令行进行配置
- iptables默认是允许所有,需要通过拒绝去做限制
- iptables在修改了规则之后必须得全部刷新才可以生效,还会丢失连接(无法守护进程)
1.2、firewalld-动态防火墙
取代了之前的iptables防火墙,配置文件在/usr/lib/firewalld和/etc/fiewalld中,主要工作在网络层。
- 新增区域概念,不仅可以过滤互联网的数据包,也可以过滤内网的数据包
- firewalld不仅可以通过命令行进行配置,也可以通过图形化界面配置
- firewalld默认是拒绝所有,需要通过允许去放行
- firewalld可以动态修改单条规则,动态管理规则集(允许更新规则而不破环现有会话和连接,可以守护进程)
1.3、注意事项
iptables
和firewalld
不是真正的防火墙,是指用来定义防火墙规则功能的"防火墙管理工具/程序",将定义好的规则交由内核中的netfilter
即网络过滤器来读取,从而真正实现防火墙功能。
即:真正的防火墙执行者是位于内核的netfilter
,只不过firwalld和iptables的使用方法以及效果等不同。
在配置防火墙时,不建议两种配置方法结合使用(建议只使用其中的一种)
2、firewalld操作
# 查看firewall服务状态
systemctl status firewalld
# 查看firewall的状态
firewall-cmd --state
# 开启、重启、关闭、firewalld.service服务
service firewalld start
service firewalld restart
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
3、iptables操作
# 查看防火墙状态
service iptables status
# 停止防火墙
service iptables stop
# 启动防火墙
service iptables start
# 重启防火墙
service iptables restart
# 永久关闭防火墙
chkconfig iptables off
# 永久关闭后重启
chkconfig iptables on
# 开放某个区间端口 iptables命令最后的ACCEPT表示公网可访问,换成whitelist则仅限服务器之间通过内网访问。
# iptables -I:默认插入到第一行,原有规则后移。
# iptables -A :默认追加到最后一行。
iptables -A INPUT -p tcp --dport 3000:3006 -j ACCEPT
# 开放单个端口 iptables命令最后的ACCEPT表示公网可访问,换成whitelist则仅限服务器之间通过内网访问。
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT