Linux7版本防火墙轻松搞定
防火墙是系统最坚硬的盾牌,需要我们自己去铸造~
1、Linux7默认用到的防火墙是firewalld
(1)systemctl start firewalld 开启防火墙
(2)systemctl stop firewalld 关闭防火墙
(3)systemctl enable firewalld 允许开机启动
(4)systemctl diable firewalld 禁止开机启动
2、firewalld9个域以及默认的域
(1)firewall-cmd --get-zones 查看所有域
(2)firewall-cmd --get-default-zone 查看默认域
drop(丢弃),任何接受的网络数据包都被丢弃,没有任何回复,仅能有发送出去的网络连接。
block(限制),任何接受的网络连接都被IPv4的icmp-host-prohibited和IPv6的icmp6-adm-prohibited信息所拒绝。
public(公共),在公共区域使用,不能相信其他网络内的计算机不会对你的计算机造成危害,只能接受经过选取的连接。
external(外部)
dmz(非军事区),用于你的非军事区的电脑,此区域内可公开访问,可以有限的进入你的内部网络,仅仅接收经过选择的连接。
work(工作),用于工作区,可以基本信任网络其他电脑不会危害你的电脑,仅仅接收经过选择的连接。
home(家庭),用于家庭网络,可以基本信任网络其他电脑不会危害你的电脑,仅仅接收经过选择的连接。
internal(内部),用于内部网络,可以基本信任网络其他电脑不会危害你的电脑,仅仅接收经过选择的连接。
trusted(信任),可接受所有网络连接。
(3)firewall-cmd --set-default-zone=work 修改默认zone为work
(4)firewall-cmd --get-zone-of-interface=ens33 查看指定网卡的域
(5)firewall-cmd --zone=work --change-interface=ens33 更改指定网卡的域
(6)firewall-cmd --zone=home --add-interface=ens33 给指定的网卡设置zone
(7)firewall-cmd --zone=home --remove-interface=ens33 针对指定网卡删除zone
(8)firewall-cmd --get-active-zones 查看系统所有网卡所在的zone
(9)firewall-cmd --get-service 查看所有service
(10)firewall-cmd --list-services 查看当前zone下有哪些service
(11)firewall-cmd --zone=public --add-service=http 将http协议加到public zone下
(12)firewall-cmd --zone=public --remove-service=http 将协议删除
(13)ls /usr/lib/firewalld/zones zone的配置文件模板
(14)一个小练习:ftp服务自定义端口为1121,如何在work zone下放行ftp /usr/lib/firewalld/service下为配置文件,/etc/firewalld/service下为真正生效的文件
1)cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services 将ftp协议模板拷贝到目标目录下
2)vim /etc/firewalld/service/ftp.xml 打开文件将端口修改为1121
3)cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/ 将zone的work模板拷贝到目标目录下
4)vim /etc/firewalld/zones/work.xml 修改zonework 的配置文件,加入下面一行<service name="ftp">
5)重新加载
6)查看work下有多少协议
3、selinux是一种安全子系统
(1)查看selinux状态/usr/sbin/sestatus 或者 sestatus
或者修改配置文件/etc/selinux/config
selinux有三种状态:enforcing(执行中),permissive(不执行但产生警告),disbled(关闭)
4、安装iptables服务 yum install -y iptables-services
5、开启iptables
(1)systemctl status iptables 查看iptables状态
(2)systemctl enable/disable iptables设置开机启动和禁止开机启动
(3)iptables -nvL
-L:表示查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加-t nat
-n:不对IP地址进行反查可以加快速度
-v:输出详细信息
6、linux防火墙netfilter,iptable只是netfilter的一个服务
(1)net filter五个表:filter表用于过滤包,nat表用于网络地址转换,managle表用于给数据包做标记,raw表可以实现不追踪某些数据包,security表在CentOS6中没有,用于强制访问(MAC)网络规则。
(2)filter表有INPUT,FORWARD,OUTPUT三个链
(3)nat表有PREROUTING,OUTPUT,POSTROUTING三个链
7、数据包流向与netfilter五个链
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的为本机
FORWARD:通过路由表后目的不为本机
OUTPUT:由本机产生,向外发出
POSTROUTING:发送到网卡接口之前
8、route 查看路由表
9、iptables规则
(1)iptables -F 清空规则,重启后恢复
(2)service iptables -save 保存规则 ,保存在/etc/sysconfig/iptables下
(3)iptables -t nat 查看nat表
(4)iptables -Z 用于把计数器清零
(5)iptables -I INPUT -s 192.168.10.0/24 -i ens33 -j DROP -A在最后添加,-I在最开始添加
会自动丢弃所有来自192.168.10.0网段的访问
(6)iptables -D INPUT 1 删除第一行规则
关于防火墙的内容三言两语聊不完,他就像我们的盔甲一样,需要精心去铸造,如果本文有什么错误欢迎指出,一起讨论~