iptables 访问控制规则两则

标签: Linux | 发表时间:2012-12-08 21:36 | 作者:依云
出处:http://lilydjwg.is-programmer.com/

防 ssh 暴力破解

一直以来,面对 Vim 显示的 auth.log 里满屏的红色 ssh 登录失败记录,要么容忍,要么换端口号,要么是 fail2ban。换端口号显然会造成很多不便,尤其是使用者比较多的时候。fail2ban 以前也用得挺好的,但是需要手工编辑配置文件,阅读其中长长的注释并且小心翼翼地修改参数。配置好之后还会经常收到 fail2ban 发出的邮件。这些都可以忍受。直到有一天,某位使用者不小心登录失败多次以后,那个 IP 被封掉了。我从 /etc/hosts.deny 中删除了对应的项目,但是没有用,因为 fail2ban 会去检查 auth.log,然后把那个 IP 给加回去……

前两天本来是寻找限速的命令的,却无意之中看到了防 ssh 暴力破解的命令,如下:

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

第一句是说,对于外来数据,如果是 TCP 协议,目标端口号是 22,网络接口是 eth0,状态是新连接,那么把它加到最近列表中。第二句是说,对于这样的连接,如果在最近列表中,并且在 60 秒内达到或者超过四次,那么丢弃该数据。其中的 -m是模块的意思。

也就是说, 如果有人从一个 IP 一秒内连接尝试四次 ssh 登录的话,那么它就会被加入黑名单,后续连接将会被丢弃。这是对付 ssh 暴力破解的绝佳规则了。不用修改 openshh,也不用另启一个容易招麻烦的服务。不过不知道多久以后那个 IP 才能重新连接上。

我实际使用时正有一北京 IP 在尝试 ssh 登录。命令执行后,auth.log 里的红色失败消息又出现了四次,然后就没有了。后来再查看时,虽然还是能看到不少红色,但是没有以前那么密集了。更重要的是,每四条登录失败消息间的时间间隔比较大了。可谓效果显著啊。

网络限速

这是我这次搜索 iptables 相关信息的本意。起因是这样子的,在本地测试的时候,经常会发现本地连接的速度实在是太快了。对于网站,不能反映其真实的使用体验;对于网络程序,无法测试其在网络不良时的表现,由于测试的规模小,一些真实使用时容易出现的竞态也由于操作完成得太快而无法重现。

很早就知道 iptables 能够对转发流量进行限速。既然是 iptables 而不是某些商业软件,它就没理由只能对外部流量而不对本地接口 lo 进行限速。于是最后弄到如下命令:

iptables -A INPUT -s 127.0.0.1 -p tcp --dport -d 127.0.0.1 6900:6901 -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -p tcp --dport -d 127.0.0.1 6900:6901 -j DROP

这两条规则组合起来是说,对于所有从 127.0.0.1 到同样的地址的 6900 到 6901 端口的 TCP 连接,每秒只接受一个数据包,多余的丢弃。后边那句是必要的,如果不写的话就没作用了,因为默认策略是接受。

要注意的是,如果使用域名 localhost的话,很可能会使用 IPv6 地址 ::1而不是 127.0.0.1了。

参考链接

相关 [iptables 访问控制 规则] 推荐:

iptables 访问控制规则两则

- - 依云's Blog
一直以来,面对 Vim 显示的 auth.log 里满屏的红色 ssh 登录失败记录,要么容忍,要么换端口号,要么是 fail2ban. 换端口号显然会造成很多不便,尤其是使用者比较多的时候. fail2ban 以前也用得挺好的,但是需要手工编辑配置文件,阅读其中长长的注释并且小心翼翼地修改参数. 配置好之后还会经常收到 fail2ban 发出的邮件.

Shadowsocks屏蔽端口iptables规则

- - 深度VPS
Shadowsocks经常被人滥发垃圾邮件之类的而被暂停服务. 我们仅需保留SSH,SQL,DNS,HTTP和HTTPS这些主要端口,其它的用iptables做下限制,这样就高枕无忧了. 请把你的SSH22端口改了.

iptables规则的查看、添加、删除和修改

- - haohtml's blog
这里只列出比较常用的参数,详细的请查看man iptables. -L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数. -n 不对ip地址进行反查,加上这个参数显示速度会快很多. -v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口.

iptables NAT 学习

- - BlogJava-首页技术区
为了搞清楚iptables NAT的过程,做了这个实验. 使用了1台双网卡服务器和1台单网卡服务器,2个网段. 1.       为了看到调度服务器上的数据转发过程,首先在调度服务器上分出内核的debug日志:. l 在/etc/rsyslog.conf最后增加:kern.debug /var/log/iptables.log.

iptables 小结

- - CSDN博客系统运维推荐文章
        最近工作上一个作业用到了iptables命令,主要进行端口映射,在网上查了好多资料,尽管有很多例子,但还是整了好几天才整明白. (有一些是从网络中总结的,不断完善中...). (1) iptables简介.            iptables是一个Linux下优秀的nat+防火墙工具,iptables操作的是2.4以上内核的netfilter,所以需要linux的内核在2.4以上.

iptables 详解

- - 行业应用 - ITeye博客
以下文章转载于:http://blog.chinaunix.net/uid-26495963-id-3279216.html. 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种. 无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘. 而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测.

iptables原理说明

- - CSDN博客互联网推荐文章
1.iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具. 2. 作者一共在内核空间中选择了5个位置,.     1).内核空间中:从一个网络接口进来,到另一个网络接口去的.     2).数据包从内核流入用户空间的.

iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链

- - Linux - 操作系统 - ITeye博客
转自:http://lesca.me/archives/iptables-examples.html. 一、iptables:从这里开始. iptables的filter表中有三种链:INPUT, FORWARD和OUTPUT. 默认的链策略是ACCEPT,你可以将它们设置成DROP. #一般出站连接设置为ACEEPT,看需求.

HBase 之访问控制

- gengmao - Trend Micro CDC SPN Team
构建和运维HBase集群是一个非常有挑战性的工作. HBase凭借其在海量数据的良好的扩展性和高效的读写能力,受到越来越多公司的重视. 在公司里,HBase越来越受欢迎. 希望通过HBase读写数据的产品越来越多,在兴奋之余,头疼的问题也来了. 毕竟,作为线上的产品,我们不希望过多人随意的访问,会照成很多潜在的风险,比如误删,误操作.

linux下IPTABLES配置详解

- - Linux - 操作系统 - ITeye博客
作者博客:http://www.cnblogs.com/JemBai/. 原文地址:http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html. 如果你的IPTABLES基础知识还不了解,建议先去看看. 我们来配置一个filter表的防火墙.