Edit post
subject
Title
edit
### 點解要防止IP洩漏 我地呢d係屋企開server既用家,被人炸ser真係全屋唔洗上網。開game server有大把痴線佬或者小學雞會炸鳩你server,為遊戲積分又好,為fun都好。 痴線佬一拎到屋企個public IP,你就玩完了。DDoS流量係講緊5Gbps起跳,你屋企通常得果最多1Gbps。就算你用10Gbps網絡,你都唔好以為10Gbps好多。 ### 痴線佬/小學雞點炸人屋企 一張圖講晒。 ![](http://blog.destiny.gg/wp-content/uploads/2013/01/12yearolds.png) 呢張圖都有唔準確既地方—果d所謂booter,係Google search `free booter`已經有幾個免費既,仲要威力唔差。[唔一定要拎錢出黎先玩得DDoS。](/view/9) ### 基本保護措施 - 唔好開game server。 - DNS record跟足CloudFlare既[呢個指示](https://support.cloudflare.com/hc/en-us/articles/200170196-I-am-under-DDoS-attack-what-do-I-do-)咁set。 - E-mail果d既MX record都route左過GMail,姐係跟足晒以上既指示。 基本上,你粒server既IP已經好難漏出黎。 但係呢,現實係冇咁理想。CloudFlare只會保護你個web server。除左web server之外,你可能都會開埋d SSH server或者FTP server。Web server既野set錯左,都會可能漏左自己粒IP出黎,而attacker有可能因為咁搵到你粒public IP跟住再炸你,因為損人不利己既野真係有痴線佬會做。 ### 再加強保護 以下情況有機會令到你既public IP洩漏: #### 有網頁洩漏IP 你有一兩個web page漏左自己public IP出黎。我有兩個活生生既例子比到出黎: - 我試過用一chatroom page黎做實驗,而果個page會log名+IP。我打左句野之後,我既名(Saren)同屋企public IP就被log低同出街,過幾日之後就被人炸。 - 我有setup Gitlab server。果個server d public project,入面全部指住我個SSH既URL,而SSH URL個domain係指住我個server既public IP,有機會因為咁而洩漏IP。我已經set晒所有project做internal/private,停用SSH URL。 #### 從server既open port認得出你部機 你被人炸,所以你轉左IP,但新IP係相約既/18 /20 /22甚至/24 range度。同時,你部機既service有fingerprint,或者service port既combination係一樣。例如我既SSH server setup係8080 port,係呢個subnet入面係獨一冇二。 換句話講,attacker只要keep住scan x.x.0.0/16,搵到有人係8080開ssh,就知我個真IP。 對於我個人而言,有兩種解決方法: - Port knocking 白名單入面IP先可以access FTP/SSH server,否則一律用`iptables` DROP。將`ipset`、`iptables`、CloudFlare同埋網頁程式混用,可以做到呢個效果。 你要去setup幾樣野: 1. 一個神祕網址,例如你係`victim.com`既owner既話,就setup `http://victim.com/fkubitch`,然後再用CloudFlare保護`victim.com`。 2. 入到果個網址既request IP,就會加入`ipset`白名單。網頁server要成功run到呢個command: `# ipset add allow <IP>` 3. 係`iptables`入面加呢個rule: `-A TCP -p tcp -m set --match-set allow src -m tcp -m multiport --dports 21,22 -j ACCEPT` 好處: - 你部屋企server完全變成隱形。 - 就算SSH/FTP server有0day漏洞都難以成為攻擊目標。 - 唔洗再被人撞密碼。 壞處: - 需要一d寫程式技巧。 - HTTP server要有root access。 - Server reboot/去到咩新地方/用手機流動上網都要入一入個網址先。 - GRE Tunnel 想開game server又唔想比好貴租勁vps既話,GRE Tunnel係唯一既解決方案。Linux系統限定。 總之簡單講就係用其他街外server cover住自己既server,並且通常果d街外server既IP係DDoS protected或者係即棄式既。 其實set起上黎有d麻煩。逼不得已又或者有興趣既,可以參考下教學呢個網址,算幾詳盡: http://wiki.buyvm.net/doku.php/gre_tunnel 未來會試下教人用DigitalOcean / AWS / buyvm做round-robin fallback & monitoring & instance scaling。 ~~雖然我自己都己經用左好多DDoS protected (會自己blackhole) 既IP set左個round-robin A record。~~ **已陣亡** $ dig gre.wtako.net ; <<>> DiG 9.10.3-P3 <<>> gre.wtako.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38517 ;; flags: qr rd ra; QUERY: 1, ANSWER: 24, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;gre.wtako.net. IN A ;; ANSWER SECTION: gre.wtako.net. 300 IN A 103.53.226.63 gre.wtako.net. 300 IN A 103.53.226.65 gre.wtako.net. 300 IN A 103.53.226.58 gre.wtako.net. 300 IN A 103.53.226.59 gre.wtako.net. 300 IN A 103.53.226.42 gre.wtako.net. 300 IN A 103.53.226.55 gre.wtako.net. 300 IN A 103.53.226.49 gre.wtako.net. 300 IN A 103.53.226.64 gre.wtako.net. 300 IN A 103.53.226.54 gre.wtako.net. 300 IN A 103.53.226.45 gre.wtako.net. 300 IN A 103.53.226.48 gre.wtako.net. 300 IN A 103.53.226.52 gre.wtako.net. 300 IN A 103.53.226.46 gre.wtako.net. 300 IN A 103.53.226.57 gre.wtako.net. 300 IN A 103.53.226.47 gre.wtako.net. 300 IN A 103.53.226.50 gre.wtako.net. 300 IN A 103.53.226.53 gre.wtako.net. 300 IN A 103.53.226.60 gre.wtako.net. 300 IN A 103.53.226.56 gre.wtako.net. 300 IN A 103.53.226.44 gre.wtako.net. 300 IN A 103.53.226.43 gre.wtako.net. 300 IN A 103.53.226.51 gre.wtako.net. 300 IN A 103.53.226.61 gre.wtako.net. 300 IN A 103.53.226.62 ;; Query time: 9 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: 二 3月 08 21:10:45 HKT 2016 ;; MSG SIZE rcvd: 426 #### HTTP Server賣你屎忽 假設你個server仍然host緊`http://victim.com`,當你被人炸,你轉完IP之後,你部server仲係expose緊一d web server既port,例如80, 443, 8080等。 Attacker掃你個IP range之後,會得到一堆有開web server既IP。佢之後可以就咁連下所有IP既web server port,睇下邊個IP會出302 redirect去`http://victim.com` ,果個IP之後就會被痴線佬炸。 即使你個web server set左直入http://<你個IP>會出403,attacker仍然可以寫script,request header寫明`Host: http://victim.com` ,邊粒IP出到`http://victim.com`既網頁既話,果粒IP就係目標。 解決方法,都係用`ipset`同`iptables`,但今次係allow CloudFlare所擁有既IP,同埋屋企既private IP。 暫時CloudFlare有咁多IP: 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 104.16.0.0/12 108.162.192.0/18 131.0.72.0/22 141.101.64.0/18 162.158.0.0/15 172.64.0.0/13 173.245.48.0/20 188.114.96.0/20 190.93.240.0/20 197.234.240.0/22 198.41.128.0/17 199.27.128.0/21 屋企既private IP,黎黎去去都係`10.0.0.0/8`、`127.0.0.0/8`、`172.16.0.0/12`同埋`192.168.0.0/16` ### 結論 樹大招風、槍打出頭鳥。唔想成為攻擊目標? - 唔好開server,nas都唔好開。game server唔洗講。 - 唔好上論壇串柒柒,即使你串得起。呢個世界好多妒忌人既痴線佬。 - 參考父子騎驢既故事: ![父子騎驢](http://pic.pimg.tw/boylondon/1350701646-1955838597.jpg) 你點做人,或者唔做人,都會有人鬧你,所以請自求多福。 - 唔好上網,最好唔好做人。😂
Content
vpn_key
Password
Preview
Powered by
Simple Blog