SSH和谐主机的iptables设置参考

这是一个关于SSH番羽土啬的话题,标题及文中的“和谐”=“番羽土啬”,感叹一下我们的文字。

因为21现在手上的VPS数量比较乐观(不是壮观……),因此其中有专司VPN和谐的、SSH和谐的、第三方推和谐的等用途,当然,Mr. 21博客也在其中一个VPS上,用的LNMP包。

写这个话题的起因是这样的,在北山老卫大神的Q群里面,有人提到了想以SSH和谐帐号来换取一些东西,因此引发了21对此的讨论。我的主要观点是不支持这么做,因为不安全(可以参考《利用Linux内核的多个安全漏洞提权》,不过本文内容与此关系不大),加上之前帮番茄童鞋配置iptables,因此引发了21对SSH和谐主机安全方面的思考,其中的一方面就是用iptables来过滤不和谐的东西。

是这样的,因为做实验的这个VPS我只用于SSH和谐,并且一般和谐仅限于Web浏览及各种基于Web的应用,所以,以下策略仅开放SSH的22端口并对其它的东西做了相应的限制。

初始化防火墙

第一步,我们总是要把一些知道的和不知道的先通通打倒了再说,于是,请如此:

以上是一些初始化的动作,以下是具有具体功能的策略。

防火墙规则参考一

这几条规则实现的效果是:

  1. 22端口允许用户主动发起TCP连接,一般用于提供SSH服务,如果你的SSH端口不是22,请修改;
  2. 其它端口需要ESTABLISHED、RELATED两种状态的数据包才能通过,而通常这两种状态的数据包在TCP协议上的定义是已经建立了连接的后续数据包,也就说,别人无法对你的任何端口主动发起连接,但是由你主动发起连接的数据包可以通过,比如说看网页的数据;
  3. 包状态NEW允许SSH用户对外的主动发起连接;
  4. 允许外部用户PING本机,这个嘛,方便自己测试,要不挂了都不知道。
  5. 关于数据包状态,我是参考这里 http://liubin.blog.51cto.com/282313/110394

这样,虽然防住了外面进来的问题,但一定程度上来说,用户通过SSH登录以后就可以干他想干的事情了,对于应用的范围不能达到一个控制的目的,比如说,我前面提到的“一般和谐仅限于Web浏览及各种基于Web的应用”,是的,和谐嘛,也就是用这些了,顶天了再来个FTP或者跳板另外的SSH,于是,21便想到了稍微BT一点的限制,请看参考二。
Continue reading SSH和谐主机的iptables设置参考