Linux防火墙iptables添加白名单方式

 更新时间:2023年06月03日 11:37:49   作者:SP八岐大兔  
这篇文章主要介绍了Linux防火墙iptables添加白名单方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Linux防火墙iptables添加白名单

iptables

在linux系统中安装yum install iptables-services

  • 重启防火墙的命令:service iptables restart 
  • 保存到配置中:service iptables save ,该命令会将配置规则保存到/etc/sysconfig/iptables文件中。

添加白名单:

  • 开放端口区间:iptables -A INPUT -p tcp --dport 3000:3006 -j ACCEPT
  • 开放单个端口:iptables -A INPUT -p tcp --dport 3306 -j ACCEPT  #追加到链的末尾

拓展:

iptables命令最后的ACCEPT表示公网可访问,换成whitelist则仅限服务器之间通过内网访问。

  • iptables -I:默认插入到第一行,原有规则后移。
  • iptables -A:默认追加到最后一行。

Linux防火墙白名单设置

在linux系统中安装yum install iptables-services

然后 vi /etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Sun Aug 28 12:14:02 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#这里开始增加白名单服务器ip(请删除当前服务器的ip地址)
-N whitelist
-A whitelist -s 8.8.8.8 -j ACCEPT
-A whitelist -s x.x.x.x -j ACCEPT
#这些 ACCEPT 端口号,公网内网都可访问
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 13020 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1000:8000 -j ACCEPT  #开放1000到8000之间的所有端口
#下面是 whitelist 端口号,仅限 服务器之间 通过内网 访问
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j whitelist
#为白名单ip开放的端口,结束
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

解释:

添加防火墙过滤规则步骤如下;

1、查看现有防火墙过滤规则:

 iptables -nvL --line-number

2、添加防火墙过滤规则(设置白名单):

1)添加白名单

iptables -I INPUT 3 -s 136.6.231.163 -p tcp --dport 1521 -j ACCEPT

命令详解:

  • -I:添加规则的参数  
  • INPUT:表示外部主机访问内部资源

规则链:    

  • 1)INPUT——进来的数据包应用此规则链中的策略    
  • 2)OUTPUT——外出的数据包应用此规则链中的策略    
  • 3)FORWARD——转发数据包时应用此规则链中的策略    
  • 4)PREROUTING——对数据包作路由选择前应用此链中的规则 (记住!所有的数据包进来的时侯都先由这个链处理)    
  • 5)POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)    

3、表示添加到第三行(可以任意修改)

  • -s:指定作为源地址匹配,这里不能指定主机名称,必须是IP;
  • -p: 用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)
  • --dport: 用于匹配端口号
  • -j: 用于匹配处理方式:

常用的ACTION:

  • DROP:悄悄丢弃,一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表    
  • REJECT:明示拒绝    
  • ACCEPT:接受

2)查看添加结果

iptables -nvL --line-number

然后重启防火墙即可生效

重启防火墙的命令:service iptables restart

此时,防火墙规则只是保存在内存中,重启后就会失效。

使用以下命令将防火墙配置保存起来;

保存到配置中:service iptables save (该命令会将防火墙规则保存在/etc/sysconfig/iptables文件中。)

附:

开放端口段3000~3008

iptables -A INPUT -p tcp --dport 3000:3008 -j ACCEPT

开放ip段

iprange模块提供了两个匹配参数:

  • --src-range: 匹配来源地址的范围,例如,iptables -A INPUT -p tcp -m iprange --src-range 192.168.0.2-192.168.0.61 -j DROP
  • --dst-range: 匹配目的地址的范围,例如,iptables -A OUTPUT -p tcp -m iprange --dst-range 192.168.0.2-192.168.0.61 -j DROP 

禁止用户访问www.baidu.com

iptables -I FORWARD -d www.baidu.com -j DROP

iptables—命令(-A、-I、-D、-R、-L等)、

 View Code

释义,可参考:Centos7.0-iptables linux的出站入站端口维护

Iptables防火墙规则使用梳理

规则的删除等:linux下iptables的使用下面是可能用于防止慢连接攻击的方式

#处理IP碎片数量,防止攻击,允许每秒100个
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包
iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

总结

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

相关文章

  • Linux安装MongoDB启动及常见问题解决

    Linux安装MongoDB启动及常见问题解决

    这篇文章主要介绍了Linux安装MongoDB启动及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Linux下yum命令及软件的安装方式

    Linux下yum命令及软件的安装方式

    这篇文章主要介绍了Linux下yum命令及软件的安装方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Linux下iptables 禁止端口和开放端口示例

    Linux下iptables 禁止端口和开放端口示例

    本篇文章主要介绍了Linux下iptables 禁止端口和开放端口示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • centos下root运行Elasticsearch异常问题解决

    centos下root运行Elasticsearch异常问题解决

    这篇文章主要介绍了centos下root运行Elasticsearch异常问题解决的相关资料,Elasticsearch异常问题解决办法详细介绍,需要的朋友可以参考下
    2016-11-11
  • Ubuntu系统日志配置 /var/log/messages的方法

    Ubuntu系统日志配置 /var/log/messages的方法

    今天小编就为大家分享一篇Ubuntu系统日志配置 /var/log/messages的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Linux如何使用libudev获取USB设备VID及PID

    Linux如何使用libudev获取USB设备VID及PID

    这篇文章主要介绍了Linux如何使用libudev获取USB设备VID及PID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 分享Linux 系统生成随机密码的10种方法

    分享Linux 系统生成随机密码的10种方法

    利用Linux系统生成随机密码的10种方法 Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它。例如,你可以通过数十种方法来生成随机密码。本文将介绍生成随机密码的十种方法,感兴趣的朋友一起学习吧
    2015-12-12
  • CentOS 7.3配置Nginx虚拟主机的方法步骤

    CentOS 7.3配置Nginx虚拟主机的方法步骤

    这篇文章主要介绍了CentOS 7.3配置Nginx虚拟主机的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Linux centos如何让普通用户获取root权限

    Linux centos如何让普通用户获取root权限

    这篇文章主要介绍了Linux centos如何让普通用户获取root权限问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • linux下apache开启url重写的方法(详细说明)

    linux下apache开启url重写的方法(详细说明)

    Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块
    2012-04-04

最新评论