您的位置:首页技术文章
文章详情页

centos7防火墙如何设置只对部分端口号限源

【字号: 日期:2023-10-01 20:59:26浏览:13作者:猪猪
目录centos7防火墙设置只对部分端口号限源一、安装iptable二、设置规则三、特定url限源iptables 设置特定IP访问指定端口一、添加规则二、测试telnet 三、删除规则四、设置指定IP访问指定端口8075总结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命令。

一、安装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_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访问指定端口8075

1、添加规则:禁止所有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 dp

2、添加规则:允许127.0.0.1访问8075

[root@zabbix_server ~]# iptables -I INPUT -s 127.0.0.1 -p tcp --dport 8075 -j ACCEPT

3、查询规则:

[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 out

4、允许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:应用防火墙规则:[确定]总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。

标签: Linux
相关文章: