iptables使用

常用命令

最近在云主机的日志`/var/log/secure`里发现一些恶意尝试登陆的IP,具体表现是不断使用root用户或其他用户尝试登陆失败,尽管设置了强密码,但被这样扫描还是不爽,所以考虑用iptables屏蔽它。如下:

```

...

Dec 15 03:16:42 vultr sshd[8242]: Failed password for root from 111.67.202.86 port 47456 ssh2

Dec 15 03:16:42 vultr sshd[8246]: Failed password for root from 61.177.172.128 port 37898 ssh2

Dec 15 03:16:42 vultr sshd[8248]: Failed password for root from 20.188.4.3 port 33470 ssh2

...

Dec 17 23:25:17 vultr sshd[26352]: Invalid user patrice from 92.50.249.166 port 58804

Dec 17 23:25:18 vultr sshd[26354]: Invalid user carlo from 115.94.204.156 port 59334

Dec 17 23:25:22 vultr sshd[26356]: Invalid user papakyriakou from 201.161.58.237 port 48404

Dec 17 23:25:32 vultr sshd[26360]: Invalid user passwd444 from 154.8.138.184 port 35270

Dec 17 23:27:13 vultr sshd[26370]: Invalid user debost from 193.109.123.210 port 56728

Dec 17 23:28:03 vultr sshd[26375]: Invalid user nw from 217.182.74.125 port 59100

Dec 17 23:28:22 vultr sshd[26378]: Invalid user dauchez from 104.248.117.234 port 60202

Dec 17 23:28:23 vultr sshd[26380]: Invalid user maimai from 182.61.28.191 port 35232

Dec 17 23:28:25 vultr sshd[26382]: Invalid user bouillon from 139.59.72.210 port 58025

Dec 17 23:28:30 vultr sshd[26384]: Invalid user it from 80.211.133.219 port 48879

...

```

先从`/var/log/secure`中筛选出待屏蔽的IP,比如xx.xx.xx.xx。

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

要封停一个IP,可以使用以下命令:

```

iptables -I INPUT -s ... -j DROP

```

要解封一个IP,使用以下命令:

```

iptables -D INPUT -s ... -j DROP

```

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

例如,想封掉`112.85.42.175`这个IP,可以使用:

```

iptables -I INPUT -s 112.85.42.175 -j DROP

```

封IP段的命令:

```

iptables -I INPUT -s 124.85.0.0/16 -j DROP

```

封整个段:

```

iptables -I INPUT -s 124.85.0.0/8 -j DROP

```

只封几个段的80端口:

```

iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP

```

禁止指定的端口:

```

iptables -A INPUT -p tcp --dport 80 -j DROP

```

开放指定的端口:

```

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

```

拒绝所有的端口:

```

iptables -A INPUT -j DROP

```

可以通过以下命令查看当前的IP规则:

```

iptables -L/--list

```

如果想清空封掉的IP地址,可以输入:

```

iptables -F/--flush

```

ipset

当需要屏蔽的IP较多时,直接使用iptables就比较麻烦,这时候可以使用ipset。

ipset是iptables的扩展,也就是允许创建匹配地址的集合。与普通的iptables链只能单IP匹配不同,通过ipset创建的,ip集合存储在带索引的数据结构中,这种结构在集合较大时也能进行高效的查找。ipsets也具备一些新防火墙设计方法,并简化了配置.官网:http://ipset.netfilter.org/

安装与使用

yum 安装:

```

[root@VM_0_12_centos ~]# yum install ipset

```

创建一个ipset:

```

[root@VM_0_12_centos ~]# ipset create allset hash:net  (也可以是hash:ip ,这指的是单个ip)

```

可以通过`ipset -h`查看能创建的ipset类型。

查看创建的ipset:

```

[root@VM_0_12_centos ~]# ipset list

Name: allset

Type: hash:net

Revision: 3

Header: family inet hashsize 1024 maxelem 65536

Size in memory: 16784

References: 0

Members:

```

ipset默认可以存储65536个元素,使用maxelem指定数量:

```

[root@VM_0_12_centos ~]# ipset create openapi hash:net maxelem 1000000

[root@VM_0_12_centos ~]# ipset list

Name: allset

Type: hash:net

Revision: 3

Header: family inet hashsize 1024 maxelem 65536

Size in memory: 16784

References: 0

Members:

Name: openapi

Type: hash:net

Revision: 3

Header: family inet hashsize 1024 maxelem 1000000

Size in memory: 16784

References: 0

Members:

```

加入一个黑名单ip:

```

[root@VM_0_12_centos ~]# ipset add allset 112.85.42.175

```

创建防火墙规则,指定allset这个ip集合中的ip都无法访问80端口:

```

iptables -I INPUT -m set --match-set allset src -p tcp --destination-port 80 -j DROP

service iptables save

```

其中`-m set`表示使用扩展模块set的功能,

>> 注意`-m tcp`表示使用`tcp`扩展模块的功能 (`tcp`扩展模块提供了 `--dport`, `--tcp-flags`, `--sync`等功能),`-p tcp` 和`-m tcp`是两个不同层面的东西,一个是说当前规则作用于`tcp` 协议包,而后一是说明要使用`iptables`的`tcp`模块的功能 (`--dport`等)

去掉黑名单的IP:

```

ipset del allset 112.85.42.175

```

该地址就又能访问了

保存ipset规则到文件中:

```

ipset save allset -f allset.txt

```

导入ipset规则:

```

ipset restore -f allset.txt

```

删除ipset:

```

ipset destroy allset

```

>> ipset的一个优势是集合可以动态的修改,即使ipset的iptables规则目前已经启动,新加的入ipset的ip也生效

实例

例: 某服务器被CC攻击,经过抓包或者一序列手段发现有一批IP是源攻击ip,由于ip较多,如果用iptables一条一条加就麻烦些了。

1. 确定IP

对TIME_WAIT的外部ip以及此对ip出现的次数经行求重排序:

```

netstat -ptan | grep TIME_WAIT | awk '{print $5}' | awk -F: '{print $1}' |sort |uniq -c | sort -n -r

```

tcpdump 抓取100个包,访问本机80的ip进行求重排序只显示前20个,数量多的ip可能为攻击源IP,我们需要封掉它:

```

tcpdump -tnn dst port 80 -c 100 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -n -r |head -20

```

2. 新建文件,加入这些ip

```

vim allset.txt

  add setname xxx.xxx.xxx.xxx

```

3. 导入文件到ipset集中

```

ipset restore -f allset.txt

```

4. 查看导入是否成功

```

ipset list

```

5. 建立iptables规则,拦截这些攻击ip访问服务器的80端口

```

iptables -I INPUT -m set --match-set allset src -p tcp --destination-port 80 -j DROP

```

回到刚开始的问题,发现`/var/log/secure`中存在大量恶意尝试登陆的IP,先筛选出这些IP:

```

cat /var/log/secure|grep "Failed password"| awk -F "from" '{print $2}' | awk -F "port" '{print $1}' | sort | uniq -c | sort -n -r |head -20

```

在将这些ip导入ipset中,建立屏蔽规则。如果恶意ip很频繁,可以把以上步骤编写为shell脚本加到crontab中,定期屏蔽这些ip。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容