社会专题
靓丽女人 黑白社会 硬件网络 天下军事 教育咨询 星新一代 汽车电子 幽默笑话 农村特色 有书有道 软件技术 玄幻奇幻 办公达人 便民服务 免费资源 代码效果 美文园地 寻医问药 健康保健 时尚酷玩 天文地理 科技科幻 美食天下 游山玩水 历史天空 制作教程
FLASH频道
女生游戏 益智游戏 有声艺术 有声故事 电脑运用 休闲游戏 MTV类 运动游戏
聚划算
商旅游玩 装潢装饰 家电家具 服装服饰 健康保健 二手特色 生活必备 数码产品
映讯频道
喜剧片 国内片 情感片 动作片 战争片 纪录之窗 欧美剧集 明星云集 动漫片 港澳台剧 大陆剧 科幻片 恐怖片 浓缩电影 教育教学 艺术无界 一技之长 邻国热剧
下载中心
音体美合 信息社政 英语外语 科学自然 常用软件 语文数学 手机软件 红绿软件
图片中心
制作美图 生活图片 美女欣赏 实物图片 艺术欣赏 风景欣赏
领券购
热销女装 热血男装 生活必须 电子电器 手机电脑 旅游出行 学习艺术 吃货优选
新闻中心
一语惊人 奇闻趣事 热点专栏 曝光台 消费警示 今日观察 IT业界 消费主张 动态备忘 专利之窗
关闭
当前位置:首页社会专题硬件网络
如何最大程度保证服务器安全

20个Nginx Web服务器最佳安全技术

Nginx是一个轻量级,高性能的Web服务器/反向代理和电子邮件代理(IMAP/POP3),它可以运行在UNIX,GNU/Linux,BSD变种,MAC OS X,Solaris和Microsoft Windows上。根据Netcraft的调查数据显示,互联网上6%的域名都使用了Nginx Web服务器。Nginx是解决C10K问题的服务器之一,与传统服务器不一样,Nginx不依赖于线程处理请求,相反,它使用了一个更具扩展性的事件驱动(异步)架构。Nginx在很多高流量网站上得到了应用,如WordPress,Hulu,Github和SourceForge。

本文的主要目是介绍如何提高运行在Linux或UNIX类操作系统上的Nginx Web服务器的安全性。

Nginx默认配置文件和默认端口

◆ /usr/local/nginx/conf/ - Nginx服务器配置目录,/usr/local/nginx/conf/nginx.conf 是主配置文件

◆ /usr/local/nginx/html/ - 默认文档位置

◆ /usr/local/nginx/logs/ - 默认日志文件位置

◆ Nginx HTTP默认端口:TCP 80

◆ Nginx HTTPS默认端口:TCP 443

可以使用下面的命令测试Nginx的配置是否正确:

# /usr/local/nginx/sbin/nginx –t

输出示例:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

configuration file /usr/local/nginx/conf/nginx.conf test is successful

要让修改后的配置生效,执行下面的命令:

# /usr/local/nginx/sbin/nginx -s reload

如果要停止服务器,运行:

# /usr/local/nginx/sbin/nginx -s stop

1、开启SELinux

SELinux(安全增强的Linux)是一个Linux内核功能,它提供了一个机制支持访问控制安全策略,提供了巨大的安全保护能力,它可以防止大多数系统root级攻击,请参考“如何在CentOS/Red Hat系统上开启SELinux”(http://www.cyberciti.biz/faq/rhel-fedora-redhat-selinux-protection/)。

运行getsebool –a命令查看SELinux设置项:

getsebool -a | less

getsebool -a | grep off

getsebool -a | grep o

然后使用setsebool命令开启需要的配置项,注意:开启SELinux后,在RHEL或CentOS上通常会增加2-8%的系统开销。

2、通过mount参数提供最低权限

为你的/html/php文件创建独立的分区,例如,创建一个/dev/sda5分区挂载在/ngnix上,确定/ngnix使用了noexec,nodev和nosetuid权限挂载。下面是我的一个挂载实例:

LABEL=/nginx    

/nginx          

ext3  

defaults,nosuid,noexec,nodev 1 2

注意你需要使用fdisk和mkfs.ext3命令创建一个新分区。

3、通过/etc/sysctl.conf加固

可以通过/etc/sysctl.conf控制和配置Linux内核及网络设置。

另外,请参考:

# 避免放大攻击

net.ipv4.icmp_echo_ignore_broadcasts = 1

# 开启恶意icmp错误消息保护

net.ipv4.icmp_ignore_bogus_error_responses = 1

# 开启SYN洪水攻击保护

net.ipv4.tcp_syncookies = 1

# 开启并记录欺骗,源路由和重定向包

net.ipv4.conf.all.log_martians = 1

net.ipv4.conf.default.log_martians = 1

# 处理无源路由的包

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0# 开启反向路径过滤

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

# 确保无人能修改路由表

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

net.ipv4.conf.all.secure_redirects = 0

net.ipv4.conf.default.secure_redirects = 0

# 不充当路由器

net.ipv4.ip_forward = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

# 开启execshild

kernel.exec-shield = 1

kernel.randomize_va_space = 1

# IPv6设置

net.ipv6.conf.default.router_solicitations = 0

net.ipv6.conf.default.accept_ra_rtr_pref = 0

net.ipv6.conf.default.accept_ra_pinfo = 0

net.ipv6.conf.default.accept_ra_defrtr = 0

net.ipv6.conf.default.autoconf = 0

net.ipv6.conf.default.dad_transmits = 0

net.ipv6.conf.default.max_addresses = 1

# 优化LB使用的端口

# 增加系统文件描述符限制

fs.file-max = 65535

# 允许更多的PIDs (减少滚动翻转问题); may break some programs 32768

kernel.pid_max = 65536

# 增加系统IP端口限制

net.ipv4.ip_local_port_range = 2000 65000

# 增加TCP最大缓冲区大小

net.ipv4.tcp_rmem = 4096 87380 8388608

net.ipv4.tcp_wmem = 4096 87380 8388608

# 增加Linux自动调整TCP缓冲区限制

# 最小,默认和最大可使用的字节数

# 最大值不低于4MB,如果你使用非常高的BDP路径可以设置得更高

# Tcp窗口等

net.core.rmem_max = 8388608

net.core.wmem_max = 8388608

net.core.netdev_max_backlog = 5000

net.ipv4.tcp_window_scaling = 1

◆ Linux VM调优(内存)子系统(http://www.cyberciti.biz/faq/linux-kernel-tuning-virtual-memory-subsystem/)

◆ Linux网络堆栈调优(缓冲区大小)提高网络性能(http://www.cyberciti.biz/faq/linux-tcp-tuning/)

4、移除所有不需要的Nginx模块

你需要最大限度地将Nginx加载的模块最小化,我的意思是满足Web服务器需要就可以了,多余的模块一个不留,例如,禁用SSI和autoindex模块的命令如下:

# ./configure --without-http_autoindex_module --without-http_ssi_module

# make

# make install

提示:输入修改代码都可运行!
1
酒精度
97
顶一下
相关阅读
内容加载中……