黑客教程,黑客X档案,黑客技术,黑客功防,网站安全与防范
              

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                              

            

漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的攻击者可能攻陷支持php的nginx服务器。

漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi_params;

}

的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,这里就是产生问题的点。而为了较好的支持PATH_INFO的提取,在PHP的配置选项里存在cgi.fix_pathinfo选项,其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。
那么假设存在一个http://www.80sec.com/80sec.jpg,我们以如下的方式去访问

POC: 访问一个nginx来支持php的站点,在一个任何资源的文件如robots.txt后面加上/80sec.php,这个时候你可以看到如下的区别:

访问http://www.80sec.com/robots.txt

HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:05:30 GMT
Content-Type: text/plain
Content-Length: 18
Last-Modified: Thu, 20 May 2010 06:26:34 GMT
Connection: keep-alive
Keep-Alive: timeout=20
Accept-Ranges: bytes

访问访问http://www.80sec.com/robots.txt/80sec.php

HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:06:49 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: PHP/5.2.6

其中的Content-Type的变化说明了后端负责解析的变化,该站点就可能存在漏洞。

漏洞厂商:http://www.nginx.org

解决方案:

我们已经尝试联系官方,但是此前你可以通过以下的方式来减少损失

关闭cgi.fix_pathinfo为0

或者

if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}

PS: 鸣谢laruence大牛在分析过程中给的帮助。

                        
            伴随互联网技术的迅速发展,基于传统网络架构的各类业务逐步向基于B/S架构的应用体系转变。业务类别越来越多,应用复杂度也越来越高。人们逐渐发现传统网络层的防护已经无法保障业务的安全运行。提升业务系统安全需要从业务流程、应用架构、应用系统等多个角度来思考从而寻求解决方案。因此,对于应用安全的关注度也逐渐升温。

面对来势汹汹的应用威胁,绝大多数企业并没有真正意识到其中的危机。一方面,恶意网站以600%的年增长速度在迅速增加;另一方面,77%带有恶意代码的网站是被植入恶意攻击代码的合法网站。如果把前者比作明枪还可以避免的话,那么作为暗箭的后者可以轻而易举地攻击无辜普通网站访问用户,进而危及企业信誉。

作为全球顶级的应用安全组织,OWASP(Open Web Application Security Project)中国将于2010年10月20-23日在北京举办OWASP 2010中国峰会,本次大会特意邀请政府、金融、互联网、教育、电信、能源等热门行业的CIO代表,国内外知名的应用安全专家、厂商代表共聚一堂,就应用安全及业务安全发展及技术创新等话题进行广泛而深入的讨论,同时也为广大从事应用安全研究的技术人员提供一个多元化的交流平台。我们聚合产官学力量,推动中国应用安全市场发展。

针对目前热点的安全技术,安全开发(SDL)、代码安全、渗透 测试等领域,我们将举办为期2天的培训,邀请全球顶级的安全专家,为您解读最新的、最热门的安全技术。

OWASP是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。我们的使命是使应用软件更加安全,使企业和组织能够对应用安全风险作出更清晰的决策。目前OWASP全球拥有130个分会近万名会员,共同推动了安全标准、安全测试工具、安全指导手册等应用安全技术的发展。

作为业界顶级的应用安全组织,OWASP在很多领域都体现了极其重要的作用:

·美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP所发布的十大Web弱点防护守则。

·美国国防部亦列为最佳实务。

·国际信用卡数据安全技术PCI标准更将其列为必要组件。

· 各类应用安全厂商(包括IBM\FORTIFY\HP\DBAPPSECURITY等),均将OWASP TOP 10列为应用安全风险基准。

OWASP研究内容:目前OWASP有30多个进行中的计划,包括最知名的OWASP Top 10(十大Web弱点)、WebGoat (代罪羔羊)练习平台、安全PHP/Java/ASP.Net等计划,针对不同的软件安全问题在进行讨论与研究。

                        
              

教大家紧急恢复受损的Windows系统的六种途径,当Windows系统一旦遇到无法启动或者运行出错的故障时,我们不妨使用下面的六项措施,来快速而有效地“急救”受损的Windows系统,说不定能收获奇效!

  很多时候我们会发现自己的系统问题越来越多,如果将就使用,那系统运行效率肯定不会很高,甚至还无法正常运行,如果选择重新安装系统,那不但麻烦不说,而且还会耗费很长的等待时间。其实,当Windows系统一旦遇到无法启动或者运行出错的故障时,我们不妨使用下面的六项措施,来快速而有效地“急救”受损的Windows系统,说不定能收获奇效!

  1、最后一次配置

  Windows操作系统,每次成功启动之后都会对系统注册表进行自动备份,一旦我们发现Windows系统本次不能正常启动时,那多半是我们上一次对系统进行了错误的操作或者对某些软件进行了错误的安装,从而破坏了系统注册表的相关设置。此时,我们可以尝试使用上一次成功启动时的配置来重新启动一下计算机系统:只要在重新启动系统的过程中,及时按下F8功能键,调出系统启动菜单,然后选中“最后一次正确的配置”项目,这样的话Windows系统说不定又能启动正常了。

  2、修复系统文件

  如果Windows系统的某些核心文件不小心被损坏的话,那么即使使用“最后一次配置”,Windows系统也很难保证就能启动正常。如果Windows系统只是有少量的系统文件受损的话,那我们不妨借助Windows系统内置的SFC扫描修复命令,来尝试对那些已经遭受破坏的系统文件进行修复,一旦修复成功后,那Windows系统的启动又会恢复正常状态了。在修复受损系统文件时,只要依次单击“开始”/“运行”命令,在弹出的系统运行对话框中,输入字符串命令“sfc/scannow”,单击回车键后,该命令程序就会对系统每个角落处的系统文件进行搜索扫描,一旦发现系统文件的版本不正确或者系统文件已经损坏的话,它就能自动弹出提示界面,要求我们插入Windows系统的安装光盘,以便从中提取正常的系统文件来替代不正常的系统文件,从而达到修复系统文件的目的。要是系统修复操作成功的话,相信我们重新启动计算机系统时,就不会看到有什么不正常的现象了。

  3、注销当前用户

  如果Windows系统的受损部位只是由于安装了不恰当的软件,或者是对软件进行了不合适的设置引起的话,那么我们通常可以通过“注销当前用户”的方法,来对受损的Windows系统进行急救,因为软件对系统设置的影响往往只能限于当前登录的用户,一旦在当前用户状态下系统不能正常运行的话,我们完全可以注销当前用户,并以其他的用户重新登录系统,这样Windows一般又能恢复正常运行状态了。

  在注销当前用户、换用其他用户登录系统之前,我们需要先打开系统的控制面板窗口,然后双击其中的“用户帐户”项目,再单击其后界面中的“添加”按钮,来重新创建一个新的登录帐号,同时为该帐号设置一个合适的访问密码,并将对应的帐号设置为超级管理员权限。

  由于换用其他帐号登录Windows系统后,保存在当前用户目录下的一些重要数据可能就访问不到了,为此在注销用户之前,我们有必要打开系统的资源管理器窗口,找到当前帐号所对应的用户目录,例如要是当前登录系统的帐号为aaaa的话,那么系统默认的帐号目录应该为“C:\Windows\DocumentsandSettings\aaaa”,将该目录下面的一些重要数据全部备份到系统分区以外的其他分区目录中。

  做好了上面的准备工作后,现在我们就能依次执行“开始”/“注销aaaa”命令,来将当前的登录帐号注销掉,然后重新用刚刚创建好的帐号登录Windows系统;在用新帐号成功登录进Windows系统后,我们再把前面备份好的重要数据恢复到当前帐号所对应的新用户目录下面,这样的话受损Windows系统就能恢复以前的正常运行状态了。

  4、重注册DLL文件

  Windows系统有时之所以会频繁受到损伤,主要是许多应用程序常常共享调用一些DLL文件,一旦有的应用程序在使用完毕被自动卸载掉后,这些应用程序所调用的DLL文件往往也会跟着被删除掉了,这么一来Windows系统或系统中的其他应用程序再次调用那些共享了的DLL文件时,就自然会发生错误现象了。

  在急救那些由于系统DLL文件丢失引起的Windows系统运行不正常故障时,我们根本不需要重新安装操作系统,只需要对那些已经丢失了的DLL文件进行一下重新注册,就能让系统恢复正常运行状态了。考虑到我们并不知道究竟是哪一个或哪几个DLL文件被损坏了或丢失了,我们不妨通过下面的方法,来对系统所有的DLL文件都重新注册一下,而不需要单独对某一个或某几个DLL文件进行注册:

  首先打开类似记事本这样的文件编辑程序,然后在对应的程序界面中输入如下命令行代码:

  @echooff

  for%1in(%windir%\system32\*.dll)doregsvr32.exe/s%1

  将上面的命令行代码保存成一个扩展名为BAT的批处理文件,例如这里笔者假设将该代码内容保存为了repair.bat文件;其次为repair.bat文件创建一个快捷图标,并将该快捷图标直接拖放到系统的桌面上,等到日后需要对系统中的所有DLL文件进行重新注册时,我们只需要双击repair.bat文件的快捷图标,系统就会自动开始对所有的DLL文件执行重新注册操作了。一旦所有DLL文件被重新注册过之后,此时我们不妨再尝试运行一下Windows系统,相信此时的系统肯定会十分正常了!

  5、恢复原始文件

  如果Windows系统不正常运行的故障是由于系统注册表被意外破坏引起的话,那么我们完全可以借助常规的copy命令,来将系统原始的注册表信息直接复制到系统对应的目录下,这样可以快速地实现恢复受损系统文件的目的。由于Windows系统第一次被安装成功后,原始的注册表信息都会被自动备份保存到系统安装目录下面的Repair子目录中,因此我们只要将Repair子目录下面的注册表信息直接复制到系统的配置目录中就可以了:

  如果本地计算机只安装了一个操作系统的话,那我们不妨借助Windows启动光盘,来将系统先引导到DOS命令行状态;如果本地计算机中安装了两个以上操作系统的话,那只需要将系统切换另外一个能正常运行的系统中就可以了;接下来在dos命令行状态,通过CD命令将当前目录切换到“%windir%\Repair”子目录状态下,并依次执行如下字符串命令:                              

              

腾讯QQ所拥有的用户数量可以用“无限多”来形容,这样的说法想必会招致一些朋友的反对,但是QQ用户每天都在“批量增加”的事实是无法否认的。当然,与此同时,QQ用户在不断的被骗、被黑也是无法否认的事实(为行文方便,以下称为QQ骗子或QQ黑客)。

    那么现在的QQ骗子/黑客都有哪些行骗和耍黑的手段呢?笔者和同事以及很多计算机爱好者在国内多个计算机技术、应用类论坛内(如霏凡、嬴政、中天、龙族、龙卷风、深度、木蚂蚁等)查阅了大量的帖子,然后再结合网友提供的相关信息,我们总结出了QQ 骗子/黑客比较常用的七大手段。

    1.QQ群内发带有木马病毒的链接

    经常QQ群聊的网友应该会经常遇到一些黄色信息链接,此类信息,特别是对一些辨别能力差、自控能力不够强的男性网友非常具有诱惑性。而发此类信息的 QQ用用户资料里大多是写着“寂寞MM”、“高校MM”、“寂寞少妇”、“丈夫不在家”、“不闲聊只视频”等信息。

    一旦用户点击进入此类网址链接后,页面内暗藏的木马病毒会迅速潜入到用户电脑中,然后搜寻指定的QQ目录,甚至会将用户保存在计算机内的银行帐号和密码统统窃走!

    通过QQ发布木马病毒

    此类情况一般常见于刚加入QQ群内的用户,他们的目的很简单,就是发个链接就算达到目的,不会考虑QQ群管理员是否会将它“踢”出群。由此,如果你在QQ群里发现了此类信息,特别是不怎么经常发言的网友,尤其要小心。

    重要提示:还有一种行骗方式是以FTP链接的方式。

    笔者曾昨天看到有人在QQ群内发布了一个FTP地址,里面有登录帐号和登录密码,声称其中有《集结号》DVD版下载,但是在登录该FTP地址后却发现里面什么都没有,当我意识到可能是陷阱后,用卡巴斯基扫描系统时,电脑内的“杀猪声”顿时此起彼伏!

    2.利用QQ空间冒充腾讯骗汇款

    “利用QQ空间冒充腾讯骗汇款”的情况笔者没有遇到过(可能是与我没有开通QQ空间有关),但是此类行骗方式也是很常见的一种方式,笔者同事就曾遇到这样的骗局。

    用QQ空间发布腾讯官方活动中奖信息 案例1

    用QQ空间发布腾讯官方活动中奖信息 案例2(点击放大)

    对此,腾讯官方已经有了很明确的提示页面,告知用户不要相信所谓QQ空间中存在的中奖信息公告。

    腾讯官方发布关于QQ空间虚假中奖信息的公告(点击放大)

    此类骗局,相对于第一种(QQ群内消息)来说更加隐蔽。QQ群内消息一般都是以“涉黄”内容为主,相对比较容易识破,而利用QQ空间行骗,只要骗子把内容写得很正式,口气很“官方”,不明真相的用户非常容易上当。

    重要提示:还有一些骗子懂得利用“免费QQ币+QQ官方”。

    有的QQ空间骗局还会直接告诉某用户“你将免费获得QQ币”,并留下QQ官方网址,而事实上,这些所谓官方网址都是虚假的,是“模仿腾讯官方”的网址。

    3.冒充腾讯官方骗取QQ密码

    冒充腾讯官方骗取QQ用户密码和骗取汇款的方式是一样的,也是利用了QQ空间这个工具。具体的是以QQ官方邮件的方式行骗。

    行骗邮件图

    亲爱的QQ空间用户:

    感谢您一年来对QQ空间的支持。在新春来临之际,我们祝您猪年如意,心想事成!在过去的一年,因为有您的关注与支持,我们取得了以下的突破与成绩:2007年QQ空间使用人数突破XXX万用户;黄钻用户突破XXX万用户;QQ空间主页http://qzone.qq.com排位上升至XXX名。

    为此,QQqzone空间在2007年X月举行了抽奖活动,您的QQ空间被评为最佳人气、最佳效果、最佳质量、最佳信誉奖之一奖项,为此将免费奉送您 QQqzone空间黄钻会员,已收费开通黄钻的用户将不再收费,我们将在您回复后的24小时内开通!

    领奖方式:请您在打开该邮件的24小时内,回复该邮件进行确认,回复方式:QQ号码+QQ密码+QQ空间名称+任意四位数字。其中任意四位数字为用户您自行设置,在您进行开通查询时提供的验证码!您的关注是我们不断成长的动力,QQ空间有您更精彩!

    QQ空间团体 敬上

    特别提示:在QQ空间内以QQ邮件的出现的骗局在内容方面不唯一,大家须加倍小心。

    4.黑客通过QQ邮件种植木马病毒

    据来自腾讯官方的资料表明,有很
多QQ用户致电客服,声称QQmail收到“系统客服、10000、QQ邮箱管理员、 <10000@QQ.com> 、”等邮件,而在收取之后就发生了QQ密码被盗的情况。

    通过QQ邮箱传播木马病毒(点击放大)

    而制作一个带有QQ木马病毒的邮件代码网上比比皆是,任何一个有不良居心的人利用搜索引擎非常容易获得。

    制作带有木马病毒的QQ邮件

    一般的,上面这样的木马病毒邮件是隐藏在一封“非常官方”的QQ邮件内,令人防不胜防!

    特别提示:冒充腾讯官方发邮件,只要对方伪装的好,即便是“老鸟”级用户都有可能被欺骗,各位网友多加小心了!

    5.黑客假冒QQ管理员骗QQ号

    有黑客声称,他们曾经成功地潜入腾讯主页并寻觅到一些有数据和漏洞,然后他们在腾讯服务器上设置了个可以自动读取指令的代码,通过这些代码,腾讯服务器上就会以QQ管理员的身份发送消息给某些QQ号,要求用户将包含如下信息的资料反馈给他:

    消息中一般都包含有(收回QQ和找回密码等)这个QQ的号码是:283128315(腾讯公司为了不引起大家的注意,所以这个QQ比较普通,这个QQ 一般隐身);                              

分页: 1/199 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]