ã¯ããã«
çãããæ®æ®µäœæ°ãªãå©çšããŠããã€ã³ã¿ãŒãããã Web ãµãŒãã¹ãïŒã©ã®ãããªæè¡çãªä»çµã¿ã®äžã§æãç«ã£ãŠããã®ãïŒãã®æ ¹å¹¹ãæ¯ããããããã¯ãŒã¯ããšãã»ãã¥ãªãã£ãã®åºç€ãïŒå®éã«æãåãããªããåŠã¶ããšãç®çãšããŠããŸãïŒ
- ã¯ã©ãŠããµãŒããŒã®æäœ : SSH ãšããå®å šãªéä¿¡è·¯ã䜿ã£ãŠé éå°ã®ãµãŒããŒã«æ¥ç¶ãïŒã³ãã³ãã©ã€ã³ã§æäœããåºæ¬ãç¿åŸããŸãïŒ
- ã€ã³ã¿ãŒãããéä¿¡ã®å¯èŠå : ping ã traceroute ãšãã£ãããŒã«ã䜿ãïŒããŒã¿ãç®çå°ã«å±ããŸã§ã®æéãçµç±ããéã®ããèªåã®ç®ã§ç¢ºèªããŸãïŒ
- DNS ã®åå解決ã®ä»çµã¿ : dig ã³ãã³ããé§äœ¿ãïŒ google.com ããã®è¬ç¿äŒè³æã眮ãããŠãã ktak.dev ã®ãããªãã¡ã€ã³åãïŒã©ã®ããã«ã㊠IP ã¢ãã¬ã¹ã«å€æãããã®ãïŒãã®ããã»ã¹ã远跡ããŸãïŒ
- Web éä¿¡ (HTTP/TCP) ã®å®äœ : netcat ãšããããŒã«ã§ HTTP ãªã¯ãšã¹ãã "ææžã" ãããïŒç°¡æãã£ãããäœéšãããããããšã§ïŒ TCP/IP éä¿¡ã®åºæ¬ãäœæããŸãïŒ
- Web ãµãŒããŒã®æ§ç¯ãšå ¬é : Nginx ãšããæ¬çªç°å¢ã§ãåºã䜿ãããŠãã Web ãµãŒããŒãèªåã§èšå®ãïŒéç㪠Web ããŒãžãåç㪠Node.js ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¿ãŒãããã«å ¬éããŸãïŒ
- ãµã€ããŒã»ãã¥ãªãã£ã®æ»é²äœéš : ãã¡ã€ã¢ãŠã©ãŒã«ã®æŠå¿µãçè§£ãïŒ nmap ã§ãµãŒããŒã®ãéããŠãããã¢ããæ¢ãæ»æè ã®èŠç¹ãšïŒ HTTPS åããã°åæã§ãµãŒããŒãå®ãé²åŸ¡è ã®èŠç¹ã®äž¡æ¹ãäœéšããŸãïŒ
- å®è·µçãªãµãŒããŒéçš : ãã°ã®åæãïŒ cron ãçšããã¿ã¹ã¯ã®èªååãªã©ïŒãµãŒããŒç®¡çã®åæ©ãåŠã³ãŸãïŒ
æ¢ã«ç¥ã£ãŠããããšãå€ããããããŸãããïŒåŸ©ç¿ãå ŒããŠãã£ãŠãããŸãããïŒãªãïŒãã³ãºãªã³ã¯é ãåãããªããŠãé²ããããã®ã§ïŒæ°è»œã«åå ããŠãã ããïŒ
Part 1: ç°å¢ãžã®æ¥ç¶ãšæºå
ãŸãïŒæ¬æ¥å©çšãããµãŒããŒã«æ¥ç¶ããŸãïŒæåã¯ãã¹ã¯ãŒãã§ãã°ã€ã³ãïŒãã®åŸïŒããå®å šã§äŸ¿å©ãªãå ¬ééµèªèšŒãæ¹åŒã«åãæ¿ããäœæ¥ãè¡ããŸãïŒ
1.1: ãã¹ã¯ãŒãã§ã®ååãã°ã€ã³
SSH ãšã¯ïŒ SSH (Secure Shell) ã¯ïŒé éå°ã«ããã³ã³ãã¥ãŒã¿ãå®å šã«æäœããããã®ãéä¿¡ã®ãäœæ³ïŒãããã³ã«ïŒãã§ãïŒèªåã® PC ãšãµãŒããŒã®éã«æå·åãããå®å šãªãã³ãã«ãäœãïŒãã®äžã§ã³ãã³ãã®ããåããããŸãïŒ SSH ã®ã¯ã©ã€ã¢ã³ãã»ãµãŒããŒã¢ãã«ã§ã¯ïŒããªãã® PC ããã¯ã©ã€ã¢ã³ããïŒæ¥ç¶å ã®ãµãŒããŒãããµãŒããŒããšããŠåäœããŸãïŒ
Cyber ããé åžãããæ å ±ãæå ã«æºåãïŒä»¥äžã®ã³ãã³ãã§ãµãŒããŒã«æ¥ç¶ããŸãïŒ
ååæ¥ç¶æã®ç¢ºèª
åããŠãã®ãµãŒããŒã«æ¥ç¶ããå ŽåïŒã¿ãŒããã«ã«ä»¥äžã®ãããªã¡ãã»ãŒãžã衚瀺ãããããšããããŸãïŒ
The authenticity of host 'ssh.ktak.dev
(...)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
ããã¯ãæ¥ç¶ããããšããŠãããµãŒããŒã¯ïŒæ¬åœã«ããªããæå³ãããµãŒããŒã§ããïŒç§ã¯ãã®ãµãŒããŒãåããŠèŠãã®ã§ïŒå®å
šãã©ããä¿èšŒã§ããŸããããšããïŒãªãããŸããé²ãããã®éèŠãªèŠåã§ãïŒyes
ãšå
¥åã㊠Enter ããŒãæŒããšïŒæ¥ç¶ãç¶è¡ãããŸãïŒ
ãã¹ã¯ãŒããå
¥åããŠãã°ã€ã³ã«æåãããšïŒ [<ããªãã®ãŠãŒã¶ãŒå>@ktak-dev ~]$
ã®ãããªãããã³ãããã衚瀺ããïŒãµãŒããŒãæäœã§ããç¶æ
ã«ãªããŸãïŒ
1.2: åºæ¬ç㪠Linux ã³ãã³ãã«æ £ããã
ãµãŒããŒãæäœããäžã§ïŒåºæ¬çãªãã¡ã€ã«ã·ã¹ãã ã®ã³ãã³ãã¯å¿ é ã§ãïŒããã€ã詊ããŠã¿ãŸãããïŒ
- pwd (Print Working Directory): ãä»ã©ãã«ããã®ïŒããšå°ããã³ãã³ãã§ãïŒçŸåšèªåããããã£ã¬ã¯ããªã®ãã«ãã¹ïŒã«ãŒãããã®å®å šãªäœæïŒã衚瀺ããŸãïŒ
- ls (List):
ããã®éšå±ã«ã¯äœãããïŒããšå°ããã³ãã³ãã§ãïŒçŸåšã®ãã£ã¬ã¯ããªã«ãããã¡ã€ã«ããã£ã¬ã¯ããªã®äžèЧã衚瀺ããŸãïŒ
-lãªãã·ã§ã³ã§è©³çްæ å ±ïŒ-aã§é ããã¡ã€ã«ïŒ . ã§å§ãŸããã¡ã€ã«ïŒã衚瀺ã§ããŸãïŒls -laã¯éåžžã«ãã䜿ãããçµã¿åããã§ãïŒ - mkdir (Make Directory): ãæ°ããéšå±ãäœããã³ãã³ãã§ãïŒæ°ãããã£ã¬ã¯ããªãäœæããŸãïŒ
- cd (Change Directory): ãéšå±ãç§»åãããã³ãã³ãã§ãïŒæå®ãããã£ã¬ã¯ããªã«ç§»åããŸãïŒ
cd ..ã§äžã€äžã®éå±€ã®ãã£ã¬ã¯ããªã«æ»ããŸãïŒ - cp (Copy): ãã¡ã€ã«ããã£ã¬ã¯ããªãã³ããŒããŸãïŒ
cp <ã³ããŒå > <ã³ããŒå >ã®ããã«äœ¿ããŸãïŒ - mv (Move): ãã¡ã€ã«ããã£ã¬ã¯ããªãç§»åïŒãŸãã¯ååã倿ŽããŸãïŒ
mv <ç§»åå > <ç§»åå >ã®ããã«äœ¿ããŸãïŒ - rm (Remove): ãã¡ã€ã«ãåé€ããŸãïŒãã£ã¬ã¯ããªãåé€ããå Žåã¯
-rãªãã·ã§ã³ãå¿ èŠã§ãïŒäžåºŠåé€ãããšå ã«æ»ããªãã®ã§ïŒæ éã«äœ¿ããŸãããïŒ - man (Manual): ã³ãã³ãã®ããã¥ã¢ã«ïŒèª¬ææžïŒã衚瀺ããŸãïŒäœ¿ãæ¹ãåãããªãã³ãã³ããããã°ïŒ
man <ã³ãã³ãå>ã§èª¿ã¹ãããšãã§ããŸãïŒïŒqããŒã§çµäºããŸãïŒ
1.3: SSH å ¬ééµã®ç»é²ã«ãããã°ã€ã³ã®å¹çå
å ¬ééµèªèšŒãšã¯ïŒ ãã¹ã¯ãŒãã®ä»£ããã«ãéµãã䜿ã£ãŠãã°ã€ã³ããïŒããå®å šãªèªèšŒæ¹åŒã§ãïŒãç§å¯éµïŒèªåã® PC ã«ä¿ç®¡ïŒããšãå ¬ééµïŒãµãŒããŒã«ç»é²ïŒãã®ãã¢ã䜿ãïŒãã¹ã¯ãŒããã®ãã®ããããã¯ãŒã¯ã«æµãããšãªãæ¬äººç¢ºèªãè¡ããŸãïŒãã®æ¹åŒã¯ïŒãã¹ã¯ãŒãã®ç·åœããæ»æïŒãã«ãŒããã©ãŒã¹ã¢ã¿ãã¯ïŒã«å¯ŸããŠæ¥µããŠé«ãèæ§ãæã¡ãŸãïŒ
æé 1: SSH ããŒãã¢ã®äœæïŒããªãã® PC äžã§å®è¡ïŒ
ããªãã®ããŒã«ã« PC ã®ã¿ãŒããã«ã§ïŒ SSH ã®éµãã¢ãäœæããŸãïŒ
æé 2: å ¬ééµã®è¡šç€ºïŒããªãã® PC äžã§å®è¡ïŒ
ãµãŒããŒã«ç»é²ããå ¬ééµã®äžèº«ã衚瀺ããŠã³ããŒããŸãïŒ
æé 3: å ¬ééµã®ç»é²ïŒãµãŒããŒäžã§å®è¡ïŒ
ãã¹ã¯ãŒãã§ãµãŒããŒã«ãã°ã€ã³ããç¶æ ã§ïŒä»¥äžã®ã³ãã³ããå®è¡ãïŒå ¬ééµãèšçœ®ããå ŽæãæºåããŸãïŒ
ããŒããã·ã§ã³ïŒæš©éïŒã«ã€ã㊠: chmod ã¯æš©éã倿Žããã³ãã³ãã§ãïŒ
Linuxã§ã¯ïŒåãã¡ã€ã«ããã£ã¬ã¯ããªã«å¯ŸããŠãææè
ïŒOwnerïŒããã°ã«ãŒãïŒGroupïŒãããã®ä»ïŒOtherïŒãã®3ã€ã®å¯Ÿè±¡ã«ïŒ
ãèªã¿åãïŒRead, rïŒããæžã蟌ã¿ïŒWrite, wïŒããå®è¡ïŒExecute, xïŒãã®3çš®é¡ã®æš©éãåå¥ã«èšå®ã§ããŸãïŒ
æ°åã«ããæš©é衚èšã®ä»çµã¿
æš©é㯠3 ã€ã®æ°åã§è¡šçŸãããŸãïŒabc ã®åœ¢åŒã§ïŒa=ææè
ïŒb=ã°ã«ãŒãïŒc=ãã®ä»ã®æš©éã瀺ããŸãïŒ
- 4: èªã¿åãæš©éïŒrïŒ
- 2: æžãèŸŒã¿æš©éïŒwïŒ
- 1: å®è¡æš©éïŒxïŒ
ãããã®æ°åãè¶³ãåãããããšã§ïŒå ·äœçãªæš©éã®çµã¿åããã衚çŸããŸãïŒ
700: ææè ã®ã¿å šæš©éïŒ4+2+1=7ïŒïŒä»ã¯äžåã¢ã¯ã»ã¹äžå¯ïŒ0+0+0=0ïŒ
SSHç§å¯éµãã£ã¬ã¯ããªïŒ~/.sshïŒã§äœ¿çš
600: ææè ã®ã¿èªã¿æžãïŒ4+2=6ïŒïŒä»ã¯äžåã¢ã¯ã»ã¹äžå¯
SSHéµãã¡ã€ã«ãèšå®ãã¡ã€ã«ã§äœ¿çš
755: ææè ã¯å šæš©éïŒ7ïŒïŒã°ã«ãŒãã»ãã®ä»ã¯èªã¿åãã»å®è¡ã®ã¿ïŒ5ïŒ
äžè¬çãªãã£ã¬ã¯ããªãã¹ã¯ãªãããã¡ã€ã«ã§äœ¿çš
644: ææè ã¯èªã¿æžãïŒ6ïŒïŒã°ã«ãŒãã»ãã®ä»ã¯èªã¿åãã®ã¿ïŒ4ïŒ
äžè¬çãªãã¡ã€ã«ã§äœ¿çš
700 ã 600 ã¯ãææè
ã¯å
šãŠã®æš©éãæã€ãïŒä»äººã«ã¯äžåæš©éãäžããªãããšããéåžžã«å³ããèšå®ã§ïŒ SSH
ã®éµã®ãããªéèŠãªãã¡ã€ã«ãä¿è·ããéã®å®ç³ã§ãïŒããã«ããïŒæªæã®ãããŠãŒã¶ãŒãæ»æè
ãéèŠãªãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããããšãé²ããŸãïŒ
æé 4: å ¬ééµã®ããŒã¹ãïŒãµãŒããŒäžã§å®è¡ïŒ
nano ãšãã£ã¿ã§ç»é²ãã¡ã€ã«ãéãïŒã³ããŒããå
¬ééµã貌ãä»ããŠä¿åããŸãïŒ
æé 5: éµèªèšŒã§ã®ãã°ã€ã³ç¢ºèªïŒããªãã® PC äžã§å®è¡ïŒ
ãµãŒããŒãããã°ã¢ãŠã (exit) ãïŒå床ãã°ã€ã³ã詊ã¿ãŸãïŒãã¹ã¯ãŒããèãããã«ãã°ã€ã³ã§ããã°æåã§ãïŒ
Part 2: ãã©ã³ã¹ããŒãå±€ãšã€ã³ã¿ãŒãããå±€ - TCP/IP ã®å®è·µ
ã€ã³ã¿ãŒãããã®éå±€ã¢ãã«
ãã®è¬ç¿äŒã§åŠã¶æè¡ãïŒã€ã³ã¿ãŒãããå šäœã®äžã§ã©ã®ãã圹å²ãæ ã£ãŠãããïŒä»¥äžã®å³ã§ç¢ºèªããŸãããïŒWebãµãŒãã¹ã¯ïŒãããã®ç°ãªã圹å²ãæã€æè¡ããå±€ïŒã¬ã€ã€ãŒïŒãã®ããã«éãªãåã£ãŠæãç«ã£ãŠããŸãïŒ
ã¢ããªã±ãŒã·ã§ã³å±€
ïŒå ·äœçãªãµãŒãã¹ãæäŸïŒ
ãã©ã³ã¹ããŒãå±€
ïŒããŒã¿ã®æ£ç¢ºãªããåããä¿èšŒïŒ
ã€ã³ã¿ãŒãããå±€
ïŒç®çå°ãŸã§ããŒã¿ãå±ããïŒ
ãã®ããŒãã§ã¯ïŒãããã¯ãŒã¯ã®æ žãšãªãæŠå¿µãïŒã³ãã³ãã䜿ããªããäœéšçã«åŠãã§ãããŸãïŒ
2.1: ãã³ãºãªã³ - ping ã«ããæ¥ç¶æ§ã®ç¢ºèª
ping ã¯ïŒ ICMP ãšãããé£çµ¡çšèšèªãã䜿ãïŒçžæãšã®æ¥ç¶ã確èªããã³ãã³ãã§ãïŒ
ping åºåã®è©³çްãªèªã¿è§£ãæ¹ : ping
ãå®è¡ãããšïŒä»¥äžã®ãããªè¡ãç¹°ãè¿ã衚瀺ãããŸãïŒ
- 64 bytes from ...: çžæãã 64 ãã€ãã®å€§ããã®å¿çãã±ãããè¿ã£ãŠããããšã瀺ããŸãïŒ
- 172.67.136.249: å¿çãè¿ããŠãããã¹ãã® IP
ã¢ãã¬ã¹ã§ãïŒ
pingã¯å éšã§ DNS ã«ããåå解決ãè¡ã£ãŠããŸãïŒ - icmp_seq=1: éä¿¡ãã ICMP ãã±ããã®ã·ãŒã±ã³ã¹çªå·ïŒéãçªå·ïŒã§ãïŒ 1 çªç®ã®ãã±ããã«å¯Ÿããå¿çã§ããããšã瀺ããŸãïŒãã±ãããéäžã§å€±ãããïŒãã±ãããã¹ïŒå ŽåïŒãã®çªå·ãé£ã¶ããšã§æ€ç¥ã§ããŸãïŒ
- ttl=48: Time-to-Live ã®ç¥ã§ïŒãã±ãããã€ã³ã¿ãŒãããã®æµ·ã§æ°žé ã«è¿·åã«ãªããªãããã®ã寿åœãã§ãïŒããŒã¿ã¯ã«ãŒã¿ãŒãšããäžç¶ç¹ã 1 ã€çµãããšã«ïŒãã® TTL ã®å€ã 1 ãã€æžããããŠãããŸãïŒ TTL ã 0 ã«ãªããšãã®ãã±ããã¯ç Žæ£ãããŸãïŒ
- time=13.4 ms: RTT (Round-Trip Time) ãšåŒã°ãïŒããŒã¿ãçžæã«å±ããŠããèªåã«æ»ã£ãŠãããŸã§ã®åŸåŸ©æéã§ãïŒãã®å€ãå°ããã»ã©ïŒéä¿¡ã®é å»¶ãå°ãªãããšãæå³ããŸãïŒ
2.2: ãã³ãºãªã³ - traceroute ã«ãããããã¯ãŒã¯çµè·¯ã®å¯èŠå
traceroute ã¯ïŒããŒã¿ãç®çå°ã«çããŸã§ã«çµç±ããã«ãŒã¿ãŒã®çµè·¯ãå¯èŠåããïŒéåžžã«è³¢ãã³ãã³ãã§ãïŒã§ã¯ïŒã©ããã£ãŠçµè·¯ãç¥ãããšãã§ããã®ã§ããããïŒ
ããã¯ïŒ2.1 ã§åŠãã ãã±ããã®å¯¿åœ (TTL) ãå·§ã¿ã«å©çšããããªãã¯ã«åºã¥ããŠããŸãïŒtraceroute ã¯ä»¥äžã®ãããªæé ã§çµè·¯ãæŽããŠãããŸãïŒ
-
ãŸãïŒTTL
ãã1ãã«èšå®ããç¹æ®ãªãã±ãããéä¿¡ããŸãïŒãã®ãã±ããã¯ïŒæåã®äžç¶ã«ãŒã¿ãŒïŒ1 ãããç®ïŒã«å°çããæç¹ã§ TTL ã 0
ã«ãªãïŒãæéåãããšã©ãŒãè¿ä¿¡ããŠããŸãïŒ
tracerouteã¯ãã®ãšã©ãŒãåãåãããšã§ã1çªç®ã®äžç¶ç¹ã¯ãã®ã«ãŒã¿ãŒã ããšç¥ãããšãã§ããŸãïŒ - 次ã«ïŒTTL ãã2ãã«èšå®ãããã±ãããéä¿¡ããŸãïŒãã®ãã±ãã㯠1 çªç®ã®ã«ãŒã¿ãŒãééãïŒ2 çªç®ã®ã«ãŒã¿ãŒã§æéåãã«ãªããŸãïŒ2 çªç®ã®ã«ãŒã¿ãŒãããšã©ãŒãè¿ã£ãŠããããšã§ïŒãã®ååšãç¥ããŸãïŒ
- ãã®æäœãïŒTTL ã®å€ã 1 ãã€å¢ãããªããïŒæçµç®çå°ã«ãã±ãããå°çãããŸã§ç¹°ãè¿ããŸãïŒ
ãã®ããã«ïŒãããšãã±ãããéäžã§æéåãã«ãããããšã§ïŒåäžç¶ç¹ããèªå·±ç޹ä»ãããïŒãšããæ¹æ³ã§éä¿¡çµè·¯ãæããã«ããŠããŸãïŒ
traceroute åºåã®è©³çްãªèªã¿è§£ãæ¹ : åºåã®åè¡ã¯ïŒç®çå°ãŸã§ã®çµè·¯äžã«ããäžã€ã®äžç¶ç¹ïŒãããïŒã衚ããŠããŸãïŒ
- 1: ãããçªå·ïŒèªåã® PC ããæ°ããŠäœçªç®ã®äžç¶ç¹ãã瀺ããŸãïŒ
- 192.168.1.1 (192.168.1.1): ãã®äžç¶ç¹ã§ããã«ãŒã¿ãŒã®ãã¹ãåã IP ã¢ãã¬ã¹ã§ãïŒ
- 1.234 ms ...: ãã®ã«ãŒã¿ãŒãŸã§ã®åŸåŸ©æé (RTT) ïŒ
tracerouteã¯ä¿¡é Œæ§ãé«ããããïŒããã©ã«ãã§åäžç¶ç¹ã« 3 åãã±ãããéãïŒããããã® RTT ãèšæž¬ããŸãïŒ - * * *: ã¢ã¹ã¿ãªã¹ã¯ã衚瀺ãããå ŽåïŒãã®äžç¶ç¹ã®ã«ãŒã¿ãŒããæéå ã«å¿çããªãã£ãããšã瀺ããŸãïŒã»ãã¥ãªãã£äžã®çç±ã§æå³çã«å¿çããªãèšå®ã®ã«ãŒã¿ãŒãå€ãããïŒå¿ ãããç°åžžã瀺ãããã§ã¯ãããŸããïŒ
2.3: ãã³ãºãªã³ - ss ã«ãã TCP æ¥ç¶ã®ç¢ºèª
TCP ãšã¯ïŒ TCP (Transmission Control Protocol)
ã¯ïŒé»è©±ã®ããã«ïŒãŸãçžæãšãæ¥ç¶ïŒã³ãã¯ã·ã§ã³ïŒãã確ç«ãïŒããŒã¿ãæ£ç¢ºã«å±ãããããäºãã«ç¢ºèªããªããïŒå®å®ããéä¿¡ãè¡ããŸãïŒ ss
ã³ãã³ãã§ïŒçŸåšç¢ºç«ãããŠãã TCP æ¥ç¶ã®äžèЧã確èªã§ããŸãïŒ
State ã ESTABïŒç¢ºç«æžã¿ïŒãšãªã£ãŠããè¡ãïŒçŸåšæå¹ãªæ¥ç¶ã§ãïŒ
Part 3: ã¢ããªã±ãŒã·ã§ã³å±€ - DNS åå解決
DNS (Domain Name System) ã¯ïŒãã¡ã€ã³åã IP ã¢ãã¬ã¹ã«å€æãããã€ã³ã¿ãŒãããã®å·šå€§ãªåæ£åé»è©±åž³ãã§ãïŒç§ãã¡ãæ®æ®µäœæ°ãªããgoogle.comãããktak.devããšå ¥åããŠã¢ã¯ã»ã¹ããŠãããšãïŒèåŸã§ã¯éåžžã«è€éã§å·§åŠãªä»çµã¿ãåããŠããŸãïŒ
DNS ã®åºæ¬æŠå¿µ
DNSã¯ä»¥äžã®éèŠãªèŠçŽ ããæ§æãããŠããŸãïŒ
- ãã¡ã€ã³å: 人éãèŠããããååïŒäŸïŒgoogle.com, ktak.devïŒ
- IPã¢ãã¬ã¹: ã³ã³ãã¥ãŒã¿ãå®éã«éä¿¡ã«äœ¿ãæ°åã®äœæïŒäŸïŒ142.250.196.110ïŒ
- DNSãµãŒããŒ: ãã¡ã€ã³åãšIPã¢ãã¬ã¹ã®å¯Ÿå¿è¡šã管çããã³ã³ãã¥ãŒã¿
- åå解決: ãã¡ã€ã³åãIPã¢ãã¬ã¹ã«å€æããåŠç
3.1: ãã³ãºãªã³ - dig ã«ãã DNS ãžã®åãåãã
dig ã¯ïŒ DNS
ãµãŒããŒã«çŽæ¥åãåãããè¡ãïŒè©³çŽ°ãªæ
å ±ãååŸããå°éçãªããŒã«ã§ãïŒãã©ãŠã¶ãå
éšã§è¡ã£ãŠããåå解決ã®éçšãïŒç§ãã¡ãæåã§è¿œäœéšããããšãã§ããŸãïŒ
åºæ¬ç㪠dig ã³ãã³ãã®äœ¿çš
dig åºåã®è©³çްãªèªã¿è§£ãæ¹:
- QUESTION SECTION: å®éã«DNSãµãŒããŒã«éä¿¡ãã質åå 容ã衚瀺ãããŸã
- ANSWER SECTION: DNSãµãŒããŒããã®åçã衚瀺ãããŸãïŒããã«IPã¢ãã¬ã¹ãå«ãŸããŠããŸã
- Query time: åå解決ã«ããã£ãæéïŒããªç§ïŒ
- SERVER: åãåããã«äœ¿çšããDNSãµãŒããŒã®IPã¢ãã¬ã¹
ãã詳现㪠DNS ã¬ã³ãŒãã®èª¿æ»
DNS ã«ã¯ A ã¬ã³ãŒã以å€ã«ãïŒæ§ã ãªçš®é¡ã®æ å ±ãæ ŒçŽãããŠããŸãïŒ
DNS ã®éå±€æ§é ã远跡ãã
dig +trace 㯠DNS ã®åå解決ããã»ã¹å
šäœã段éçã«è¡šç€ºããïŒéåžžã«æè²çãªãªãã·ã§ã³ã§ãïŒ
ãã®åºåã詳ãã芳å¯ãããšïŒä»¥äžã®ãããªéå±€çãªåãåããã®æµããèŠããŠããŸãïŒ
- ã«ãŒããµãŒããŒïŒ.ïŒ: ã€ã³ã¿ãŒãããå šäœã® DNS ã®é ç¹ïŒã.devãã管çãããµãŒããŒã®å ŽæãæããŠãããŸã
- TLD ãµãŒããŒïŒ.devïŒ: ã.devããã¡ã€ã³å šäœã管çïŒãktak.devãã®æš©åšãµãŒããŒãæããŠãããŸã
- æš©åšãµãŒããŒ: ãktak.devãã®å®éã® IP ã¢ãã¬ã¹ãç¥ã£ãŠããæçµçãªæ å ±æº
DNS ãã£ãã·ã¥ã«ã€ããŠ
å®éã®ãã©ãŠã¶ã OS ã¯ïŒäžåºŠåãåãããçµæãäžå®æéããã£ãã·ã¥ããšããŠä¿åããŸãïŒ
ããã«ããïŒåããµã€ãã«å床ã¢ã¯ã»ã¹ããéã®å¿çé床ã倧å¹
ã«åäžããŸããïŒ
DNS ã®èšå®å€æŽãåæ ããããŸã§ã«æéããããåå ã«ããªããŸãïŒ
dig ã®çµæã«è¡šç€ºããããTTLãïŒTime To LiveïŒå€ãïŒãã®ãã£ãã·ã¥ã®æå¹æéã瀺ããŠããŸãïŒ
3.2: ãã³ãºãªã³ - nslookup ã«ããå¥ã®ã¢ãããŒã
nslookup 㯠dig ãšåæ§ã®åå解決ããŒã«ã§ããïŒãã察話çãªæäœãå¯èœã§ãïŒ
3.3: ãã³ãºãªã³ - DNS ã®åäœç¢ºèªå®éš
DNS ã®ä»çµã¿ãããæ·±ãçè§£ããããã«ïŒããã€ãã®å®éšãè¡ã£ãŠã¿ãŸãããïŒ
å®éš 1: ç°ãªã DNS ãµãŒããŒã§ã®çµææ¯èŒ
å®éš 2: ååšããªããã¡ã€ã³ã®åãåãã
ãã®çµæããïŒDNS ãµãŒããŒãã©ã®ããã«ããã®ãã¡ã€ã³ã¯ååšããŸããããšããæ å ±ãè¿ããã芳å¯ã§ããŸãïŒ
DNS ã»ãã¥ãªãã£ã®éèŠæ§
DNS ã¯éèŠãªã€ã³ãã©ã§ããïŒã»ãã¥ãªãã£äžã®è匱æ§ãååšããŸãïŒ
- DNS ãã£ãã·ã¥ãã€ãºãã³ã°: åœã® DNS æ å ±ããã£ãã·ã¥ã«æ³šå ¥ããæ»æ
- DNS ãã€ãžã£ãã¯: DNS ãµãŒããŒèªäœãä¹ã£åãïŒæªæã®ãããµã€ãã«èªå°
- DNS over HTTPS (DoH): DNS éä¿¡ãæå·åããæ°ããä»çµã¿
- DNSSEC: DNS ã¬ã¹ãã³ã¹ã«é»å眲åãä»ããŠæ¹ãããé²ãæè¡
ãããã®è åšã«å¯ŸæããããïŒDNS ã®æå·åã眲åæè¡ãçºå±ããŠããŸãïŒ
ãã®ããã« DNS ã®åäœã詳ãã芳å¯ããããšã§ïŒã€ã³ã¿ãŒãããã®åºç€æè¡ãžã®çè§£ãæ·±ãŸããŸãïŒæ¬¡ã®ããŒãã§ã¯ïŒãã® DNS ãšå¯æ¥ã«é¢é£ãã HTTP éä¿¡ã«ã€ããŠåŠãã§ãããŸãïŒ
Part 4: ã¢ããªã±ãŒã·ã§ã³å±€ - HTTP ãš TCP éä¿¡ã®å®è·µ
Web ã®äžçãæ¯ãããããã³ã«ïŒ HTTP ãšïŒãã®åå°ãšãªã TCP éä¿¡ãæ¢æ±ããŸãïŒ
4.1: ãã³ãºãªã³ - HTTP éä¿¡ã®è§£ååŠ : netcat ã§ãªã¯ãšã¹ããææžããã
HTTP ãšã¯ïŒ HTTP (HyperText Transfer Protocol) ã¯ïŒ Web ãã©ãŠã¶ãš Web ãµãŒããŒãäºãã«ãäŒè©±ãããããã®èšèªã§ãïŒããªã¯ãšã¹ãïŒèŠæ±ïŒããšãã¬ã¹ãã³ã¹ïŒå¿çïŒãã®ã¢ãã«ã§åäœããŸãïŒãã®ãã³ãºãªã³ã§ã¯ïŒããªãããã©ãŠã¶ã®ä»£ããã«ã泚æïŒãªã¯ãšã¹ãïŒããææžãã§äœæãïŒ Web ãµãŒããŒããã®ãæçïŒã¬ã¹ãã³ã¹ïŒããçŽæ¥åãåããŸãïŒ
HTTP éä¿¡ã®åºæ¬æ§é
HTTP éä¿¡ã¯ä»¥äžã®ãããªæµãã§è¡ãããŸãïŒ
- æ¥ç¶ç¢ºç«: ã¯ã©ã€ã¢ã³ãããµãŒããŒãš TCP æ¥ç¶ã確ç«
- ãªã¯ãšã¹ãéä¿¡: ã¯ã©ã€ã¢ã³ãã HTTP ãªã¯ãšã¹ããéä¿¡
- åŠç: ãµãŒããŒããªã¯ãšã¹ããåŠç
- ã¬ã¹ãã³ã¹éä¿¡: ãµãŒããŒã HTTP ã¬ã¹ãã³ã¹ãè¿ä¿¡
- æ¥ç¶çµäº: éä¿¡ãå®äºãããš TCP æ¥ç¶ãçµäº
netcat (nc) ãšã¯ïŒ ãããã¯ãŒã¯ã®ãäžèœãã€ãããšãåŒã°ããããŒã«ã§ïŒ TCP/UDP ã§çã®ããŒã¿ãçŽæ¥ããåãã§ããŸãïŒHTTP ã®ä»çµã¿ãçè§£ããããã«ïŒãã©ãŠã¶ãè£ã§è¡ã£ãŠããåŠçãæåã§äœéšããŠã¿ãŸãããïŒ
æé 1: Web ãµãŒããŒãžã®æ¥ç¶
nc example.com 80 ã¯ïŒãexample.com ãšãããµãŒããŒã® 80 çªããŒãïŒHTTP éä¿¡ã®æšæºçãªçé¢ïŒã« TCP
ã§æ¥ç¶ããããšããæå³ã§ãïŒ
ããŒãçªå·ã«ã€ããŠ
ããŒãçªå·ã¯ïŒäžã€ã®ãµãŒããŒäžã§è€æ°ã®ãµãŒãã¹ãåºå¥ããããã®ãéšå±çªå·ãã®ãããªãã®ã§ãïŒ HTTP ã¯éåžž 80 çªïŒHTTPS 㯠443 çªïŒSSH 㯠22 çªãªã©ïŒãµãŒãã¹ããšã«æšæºçãªããŒãçªå·ã決ããããŠããŸãïŒ
æé 2: HTTP ãªã¯ãšã¹ãã®æåäœæ
æ¥ç¶åŸïŒä»¥äžã® HTTP ãªã¯ãšã¹ããããŒããŒãã§å ¥åããŸãïŒæåŸã®ç©ºè¡ã極ããŠéèŠã§ãïŒ
HTTP ãªã¯ãšã¹ãã®æ§é 解説 :
- ãªã¯ãšã¹ãã©ã€ã³ (1 è¡ç®):
GET( ã¡ãœãã ) ã§ãªãœãŒã¹ã®ååŸãèŠæ±ãïŒ/( ãã¹ ) ã§ãããããŒãžãæå®ãïŒHTTP/1.1( ããŒãžã§ã³ ) ã§éä¿¡ã«ãŒã«ãäŒããŸãïŒ - ãªã¯ãšã¹ãããã㌠(2 è¡ç®ä»¥é):
Host:ã§å¯Ÿè±¡ã®ãŠã§ããµã€ããïŒConnection:ã§éä¿¡åŸã®æ¥ç¶ã®æ±ããäŒããŸãïŒ - ç©ºè¡ : ããããŒæ å ±ã®çµããããµãŒããŒã«äŒããããã®ãåºåãç·ãã§ãïŒ
äž»èŠãªHTTPã¡ãœãã
- GET: ãªãœãŒã¹ã®ååŸïŒããŒã¿ã®èªã¿èŸŒã¿ïŒ
- POST: ããŒã¿ã®éä¿¡ïŒãã©ãŒã æçš¿ãªã©ïŒ
- PUT: ãªãœãŒã¹ã®äœæã»æŽæ°
- DELETE: ãªãœãŒã¹ã®åé€
- HEAD: ããããŒæ å ±ã®ã¿ååŸïŒããã£ã¯äžèŠïŒ
æé 3: HTTP ã¬ã¹ãã³ã¹ã®èгå¯
ãªã¯ãšã¹ããæ£ããéä¿¡ããããšïŒãµãŒããŒããçã® HTTP ã¬ã¹ãã³ã¹ãè¿ã£ãŠããŸãïŒ
HTTP ã¬ã¹ãã³ã¹ã®æ§é 解説 :
- ã¹ããŒã¿ã¹ã©ã€ã³ (1 è¡ç®):
200 OKã®ããã«ïŒãªã¯ãšã¹ãã®çµæã 3 æ¡ã®ã¹ããŒã¿ã¹ã³ãŒãã§ç€ºããŸãïŒ - ã¬ã¹ãã³ã¹ããã㌠(2 è¡ç®ä»¥é):
Content-Type:ã§ããŒã¿ã®çš®é¡ãïŒContent-Length:ã§ããŒã¿ã®ãµã€ãºãäŒããŸãïŒ - ã¬ã¹ãã³ã¹ãã㣠: HTML ã³ã³ãã³ããã®ãã®ã§ãïŒ
äž»èŠãªHTTPã¹ããŒã¿ã¹ã³ãŒã
2xx æå
- 200 OK: æ£åžžã«åŠçå®äº
- 201 Created: ãªãœãŒã¹ã®äœæå®äº
- 204 No Content: åŠçå®äºãã¬ã¹ãã³ã¹ããã£ãªã
3xx ãªãã€ã¬ã¯ã
- 301 Moved Permanently: æ°žç¶çãªç§»è»¢
- 302 Found: äžæçãªç§»è»¢
- 304 Not Modified: 倿Žãªã
4xx ã¯ã©ã€ã¢ã³ããšã©ãŒ
- 400 Bad Request: äžæ£ãªãªã¯ãšã¹ã
- 401 Unauthorized: èªèšŒãå¿ èŠ
- 403 Forbidden: ã¢ã¯ã»ã¹çŠæ¢
- 404 Not Found: ãªãœãŒã¹ãèŠã€ãããªã
5xx ãµãŒããŒãšã©ãŒ
- 500 Internal Server Error: ãµãŒããŒå éšãšã©ãŒ
- 502 Bad Gateway: ã²ãŒããŠã§ã€ãšã©ãŒ
- 503 Service Unavailable: ãµãŒãã¹å©çšäžå¯
ãããªã HTTP ãªã¯ãšã¹ãã®å®éš
ä»ã® HTTP ã¡ãœãããããããŒã詊ããŠã¿ãŸãããïŒ
4.2: ãã³ãºãªã³ - curl ã«ãã HTTP éä¿¡ã®è©³çŽ°èŠ³å¯
curl ã¯ïŒHTTP éä¿¡ãããç°¡åã«è¡ããããŒã«ã§ãïŒ-v ãªãã·ã§ã³ã䜿ãããšã§ïŒnetcatã§æåã§è¡ã£ãåŠçãšåãå
容ã詳现ã«èгå¯ã§ããŸãïŒ
4.3: ãã³ãºãªã³ - netcat ã§ç°¡æãã£ããäœéš
TCP æ¥ç¶ãã確ç«ã§ããã°ïŒ nc ã䜿ã£ãŠãªã¢ã«ã¿ã€ã ã«ããã¹ããéãåãããšãã§ããŸãïŒããã«ããïŒTCPã®åæ¹åéä¿¡ã®ä»çµã¿ãäœæã§ããŸãïŒ
äžäººã§è©Šãå ŽåïŒåäžãµãŒããŒå ã§ã®éä¿¡ïŒ:
2 ã€ã®ã¿ãŒããã«ãéããŠïŒäž¡æ¹ã§ãµãŒããŒã« SSH æ¥ç¶ããŸãïŒ
- ã¿ãŒããã« 1 ïŒãµãŒããŒåœ¹ïŒ :
nc -l <ããŒãçªå·>ãå®è¡ããŠæ¥ç¶ãåŸ ã¡åããŸãïŒ - ã¿ãŒããã« 2 ïŒã¯ã©ã€ã¢ã³ãåœ¹ïŒ :
nc localhost <ããŒãçªå·>ãå®è¡ããŠèªåèªèº«ã«æ¥ç¶ããŸãïŒ
è€æ°äººã§è©Šãå ŽåïŒ 2 人 1 çµïŒ :
- ãµãŒããŒåœ¹ :
nc -l <ããŒãçªå·>ã§æ¥ç¶ãåŸ ã¡åããŸãïŒ - ã¯ã©ã€ã¢ã³ã圹 :
nc <ãµãŒããŒã® IP ã¢ãã¬ã¹> <ããŒãçªå·>ã§ãµãŒããŒåœ¹ã«æ¥ç¶ããŸãïŒ
TCPæ¥ç¶ã®ç¶æ 確èª
ãã£ããäžã«å¥ã®ã¿ãŒããã«ã§ ss -tn ãå®è¡ãããšïŒ
å®éã«ç¢ºç«ãããŠããTCPæ¥ç¶ã確èªã§ããŸãïŒ
ESTAB ç¶æ
ã®æ¥ç¶ã衚瀺ãããã¯ãã§ãïŒ
ãã¡ã€ã«è»¢éã®å®éš
netcat ã¯ïŒåçŽãªããã¹ãã®ããåãã ãã§ãªãïŒãã¡ã€ã«ã®è»¢éã«ã䜿ããŸãïŒ
Part 5: åç㪠Web ã¢ããªã±ãŒã·ã§ã³ã®å®è·µ : pnpm, TypeScript, Node.js
ãããŸã§ã¯ãéçã㪠Web ãµã€ããæ±ã£ãŠããŸããïŒããã§ã¯ïŒãªã¯ãšã¹ãã«å¿ããŠãã®å Žã§ã³ã³ãã³ããçæãããåçã㪠Web
ã¢ããªã±ãŒã·ã§ã³ãïŒããã¢ãã³ãªéçºç°å¢ã§ãã pnpm ãš TypeScript ã䜿ã£ãŠæ§ç¯ããŸãïŒ
5.1: pnpm ãš TypeScript ã®å°å ¥
pnpm ãšã¯ïŒ npm ãšåæ§ã® Node.js
ããã±ãŒãžç®¡çããŒã«ã§ããïŒããé«éã§ïŒãã£ã¹ã¯ã¹ããŒã¹ãå¹ççã«äœ¿çšãããšããå©ç¹ããããŸãïŒ
TypeScript ãšã¯ïŒ JavaScript ã«ãåãã®æŠå¿µã远å ããäžäœäºæèšèªã§ãïŒã³ãŒããæžããŠããæ®µéã§å€ãã®ãšã©ãŒãçºèŠã§ãïŒå€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³éçºãããå®å šã§å¹ççã«ããŸãïŒ
5.2: ãã³ãºãªã³ - TypeScript ã¢ããªã±ãŒã·ã§ã³ã®äœæ
æé 1: ãããžã§ã¯ãã®åæå
pnpm ã䜿ã£ãŠãããžã§ã¯ããåæåããŸãïŒ
æé 2: å¿ èŠãªããã±ãŒãžã®ã€ã³ã¹ããŒã«
ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ã«å¿ èŠãª express ãšïŒéçºã«å¿ èŠãª typescript, ts-node, @types/node, @types/express ãã€ã³ã¹ããŒã«ããŸãïŒ -D ã¯éçºæã®ã¿ã«å¿ èŠãªããã±ãŒãžïŒ devDependencies ïŒã§ããããšã瀺ããŸãïŒ
æé 3: TypeScript èšå®ãã¡ã€ã«ã®äœæ
TypeScript ã®ã³ã³ãã€ã©ã«å¯Ÿããæç€ºæžã§ãã tsconfig.json ãäœæããŸãïŒ
以äžã®èšå®ã貌ãä»ããŠãã ããïŒããã¯ïŒäžè¬ç㪠Node.js+Express ãããžã§ã¯ãåãã®åºæ¬çãªèšå®ã§ãïŒ
æé 4: ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®äœæ
ãœãŒã¹ã³ãŒãã眮ãããã® src ãã£ã¬ã¯ããªãäœæãïŒãã®äžã« index.ts ãã¡ã€ã«ãäœæããŸãïŒ
以äžã®ã³ãŒãã貌ãä»ããŠãã ããïŒ 500XX ã«ã¯ïŒä»ã®äººãšè¢«ããªãçªå·ãå ¥ããŠãã ããïŒ
5.3: ãã³ãºãªã³ - ã¢ããªã±ãŒã·ã§ã³ã®å®è¡ãšãã¹ã
æé 1: ã¢ããªã±ãŒã·ã§ã³ã®èµ·å
ts-node ã¯ïŒ TypeScript ãã³ã³ãã€ã«ããã«çŽæ¥å®è¡ã§ãã䟿å©ãªããŒã«ã§ãïŒ
Server is running...
ãšããã¡ãã»ãŒãžã衚瀺ãããã°æåã§ãïŒãã®ã¿ãŒããã«ã¯èµ·åãããŸãŸã«ããŠãããŸãïŒ
æé 2: curl ã«ããããŒã«ã«ãã¹ã
å¥ã®ã¿ãŒããã«ãéã㊠ãµãŒããŒã«å床 SSH æ¥ç¶ãïŒcurl ã§åäœç¢ºèªããŸãïŒ
5.4: ãã³ãºãªã³ - Nginx ã«ãããªããŒã¹ãããã·èšå®
ãã®ã¹ãããã§ã¯ïŒNginx ã®æã匷åãªæ©èœã®äžã€ã§ããããªããŒã¹ãããã·ããèšå®ãïŒå ã»ã©äœæãã Node.js ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¿ãŒãããã«å ¬éããŸãïŒ
ãªããŒã¹ãããã·ãšã¯ïŒ
ãªããŒã¹ãããã·ã¯ïŒå€éšããã®ãªã¯ãšã¹ããäžæŠãã¹ãŠåãåãïŒãã®å
容ã«å¿ããŠèåŸã«ããé©åãªãµãŒããŒã«ãªã¯ãšã¹ãã転éãããäº€éæŽç圹ãããåä»ä¿ãã®ãããªååšã§ãïŒ
ä»åã®èšå®ã倧ããªãªãã£ã¹ãã«ã«äŸããŠã¿ãŸãããïŒ
- Nginx: ãã«ã®ç·ååä»ïŒããŒã 8000 çªå°ãªã©ïŒã§ãïŒãã¹ãŠã®èšªåè ïŒHTTP ãªã¯ãšã¹ãïŒã¯ïŒãŸããã®åä»ã«ãã£ãŠããŸãïŒ
- éçãµã€ã (public_html):
1 éã®è³æå±ç€ºå®€ã§ãïŒåä»ä¿ïŒNginxïŒã¯ïŒåã«ãè³æãèŠããããšãã蚪åè
ïŒ
/ãžã®ã¢ã¯ã»ã¹ïŒãããã«æ¡å ããŸãïŒ - Node.js ã¢ã㪠(localhost:9001):
9 éã®å°ééšçœ²ïŒããŒã 9001ïŒã§ãïŒåä»ä¿ã¯ãå°éçãªçžè«ããããããšãã蚪åè
ïŒ
/app/ãžã®ã¢ã¯ã»ã¹ïŒãïŒå ç·é»è©±ã§ 9 éã®æ åœéšçœ²ã«ç¹ããŸãïŒèšªåè ã¯åä»ãšè©±ããŠããã€ããã§ããïŒå®éã«ã¯ 9 éã®å°éå®¶ãšè©±ããŠããããã§ãïŒ
ãã®ããã«ïŒãªããŒã¹ãããã·ã¯ãã©ã®ãªã¯ãšã¹ããïŒã©ã®ã¢ããªã±ãŒã·ã§ã³ã«æž¡ããããäžå 管çããŸãïŒããã«ããïŒå€éšããã¯çŽæ¥ Node.js ã¢ããªãèŠããïŒã»ãã¥ãªãã£ãåäžãããïŒå°æ¥çã«è€æ°ã®ã¢ããªãåããµãŒããŒã§åããããããããšã容æã«ãªããªã©ïŒå€ãã®ã¡ãªããããããŸãïŒ
æé 1: Nginx èšå®ãã¡ã€ã«ã®æŽæ°
~/nginx_userXX.conf ãäœæãïŒä»¥äžã®å 容ã远å ããŸãïŒ
æé 2: èšå®ãã¡ã€ã«ã®é©çš
Cyber ã«ãµãŒããŒãžã®é©çšãäŸé ŒããŸãïŒ
5.5: ãã³ãºãªã³ - ãã©ãŠã¶éçºè ããŒã«ã§ã®é信確èª
curl http://ktak.dev:50000/appXX/
ãªã©ãå©ãïŒContent-Type ããããŒãã¬ã¹ãã³ã¹å
容ã芳å¯ããŸãïŒ
Part 6: åºç€çãµã€ããŒã»ãã¥ãªãã£ãšå¿çšèª²é¡
ãã®ããŒãã§ã¯ïŒãµãŒããŒãå€éšã®è åšããå®ãããã®åºæ¬çãªèãæ¹ãšæè¡ãïŒããæ·±ãåŠã³ãŸãïŒ
6.1: æŠå¿µ : ãã¡ã€ã¢ãŠã©ãŒã«ãšã»ãã¥ãªãã£ãªã¹ã
ãã¡ã€ã¢ãŠã©ãŒã«ãšã¯ïŒ ãããã¯ãŒã¯ã®ã颿ãããèŠåå¡ãã§ãïŒäºåã«å®ããããã«ãŒã«ã«åºã¥ãïŒèš±å¯ãããŠããªãéä¿¡ããµãŒããŒã«å ¥ã£ãŠããã®ãé²ããŸãïŒåºæ¬çãªã»ãã¥ãªãã£ã®èãæ¹ã¯ãããã©ã«ãæåŠ (Default Deny)ãã§ãïŒããã¯ïŒãæç€ºçã«èš±å¯ãããé信以å€ã¯ïŒãã¹ãŠæåŠããããšããååã§ïŒéåžžã«å®å šãªç¶æ ãä¿ã€ããšãã§ããŸãïŒ
6.2: ãã³ãºãªã³ - nmap ã«ãããããã¯ãŒã¯åµå¯
ããŒããšã¯ïŒ ãµãŒããŒãšããäžã€ã®å»ºç©ã®äžã«ïŒç¹å®ã®ãµãŒãã¹ãå©çšããå°çšã®ããã¢ãã®ãããªãã®ã§ãïŒ
nmap ã¯ïŒã©ã®ãã¢ãéããŠããããå€éšãã調æ»ããããŒã«ã§ãïŒ
çµæããïŒãã¡ã€ã¢ãŠã©ãŒã«ã§èš±å¯ãããããŒãã ãã open ãšè¡šç€ºãããããšã確èªããŸãããïŒ
6.3: ãã³ãºãªã³ - Webè匱æ§äœéšïŒOSã³ãã³ãã€ã³ãžã§ã¯ã·ã§ã³ïŒ
æ»æè ã®èŠç¹ãäœéšãã: ãããŸã§ã¯ãµãŒããŒãå®ãåŽã®èŠç¹ã§ãããïŒããã§ã¯æ»æè ãã©ã®ããã«è匱æ§ãæªçšããããäœéšããŸãïŒããã«ããïŒãªããŠãŒã¶ãŒããã®å ¥åã宿ã«ä¿¡çšããŠã¯ãããªãã®ãïŒãã®çç±ãäœæçã«çè§£ããŸãïŒ
èŠå: ããã§äœæããã³ãŒãã¯ïŒæå³çã«æ·±å»ãªã»ãã¥ãªãã£ããŒã«ãå«ãã§ããŸãïŒçµ¶å¯Ÿã«å®éã®ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããªãã§ãã ããïŒãã®ãã³ãºãªã³ã¯ïŒãããŸã§åŠç¿ç®çã§ãïŒ
æé 1: è匱ãªã³ãŒãã®è¿œå ïŒãµãŒããŒäžã§å®è¡ïŒ
Part 5 ã§äœæãã Node.js ã¢ã㪠~/ts_app/src/index.ts
ã nano ã§éãïŒä»¥äžã®ã³ãŒãã app.listen ã®çŽåã«è¿œå ããŠãã ããïŒ
ãã¡ã€ã«ãä¿åãããïŒts-node ã§ã¢ããªãïŒåïŒèµ·åããŠãããŸãããïŒ
æé 2: è匱æ§ãå©çšããæ»æïŒå¥ã®ã¿ãŒããã«ã§å®è¡ïŒ
å¥ã®ã¿ãŒããã«ãã curl ã䜿ãïŒãã®æ°ãããšã³ããã€ã³ãã«ã¢ã¯ã»ã¹ããŸãïŒURL ã«å«ããã³ãã³ãããµãŒããŒäžã§å®è¡ãããŠããŸãããšã確èªããŸãïŒ
URL ãšã³ã³ãŒããšã¯ïŒ
ã³ãã³ãäŸã« %20 ã %3B ãšãã£ãèŠæ
£ããªãæååããããŸãïŒ
ããã¯URL ãšã³ã³ãŒããšåŒã°ããåŠçã§ãïŒURL ã§ã¯ïŒã¹ããŒã¹ïŒç©ºçœïŒã
;, /, ?, &
ãšãã£ãæåã¯ïŒç¹å¥ãªæå³ãæã€äºçŽæåãšããŠæ±ãããŸãïŒ
ãã®ããïŒãããã®æåããã³ãã³ãã®äžéšããšããŠãµãŒããŒã«æ£ããäŒããããã«ã¯ïŒãããã¯ãã ã®æåã§ããããšããå°ãä»ããŠå¥ã®è¡šçŸã«å€æããå¿
èŠããããŸãïŒ
äŸãã°ïŒls -la ã®ã¹ããŒã¹ã¯ %20 ã«ïŒã³ãã³ããåºåã ; 㯠%3B
ã«å€æãããŸãïŒcurl ã¯å€ãã®å Žåèªåã§ãããè¡ããŸããïŒä»çµã¿ãšããŠç¥ã£ãŠããããšã¯éåžžã«éèŠã§ãïŒ
ãã®ããã«ïŒãŠãŒã¶ãŒãå ¥åããæååãæ€èšŒããã«ããã°ã©ã ã«æž¡ããšïŒæå³ããªã OS ã³ãã³ããå®è¡ãããããå±éºæ§ããããŸãïŒããã OS ã³ãã³ãã€ã³ãžã§ã¯ã·ã§ã³ãšåŒã³ãŸãïŒå®éã®éçºã§ã¯ïŒå ¥åãå³ãããã§ãã¯ïŒããªããŒã·ã§ã³ïŒãïŒçŽæ¥ã·ã§ã«ã«æž¡ããªãããã«ããïŒãšã¹ã±ãŒãåŠçãå°çšã®é¢æ°ã䜿ãïŒãšãã£ã察çãå¿ é ã§ãïŒ
6.4: ãã³ãºãªã³ - HTTPS éä¿¡ã®æ€èšŒãšæå¹å
HTTPS ãš SSL/TLS èšŒææžã®ä»çµã¿ : HTTPS ã¯ïŒæå·åãããå®å šãªéä¿¡ã§ãïŒããã¯ïŒâ ã¯ã©ã€ã¢ã³ãïŒãã©ãŠã¶ïŒïŒâ¡ãµãŒããŒïŒâ¢èªèšŒå± (CA) ã®ãä¿¡é Œã®äžè§åœ¢ãã«ãã£ãŠæãç«ã£ãŠããŸãïŒ
HTTPSã®åºæ¬æŠå¿µ
HTTPSã¯ä»¥äžã®3ã€ã®èŠçŽ ã§éä¿¡ãä¿è·ããŸãïŒ
- æå·åïŒEncryptionïŒ: éä¿¡å 容ã第äžè ãèªã¿åããªãããã«æå·å
- å®å šæ§ïŒIntegrityïŒ: ããŒã¿ãæ¹ãããããŠããªãããšãä¿èšŒ
- èªèšŒïŒAuthenticationïŒ: æ¥ç¶å ãµãŒããŒãæ¬ç©ã§ããããšã蚌æ
HTTP ã®éä¿¡ã« SSL/TLS ãšããæå·åæè¡ãçµã¿åããããã®ã HTTPS ã§ãïŒ
openssl ã³ãã³ãã䜿ã£ãŠïŒãã®è¬ç¿äŒãµã€ã ktak.dev ãã©ã®ããã« HTTPS
ã§ä¿è·ãããŠãããïŒãã®èšŒææžã®äžèº«ãèŠããŠã¿ãŸãããïŒ
åºåããèšŒææžã® SubjectïŒçºè¡å¯Ÿè±¡ïŒïŒIssuerïŒçºè¡è ïŒïŒValidityïŒæå¹æéïŒãªã©ã®éèŠæ å ±ãèªã¿åããŸãïŒ
6.5: ãã³ãºãªã³ - ãã°åæ
grep ãš awk ãšã¯ïŒ grep ã¯ç¹å®ã®ããŒã¯ãŒããå«ãè¡ãæ¢ãã³ãã³ãïŒ
awk ã¯ããã¹ããè¡ããšã»åèªããšã«åè§£ããŠåŠçã§ãã髿©èœãªã³ãã³ãã§ãïŒ
æé : ã¢ã¯ã»ã¹ãã°ã®åæ
ã³ãã³ããã€ãã©ã€ã³ã®è©³çŽ°è§£èª¬ :
cat /var/log/nginx/access.log: ãã°ãã¡ã€ã«ã®å 容ããã¹ãŠèªã¿èŸŒã¿ïŒæ¬¡ã®ã³ãã³ãã«æž¡ããŸãïŒawk '{print $1}': åè¡ã® 1 çªç®ã®åèªïŒIP ã¢ãã¬ã¹ïŒã ããæãåºããŸãïŒsort: IP ã¢ãã¬ã¹ãäžŠã¹æ¿ãïŒæ¬¡ã®uniqã³ãã³ãã®æºåãããŸãïŒuniq -c: é£ç¶ããåã IP ã¢ãã¬ã¹ãæ°ãäžãïŒäžè¡ã«ãŸãšããŸãïŒsort -nr: ä»åºŠã¯åºçŸåæ°ïŒæ°åïŒã®å€ãé ã«äžŠã¹æ¿ããŸãïŒhead -n 5: æçµçãªã©ã³ãã³ã°ã®äžäœ 5 è¡ã ãã衚瀺ããŸãïŒ
6.6: ãã³ãºãªã³ - cron ã«ãã ping ç£èŠ
cron ãšã¯ïŒ Linux
ã«æšæºã§åãã£ãŠãããã¿ã¹ã¯ã¹ã±ãžã¥ãŒã©ãã§ãïŒæå®ããæéã«ã³ãã³ããã¹ã¯ãªãããèªåå®è¡ãããããšãã§ããŸãïŒããã§ã¯ïŒ
sub.ktak.dev ãžã®çéã宿çã«ç¢ºèªããã¿ã¹ã¯ãèªååããŸãïŒ
æé 1: ç£èŠã¹ã¯ãªããã®äœæ
nano ~/ping_monitor.sh ã§ãµã€ãããã§ãã¯ããã¹ã¯ãªãããäœæãïŒ
chmod +x ~/ping_monitor.sh ã§å®è¡æš©éãäžããŸãïŒ
ã¹ã¯ãªããã®è§£èª¬ : ãã®ã¹ã¯ãªãã㯠ping -c 4 ã§ 4 åã ã
ping ãéä¿¡ãïŒãã®æåŠãå€å®ããŸãïŒæåããå Žåã¯ïŒçµæãããã±ãããã¹çãšå¹³å RTT ãæœåºãïŒå€±æããå Žåã¯ãšã©ãŒå
容ããã®ãŸãŸãã°ã«èšé²ããŸãïŒ
æé 2: cron ãžã§ãã®ç»é²
crontab -e ã§ cron ã®èšå®ãã¡ã€ã«ãéãïŒä»¥äžã®è¡ã远å ããŠæ¯åå®è¡ããããã«èšå®ããŸãïŒ
æé 3: åäœç¢ºèª
æ°ååŸïŒ cat ~/ping_monitor.log ã§ãã°ãèšé²ãããŠããããšã確èªããŸãïŒ
ãããã«
ãããã¯ãŒã¯ã®ãã±ãã远跡ããå§ãŸãïŒDNSïŒHTTPïŒéçã»åç㪠Web ãµãŒããŒæ§ç¯ïŒãããŠã»ãã¥ãªãã£ãšéçšã®åºæ¬ãé§ãè¶³ã§äœéšããŸããïŒäžã€äžã€ã®ç¥èã¯æççã«èŠãããããããŸãããïŒããããå šãŠç¹ãã£ãŠäžã€ã® Web ãµãŒãã¹ã圢äœã£ãŠããããšã宿ã§ããã®ã§ã¯ãªãã§ããããïŒããã§åŸãç¥èãšçµéšã¯ïŒä»åŸã®éçºãåŠç¿ã«ãããŠïŒããæ·±ãã¬ãã«ã§ç©äºãçè§£ããããã®åŒ·åãªåå°ãšãªãã¯ãã§ãïŒ