mrubyで作る海外IPフィルター

5664fe255c9690cb1b872e1ca21a8d78?s=47 yasuaki-tahira
June 10, 2017
3.3k

 mrubyで作る海外IPフィルター

PHPカンファレンス福岡2017のスポンサーセッションでお話した「mrubyで作る海外IPフィルター」のスライドです。

5664fe255c9690cb1b872e1ca21a8d78?s=128

yasuaki-tahira

June 10, 2017
Tweet

Transcript

  1. ాฏ߁࿕(.01FQBCP *OD 1)1ΧϯϑΝϨϯε෱Ԭ NSVCZͰ࡞Δւ֎*1ϑΟϧλʔ

  2. ΠϯϑϥΤϯδχΞ ాฏ߁࿕!UBQSB ϗεςΟϯάࣄۀ෦ΠϯϑϥνʔϜ IUUQUBQJSBIBUFOBCMPHDPN

  3. झຯ

  4. (.0ϖύϘʹ͍ͭͯ

  5. ϗεςΟϯά &$ࢧԉ ϋϯυϝΠυ ίϛϡχςΟ

  6. None
  7. ͋Δ೔ͷΞϥʔτ

  8. Ϩεϙϯε஗ԆΛݕ஌ 8FCαʔόίϯςϯπͷϨεϙϯε࣌ؒ؂ࢹάϥϑ

  9. ΞϥʔτݪҼΛௐࠪ

  10. Ξϥʔτൃੜ௚લͷΞΫηεݩͷࠃ ւ֎  ೔ຊ  ࠃ಺ͷαʔϏεʹ΋ؔΘΒͣւ֎͕ଟ਺ ͦͷଟ͕͘৐ͬऔΓ΍ߴෛՙΛ༩͑Δ߈ܸ

  11. ւ֎͔ΒͷΞΫηε੍ݶ͕ඞཁ

  12. ւ֎*1ϑΟϧλʔ

  13. ւ֎*1ϑΟϧλʔͱ͸ ւ֎*1ϑΟϧλʔ 8FC4FSWFS ւ֎͔Βͷ ΞΫηε ೔ຊ͔Βͷ ΞΫηε

  14. ϩϦϙοϓʂʹ͓͚Δ ւ֎*1ϑΟϧλʔͰߟྀ͢Δ՝୊

  15. ϩϦϙοϓʂ͸େن໛ɾߴूੵ wར༻࣮੷ສਓ wυϝΠϯ਺ສҎ্ wΞΫηε૯਺໿ԯ೔ ໿ສඵ  wαʔό਺ສυϝΠϯऩ༰ͷߴूੵ ˞೥݄຤࣌఺

  16. ϩϦϙοϓʂ͸େن໛ɾߴूੵΏ͑ͷ՝୊ ௨͢΂͖ւ֎͔ΒͷΞΫηεΛڐՄ ಛఆͷϦΫΤετύεͰಈ࡞ υϝΠϯ͝ͱʹ༗ޮɾແޮ੾Γସ͑ Ϩεϙϯε଎౓Λ௿Լͤ͞ͳ͍

  17. ௨͢΂͖ւ֎͔ΒͷΞΫηεΛڐՄ wྫ͑͹ʜ wେखݕࡧΤϯδϯͷΫϩʔϥͷେ൒͸ւ֎ wΫϩʔϥΛϒϩοΫ͢ΔͱΠϯσοΫε͞Εͳ͍

  18. ಛఆͷϦΫΤετύεͰಈ࡞  wαΠτ৐ͬऔΓ΍αʔόෛՙʹܨ͕ΔݪҼʹݶఆ wର৅Λݶఆ͢Δ͜ͱʹΑΓෆཁͳ൑ఆॲཧΛ๷͙ wѱҙͷͳ͍ւ֎Ϣʔβ΁ͷӨڹΛ࠷খݶʹ

  19. ւ֎*1ϑΟϧλʔ υϝΠϯ͝ͱʹ༗ޮɾແޮ੾Γସ͑ ւ֎Λڋ൱͍ͨ͠ υϝΠϯ ւ֎ΛڐՄ͍ͨ͠ υϝΠϯ wւ֎*1ϑΟϧλʔͷར༻͸Ϣʔβ͕ࣗ༝ʹબ୒ 8FC4FSWFS

  20. Ϩεϙϯε଎౓Λ௿Լͤ͞ͳ͍ wւ֎*1ϑΟϧλʔ༗ޮԽ࣌ʹ଎౓௿ԼΛײͤ͡͞ͳ͍ wʮॏ͍͔Βແޮʹ͍ͨ͠ʯͱϢʔβʹࢥΘͤͳ͍

  21. ࣮૷

  22. ϩϦϙοϓʂͷߏ੒

  23. ϓϩΩγαʔόʔͱ8FC4FSWFSͷଟஈߏ੒ ϦόʔεϓϩΩγ /HJOY ɾɾɾ 8&#αʔό ςφϯτ ςφϯτ ɾɾɾ ɾɾɾ 8&#αʔό

    ςφϯτ ςφϯτ ɾɾɾ ΞΫηε ΞΫηεΛద੾ʹৼΓ෼͚
  24. HFPJQϞδϡʔϧͰͷ࣮૷Λݕ౼

  25. HFPJQϞδϡʔϧͱ͸ wOHJOYDPOG಺ͰࠃίʔυΛ࢖༻੍ͨ͠ݶ͕Մೳ # US(ΞϝϦΧ)ͱJP(೔ຊ)Λڋ൱ map $geoip_country_code $allowed_country { default yes;

    US no; JP no; }
  26. ௨͢΂͖ւ֎͔ΒͷΞΫηεΛڐՄ ಛఆͷϦΫΤετύεͰಈ࡞ υϝΠϯ͝ͱʹ༗ޮɾແޮ੾Γସ͑ ࠃ୯Ґͷڋ൱͸༰қ͕ͩଞͷ৚݅ͱ૊Έ߹Θͤਏ͍

  27. ௨͢΂͖ւ֎͔ΒͷΞΫηεΛڐՄ ಛఆͷϦΫΤετύεͰಈ࡞ υϝΠϯ͝ͱʹ༗ޮɾແޮ੾Γସ͑ ࠃ୯Ґͷڋ൱͸༰қ͕ͩଞͷ৚݅ͱ૊Έ߹Θͤਏ͍ ϩϦϙοϓʂͰ͸ཁ݅Λຬͨͨ͢Ί ࡉ͔ͳઃఆΛߦ͍͍ͨ

  28. ͜ͷ՝୊Λղܾ͢Δ ιϑτ΢ΣΞ

  29. OHY@NSVCZNSVCZ

  30. OHY@NSVCZͱ͸ w!NBUTVNPUPSZ͕։ൃ wOHJOYͰNSVCZΛར༻͢ΔͨΊͷ֦ுϞδϡʔϧ wOHJOYͷڍಈΛ3VCZͰ֦ுՄೳ wύϑΥʔϚϯεྼԽ͕࠷খݶ

  31. OHY@NSVCZͰཁ݅Λຬͨ͢ ւ֎*1ϑΟϧλʔΛ࡞Δ

  32. *1ͷࠃίʔυΛ.BY.JOE%#͔Βऔಘ͠൑ఆ w*1ͱࠃίʔυΛඥ෇͚ͨ.BY.JOE%#Λར༻ wSFNPUF@BEESม਺ΑΓΞΫηεݩ*1औಘ wऔಘͨ͠*1ͷࠃίʔυΛ.BY.JOE%#ΑΓऔಘ wऔಘͨ͠ࠃίʔυ͕ڐՄͯ͠Α͍͔൑ఆ

  33. 6TFS"HFOUΛݩʹ௨͢΂͖ւ֎͔ΒͷΞΫηε͔൑ఆ wIUUQ@VTFS@BHFOUม਺ΑΓ6TFS"HFOUΛऔಘ wऔಘͨ͠6TFS"HFOU͕௨͢΂͖΋ͷ͔൑ఆ

  34. ϦΫΤετύεΛݩʹ੍ݶର৅͔൑ఆ wSFRVFTU@VSJม਺ΑΓϦΫΤετύεΛऔಘ wऔಘͨ͠ϦΫΤετύε੍͕ݶର৅͔൑ఆ

  35. ΞΫηε൑ఆΛߦ͏ػೳΛ OHY@NSVCZ͔Β؆ܿʹݺͼग़͢

  36. NSVCZJQpMUFS

  37. NSVCZJQpMUFSͷ໾ׂ wIUUQTHJUIVCDPNQFQBCPNSVCZJQpMUFS w༷ʑͳଐੑΛ΋ͱʹڐՄɾڋ൱ͷ൑ఆ wϦΫΤετύεɾ6TFS"HFOUɾΞΫηεݩࠃίʔυ wQFSNJU ɾEFOZ ͱ͍͏ڞ௨ͷϝιουͰ൑ఆ wࠓޙͦͷଞ༷ʑͳύϥϝʔλʹରԠ༧ఆ

  38. ༷ʑͳ৘ใΞΫηεʹΑΔ ύϑΥʔϚϯεྼԽΛ࠷খݶʹ཈͑Δ

  39. NSVCZNTE

  40. NSVCZNTEͷ໾ׂ wIUUQTHJUIVCDPNQFQBCPNSVCZNTE w!QZBNBͱڞಉͰ։ൃ wσʔλϕʔεɾωοτϫʔΫ,74ɾΠϯϝϞϦ,74΁ ͷΞΫηεΛࣗಈͰ࠷దԽ w.Z42-ɾ3FEJTɾ-.$ ΠϯϝϞϦͷ,74 Λ࠾༻

  41. NSVCZNTE ΠϯϝϞϦ ,74 MPDBMNFNDBDIF ωοτϫʔΫ ,74 ʢ3FEJTʣ σʔλϕʔε .Z42- σʔλΞΫηε

    ॲཧίετ͕௿͍σʔλετΞ͔ΒॱʹΞΫηε σʔλ͕ݟ͔ͭΓ࣍ୈฦ͢ ࣍ճҎ߱ͷΞΫηεͷͨΊʹΩϟογϡ OHY@NSVCZ
  42. ւ֎*1ϑΟϧλʔͷॲཧͷྲྀΕ

  43. ւ֎*1ϑΟϧλʔͷॲཧ಺༰ ւ֎*1ϑΟϧλʔ ւ֎*1ϑΟϧλʔ͕༗ޮͳαΠτʁ ࠷దԽ͞Εͨ σʔλετΞ :&4 63-൑ఆ 6TFS"HFOU൑ఆ ࠃίʔυ൑ఆ શͯʹ֘౰͠ͳ͍ΞΫηεͷΈ8&#αʔόʹసૹ

    ΞΫηε
  44. ·ͱΊ

  45. ·ͱΊ wηΩϡϦςΟɾߴෛՙରࡦͱ͓٬༷΁ͷӨڹͷόϥϯεΛ ߟྀͨ͠ւ֎*1ϑΟϧλʔΛ࣮૷ͨ͠ wࠃίʔυ΍ϦΫΤετ৘ใΛݩʹ൑ఆΛߦ͏
 *1ϑΟϧλʔϞδϡʔϧ wσʔλΞΫηε࠷దԽ͠େن໛؀ڥ΁ద༻΋Մೳͱͨ͠

  46. 1)1Λ҆શɾշదʹ࢖͏ͳΒϩϦϙοϓʂ

  47. ܅΋ϖύϘͰಇ͔ͳ͍͔ʁ ࠷৽ͷ࠾༻৘ใΛνΣοΫˠ !QC@SFDSVJU

  48. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠