重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
服务器端所使用的软件则主要是Windows平台上的IIS以及主要应用在Linux平台上的Apache。
为凤翔等地区用户提供了全套网页设计制作服务,及凤翔网站建设行业解决方案。主营业务为成都网站设计、网站制作、凤翔网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
IIS(Internet Information Services),Internet信息服务,是Windows Server系统中提供的一个服务组件,可以统一提供www、ftp、smtp服务。
Windows Server 2008 R2中的IIS版本为7.5,相比以前版本的IIS在安全性方面有了很大的改善。
下面我们新建一台名为web的虚拟机来作为web服务器,为其分配IP地址192.168.1.5,将计算机名改为web,激活系统并加入到域,最后再创建快照。
首先仍是需要在【服务器管理器】中安装“web服务器(IIS)”角色。
IIS 7.5被分割成了40多个不同功能的模块,管理员可以根据需要定制安装相应的功能模块,这样可以使Web网站的受攻击面减少,安全性和性能大大提高。所以,在“选择角色服务”的步骤中我们采用默认设置,只安装最基本的功能模块。
安装完成后,可以通过【管理工具】中的【Internet信息服务(IIS)管理器】来管理IIS网站,可以看到其中已经建好了一个名为“Default Web Site”的站点。
在客户端计算机client1上打开IE浏览器,在地址栏输入web服务器的IP地址即可以访问这个默认网站。
我们还可以在DNS服务器中为web服务器添加一条主机记录,这样就可以通过域名访问默认网站了。
其实只要对这个默认网站稍作修改,就可以作为一个真实的网站来使用了。
在【IIS管理器】中,点击默认站点右侧【操作】窗口中的“基本设置”,可以看到默认站点的物理路这个路径对应的就是站点的主目录。
主目录就是网站的根目录,保存着web网站的网页、图片等数据,是用来存放Web网站的文件夹,当客户端访问该网站时,Web服务器自动将该文件夹中的默认网页显示给客户端用户。
打开这个主目录,可以看到里面已经有一个名为iisstart.htm的网页文件以及一张图片,这也就是我们刚才所看到的默认网站所显示的网页。
如果我们已经制作好了一个网站,那么只要将网站的所有文件上传到这个主目录中即可。一个网站中的网页文件非常多,必须得挑选其中的一个网页作为网站的首页,也就是用户在输入网站域名后所直接打开的网页文件。
网站首页在IIS中被称为“默认文档”,在【IIS管理器】默认站点的主窗口中,打开“默认文档”可以对其进行设置。
可以看到系统自带有5种默认文档:Default.htm、Default.asp、Index.htm、Index.html、iisstar.htm。
其优先级依次从高到低。作为网站首页的Web文件必须使用上述5个名字中的一种,如果是使用的其它名字,则必须将其添加到文档列表中。
下面在默认网站的主目录中,用记事本任意编辑一个名为Default.htm(注意D要大写)的网页文件,并随意输入一些内容。然后在客户端上访问该网站,发现可以成功打开我们设置的首页。
为了更好的指导部署与测试艺术升系统nginx网站服务器高性能同时下安全稳定运行,需要对nginx服务进行调优与加固;
本次进行Nginx服务调优加固主要从以下几个部分:
本文档仅供内部使用,禁止外传,帮助研发人员,运维人员对系统长期稳定的运行提供技术文档参考。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx作为负载均衡服务器, Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。
Nginx版本选择:
项目结构:
Nginx文档帮助:
Nginx首页地址目录: /usr/share/nginx/html
Nginx配置文件:
localtion 请求匹配的url实是一个正则表达式:
Nginx 匹配判断表达式:
例如,匹配末尾为如下后缀的静态并判断是否存在该文件, 如不存在则404。
查看可用模块编译参数:
http_gzip模块
开启gzip压缩输出(常常是大于1kb的静态文件),减少网络传输;
http_fastcgi_module模块
nginx可以用来请求路由到FastCGI服务器运行应用程序由各种框架和PHP编程语言等。可以开启FastCGI的缓存功能以及将静态资源进行剥离,从而提高性能。
keepalive模块
长连接对性能有很大的影响,通过减少CPU和网络开销需要开启或关闭连接;
http_ssl_module模块
Nginx开启支持Https协议的SSL模块
Linux内核参数部分默认值不适合高并发,Linux内核调优,主要涉及到网络和文件系统、内存等的优化,
下面是我常用的内核调优配置:
文件描述符
文件描述符是操作系统资源,用于表示连接、打开的文件,以及其他信息。NGINX 每个连接可以使用两个文件描述符。
例如如果NGINX充当代理时,通常一个文件描述符表示客户端连接,另一个连接到代理服务器,如果开启了HTTP 保持连接,这个比例会更低(译注:为什么更低呢)。
对于有大量连接服务的系统,下面的设置可能需要调整一下:
精简模块:Nginx由于不断添加新的功能,附带的模块也越来越多,建议一般常用的服务器软件使用源码编译安装管理;
(1) 减小Nginx编译后的文件大小
(2) 指定GCC编译参数
修改GCC编译参数提高编译优化级别稳妥起见采用 -O2 这也是大多数软件编译推荐的优化级别。
GCC编译参数优化 [可选项] 总共提供了5级编译优化级别:
常用编译参数:
缓存和压缩与限制可以提高性能
NGINX的一些额外功能可用于提高Web应用的性能,调优的时候web应用不需要关掉但值得一提,因为它们的影响可能很重要。
简单示例:
1) 永久重定向
例如,配置 http 向 https 跳转 (永久)
nginx配置文件指令优化一览表
描述:Nginx因为安全配置不合适导致的安全问题,Nginx的默认配置中存在一些安全问题,例如版本号信息泄露、未配置使用SSL协议等。
对Nginx进行安全配置可以有效的防范一些常见安全问题,按照基线标准做好安全配置能够减少安全事件的发生,保证采用Nginx服务器系统应用安全运行;
Nginx安全配置项:
温馨提示: 在修改相应的源代码文件后需重新编译。
设置成功后验证:
应配置非root低权限用户来运行nginx服务,设置如下建立Nginx用户组和用户,采用user指令指运行用户
加固方法:
我们应该为提供的站点配置Secure Sockets Layer Protocol (SSL协议),配置其是为了数据传输的安全,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
不应使用不安全SSLv2、SSLv3协议即以下和存在脆弱性的加密套件(ciphers), 我们应该使用较新的TLS协议也应该优于旧的,并使用安全的加密套件。
HTTP Referrer Spam是垃圾信息发送者用来提高他们正在尝试推广的网站的互联网搜索引擎排名一种技术,如果他们的垃圾信息链接显示在访问日志中,并且这些日志被搜索引擎扫描,则会对网站排名产生不利影响
加固方法:
当恶意攻击者采用扫描器进行扫描时候利用use-agent判断是否是常用的工具扫描以及特定的版本,是则返回错误或者重定向;
Nginx支持webdav,虽然默认情况下不会编译。如果使用webdav,则应该在Nginx策略中禁用此规则。
加固方法: dav_methods 应设置为off
当访问一个特制的URL时,如"../nginx.status",stub_status模块提供一个简短的Nginx服务器状态摘要,大多数情况下不应启用此模块。
加固方法:nginx.conf文件中stub_status不应设置为:on
如果在浏览器中出现Nginx自动生成的错误消息,默认情况下会包含Nginx的版本号,这些信息可以被攻击者用来帮助他们发现服务器的潜在漏洞
加固方法: 关闭"Server"响应头中输出的Nginx版本号将server_tokens应设置为:off
client_body_timeout设置请求体(request body)的读超时时间。仅当在一次readstep中,没有得到请求体,就会设为超时。超时后Nginx返回HTTP状态码408(Request timed out)。
加固方法:nginx.conf文件中client_body_timeout应设置为:10
client_header_timeout设置等待client发送一个请求头的超时时间(例如:GET / HTTP/1.1)。仅当在一次read中没有收到请求头,才会设为超时。超时后Nginx返回HTTP状态码408(Request timed out)。
加固方法:nginx.conf文件中client_header_timeout应设置为:10
keepalive_timeout设置与client的keep-alive连接超时时间。服务器将会在这个时间后关闭连接。
加固方法:nginx.conf文件中keepalive_timeout应设置为:55
send_timeout设置客户端的响应超时时间。这个设置不会用于整个转发器,而是在两次客户端读取操作之间。如果在这段时间内,客户端没有读取任何数据,Nginx就会关闭连接。
加固方法:nginx.conf文件中send_timeout应设置为:10
GET和POST是Internet上最常用的方法。Web服务器方法在RFC 2616中定义禁用不需要实现的可用方法。
加固方法:
limit_zone 配置项限制来自客户端的同时连接数。通过此模块可以从一个地址限制分配会话的同时连接数量或特殊情况。
加固方法:nginx.conf文件中limit_zone应设置为:slimits $binary_remote_addr 5m
该配置项控制一个会话同时连接的最大数量,即限制来自单个IP地址的连接数量。
加固方法:nginx.conf 文件中 limit_conn 应设置为: slimits 5
加固方法:
加固方法:
解决办法:
描述后端获取Proxy后的真实Client的IP获取需要安装--with-http_realip_module,然后后端程序采用JAVA(request.getAttribute("X-Real-IP"))进行获取;
描述: 如果要使用geoip地区选择,我们需要再nginx编译时加入 --with-http_geoip_module 编译参数。
描述: 为了防止外部站点引用我们的静态资源,我们需要设置那些域名可以访问我们的静态资源。
描述: 下面收集了Web服务中常规的安全响应头, 它可以保证不受到某些攻击,建议在指定的 server{} 代码块进行配置。
描述: 为了防止某些未备案的域名或者恶意镜像站域名绑定到我们服务器上, 导致服务器被警告关停,将会对业务或者SEO排名以及企业形象造成影响,我们可以通过如下方式进行防范。
执行结果:
描述: 有时你的网站可能只需要被某一IP或者IP段的地址请求访问,那么非白名单中的地址访问将被阻止访问, 我们可以如下配置;
常用nginx配置文件解释:
(1) 阿里巴巴提供的Concat或者Google的PageSpeed模块实现这个合并文件的功能。
(2) PHP-FPM的优化
如果您高负载网站使用PHP-FPM管理FastCGI对于PHP-FPM的优化非常重要
(3) 配置Resin on Linux或者Windows为我们可以打开 resin-3.1.9/bin/httpd.sh 在不影响其他代码的地方加入:-Dhttps.protocols=TLSv1.2, 例如
原文地址:
Windows 2003的Web服务器配置方法介绍
Windows 2003的'Web服务器配置方法
日,笔者将学校服务器的操作系统升级为Windows Server 2003,在Web服务器的配置过程中发现了许多与Windows 2000 Server的不同之处。为了同行少走弯路,现将配置中应注意的问题简单总结如下:
Windows Server 2003 中Internet 信息服务(IIS) 升级为IIS 6.0,其安全性更高。默认情况下,Windows Server 2003没有安装IIS 6.0,要通过控制面板来安装。具体做法为:
1. 进入“控制面板”。
2. 双击“添加或删除程序”。
3. 单击“添加/删除 Windows 组件”。
4. 在“组件”列表框中,双击“应用程序服务器”。
5. 双击“Internet 信息服务(IIS)”。
6. 从中选择“万维网服务”及“文件传输协议(FTP)服务”。
7. 双击“万维网服务”,从中选择“Active Server Pages” 及“万维网服务”等。
安装好IIS后,接着设置Web服务器,具体做法为:
1. 在“开始”菜单中选择“管理工具→Internet信息服务(IIS)管理器”。
2. 在“Internet 信息服务(IIS)管理器”中双击“本地计算机”。
3. 右击“网站”,在dan出菜单中选择“新建→网站”,打开“网站创建向导”。
4. 依次填写“网站描述”、“IP 地址”、“端口号”、“路径”和“网站访问权限”等。最后,为了便于访问还应设置默认文档(Index.asp、Index.htm)。
上述设置和Windows 2000 Server网站设置基本相同,但此时Web服务还仅适用于静态内容,即静态页面能正常浏览,常用Active Server Pages(ASP)功能没有被启用。所以还应在“Internet 信息服务(IIS)管理器”的“ Web 服务扩展”中选择允许“Active Server Pages”。
另外,还应注意如果Web服务主目录所在分区是NTFS格式,而ASP网页有写入操作时(如用到新闻后台管理功能的),要注意设置写入及修改权限。 ;
1.禁用ROOT权限登录。(重要)
2.安全组收缩不使用的端口,建议除443/80以及ssh登录等必要端口外全部关闭。
3.防火墙收缩不使用的端口,建议除443/80以及ssh登录端口外全部关闭。
4.更改ssh默认端口22
5.除登录USER,禁止其他用户su到root进程,并且ssh开启秘钥及密码双层验证登录。(重要)
6.限制除登录USER外的其他用户登录。
7.安装DenyHosts,防止ddos攻击。
8.禁止系统响应任何从外部/内部来的ping请求。
9.保持每天自动检测更新。
10.禁止除root之外的用户进程安装软件及服务,如有需要则root安装,chown给到用户。
11.定时给服务器做快照。
12.更改下列文件权限:
13.限制普通用户使用特殊命令,比如wget,curl等命令更改使用权限,一般的挖矿程序主要使用这几种命令操作。
1.nginx进程运行在最小权限的子用户中,禁止使用root用户启动nginx。(重要)
2.配置nginx.conf,防范常见漏洞:
1.禁止root权限启动apache服务!禁止root权限启动apache服务!禁止root权限启动apache服务!重要的事情说三遍!因为这个问题被搞了两次。
2.改掉默认端口。
3.清空webapps下除自己服务外的其他文件,删除用户管理文件,防止给木马留下后门。
4.限制apache启动进程su到root进程以及ssh登录,限制启动进程访问除/home/xx自身目录外的其他文件。
5.限制apache启动进程操作删除以及编辑文件,一般a+x即可。
1.关闭外网连接,与java/php服务使用内网连接。
2.在满足java/php服务的基础上,新建最小权限USER给到服务使用,禁止USER权限访问其他项目的库。
3.root密码不要与普通USER相同。
4.建议使用云库,云库具备实时备份,动态扩容,数据回退等功能,减少操作风险。
1.关闭外网连接,只允许内网交互,基本这个做了之后就已经稳了。
2.禁止root权限启动,运行在普通用户进程里。
3.更改默认端口。
4.添加登录密码。
以上是自己做的防范手段,不成熟见解,有一些方案待验证,不定时更新,欢迎大佬补充!