linux之nginx安全讲解

Jonty
2013-03-01 / 0 评论 / 99 阅读 / 正在检测是否收录...

nginx大家了解了一部分了,就剩下代理和负载均衡没讲,看看论坛中对linux喜欢的也不是太多,所以就没继续了,就讲了前四课,开始吧...

一、nginx安全

1、配置文件安全

nginx 1.3默认有个解析漏洞,所以我们需要修改下配置文件

service nginx reload

在配置文件中,修改error,防止版本泄漏...

2、目录安全

yum install acl来进行安装

tmp默认是777的权限,一般拿到shell后都会放在tmp下进行反弹,做好权限

3.用户安全

默认nginx是nobody,修改权限



以上是最简单的一个安全修改方式吧,其实还有很多很多...

二、针对问题

今天一个朋友问我,真对各种攻击该怎么防御,怎么去操作,下面就针对这个问题进行个人看法...

1、ddos攻击,采用的是UDP、SYN洪水等之类的,小规模的可以采用cdn加速,具体怎么配置,可以谷歌、百度

2、通过nginx日志查看非法IP,然后进行访问,可以先建立break.list,然后在配置文件中加一句

include break.list

然后重启服务就可以了,把要拒绝的ip全部放到break.list里面

3、服务器多的话可以做负载均衡,可以做限制,10秒内访问多次的,自动跳转到别的服务器,这样可以抵抗一些简单的数据流

三、linux运维下常用的命令

1,查看nginx进程:
ps aux | grep nginx | grep -v grep | wc -l
2,查看80端口的tcp连接:
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
3,通过日志查看当天ip连接数,过滤重复:
cat www.example.com-access.log | grep "26/February/2013" | awk '{print $$2}' | sort | uniq -c | sort -nr
4,当天ip连接数最高的ip都在干些什么(原来是蜘蛛):
cat www.example.com-access.log | grep "26/February/2013:00" | grep "122.102.7.212" | awk '{print $$8}' | sort | uniq -c | sort -nr | head -n 10
5,当天访问页面排前10的url:
cat www.example.com-access.log | grep "26/February/2013:00" | awk '{print $$8}' | sort | uniq -c | sort -nr | head -n 10
6,用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $$1"."$$2"."$$3"."$$4}' | sort | uniq -c | sort -nr

接着从日志里查看该ip在干嘛:
cat www.example.com-access.log | grep 122.102.7.212| awk '{print $$1"\t"$$8}' | sort | uniq -c | sort -nr | less
7,查看某一时间段的ip连接数:
grep "2013:0[7-8]" www.example.com-access.log | awk '{print $$2}' | sort | uniq -c| sort -nr | wc -l
==============================nginx
log_format main '[$$time_local] $$remote_addr $$status $$request_time $$body_bytes_sent "$$request" "$$http_referer"';
access_log /var/log/nginx/www.example.com-access.log main;
格式如下:
[26/February/2013:11:52:15 +0800] 58.60.188.61 200 0.265 28 "POST /event/time HTTP/1.1" "http://host/loupan/207846/feature"
通过日志查看当天ip连接数,过滤重复
cat www.example.com-access.log | grep "26/February/2013" | awk '{print $$3}' | sort | uniq -c | sort -nr
38 112.97.192.16
20 117.136.31.145
19 112.97.192.31
3 61.156.31.20
2 209.213.40.6
1 222.76.85.28
当天访问页面排前10的url:
cat www.example.com-access.log | grep "26/February/2013" | awk '{print $$8}' | sort | uniq -c | sort -nr | head -n 10
找出访问次数最多的10个IP
awk '{print $$3}' www.example.com-access.log |sort |uniq -c|sort -nr|head
10680 10.0.21.17
1702 10.0.20.167
823 10.0.20.51
504 10.0.20.255
215 58.60.188.61
192 183.17.161.216
38 112.97.192.16
20 117.136.31.145
19 112.97.192.31
6 113.106.88.10
找出某天访问次数最多的10个IP
cat /tmp/access.log | grep "26/February/2013" |awk '{print $$3}'|sort |uniq -c|sort -nr|head
38 112.97.192.16
20 117.136.31.145
19 112.97.192.31
3 61.156.31.20
2 209.213.40.6
1 222.76.85.28
当天ip连接数最高的ip都在干些什么:
cat www.example.com-access.log | grep "10.0.21.17" | awk '{print $$8}' | sort | uniq -c | sort -nr | head -n 10
224 /test/themes/default/img/logo_index.gif
224 /test/themes/default/img/bg_index_head.jpg
224 /test/themes/default/img/bg_index.gif
219 /test/vc.php
219 /
213 /misc/js/global.js
211 /misc/jsext/popup.ext.js
211 /misc/js/common.js
210 /sladmin/home
197 /misc/js/flib.js
找出访问次数最多的几个分钟
awk '{print $$1}' www.example.com-access.log | grep "26/February/2013" |cut -c 14-18|sort|uniq -c|sort -nr|head
24 16:49
19 16:17
16 16:51
11 16:48
4 16:50
3 16:52
1 19:09
1 19:05
1 19:03
1 18:55

!!!
<div id='custom-copyright' data-title='黑客反病毒' data-href='http://bbs.hackav.com'></div>!!!
本文共 522 个字数,平均阅读时长 ≈ 2分钟
0

打赏

海报

正在生成.....

评论 (0)

取消