返回首页
当前位置: 主页 > 精通Office > Ubuntu教程 >

利用iptables让SSH服务对陌生人说不

时间:2012-05-02 21:03来源:知行网www.zhixing123.cn 编辑:麦田守望者

今晚老师跟我说服务器的Web挂了,但是FTP可以用。我登录了这个OpenVZ的VPS,发现nginx进程没了。为什么会发生这么神奇的事情呢?
我在/var/log/nginx下翻了日志文件,没有发现任何出错信息。然后想会不会是系统内存超了,被OpenVZ内核KILL了呢?查了一下,果然发现:
uid resource held maxheld barrier limit failcnt
3004536: kmemsize 3626521 4652581 51200000 51200000 0
lockedpages 0 0 2048 2048 0
privvmpages 34041 131231 131200 262200 3
shmpages 1281 1297 128000 128000 0

私有虚拟页面privvmpages的数值超了,有3次失败请求。一个页面4KB,所以这个VPS的内存是512M.

我在这个VPS上只开启了nginx,vsftpd,mysqld,php-cgi,xxfpm等服务,不可能占用那么多内存吧。php的进程数量是用自己写的xxfpm限制死了,只能有3个进程。这些所有的服务一共才占用100多MB内存,怎么可能超了512M呢?

而nginx占用的内存真的很小呀,

root 22333 0.0 0.1 4988 716 ? Ss Apr29 0:00 nginx: master process /usr/sbin/nginx
www-data 22334 0.0 0.3 5524 1740 ? S Apr29 0:00 nginx: worker process
再看了一下/var/log下的日志文件,发现auth.log文件体积很大,我开始怀疑是不是被枚举root密码了。因为sshd会给每个连接fork一个进程,所以当被大量攻击的时候,ssh的进程会变得很多!至于sshd自身有没有对这个数量进行限制,我不是很清楚!
...
Apr 29 11:39:02 293621 CRON[21809]: pam_unix(cron:session): session closed for user root
Apr 29 12:09:01 293621 CRON[21843]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 12:09:01 293621 CRON[21843]: pam_unix(cron:session): session closed for user root
Apr 29 12:25:01 293621 CRON[21861]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 12:25:01 293621 CRON[21861]: pam_unix(cron:session): session closed for user root
Apr 29 12:28:58 293621 sshd[21867]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=208.115.207.253 user=root
Apr 29 12:28:58 293621 sshd[21866]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=208.115.207.253 user=root
Apr 29 12:29:01 293621 sshd[21867]: Failed password for root from 208.115.207.253 port 58931 ssh2
Apr 29 12:29:01 293621 sshd[21866]: Failed password for root from 208.115.207.253 port 56639 ssh2
Apr 29 12:39:01 293621 CRON[21879]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 12:39:01 293621 CRON[21879]: pam_unix(cron:session): session closed for user root
Apr 29 13:09:01 293621 CRON[21913]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 13:09:01 293621 CRON[21913]: pam_unix(cron:session): session closed for user root
Apr 29 13:25:01 293621 CRON[21931]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 29 13:25:01 293621 CRON[21931]: pam_unix(cron:session): session closed for user root
Apr 29 13:39:01 293621 CRON[21947]: pam_unix(cron:session): session opened for user root
...

为了对付这种攻击,网上查了,有关于限制IP、用户连接数的,也有关于取消root账户密码登录,采用证书认证的,之前写过一篇文章免口令登录远程SSH服务就是使用证书登录的。但是我觉得最有效的方法就是在防火墙里设置IP白名单了。这样既避免了产生大量的流量,也不会产生sshd的连接进程。

所以,果断iptables,添加两个我常用的IP段,其他网段的数据包都DROP了,而不是REJECT(REJECT还要发送ICMP回应包给连接方)。

# iptables -A INPUT -p tcp --dport 22 -s 120.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 183.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
尝试在另外一个机子连接这个VPS,数据包被成功DROP了。

root@293621:~# iptables -vL
Chain INPUT (policy ACCEPT 36 packets, 6257 bytes)
pkts bytes target prot opt in out source destination
222 16280 ACCEPT tcp -- any any 120.0.0.0/8 anywhere tcp dpt:ssh
0 0 ACCEPT tcp -- any any 183.0.0.0/8 anywhere tcp dpt:ssh
4 240 DROP tcp -- any any anywhere anywhere tcp dpt:ssh
So, 希望nginx不会再崩了

------分隔线----------------------------
标签(Tag):Ubuntu Linux Android 操作系统 Unix fedora debian
------分隔线----------------------------
推荐内容
  • 折腾之安装 Ubuntu 系统

    昨天中午突然心血来潮想装个 linux 系统玩玩,在听取别人的意见后装了 Ubuntu,163镜...

  • Ubuntu 环境下 MySQL 安装与安全优化

    安装 sudo apt- get updatesudo apt- get install mysql-server mysql-client # 设置r...

  • TortoiseGit安装教程及在windows下提交代码到github

    TortoiseGit 是Windows下的可视化Git界面.在windows下使用git最好的软件就是TortoiseG...

  • xshell的使用技巧

    一、帐号密码保存 可以保存多个vps登陆信息,免去每次输入的烦恼。 二、数字小键盘输...

  • kipmi0进程占用cpu高的问题及处理办法

    近期有同事反馈部分机器中kipmi0 占用cpu100%的情况,整理了以下相关资料共大家参考 i...

  • Ubuntu 18.04如何在不重启的情况下安装内核更新

    使用 Ubuntu 18.04 LTS 将使得 Linux 内核实时修补功能变得非常容易,实时修补(Live p...

  • 猜你感兴趣
  • 教育技术学动态
  • 教育技术学论文
  • 理论研究
  • 应用研究
  • 资源收藏
  • 百家观点
  • 英文文献
  • 中国电化教育
  • 电化教育研究
  • 中国远程教育
  • 开放教育研究
  • 现代教育技术
  • 远程教育杂志
  • 现代远距离教育
  • 中国教育信息化
  • 中国信息技术教育
  • 中小学信息技术
  • Flash龙8国际平台入口
  • Photoshop龙8国际平台入口
  • 3DMAX龙8国际平台入口
  • AutoCAD龙8国际平台入口
  • CorelDRAW龙8国际平台入口
  • Matlab龙8国际平台入口
  • 其他龙8国际平台入口
  • .Net龙8国际平台入口
  • Asp龙8国际平台入口
  • Php龙8国际平台入口
  • Jsp龙8国际平台入口
  • Ajax龙8国际平台入口
  • Android教程
  • 其他龙8国际平台入口
  • Word教程
  • Excel教程
  • PowerPoint教程
  • Ubuntu教程
  • 其他教程
  • 课件下载
  • 软件下载
  • 视频教程下载
  • 其他下载
  • 教案大全
  • 试题大全
  • 课件大全
  • 其他大全
  • 人像摄影
  • 风光摄影