开发者

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

目录
  • 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命令。

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

    一、安装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

    iptables 设置特定IP访问指定端口

    一、添加规则

    设置禁止所有IP访问指定端口8075

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

    二、测试telnet 

    [root@zabbix_server ~]# telnet 127.0.0.1 8075
    Trying 127.0.0.1...
    telnet: connect to address 127.0.0.1: Connection timed out

    三、删除规则

    1、查询规则编号

    [root@zabbix_server ~]# iptables --line -nvL INPUT
    Chain INPUT (policy DROP 83 packets, 4016 bytes)
    num   pkts bytes target     prot opt i编程客栈n     out     source               destination         
    1        8   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           
    4        3   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 INPUT
    Chain 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           python
    3        3   156 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:25601 
    4     python4087  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        javascript   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 8075
    Trying 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 INPUT
    Chain INPUT (policy DROP 3 packets, 156 bytes)
    num   pkts bytes target     prot opt in     out     source               destination         
    1        0     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           
    4        3   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 INPUT
    Chain INPUT (policy DROP 20 packets, 1004 bytes)
    num   pkts bytes target     prot opt in     out     source               destination         
    1        0     0 ACCEPT     tcp  --  *      *       127.0.0.1            0.0.0.0/0           tcp dpt:8075 
    2        0     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           
    5        3   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 8075
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.

    本机可以访问8075,其他机器上不能访问8075

    [root@localhost etc]# telnet 172.28.18.75 8075
    Trying 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 INPUT
    Chain INPUT (policy DROP 9 packets, 456 bytes)
    num   pkts bytes target     prot opt in     out     source               destination         
    1        0     0 ACCEPT     tcp  --  *      *       172.28.18.71         0.0.0.0/0           tcp dpt:8075 
    2        3   132 ACCEPT     tcp  --  *      *       127.0.0.1            0.0.0.0/0           tcp dpt:8075 
    3        7   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           
    6        3   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 8075
    Trying 172.28.18.75...
    Connected to 172.28.18.75.
    Escape character is '^]'.

    访问成功,保存规则

    [root@zabbix_server ~]# service iptables save
    iptables:将防火墙规则保存到 /etc/sysconfig/iptables:[确定]

    重启服务

    [root@zabbix_server ~]# service iptables save
    iptables:将防火墙规则保存到 /etc/sysconfig/iptables:[确定]
    [root@zabbix_server ~]# service iptables restart
    iptables:将链设置为政策 ACCEPT:filter [确定]
    iptables:清除防火墙规则:[确定]
    iptables:正在卸载模块:[确定]
    iptables:应用防火墙规则:[确定]

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新运维

    运维排行榜