一、前言
在北京某酒店项目,酒店请了专业系统安全检测公司对整个酒店的网络进行了扫码。其中,有几个是涉及到nginx服务的。为了满足客户需要,同时也是对vod服务器进行必要的安全加固,对ISTV产品来说也是有益的。
在解决酒店提出的安全性问题的同时,在耗用较少工作量和不改变产品代码的前提下,也对性能进行了nginx简单的优化。
二、nginx具体优化项
2.1 全局配置,nginx对外提供web服务的worker进程数,一般设置为cpu核数或cpu核数*2;我们通过安装脚本对其修改。
2.2 全局配置,worker_rlimit_nofile 102400;
更改worker进程的最大打开文件限制,因为我在内核参数优化的时候,把系统的最大打开文件数设置为65535,所以我把这个数字也调整了,由原来的8K多修改到102400,比系统限制稍微大一些,尽量利用系统能力,不出现open too many files这种情况。
2.3 events模块,修改worker_connections,由原来的8k多降低到4096,因为worker_connections
是一个worker进程同时打开的最大连接数,我们是多进程的(现在的服务器是48个进程),能够看出来,之前的设置,完全是单核年代的设置。
2.4 events模块,增加use epoll,调整IO模型,因为默认使用selected,但是自linux2.6内核以后,是支持更高的epoll模型的,所以我们这里选择epoll,提升效率。
2.5 http模块,增加server_tokens off;
关闭显示nginx版本,无论查看head头信息还是访问错误页面,都不会出现nginx版本信息,提高安全性。
2.6 http模块,sendfile on; tcp_nopush on;这两个要配合使用,提高传输效率,原来的配置中没有tcp_nopush项。
2.7 location模块,在/movie下,也就是我们实际的根目录下,增加autoindex off;autoindex_exact_size off;autoindex_localtime off;三项,禁止显示路径下的下一级路径名、文件名、文件大小、修改时间,提高安全性。
三、samba具体优化项
3.1 在smb.conf中的global下,增加restrict anonymous = 2,禁止用匿名用户访问samba服务器,提高安全性;在另一台linux服务器上(安装了smbclient),可以通过smbclient -L //IP来测试是否匿名用户是否可以登录。
3.2 在smb.conf中的global下,增加nt pipe support = no,应对Samba远程代码执行漏洞(CVE-2017-7494)。
3.3 在smb.conf中的global下,还可以通过hosts allow = IP,来限制访问来源,进一步增强安全性。