|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!Nginx是一个轻量级的,高功能的Web办事器和反向代办署理和邮箱(IMAP/POP3)代办署理办事器。它运转在UNIX,GNU/Linux,BSD各类版本,MacOSX,Solaris和Windows。依据查询拜访统计,6%的网站利用NginxWeb办事器。Nginx是多数能处置C10K成绩的办事器之一。跟传统的办事器分歧,Nginx不依附线程来处置哀求。相反,它利用了更多的可扩大的事务驱动(异步)架构。Nginx为一些高流量的网站供应动力,好比WordPress,大家网,腾讯,网易等。这篇文章次要是先容怎样进步运转在Linux或UNIX体系的NginxWeb办事器的宁静性。
默许设置文件和Nginx端口
- /usr/local/nginx/conf/-Nginx设置文件目次,/usr/local/nginx/conf/nginx.conf是主设置文件
- /usr/local/nginx/html/-默许网站文件地位
- /usr/local/nginx/logs/-默许日记文件地位
- NginxHTTP默许端口:TCP80
- NginxHTTPS默许端口:TCP443
你可使用以下下令来测试Nginx设置文件正确性。
[size=1em][size=1em]1
[size=1em][size=1em]/usr/local/nginx/sbin/nginx-t
将会输入。
theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok
configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful
实行以下下令来从头加载设置文件。
[size=1em][size=1em]1
[size=1em][size=1em]/usr/local/nginx/sbin/nginx-sreload
实行以下下令来中断办事器。
[size=1em][size=1em]1
[size=1em][size=1em]/usr/local/nginx/sbin/nginx-sstop
1、设置SELinux
宁静加强型Linux(SELinux)的是一个Linux内核的功效,它供应撑持会见把持的宁静政策回护机制。它能够年夜局部的打击。上面我们来看怎样启动基于CentOS/RHEL体系的SELinux。
装置SELinux
[size=1em][size=1em]1
[size=1em][size=1em]rpm-qa|grepselinux
libselinux-1.23.10-2
selinux-policy-targeted-1.23.16-6
假如没有前往任何了局,代表没有装置SELinux,假如前往了相似下面的了局,则申明体系装置了SELinux。
布什值锁定
运转下令getsebool-a来锁定体系。
[size=1em][size=1em]1
[size=1em]2
[size=1em]3
[size=1em][size=1em]getsebool-a|less
[size=1em]getsebool-a|grepoff
[size=1em]getsebool-a|grepo
2、经由过程分区挂载同意起码特权
办事器上的网页/html/php文件独自分区。比方,新建一个分区/dev/sda5(第一逻辑分区),而且挂载在/nginx。确保/nginx是以noexec,nodevandnosetuid的权限挂载。以下是我的/etc/fstab的挂载/nginx的信息:
LABEL=/nginx/nginxext3defaults,nosuid,noexec,nodev12
注重:你必要利用fdisk和mkfs.ext3下令创立一个新分区。
3、设置/etc/sysctl.conf强化Linux宁静
你能够经由过程编纂/etc/sysctl.conf来把持和设置Linux内核、收集设置。
[size=1em][size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
[size=1em]5
[size=1em]6
[size=1em]7
[size=1em]8
[size=1em]9
[size=1em]10
[size=1em]11
[size=1em]12
[size=1em]13
[size=1em]14
[size=1em]15
[size=1em]16
[size=1em]17
[size=1em]18
[size=1em]19
[size=1em]20
[size=1em]21
[size=1em]22
[size=1em]23
[size=1em]24
[size=1em]25
[size=1em]26
[size=1em]27
[size=1em]28
[size=1em]29
[size=1em]30
[size=1em]31
[size=1em]32
[size=1em]33
[size=1em]34
[size=1em]35
[size=1em]36
[size=1em]37
[size=1em]38
[size=1em]39
[size=1em]40
[size=1em]41
[size=1em]42
[size=1em]43
[size=1em]44
[size=1em]45
[size=1em]46
[size=1em]47
[size=1em]48
[size=1em]49
[size=1em]50
[size=1em]51
[size=1em]52
[size=1em]53
[size=1em]54
[size=1em]55
[size=1em]56
[size=1em]57
[size=1em]58
[size=1em]59
[size=1em]60
[size=1em]61
[size=1em]62
[size=1em]63
[size=1em]64
[size=1em]65
[size=1em]66
[size=1em]67
[size=1em][size=1em]#Avoidasmurfattack
[size=1em]net.ipv4.icmp_echo_ignore_broadcasts=1
[size=1em]
[size=1em]#Turnonprotectionforbadicmperrormessages
[size=1em]net.ipv4.icmp_ignore_bogus_error_responses=1
[size=1em]
[size=1em]#TurnonsyncookiesforSYNfloodattackprotection
[size=1em]net.ipv4.tcp_syncookies=1
[size=1em]
[size=1em]#Turnonandlogspoofed,sourcerouted,andredirectpackets
[size=1em]net.ipv4.conf.all.log_martians=1
[size=1em]net.ipv4.conf.default.log_martians=1
[size=1em]
[size=1em]#Nosourceroutedpacketshere
[size=1em]net.ipv4.conf.all.accept_source_route=0
[size=1em]net.ipv4.conf.default.accept_source_route=0
[size=1em]
[size=1em]#Turnonreversepathfiltering
[size=1em]net.ipv4.conf.all.rp_filter=1
[size=1em]net.ipv4.conf.default.rp_filter=1
[size=1em]
[size=1em]#Makesurenoonecanaltertheroutingtables
[size=1em]net.ipv4.conf.all.accept_redirects=0
[size=1em]net.ipv4.conf.default.accept_redirects=0
[size=1em]net.ipv4.conf.all.secure_redirects=0
[size=1em]net.ipv4.conf.default.secure_redirects=0
[size=1em]
[size=1em]#Dontactasarouter
[size=1em]net.ipv4.ip_forward=0
[size=1em]net.ipv4.conf.all.send_redirects=0
[size=1em]net.ipv4.conf.default.send_redirects=0
[size=1em]
[size=1em]#Turnonexecshild
[size=1em]kernel.exec-shield=1
[size=1em]kernel.randomize_va_space=1
[size=1em]
[size=1em]#TuenIPv6
[size=1em]net.ipv6.conf.default.router_solicitations=0
[size=1em]net.ipv6.conf.default.accept_ra_rtr_pref=0
[size=1em]net.ipv6.conf.default.accept_ra_pinfo=0
[size=1em]net.ipv6.conf.default.accept_ra_defrtr=0
[size=1em]net.ipv6.conf.default.autoconf=0
[size=1em]net.ipv6.conf.default.dad_transmits=0
[size=1em]net.ipv6.conf.default.max_addresses=1
[size=1em]
[size=1em]#OptimizationforportuseforLBs
[size=1em]#Increasesystemfiledescriptorlimit
[size=1em]fs.file-max=65535
[size=1em]
[size=1em]#AllowformorePIDs(toreducerolloverproblems);maybreaksomeprograms32768
[size=1em]kernel.pid_max=65536
[size=1em]
[size=1em]#IncreasesystemIPportlimits
[size=1em]net.ipv4.ip_local_port_range=200065000
[size=1em]
[size=1em]#IncreaseTCPmaxbuffersizesetableusingsetsockopt()
[size=1em]net.ipv4.tcp_rmem=4096873808388608
[size=1em]net.ipv4.tcp_wmem=4096873808388608
[size=1em]
[size=1em]#IncreaseLinuxautotuningTCPbufferlimits
[size=1em]#min,default,andmaxnumberofbytestouse
[size=1em]#setmaxtoatleast4MB,orhigherifyouuseveryhighBDPpaths
[size=1em]#TcpWindowsetc
[size=1em]net.core.rmem_max=8388608
[size=1em]net.core.wmem_max=8388608
[size=1em]net.core.netdev_max_backlog=5000
[size=1em]net.ipv4.tcp_window_scaling=1
4、删除一切不必要的Nginx模块
你必要间接经由过程编译Nginx源代码使模块数目起码化。经由过程限定只同意web办事器会见模块把风险降到最低。你能够只设置装置nginx你所必要的模块。比方,禁用SSL和autoindex模块你能够实行以下下令:
[size=1em][size=1em]1
[size=1em]2
[size=1em]3
[size=1em][size=1em]./configure--without-http_autoindex_module--without-http_ssi_module
[size=1em]make
[size=1em]makeinstall
经由过程以下下令来检察当编译nginx办事器时哪一个模块能开户或封闭:
[size=1em][size=1em]1
[size=1em][size=1em]./configure--help|less
禁用你用不到的nginx模块。
(可选项)变动nginx版本称号。
编纂文件/http/ngx_http_header_filter_module.c:
[size=1em][size=1em]1
[size=1em][size=1em]vi+48src/http/ngx_http_header_filter_module.c
找到行:
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em]staticcharngx_http_server_string[]="Server:nginx"CRLF;
[size=1em]staticcharngx_http_server_full_string[]="Server:"NGINX_VERCRLF;
依照以下行修正:
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em]staticcharngx_http_server_string[]="Server:NinjaWebServer"CRLF;
[size=1em]staticcharngx_http_server_full_string[]="Server:NinjaWebServer"CRLF;
保留并封闭文件。如今你能够编纂办事器了。增添以下代码到nginx.conf文件来封闭nginx版本号的显现。
[size=1em][size=1em]1
[size=1em][size=1em]server_tokensoff
5、利用mod_security(只合适后端Apache办事器)
mod_security为Apache供应一个使用步伐级的防火墙。为后端ApacheWeb办事器装置mod_security,这会制止良多注进式打击。
6、装置SELinux战略以强化NginxWeb办事器
默许的SELinux不会回护NginxWeb办事器,可是你能够装置和编译回护软件。
1、装置编译SELinux所需情况撑持
[size=1em][size=1em]1
[size=1em][size=1em]yum-yinstallselinux-policy-targetedselinux-policy-devel
2、下载SELinux战略以强化NginxWeb办事器。
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em]cd/opt
[size=1em]wgethttp://downloads.sourceforge.net/project/selinuxnginx/se-ngix_1_0_10.tar.gz?use_mirror=nchc
3、解压文件
[size=1em][size=1em]1
[size=1em][size=1em]tar-zxvfse-ngix_1_0_10.tar.gz
4、编译文件
[size=1em][size=1em]1
[size=1em]2
[size=1em][size=1em]cdse-ngix_1_0_10/nginx
[size=1em]make
将会输入以下:
Compilingtargetednginxmodule
/usr/bin/checkmodule:loadingpolicyconfigurationfromtmp/nginx.tmp
/usr/bin/checkmodule:policyconfigurationloaded
/usr/bin/checkmodule:writingbinaryrepresentation(version6)totmp/nginx.mod
Creatingtargetednginx.pppolicypackage
[size=1em][size=1em]1
[size=1em][size=1em]rmtmp/nginx.mod.fctmp/nginx.mod
5、装置天生的nginx.ppSELinux模块:
[size=1em][size=1em]1
[size=1em][size=1em]/usr/sbin/semodule-inginx.pp
7、基于Iptables防火墙的限定
上面的防火墙剧本制止任何除同意:
- 来自HTTP(TCP端口80)的哀求
- 来自ICMPping的哀求
- ntp(端口123)的哀求输入
- smtp(TCP端口25)的哀求输入
<divstyle="background-color:#FFFFFF;border:none;margin:0px;padding:0px;font-family:微软雅黑;color:#222222;font-size:13px;"><divid="highlighter_549270"class="syntaxhighlighterbash"style="border:none;padding:0px;margin:1em0px!important;font-size:1em!important;">[size=1em]1
[size=1em]2
[size=1em]3
[size=1em]4
[size=1em]5
[size=1em]6
[size=1em]7
[size=1em]8
[size=1em]9
[size=1em]10
[size=1em]11
[size=1em]12
[size=1em]13
[size=1em]14
[size=1em]15
[size=1em]16
[size=1em]17
[size=1em]18
[size=1em]19
[size=1em]20
[size=1em]21
[size=1em]22
[size=1em]23
[size=1em]24
[size=1em]25
[size=1em]26
[size=1em]27
[size=1em]28
[size=1em]29
[size=1em]30
[size=1em]31
[size=1em]32
[size=1em]33
[size=1em]34
[size=1em]35
[size=1em]36
[size=1em]37
[size=1em]38
[size=1em]39
[size=1em]40
[size=1em]41
[size=1em]42
[size=1em]43
[size=1em]44 |
|