前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS使用iptables禁止某IP访问

CentOS使用iptables禁止某IP访问

作者头像
OwenZhang
发布2021-12-08 15:58:28
6.3K0
发布2021-12-08 15:58:28
举报
文章被收录于专栏:Owen's World

CentOS配置iptables规则并使其永久生效

代码语言:javascript
复制
#添加屏蔽IP
#禁止此IP访问服务器
iptables -I INPUT -s 1.2.3.4 -j DROP
或
iptables -A INPUT -s 1.2.3.4 -j DROP
#禁止服务器访问此IP
iptables -A OUTPUT -d 1.2.3.4 -j DROP
如果要封某个网段:
iptables -I INPUT -s 1.2.3.0/24 -j DROP

#清空屏蔽IP
iptables -t filter -D INPUT -s 1.2.3.4 -j DROP
iptables -t filter -D OUTPUT -d 1.2.3.4 -j DROP

#一键清空所有规则
iptables -F

#查看
iptables -L INPUT
或
iptables -L

iptables-save(此命令将保存规则,下次开机自动执行)

#处理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
复制代码

1. 目的

  最近为了使用redis,配置远程连接的使用需要使用iptable是设置允许外部访问6379端口,但是设置完成后重启总是失效。因此百度了一下如何设置永久生效,并记录。

2. 设置

  2.1 添加iptables规则

代码语言:javascript
复制
iptables -I INPUT 1 -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
复制代码

  2.2 保存

代码语言:javascript
复制
service iptables save
复制代码

  执行这个命令的时候有时候可能会报错:The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

  这是因为没有安装iptables服务,直接使用yum安装iptables服务即可.

代码语言:javascript
复制
yum install iptables-services
复制代码

  安装完成后,重新执行 service iptables save 命令即可保存成功。

  2.3 配置iptables开机自启

  保存后重启依然没有生效,后百度得知,需要设置iptables开机自启才可使配置生效。

  执行如下命令(老版本命令为:service iptables on),设置iptables开机自启

代码语言:javascript
复制
systemctl enable iptables.service
复制代码

3. 注意

  需关闭firewalld防火墙

  systemctl stop firewalld.service

  systemctl disable firewalld.service

在CentOS下封停IP,有封杀网段和封杀单个IP两种形式。一般来说,现在的攻击者不会使用一个网段的IP来攻击(太招摇了),IP一般都是散列的。于是下面就详细说明一下封杀单个IP的命令,和解封单个IP的命令。

在CentOS下,使用ipteables来维护IP规则表。要封停或者是解封IP,其实就是在IP规则表中对入站部分的规则进行添加操作。

要封停一个IP,使用下面这条命令:

代码语言:javascript
复制
iptables -I INPUT -s ***.***.***.*** -j DROP
复制代码

要解封一个IP,使用下面这条命令:

代码语言:javascript
复制
iptables -D INPUT -s ***.***.***.*** -j DROP
复制代码

参数-I是表示Insert(添加),-D表示Delete(删除)。后面跟的是规则,INPUT表示入站,***.***.***.***表示要封停的IP,DROP表示放弃连接。

此外,还可以使用下面的命令来查看当前的IP规则表:

代码语言:javascript
复制
iptables --list
复制代码

比如现在要将123.44.55.66这个IP封杀,就输入:

代码语言:javascript
复制
iptables -I INPUT -s 123.44.55.66 -j DROP
复制代码

要解封则将-I换成-D即可,前提是iptables已经有这条记录。如果要想清空封掉的IP地址,可以输入:

代码语言:javascript
复制
iptables --flush
复制代码

要添加IP段到封停列表中,使用下面的命令:

代码语言:javascript
复制
iptables -I INPUT -s 121.0.0.0/8 -j DROP
复制代码

其实也就是将单个IP封停的IP部分换成了Linux的IP段表达式。关于IP段表达式网上有很多详细解说的,这里就不提了。

相信有了iptables的帮助,解决小的DDoS之类的攻击也不在话下!

附:其他常用的命令

编辑 iptables 文件

代码语言:javascript
复制
vi /etc/sysconfig/iptables
复制代码

关闭/开启/重启防火墙

代码语言:javascript
复制
/etc/init.d/iptables stop
#stop 关闭
#start 开启
#restart 重启
复制代码

验证一下是否规则都已经生效:

代码语言:javascript
复制
iptables -L
复制代码

保存并重启iptables

代码语言:javascript
复制
/etc/rc.d/init.d/iptables save
service iptables restart
复制代码
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年10月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CentOS配置iptables规则并使其永久生效
    • 附:其他常用的命令
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档