ã¯ããã«
åºæã®å±æ§ïŒDoS / DDoSæ»æã®ã¢ã¯ãã£ããã£ã®å¢å ïŒãåããæ°å¹Žã®ç¥æ¥ãèžãŸããŠãç¹å®ã®ãããã€ããŒ/ããŒã¿ã»ã³ã¿ãŒãžã®IPã¢ãã¬ã¹ãããã¯ã®æææš©ã«åºã¥ããŠãããã¯ãããæ»æãæéãããšããããã£ãã«äœ¿çšãããªãïŒåæã«éåžžã«å¹æçãªïŒæ¹æ³ãæããããšæããŸãã

ã€ã³ã¿ãŒãããããã³Habréã«ã¯ãä¿è·ãããŒãã«ããå€ãã®åºçç©ããããŸããããåºæ¬çã«ã¯ãããŸããŸãªåºæºã«åŸã£ãIPã°ã«ãŒãã³ã°ã«åºã¥ãã以äžã®ã¢ãããŒãã«åºã¥ããŠããŸãã
- åã ã®IPæ»æãããã®ãããã¯
- ããããå±ãããµããããå šäœããããã¯ãã
- æ»æããããå±ããåœ/éœåžå šäœããããã¯ãã
- æ瀺çã«èš±å¯ãããŠãããã®ãé€ããã¹ãŠã®IPã¢ãã¬ã¹ããããã¯ãã
- ç¹å®ã®ã¢ã«ãŽãªãºã ã«åºã¥ãIPã¢ãã¬ã¹ã®ãããã¯ïŒç¹æ®ãªããŒããŠã§ã¢ã®äœ¿çšãå«ãïŒ
ããããåæã«ãIPã¢ãã¬ã¹ãã°ã«ãŒãåããïŒãããã£ãŠãããã¯ããïŒå¥ã®æ¹æ³ãå®å šã«èŠèœãšãããŸãããèªåŸã·ã¹ãã ïŒASNïŒã®ã¡ã³ããŒã·ããã§ãã ASNãšã¯äœã§ããïŒ ããã¯ãåäžã®ãããã€ããŒãŸãã¯ããŒã¿ã»ã³ã¿ãŒã«ãã£ãŠæäŸãããIPã¢ãã¬ã¹ã®ã°ã«ãŒãã§ãã åŸæ¥ãããã¯ãããã¯ãŒã¯/ãµããããã®æŠå¿µã«ããã«ç¶ããçµç¹ã®èµ·æºãæã€ãããé«ãã¬ãã«ã®éå±€ã§ãã YandexãäŸã«èããŠã¿ãŸããããèªåŸã·ã¹ãã çªå·ã¯13238ã§ãããIPã¢ãã¬ã¹ã®æ¬¡ã®ãããã¯ãææããŠããŸããbgp.he.net / AS13238ïŒ_prefixesã芧ã®ãšãã ããããã®ã¢ãã¬ã¹ã®1ã€ã®ASNã«å±ãã以å€ã®ãã¿ãŒã³ã¯ãããŸããã ASNã«ã¯ã16ãããïŒæ倧65635ïŒãš32ãããïŒæ倧2 ^ 32-1ïŒã®2çš®é¡ãããããšã«æ³šæããŠãã ããã
ãããããã®æè¡çãªãšã¯ã¹ã«ãŒã·ã§ã³ã¯ãäŸµå ¥è ããã©ã®ããã«ä¿è·ããã®ã§ããããïŒ å®éã«ã¯ããããã€ããŒã®ããªãåºããªã¹ãïŒISPãšããŒã¿ã»ã³ã¿ãŒã®äž¡æ¹ïŒããããç©ããã«èšãã°ããããã¯ãŒã¯ã®ã»ãã¥ãªãã£ã«æ倧éã®æ³šæãæããªãïŒçºä¿¡DDoSæ»æããããã¯ããªããèŠæ ã«å¯Ÿå¿ããªããªã©ïŒããã®çµæãšããŠããªãé »ç¹ã«DDoSæ»æã®ãœãŒã¹ã§ãã ãã®ãããªèªåŸã·ã¹ãã ïŒãã¡ããäžæçãªïŒããããã¯ãããšãæ»æããã®ä¿è·ã«å€§ãã«åœ¹ç«ã¡ãŸãã èªåŸã·ã¹ãã ã«é¢ãã詳现ãªçµ±èšæ å ±ã¯ãã»ãšãã©ã®å Žåæ»æã®ãœãŒã¹ã§ããããŠã§ããµã€ãã§èŠãããšãã§ããŸãïŒ stopddos.ru/current ïŒã»ãŒãªã¢ã«ã¿ã€ã ã®çµ±èšæ å ±ïŒ

IPã¢ãã¬ã¹ãå±ããèªåŸã·ã¹ãã çªå·ã®æ±ºå®
IPã¢ãã¬ã¹/ãããã¯ãŒã¯ãå±ããèªåŸã·ã¹ãã ã決å®ããæ¹æ³ã¯ïŒ ãšãŠãç°¡åã§ãã IPã¢ãã¬ã¹ããšãŒãããã«ããïŒãããã£ãŠãRIPE管èœå ã«ããïŒå Žåã¯ãã³ãã³ãwhois ip_address / networkã䜿çšã§ããŸãã Yandexãè©ŠããŠã¿ãŸãããã
whois 93.158.146.0
ORIGINãã£ãŒã«ãã«æ³šç®ããŸããããã¯ãèªåŸã·ã¹ãã ã®çªå·ã瀺ããŠããã ãã§ãã

IPã¢ãã¬ã¹ãå¥ã®RIRïŒAFRINICãLACNICãªã©ïŒã«å±ããŠããå Žåããããã«å¯ŸããŠã«ãŒããªããžã§ã¯ãã®æŠå¿µã¯ãããŸãããããã§ç§ãæäŸã§ããæãæ®éçãªã¢ããã€ã¹ã¯ãIPã¢ãã¬ã¹ãASNçªå·ã«å€æã§ããç¹å¥ãªãµãŒãã¹ã䜿çšããããšã§ãïŒ wwwã team-cymru.org/Services/ip-to-asn.html
CymRuã®ãµãŒãã¹ã§ããã«æ³šç®ãã¹ãã¯ãã³ã³ãœãŒã«ãããã®æäœãèªååããŠåŒã³åºãæ©èœã§ããããã¯ãèªåãã©ãã£ãã¯ã¢ãã©ã€ã¶ãŒããã°ãã¡ã€ã«ã䜿çšããŠãã¿ãŒã³ãç°åžžãæ€çŽ¢ããå Žåã«åœ¹ç«ã¡ãŸãã³ã³ããã¹ãåºæã®ASNã
ããŠããã®æ®µéã§ãASNïŒéåžžã¯æ°åããæ°ååïŒãèŠã€ãã£ããšããŸãããã次ã®ã¹ãããã¯ãèªåã誀ã£ãŠèªåã®ãã®ãåæããªãããã«ãããã誰ã«å±ããã©ã®ãããªç®çã§ãããã確èªããããšã§ã顧客ã®å Žåãããã¯Hurricane Electricã®ãµãŒãã¹bgp.he.net/ASXXXXãä»ããŠå®è¡ã§ããŸããXXXXã®ä»£ããã«ãæ€åºãããèªåŸã·ã¹ãã çªå·ãå ¥åããå¿ èŠããããŸãã
ç¹å®ã®ASNãžã®/ããã®ãã©ãã£ãã¯ã®ãããã¯
ããããç¹å®ã®ASNããçä¿¡ãããã©ãã£ãã¯ãã©ã®ããã«ãããã¯ããã®ã§ããããïŒ ããã¯ããŒã³ãããã€ããŒã¯ãã®æ©èœãããŒã¿ã»ã³ã¿ãŒããŸãã¯éä¿¡äºæ¥è ïŒããã³BGPãããã³ã«ã䜿çšããŠå®è£ ãããŸãïŒãåããŠããŸããããã®æ©èœããšã³ããŠãŒã¶ãŒã«æäŸããããšã¯ã»ãšãã©äžå¯èœã§ãã ãããã£ãŠãDebian Wheezyãšiptablesãã±ãããã£ã«ã¿ãŒã䜿çšããŠãåœã®ASNããã®ãã©ãã£ãã¯ãé®æããŸãã

ãã¡ãããããªããã¹ã¿ã€ã«ã§äœããããããšãå¯èœã«ããæšæºçãªãœãªã¥ãŒã·ã§ã³ïŒ
iptables -I INPUT -p tcp --dport 80 -m asn --asn-number 11222 -j DROP
ãŸã ååšããªãã®ã§ãå³èã§æŒå¥ããå¿ èŠããããŸãïŒ
ipsetãšgeoipã®2ã€ã®ç°ãªãã¢ãããŒããããã«æãæµ®ãã³ãŸãïŒã¯ãã質åããããŸã-質åãšã¯äœã®é¢ä¿ããããŸãããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãïŒã ipsetã䜿çšãããšãIPã¢ãã¬ã¹ã®ã»ãããŸãã¯IPãããã¯ãŒã¯ã®ã»ããã«å±ãããã©ãã£ãã¯ããããã¯ã§ããŸããããã¯ååçã«ç§ãã¡ã«é©ããŠããŸãã ããããããã¯ç¹ã«æè»ã§ã¯ãªããããšãã°å¿ èŠãªèªåŸã·ã¹ãã çšã«120åã®ããã·ã¥ãäœæãããã®ãããªããã·ã¥ã®ã»ããã管çããå ŽåãLinuxã«ãŒãã«ã§ååãã©ããã¯ããããŸããã
å¶ç¶ã«ããxtables GeoIPã¢ãžã¥ãŒã«ãç 究ããéçšã§ããããã¯ãŒã¯ãç¹å®ã®åœã«å±ããŠãããã©ãããå€æããããã«ã»ãŒåãã¢ã«ãŽãªãºã ã䜿çšããŠããããšãããããŸãããç¹å®ã®èªåŸã·ã¹ãã ã«å±ããŠãããã©ãããå€æããå¿ èŠããããŸãã ããã«ãxtables GeoIPã®äœæè ããã®èª¬åŸåã®ããã³ã¡ã³ããå€æ°ããã圌ã䜿çšããã¢ãããŒãã®ã©ã¡ããããæé©ããå€æããŠããŸãïŒ xtables-addons.sourceforge.net/geoip.php
ããã§ãæåã«xtables geoipã¢ãžã¥ãŒã«ãã¢ã»ã³ãã«ããŠã€ã³ã¹ããŒã«ãããã®åŸãASNã«ããããããã³ã°ãšããæåã®åé¡ã解決ããããã«çµ±åããŸãã
xtables GeoIPãã€ã³ã¹ããŒã«ãã
ãã®ãããªæ瀺ã¯ãããããããŸãããããããã¯éåžžã«çãã®ã§ãããã§å®å šãªæ瀺ãäžããããšãã§ããŸãã
å¿ èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
apt-get install xtables-addons-common xtables-addons-source
Debian Wheezyã¯Xtablesã§å€ãã®äœæ¥ãè¡ã£ãŠãããXtablesããã±ãŒãžããäœæ¥ã¢ãžã¥ãŒã«ãååŸããããã«è¿œå ã®ãžã§ã¹ãã£ãŒãå®è¡ããå¿ èŠã¯ãããŸããã ãŸããDKMSãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãããããã«ãŒãã«ã®æŽæ°/亀ææã«ã¢ãžã¥ãŒã«ãæåã§åæ§ç¯ããå¿ èŠã¯ãããŸãããã·ã¹ãã ã¯ããããã¹ãŠèªåçã«è§£æ±ºããŸãã
次ã«ãGeoIPã®ä»çµã¿ã«ã€ããŠå°ã説æããŸãã ç¹å®ã®åœã«å±ããIPãããã¯ãŒã¯ã®ãªã¹ãããã€ããªåœ¢åŒã§äžãããããµãŒããŒã®ãã¡ã€ã«ã·ã¹ãã ã«ä¿åããããã®åœã«åœ±é¿ããiptablesã³ãã³ããåŒã³åºããããšãã«ã¡ã¢ãªã«ããŒããããå Žåãããªãè³¢ãïŒç§ã®æèŠã§ã¯ïŒã¢ãããŒãã䜿çšããŸãã ããã«ãããäžçäžã®ãã¹ãŠã®ãããã¯ãŒã¯ã®IPã¢ãã¬ã¹ã®å®å šãªã»ãããéå§çž®åœ¢åŒã§çŽ500ã¡ã¬ãã€ãããããããé«éæ§ã確ä¿ããã¡ã¢ãªãç¯çŽã§ããŸãã
xtables GeoIPã®å ŽåãMaxMind Webãµã€ãããååŸãããããã¯ãŒã¯åœãããã³ã°ããŒã¿ããŒã¹ã䜿çšãããŸãããxtablesã«ãŒãã«ã¢ãžã¥ãŒã«ãåãå ¥ãã圢åŒã«æåã§ããŠã³ããŒãããŠå€æããã«ã¯geoipãå¿ èŠã§ãã
è¡ããïŒ
cd /tmp /usr/lib/xtables-addons/xt_geoip_dl
ãã®æäœã®åŸãCSVæ¡åŒµåãæã€2ã€ã®ãã¡ã€ã«ãçŸåšã®ãã©ã«ããŒã«èŠã€ãããŸããããããã®ãã©ã«ããŒã«ã¯ãIPv6ãããã³ã«ãšIPv4ãããã³ã«ã®IPãããã¯ãŒã¯ã®ãªã¹ãããããæå±ããåœã瀺ããŸãã
次ã«ããããã®ãã¡ã€ã«ããã€ããªåœ¢åŒã«å€æããå¿ èŠããããŸãã
mkdir -p /usr/share/xt_geoip /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
å€æããã»ã¹äžã«ãããšãã°ãååœã®IP v4 / v6ç¯å²ã®æ°ãªã©ãå€ãã®èå³æ·±ãæ å ±ã¡ãã»ãŒãžã衚瀺ãããŸãã
759 IPv6 ranges for RU Russian Federation 5401 IPv4 ranges for RU Russian Federation
ãã¹ãŠãç§ãã¡ã¯åãæºåãã§ããŠããŸããããšãã°ããžã³ãããšããæ¥ããã©ãã£ãã¯ãé®æããããšããŸãã
iptables -I INPUT -p tcp --dport 80 -m geoip --src-cc ZW -j DROP
ãã®ã³ãã³ããå®è¡ãããšãIPåœã®ãªã¹ããå«ããã¡ã€ã«/usr/share/xt_geoip/LE/ZW.iv4ããã¡ã€ã«ã·ã¹ãã ããååŸãããã«ãŒãã«ã«ããŒããããŸãã
å人ã«æ³šæãæã£ãŠãã ããïŒ NEVER-YESã®çæã§ããã䜿çšããªãã§ãã ããã ã€ã³ã¿ãŒãããã§ã¯ã§ããªããããããããã¹ããã©ã¯ãã£ã¹ã§ãã ããã¯ãããšãã°DDoS / DoSæ»æã«ç©æ¥µçã«å察ããå ŽåããŸãã¯ååœããã®ãã©ãã£ãã¯éãèšç®ããããã«äžæçã«ã®ã¿è¡ãããšãã§ããŸãã GeoIPããŒã¿ããŒã¹ã®é¢é£æ§ã«ã¯å€ãã®èŠæãããããã¥ãŒãšãŒã¯ã®äž»èŠã¯ã©ã€ã¢ã³ãïŒãã¡ããããªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ã¯æåŠãããŸãïŒã¯ããžã³ãããšããçŠæ¢ãããå Žåãããããšã«åžžã«çæããŠãã ããã
MaxMind圢åŒã§ASNãææãããããã¯ãŒã¯äžã«ããŒã¿ããŒã¹ãäœæããŸãã
ç§ãã¡ã®ç掻ãã§ããã ãç°¡çŽ åããããã«ãMaxMindããããã¯ãŒã¯åœã®ãããã³ã°ããŒã¿ãä¿åããã®ãšåã圢åŒã§ãããã¯ãŒã¯ASNãããã³ã°ããŒã¹ãäœæããŠã¿ãŸãããã ãã®ã¢ãããŒãã§ã¯ãxt_geoip_buildã¹ã¯ãªãããå€æŽããã«äœ¿çšã§ããŸãã
åæ§ã®ããŒã¹ãäœæããæ¹æ³ã¯ïŒ ç¹å®ã®ASNã®ãããã¯ãŒã¯ã®æå±ã«é¢ããæ å ±ã¯1åããšã«å€åãããããã€ã³ã¿ãŒãããã«ãŒãã£ã³ã°ããŒãã«ã®çŸåšã®ãã£ã³ã¬ãŒããªã³ããå¿ èŠã«ãªããŸãããããã£ãŠãåžžã«ææ°ã®ããŒã¿ããŒã¹ãä¿æããããšã¯ã§ããŸããã ãã®å°å·ç©ã¯ã©ãã§å ¥æã§ããŸããïŒ Routevievs.orgã®MRT TABLE DUMP V2圢åŒã§ã¯åžžã«ææ°ã§ãïŒ archive.routeviews.org/bgpdata ã
ãããããã®åœ¢åŒã«ã¯å°ããªåé¡ããããŸã-åæããã®ã¯éåžžã«é£ãããããBgpDumpãšåŒã°ããRIPEã«ãã£ãŠéçºãããã³ã³ããŒã¿ãŒãå¿ èŠã§ãïŒ bitbucket.org/ripencc/bgpdump/wiki/Home
æ®å¿µãªãããDebianãªããžããªã«ã¯ãã®ãããªã³ã³ããŒã¿ã¯ãªãããœãŒã¹ã³ãŒãããã³ã³ãã€ã«ããå¿ èŠããããŸããããã¯éåžžã«ç°¡åãªããšã§ãã以äžã®æé ã瀺ããŸãã
apt-get install -y libbz2-dev cd /usr/src wget http://www.ris.ripe.net/source/bgpdump/libbgpdump-1.4.99.13.tgz tar -xf libbgpdump-1.4.99.13.tgz cd libbgpdump-1.4.99.13 ./configure --prefix=/opt/libbgpdump mkdir /opt/libbgpdump make mv bgpdump /opt/libbgpdump
ãã ããBgpDumpãçæããããŒã¿åœ¢åŒã¯MaxMind圢åŒãšäžèŽãããPerlã§å®è£ ããå¥ã®ã³ã³ããŒã¿ãŒïŒå¹žããªããšã«ããã£ãšç°¡åïŒãå¿ èŠã§ããraw.github.com / FastVPSEestiOu / xt_asn / master / bgp_table_to_text.pl ãããã/opt/bgp_table_to_text.plã«çœ®ããexecãã©ã°ïŒchmod + xïŒãèšå®ããŸãã
ããã§ãMaxMind圢åŒã§ASNãããã¯ãŒã¯ããŒã¹ãçæããããã®å®å šãªãœãããŠã§ã¢ã»ãããã§ããŸããã ã¿ã¹ã¯å šäœãå®è£ ããã«ã¯ãããã€ãã®bashã³ãã³ããå¿ èŠã§ãã
rm -f /opt/bgp/asn.csv mkdir /opt/bgp # http://phpsuxx.blogspot.com/2011/12/full-bgp.html yesterday_date=$(date --date='1 days ago' '+%Y.%m') yesterday_date_with_day=$(date --date='1 days ago' '+%Y%m%d') # get routing data for yesterday at 5 o'clock wget http://archive.routeviews.org/bgpdata/${yesterday_date}/RIBS/rib.${yesterday_date_with_day}.0600.bz2 -O /opt/bgp/rib.bz2 # , "" (25 i7 2600) /opt/libbgpdump/bgpdump /opt/bgp/rib.bz2 | /opt/bgp_table_to_text.pl > /opt/bgp/asn.csv
ãã®åŸãMax Mind GeoIPããŒã¿ãšåãã¹ããŒã ã«åŸã£ãŠå€æããŸãã
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip /opt/bgp/asn.csv
ã³ãã³ãã®åäœã®çµæãã»ãŒ10äžåã®ãã¡ã€ã«ïŒASNããšã«2ã€ïŒã/ usr / share / xt_geoip / LE /ãã©ã«ããŒã«äœæãããããããã«ãŒãã«ãã£ã«ã¿ãŒã¢ãžã¥ãŒã«ãžã®ããŒãã«äœ¿çšãããŸãã
IPãç¹å®ã®ASNã«å±ããŠãããã©ãããå€æããããã«äœ¿çšããããã«xtables geoipãå€æŽãã
iptablesã³ãã³ãã®ZWåœåãASNçªå·ïŒ11222ãªã©ïŒã§çœ®ãæããããšãããšããšã©ãŒãçºçããŸãã
geoip: invalid country code '11222'
ã©ãããïŒ xt_geoipã®äžãèŠãŠãã ããã GeoIPã®ä»çµã¿ã«é¢ããããã€ãã®èšèã以äžã«ç€ºããŸããGeoIPã¯iptablesïŒãŠãŒã¶ãŒç©ºéïŒã®ãã©ã°ã€ã³ã§æ§æãããã«ãŒã«ã¯ã«ãŒãã«ãšã«ãŒãã«ã¢ãžã¥ãŒã«ïŒããããã«ãŒãã«ç©ºéïŒã«ããŒããããŸãã ã³ãŒãã§ç°¡åã«æ€çŽ¢ããçµæãISO3166圢åŒã®åœã³ãŒãã¯ã笊å·ãªã16ãããæ°å€ã®åœ¢åŒã§æ ŒçŽãããŠãããæ倧65535ã®æ°å€ãæ ŒçŽã§ããŸãã
åè¿°ããããã«ãASN圢åŒã¯çŸåš32ããããæ¡çšããŠããããã32ãããASNïŒããšãã°190111ïŒãã/ãžã®ãã©ãã£ãã¯ã®ãã£ã«ã¿ãªã³ã°ã«ã¯å°ãå³èãå¿ èŠã§ã-æåã®65,000ã§ç¡æã®ASNãèŠã€ããå¿ èŠããããŸãïŒããšãã°ãçŸåšç¡æASN 170ïŒããã€ããªåœ¢åŒã®ãããã¯ãŒã¯ã®ãªã¹ãã転éããŸãïŒmv /usr/share/xt_geoip/LE/190111.iv4 /usr/share/xt_geoip/LE/170.iv4ïŒããã ãASNçªå·ã䜿çšãããŠããããšãå¿ããªãã§ãã ããã亀æãã
ãã®ãããªããã¯ã¯ãäžçäžã®ãã¹ãŠã®ASNã§æäœããå¿ èŠãããå Žåã§ãå®å šã«æ©èœããŸãïŒ çŸåšã®åèšæ°ã¯46000ã§ããã16ãããã®ç¬Šå·ãªãæ°å€ã®é åãèæ ®ãããšç°¡åã«ééã£ãŠããŸãå¯èœæ§ããããŸãã èšäºãèªãã æç¹ã§ASNã65,000ãè¶ ããå ŽåãGeoIPã¢ãžã¥ãŒã«ã®ã³ã¢ã«ããããé©çšããå¿ èŠããããŸãããããã¯éåžžã«ç°¡åã§ã-short intãfull intãŸãã¯longã«çœ®ãæããå¿ èŠããããŸãïŒ64ãããASNã衚瀺ããããã©ããªããŸããïŒïŒ

2æåã®åœã³ãŒãã®ä»£ããã«ASNã䜿çšã§ããããã«ããããã«ãã³ãŒãã«å°ãããããé©çšããŸãã ã€ãŸããæå®ãããiptablesåŒæ°ãcountryããæ£ç¢ºã«2æåã®ISOåœã³ãŒãã«ãªãããã«ããã§ãã¯ãè¡ããããããã¯ãã³ã¡ã³ãåããŸãã
//if (strlen(cc) != 2) /* Country must be 2 chars long according // to the ISO3166 standard */ // xtables_error(PARAMETER_PROBLEM, // "geoip: invalid country code '%s'", cc); // Verification will fail if chars aren't uppercased. // Make sure they are.. //for (i = 0; i < 2; i++) // if (isalnum(cc[i]) != 0) // cc[i] = toupper(cc[i]); // else // xtables_error(PARAMETER_PROBLEM, // "geoip: invalid country code '%s'", cc);
ãã®åŸã2ã€ã®8ãããæåã®ãããã³ã°ã³ãŒãã16ãããã®æ°å€ã«çœ®ãæããæååãã16ãããã®æ°å€ãåã«èªã¿åã£ãŠä¿åããã³ãŒãã«çœ®ãæããŸãã
//cc_int16 = (cc[0] << 8) | cc[1]; // Convert 16 bit unsinged integer (up to 65535) sscanf(cc, "%d", &cc_int16);
ãŸããåœã®å éšæ°å€è¡šçŸïŒ16ãããæ°ïŒã䜿çšããŠåœã³ãŒãã衚瀺ããã³ãŒããå€æŽããå¿ èŠããããŸããããã§ã¯ãå€æããã«çªå·ã衚瀺ããã ãã§ãã
-printf("%s%c%c", i ? "," : "", COUNTRY(info->cc[i])); +printf("%sxas%d", i ? "," : "", info->cc[i]);
ãã®å Žåãasnãxasã«çœ®ãæããããšãã§ããŸãããããã¯ãå Žåã«ãã£ãŠïŒ32ãããASNïŒããããå®éã®ASNçªå·ã§ã¯ãªãïŒã¯ã€ã«ãã«ãŒãïŒãããã匷調ãããã£ãããã§ãã
æçµããããã¡ã€ã«ã¯ãGitHubãªããžããªã®raw.github.com/FastVPSEestiOu/xt_asn/3e3eebe8b2136d148fe71adc1218a656c363ada2/libxt_geoip_patched.cã«ãããŸãã
ããã¯å°ããã®ã§ããã®ããããé©çšããŠxtables-addons-commonããã±ãŒãžãã³ã³ãã€ã«ããå¿ èŠããããŸãïŒãŠãŒã¶ãŒç©ºéã§æ©èœããiptablesã®æ¡åŒµã¢ãžã¥ãŒã«ãé 眮ãããŠããŸãïŒã
cd /usr/src apt-get install -y dpkg-dev devscripts build-essential fakeroot apt-get source xtables-addons-common apt-get build-dep -y xtables-addons-common cd xtables-addons-1.42 # wget https://raw.github.com/FastVPSEestiOu/xt_asn/3e3eebe8b2136d148fe71adc1218a656c363ada2/libxt_geoip_patched.c -Oextensions/libxt_geoip.c dpkg-source --commit "Patch for xtables geoip - ASN resolver" debuild -us -uc
次ã«ãããããé©çšããããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
dpkg -i /usr/src/xtables-addons-common_1.42-2_amd64.deb
ãã®åŸãipablesã«ãŒã«ã§16ãããASNçªå·ã䜿çšã§ããŸãã
iptables -I INPUT -p tcp --dport 80 -m geoip --dst-cc 11222 -j DROP
ããã§ãå¥ã®ã¿ã€ãã®æ»æãæéããæºåãã§ããŸããïŒ ããã«ãåæ§ã®æ¹æ³ã䜿çšããŠããµãŒããŒã«éãããæ£åœãªãã©ãã£ãã¯ãåæã§ããŸãã
åéïŒ æ¥å¹Žã¯å¹žéãç¥ããŸããDDoSæ»æãæžãã FastVPSãç»å ŽããŸãïŒ
