centos7防火墙如何设置只对部分端口号限源
项目上线一段时候,安全测评整改的需要,需对特定一些端口进行限源。
其他端口不做限制
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命令。一、安装iptable1.关闭默认的firewall防火墙
systemctl stop firewalld.service 关闭防火墙systemctl disable firewalld.service 关闭开机启动2.开启iptables
yum install iptables (根据centOS7的版本和内核,有些版本已经装过,可以跳过此命令)yum install iptables-services3.基本操作
查看防火墙状态
查看防火墙状态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 ACCEPTiptables 导入导出
导出iptables-save > iptables_bak导入iptables-restore < iptables_bakiptables 设置特定IP访问指定端口一、添加规则设置禁止所有IP访问指定端口8075
[root@zabbix_server ~]# iptables -I INPUT -p tcp --dport 8075 -j DROP二、测试telnet [root@zabbix_server ~]# telnet 127.0.0.1 8075Trying 127.0.0.1...telnet: connect to address 127.0.0.1: Connection timed out三、删除规则1、查询规则编号
[root@zabbix_server ~]# iptables --line -nvL INPUTChain INPUT (policy DROP 83 packets, 4016 bytes)num pkts bytes target prot opt in out source destination 18 408 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8075 2 144M 15G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 3 4037 214K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 43 156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25601 5 4085 218K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 6 22638 1169K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306 7 264K 14M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9000 8 443K 23M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10050 9 76134 4093K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10051可以看到禁止访问8075的规则编号为1
2、删除指定规则编号的规则
[root@zabbix_server ~]# iptables -D INPUT 1再查询
[root@zabbix_server ~]# iptables --line -nvL INPUTChain INPUT (policy DROP 20 packets, 961 bytes)num pkts bytes target prot opt in out source destination 1 144M 15G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 4038 214K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 33 156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25601 4 4087 218K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 5 22644 1169K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306 6 264K 14M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9000 7 443K 23M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10050 8 76156 4094K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10051 9 44 2208 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dp已经删除了,测试telnet
[root@zabbix_server ~]# telnet 127.0.0.1 8075Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.四、设置指定IP访问指定端口80751、添加规则:禁止所有IP访问8075
[root@zabbix_server ~]# iptables -I INPUT -p tcp --dport 8075 -j DROP[root@zabbix_server ~]# iptables --line -nvL INPUTChain INPUT (policy DROP 3 packets, 156 bytes)num pkts bytes target prot opt in out source destination 10 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8075 2 145M 15G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 3 4038 214K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 43 156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25601 5 4090 219K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 6 22650 1169K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306 7 264K 14M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9000 8 443K 23M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10050 9 76183 4095K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10051 10 44 2208 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3000 11 7 284 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5672 12 2 80 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dp2、添加规则:允许127.0.0.1访问8075
[root@zabbix_server ~]# iptables -I INPUT -s 127.0.0.1 -p tcp --dport 8075 -j ACCEPT3、查询规则:
[root@zabbix_server ~]# iptables --line -nvL INPUTChain INPUT (policy DROP 20 packets, 1004 bytes)num pkts bytes target prot opt in out source destination 10 0 ACCEPT tcp -- * * 127.0.0.1 0.0.0.0/0 tcp dpt:8075 20 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8075 3 145M 15G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 4 4039 214K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 53 156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25601 6 4096 219K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 7 22660 1170K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306 8 264K 14M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9000 9 443K 23M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10050规则已经添加,测试
[root@zabbix_server ~]# telnet 127.0.0.1 8075Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.本机可以访问8075,其他机器上不能访问8075
[root@localhost etc]# telnet 172.28.18.75 8075Trying 172.28.18.75...telnet: connect to address 172.28.18.75: Connection timed out4、允许172.28.18.71可以访问8075,(172.28.18.71是需要访问8075的服务器)
[root@zabbix_server ~]# iptables -I INPUT -s 172.28.18.71 -p tcp --dport 8075 -j ACCEPT查看规则
[root@zabbix_server ~]# iptables --line -nvL INPUTChain INPUT (policy DROP 9 packets, 456 bytes)num pkts bytes target prot opt in out source destination 10 0 ACCEPT tcp -- * * 172.28.18.71 0.0.0.0/0 tcp dpt:8075 23 132 ACCEPT tcp -- * * 127.0.0.1 0.0.0.0/0 tcp dpt:8075 37 420 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8075 4 145M 15G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 5 4040 214K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 63 156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25601 7 4100 219K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 8 22674 1171K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306在172.28.18.71上测试telnet 8075
[root@localhost etc]# telnet 172.28.18.75 8075Trying 172.28.18.75...Connected to 172.28.18.75.Escape character is '^]'.访问成功,保存规则
[root@zabbix_server ~]# service iptables saveiptables:将防火墙规则保存到 /etc/sysconfig/iptables:[确定]重启服务
[root@zabbix_server ~]# service iptables saveiptables:将防火墙规则保存到 /etc/sysconfig/iptables:[确定][root@zabbix_server ~]# service iptables restartiptables:将链设置为政策 ACCEPT:filter [确定]iptables:清除防火墙规则:[确定]iptables:正在卸载模块:[确定]iptables:应用防火墙规则:[确定]总结以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。
相关文章: