nginx安全加固

以下配置皆可按需求添加

1.封杀各种user-agent

每个正常的web请求都包含用户的浏览器信息,除非经过伪装,恶意扫描工具一般都会在user_agent里留下某些特征字眼,比如scan,nmap等。可以利用正则匹配这些字眼,从而达到过滤的目的,根据需要调整

if ($http_user_agent ~* “java|python|perl|ruby|curl|bash|echo|uname|base64|decode|

md5sum|select|concat|httprequest|httpclient|nmap|scan” ) {

return 403;

}

if ($http_user_agent ~* “” ) {

return 403;

}

2.封杀特定url路径——特定的文件扩展名,如*.bak

location ~* \.(bak|save|sh|sql|mdb|svn|git|old)$ {

rewrite ^/(.*)$ $host permanent;

}

3.封杀特定的http方法和行为

if ($request_method !~ ^(GET|POST|HEAD)$ ) {

return 405;

}

if ($http_range ~ “\d{9,}”) {

return 444;

}

4.强制网站使用域名访问

if ( $host !~* ‘linux666.cn’ ) {

return 403;

}

5.url参数过滤敏感字

if ($query_string ~* “union.*select.*\(“) {

rewrite ^/(.*)$ $host permanent;

}

if ($query_string ~* “concat.*\(“) {

rewrite ^/(.*)$ $host permanent;

}

6.强制要求referer

if ($http_referer = “” ) {

return 403;

}

7.封杀IP,例如

yum install ipset

ipset create badip hash:net maxelem 65535

iptables -I INPUT -m set –match-set badip src -p tcp –dport 80 -j DROP

/etc/init.d/iptables save

ipset add badip 1.1.1.1

ipset add badip 2.2.2.1/24

/etc/init.d/ipset save

8.目录只读(以Apache为例)

mkdir -p /data

mkdir -p /var/www/html

mount –bind /data /var/www/html

mount -o remount,ro –bind /data /var/www/html

发表评论

电子邮件地址不会被公开。 必填项已用*标注