linux的VPS相关安全设置

39次阅读
没有评论

均以Budgetvm的ubuntu系统为例

防止扫描

vps的root密码不要设置的太简单,这样很容易被攻破,你可以安装如下软件来降低vps被攻破的机会。

输入如下命令:

apt-get install fail2ban

提示如下表示安装完成:

root@241541:/# ~# apt-get install fail2banReading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  python-pyinotify
Suggested packages:
  python-gamin python-pyinotify-doc
The following NEW packages will be installed:
  fail2ban python-pyinotify
0 upgraded, 2 newly installed, 0 to remove and 62 not upgraded.
Need to get 154 kB of archives.
After this operation, 763 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe fail2ban all 0.8.11-1 [129 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty/main python-pyinotify all 0.9.4-1build1 [24.5 kB]
Fetched 154 kB in 0s (213 kB/s)
Selecting previously unselected package fail2ban.
(Reading database ... 28959 files and directories currently installed.)
Preparing to unpack .../fail2ban_0.8.11-1_all.deb ...
Unpacking fail2ban (0.8.11-1) ...
Selecting previously unselected package python-pyinotify.
Preparing to unpack .../python-pyinotify_0.9.4-1build1_all.deb ...
Unpacking python-pyinotify (0.9.4-1build1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
fopen: Permission denied
Setting up fail2ban (0.8.11-1) ...
 * Starting authentication failure monitor fail2ban                                                                                                                       [ OK ]
Setting up python-pyinotify (0.9.4-1build1) ...

这样如果用户5次密码输入错误,将会自动将其IP加到黑名单,禁止登录10分钟,10分钟后才可以再登录。

防止php木马

linux的VPS相关安全设置 通过设置限制php的 eval 函数来防止木马,可能会导致某些程序无法正常运行,目前在 Ubuntu 14.04 版本上测试通过。

编辑 /etc/php5/conf.d/suhosin.ini 文件,如果找不到这个文件,执行如下命令安装 php5-suhosin 模块

sudo apt-get install php5-suhosin

打开此文件后,找到行:

;suhosin.executor.eval.blacklist =

修改为:

suhosin.executor.eval.blacklist = include,include_once,require,require_once,curl_init,fpassthru,file,base64_encode,base64_decode,mail,exec,system,proc_open,leak,syslog,pfsockopen,shell_exec,ini_restore,symlink,stream_socket_server,proc_nice,popen,proc_get_status,dl, pcntl_exec, pcntl_fork, pcntl_signal,pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled,pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, socket_accept,socket_bind, socket_connect, socket_create, socket_create_listen,socket_create_pair,link,register_shutdown_function,register_tick_function

然后重启下 apache2 或 php5-fpm 即可

木马基本检查和手工清除

一般采用如下命令去检查有危险文件:

cd /var/www/
grep -R base64_decode *|more

如果看到类似这样的东西,就可以肯定中木马了:

eval(base64_decode("一大串无意义字母
或
eval(base64_decode($_POST["
或
eval(gzuncompress(base64_decode

最佳方案,重装系统,重新配置过。

也可以尝试使用下面的命令手工清除

find /var/www/ -name '*.php' -exec sed -i -r "s/eval.{0,10}\(.{0,10}base64_decode.*?\);//g" {} \;
find /var/www/ -name '*.php' -exec sed -i -r "s/eval.{0,10}\(.{0,10}gzuncompress.{0,10}\(.{0,10}base64_decode.*?\);//g" {} \;
find /var/www/ -name '*.php' -exec sed -i -r "s/eval.{0,10}\(.{0,10}stripslashes.*?\);//g" {} \;

然后继续检查有没有群发邮件的木马:

grep -R -E 'POST.*pfsockopen.*EHLO' /var/www/

发现后,如果确定是木马,采用如下命令批量删除木马文件:

grep -R -l -E 'POST.*pfsockopen.*EHLO' /var/www/ | xargs rm -f

查查 eval 和 fwrite 函数

grep -R -E 'REQUEST.*eval.*fwrite' /var/www/

发现后,如果确认是木马,采用如下命令批量删除木马文件:

grep -R -l -E 'REQUEST.*eval.*fwrite' /var/www/  | xargs rm -f

最后重点检查 包含 eval 函数的 php 文件

find . -name "*.php" -exec grep -l eval {} \;

如果发现有无意义的单词,多半也是中木马了,不过这种需要手工删除相关被感染代码。

根据访问日志批量封IP

有时候,我们可以去检查 HTTP 的访问日志发现异常,然后根据这些异常来封 IP。

首先检查异常, 关键词:xmlrpc.php ,下面的命令可以根据你的需求来调整关键词,其中 access.log 为你的 HTTP 的访问日志文件,可以根据实际情况修改。

执行下面的命令,可以显示所有的 IP 地址,来进行查看:

cat access.log | grep "xmlrpc.php" | awk '{print $1}' | sort | uniq

确认无误后,执行下面的命令进行封禁:

cat access.log | grep "xmlrpc.php" | awk '{print $1}' | sort | uniq | xargs -n1 -I {} iptables -A INPUT -p tcp --dport 80 -s {}/32 -j DROP

执行完毕后,可以使用如下命令查看封禁结果:

iptables -L

注意,上面只是临时封禁,如果重启VPS,将会清空规则。

关闭邮件服务

由于国外对发垃圾邮件的处罚很重,会导致 VPS 被终止,所以为了防止误发邮件或被木马、黑客利用,如果你不需要发送邮件,则关闭邮件服务:

1 删除邮件服务 执行如下命令删除服务器的邮件程序:

apt-get remove postfix* sendmail* procmail*

2 防火墙屏蔽邮件转发 执行如下命令屏蔽邮件端口转发:

iptables -I FORWARD -p tcp --dport 25 -j DROP
sed -i '$i\iptables -I FORWARD -p tcp --dport 25 -j DROP' /etc/rc.local
吾爱互联
版权声明:本站原创文章,由 吾爱互联2016-09-29发表,共计3647字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
载入中...