{"action":"opened","issue":{"url":"https://api.github.com/repos/zibianqu/zibianqu.github.io/issues/67","repository_url":"https://api.github.com/repos/zibianqu/zibianqu.github.io","labels_url":"https://api.github.com/repos/zibianqu/zibianqu.github.io/issues/67/labels{/name}","comments_url":"https://api.github.com/repos/zibianqu/zibianqu.github.io/issues/67/comments","events_url":"https://api.github.com/repos/zibianqu/zibianqu.github.io/issues/67/events","html_url":"https://github.com/zibianqu/zibianqu.github.io/issues/67","id":346944027,"node_id":"MDU6SXNzdWUzNDY5NDQwMjc=","number":67,"title":"DDOS攻击","user":{"login":"zibianqu","id":16846948,"node_id":"MDQ6VXNlcjE2ODQ2OTQ4","avatar_url":"https://avatars3.githubusercontent.com/u/16846948?v=4","gravatar_id":"","url":"https://api.github.com/users/zibianqu","html_url":"https://github.com/zibianqu","followers_url":"https://api.github.com/users/zibianqu/followers","following_url":"https://api.github.com/users/zibianqu/following{/other_user}","gists_url":"https://api.github.com/users/zibianqu/gists{/gist_id}","starred_url":"https://api.github.com/users/zibianqu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zibianqu/subscriptions","organizations_url":"https://api.github.com/users/zibianqu/orgs","repos_url":"https://api.github.com/users/zibianqu/repos","events_url":"https://api.github.com/users/zibianqu/events{/privacy}","received_events_url":"https://api.github.com/users/zibianqu/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-08-02T10:03:00Z","updated_at":"2018-08-02T10:03:00Z","closed_at":null,"author_association":"OWNER","body":"> 什么是DDOS\r\n\r\n短时间内发起大量请求，耗尽服务器的资源，无法响应正常的访问，造成网站实质下线\r\nDDOS 里面的 DOS 是 denial of service（停止服务）的缩写，表示这种攻击的目的，就是使得服务中断。最前面的那个 D 是 distributed （分布式），表示攻击不是来自一个地方，而是来自四面八方，因此更难防。你关了前门，他从后门进来；你关了后门，他从窗口跳起来\r\n\r\n> DDOS 的种类\r\n\r\n1.通过发送大的数据包堵塞服务器带宽造成服务器线路瘫痪;\r\n\r\n2.通过发送特殊的数据包造成服务器TCP/IP协议模块耗费CPU内存资源最终瘫痪;\r\n\r\n3.通过标准的连接建立起连接后发送特殊的数据包造成服务器运行的网络服务软件耗费CPU内存最终瘫痪(比如WEB SERVER、FTP SERVER、 游戏服务器等)。\r\n\r\n\r\n> cc攻击\r\n\r\nCC主要是用来攻击页面的。大家都有这样的经历，就是在访问论坛时，如果这个论坛比较大，访问的人比较多，打开页面的速度会比较慢，访问的人越多，论坛的页面越多，数据库压力就越大，被访问的频率也越高，占用的系统资源也就相当可观\r\n\r\n> 防范第一步\r\n\r\n做一个备份的网站或者一个临时的主页。生产服务器万一下线了可以切换到临时的网站。\r\n这种临时主页建议放到 Github Pages 它们的带宽大，可以应对攻击，而且都支持绑定域名，还能从源码自动构建。\r\n\r\n**http请求拦截**\r\n\r\n（1）专用硬件\r\n\r\nWeb 服务器的前面可以架设硬件防火墙，专门过滤请求。这种效果最好，但是价格也最贵。\r\n\r\n（2）本机防火墙\r\n\r\n操作系统都带有软件防火墙，Linux 服务器一般使用 iptables。比如，拦截 IP 地址1.2.3.4的请求，可以执行下面的命令\r\n\r\n**$ iptables -A INPUT -s 1.2.3.4 -j DROP**\r\n\r\niptables 比较复杂，我也不太会用。它对服务器性能有一定影响，也防不住大型攻击。\r\n\r\n（3）Web 服务器\r\n\r\nWeb 服务器也可以过滤请求。拦截 IP 地址1.2.3.4，nginx 的写法如下。\r\n\r\n\r\nlocation / {\r\n  deny 1.2.3.4;\r\n}\r\nApache 的写法是在.htaccess文件里面，加上下面一段。\r\n\r\n\r\n<RequireAll>\r\n    Require all granted\r\n    Require not ip 1.2.3.4\r\n</RequireAll>\r\n如果想要更精确的控制（比如自动识别并拦截那些频繁请求的 IP 地址），就要用到 WAF。这里就不详细介绍了，nginx 这方面的设置可以参考这里和这里。\r\n\r\nWeb 服务器的拦截非常消耗性能，尤其是 Apache。稍微大一点的攻击，这种方法就没用了。\r\n\r\n**带宽扩容**\r\n\r\n**cdn缓存**\r\n\r\n转自：http://www.ruanyifeng.com/blog/2018/06/ddos.html\r\nhttp://blog.sina.com.cn/s/blog_15e17a5140102wnlm.html"}}
{"actor":{"display_login":"zibianqu"}}