概要
项目上线一段时候,安全测评整改的需要,需对特定一些端口进行限源。其他端口不做限制
iptables与firewalld的区别
1),firewalld可以动态修改单条规则,动态管理规则集,允许更新规则而不破坏现有会话和连接。而iptables,在修改了规则后必须得全部刷新才可以生效;
2),firewalld使用区域和服务而不是链式规则;
3),firewalld默认是拒绝的,需要设置以后才能放行。而iptables默认是允许的,需要拒绝的才去限制;
4),firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现。也就是说,firewalld和iptables一样,它们的作用都用于维护规则,而真正使用规则干活的是内核的netfilter。只不过firewalld和iptables的结果以及使用方法不一样!
firewalld是iptables的一个封装,可以让你更容易地管理iptables规则。它并不是iptables的替代品,虽然iptables命令仍可用于firewalld,但建议firewalld时仅使用firewalld命令。
一、安装iptable
1.关闭默认的firewall防火墙
systemctl stop firewalld.service 关闭防火墙
systemctl disable firewalld.service 关闭开机启动
2.开启iptables
yum install iptables (根据centOS7的版本和内核,有些版本已经装过,可以跳过此命令)
yum install iptables-services
3.基本操作
查看防火墙状态
查看防火墙状态
service iptables status
停止防火墙
service iptables stop
启动防火墙
service iptables start
重启防火墙
service iptables restart
永久关闭防火墙
chkconfig iptables off
永久关闭后重启
chkconfig iptables on
开机自启
systemctl enable iptables.service
二、设置规则
表示清空所有默认规则。
iptables -F
设置指定IP访问指定端口8075
1、添加规则:禁止所有IP访问8075
iptables -I INPUT -p tcp --dport 8075 -j DROP
查看规则
iptables --line -nvL INPUT
添加规则:允许127.0.0.1访问8075
iptables -I INPUT -s 127.0.0.1 -p tcp --dport 8075 -j ACCEPT
规则已经添加,测试
telnet 具体ip 8075
保存规则
service iptables save
三、特定url限源
示例添加swagger-相关限制
iptables -I INPUT -p tcp -m string --string "swagger-" --algo bm -j DROP
iptables -I INPUT -s 10.0.120.13 -p tcp -m string --string "swagger-" --algo bm -j ACCEPT
查询数据库中的数据也可能包含"swagger-" 也会直接拦截,对数据库等存储也需要添加放行规则
开放源
iptables -I INPUT -s 某某ip -j ACCEPT
iptables 导入导出
导出
iptables-save > iptables_bak
导入
iptables-restore < iptables_bak
其他命令参照