åº
æè¿ã宿ã«å»ºã¦ãããå±éºãªãµã¼ãã¼ãå¢ãã¦ããããããµã¼ãã¼ã»ãã¥ãªãã£ãéã¿ãåºæ¬çãªè¨å®ãæ§æã¯ã©ããããã®ãã¨ãã話ãããã
æ¬è¨äºã§ã¯å ·ä½çãªè¨å®ãæ§ç¯ã説æããããç°å¢ãåæãç¨éãªã©ãããããããããçä¼¼ããã°å®å ¨ã¨ãããã¨ã§ã¯ãªãã ã»ãã¥ãªãã£ã¯éã®å¼¾ä¸¸ãããããã§ã¯ãªããå ¨ã¦ã®è¦ç´ ãåããã¦èããã¢ä¸ã§ã®æé©ãå°ããã°ãªããªãããããã»ãã¥ãªãã£ã®é£ããã¨ããã§ãããã
æ¬è¨äºã¯ã»ãã¥ãªãã£ãæªçã ã¨èªèªãã人ã«ã¨ã£ã¦ã¯åèã«ãªãå 容ã ã¨æãããã©ã¡ããã¨ããã¨ãæ¬è¨äºã®å 容ãå½ããåã«ããã§ã«çè§£ã§ãã¦ããå 容ãã«ãªã£ã¦ããªã人ã¯ããµã¼ãã¼ã建ã¦ãã¹ãã§ã¯ãªã(å±éºãªæªçã®æ®µéã§ãã)ã¨ãããã¨ãéè¦ã§ãããåã ãèªèº«ã®æéãæ¸¬ãææ¨ã¨ãã¦ä½¿ã£ã¦ããããã°ã¨æãã
宣èªã®å
ããµã¼ãã¼ãç ´ãããã¨ãããã¨ã¯ãããªãã¡ç¯ç½ªã«å æ ããã¨ãããã¨ã§ããã
ãã®è¨èããã£ããã¨è¸ã«å»ãã ä¸ã§ãµã¼ãã¼å»ºç«ã«åãæãããã¨ã
åºæ¬çãªæ¦å¿µ
ã»ãã¥ãªãã£ã®åºæ¬è¦ç´ ã®è©±ã ãããµã¼ãã¼ã«éããã»ãã¥ãªãã£ã¨ãã¦ã¯ã究極ã¯ãrootã·ã§ã«ãåããããã§ããã ãä»»æã³ãã³ãå®è¡ãã°ããé大ãªãã°ã¨ãããæå¤§ã®çç±ããã·ã§ã«ãåãããããã ã
rootããã»ã¹ã§ã·ã§ã«ãåãããã¨ãã®æç¹ã§ãrootã®ã·ã§ã«ãã¨ããããäºæ ã«ãªããããæ»æå¯è½ãªå¯¾è±¡ããrootããã»ã¹ãå¤ããã¨ããã®ã¯å¿ é ã«ãªã£ã¦ããã
ãã®ä¸ã§æ¨©éææ ¼ã®èå¼±æ§ãçºçãããªãããã«ããã
SSHã®å ´åã¯ã·ã§ã«ãå«ãä»»æã³ãã³ããå®è¡å¯è½ãªãã®ãªã®ã§ãç ´ãããã¨ãã®ãªã¹ã¯ã¯é常ã«é«ãã
SSHã¯ãã¹ãã«å¯¾ããæä½ãå¿ è¦ãªã®ã§é£ããããå¤ãã®ãµã¼ãã¼ã½ããã¦ã§ã¢ã®å ´åã¯(Linuxã®)namespaceæ©è½ãªã©ã使ãããã¡ã¤ã«ã·ã¹ãã ãã¦ã¼ã¶ã¼ãå°ç¨ã«ããããã¦ãã¾ããã¨ã§ããã·ã§ã«ãåããã¦ã被害ãéå®ãããããã«ãããã¨ããææ³ãããã ããµã¼ãã¼ãã³ã³ããä¸ã§åããããã¨ãããã¨åçã®æå³ã«ãªãã
ããã¯ãã§ã¤ã«ã»ã¼ãæ§é ã ããå®éã¯ã³ã³ããã¸ã®ä¾µå ¥ã¯ãããµã¼ãã¼ã¸ã®è¢«å®³ãæ¡å¤§ãããªããã¨ãããã®ã§ãã£ã¦ãã³ã³ããããoutgoingã®éä¿¡ãã§ããæç¹ã§è¸ã¿å°ã«ãªã£ã¦ãããããç¶æ³ã¨ãã¦ã¯ããªãã¢ã¦ãã ã
ãã®ããã«ãã»ãã¥ãªãã£ã®åé¡ã¯ãããã«ãã£ã¦ä½ãå¯è½ããã¨ãã観ç¹ããèããå¿ è¦ãããããã®ä¸ã§é²è¡çãæ±ºãã¦ããããã ã
ã¾ããå ´åã«ãã£ã¦ã¯ãªã³ã©ã¤ã³ã»ãã¥ãªãã£ã ããèãã¦ã仿¹ããªãã ã©ããããããçãããããã¯ã·ã§ã«ãã¼ãããã³ã°ãªã©ã®ãªãã©ã¤ã³æ»æã«å¼±ãã¦ã¯æ ¹æ¬çãªã¨ããã§è¦ã£ã¦ãã¾ãå¯è½æ§ãããã
ã»ã¨ãã©ã®å ´åãããµã¼ãã¼ãæ¢ããããæãè¯ã鏿ã§ããã åä½ããããã®ãæå°éã«çµãã®ã¯ãã¡ããã ããã©ã¡ããã¨ããã°ãæ¸ããããã¨ããããå©ç¨å¯è½ãªé åãã®ãã®ãçµã£ã¦ãä¸å¯æ¬ ãªãã®ã ããä¸å ¨ã®å¯¾çãæ½ããä¸ã§éæ¾ãã¦ããã®ãè¯ãã
å ´åã«ãã£ã¦ã¯ããµã¼ãã¼(ãã¼ã¢ã³)ã§ã¯ãªãããµã¼ãã¼(ãã¹ã)ãæ¢ããã¨ããã®ãããããããããããµã¼ãã¼ã建ã¦ãªãããã¨ãæ£ããã»ãã¥ãªãã£ã§ããå ´åãããã
ãã®ã»ããåå解決å¨ãããããã¯ã¼ã¯ã«ã¼ãã£ã³ã°å¨ãããã¤ã¸ã£ãã¯é¢ä¿ã®ã»ãã¥ãªãã£åé¡ãããããããã¯å½ç¶å¯¾çããã¹ããã®ã§ã¯ããããåææ¬¡ç¬¬ã§è©±ãæ ¹æ¬çã«å¤ãã£ã¦ãããã¨ããä»åã¯åãæ±ããªãã
ã¾ãããµã¼ãã¼ã¢ããªã±ã¼ã·ã§ã³å®è£ ã«é¢ããèå¼±æ§ããwebã¢ããªã±ã¼ã·ã§ã³ã®èå¼±æ§ãªã©ãæ±ããªããããã¯ã種é¡ãç°ãªããããã¯ã¹ã ããã§ããã
æå°ã»ãããèãã
æ¬å½ã«æå°ã®ãµã¼ãã¼ã¨ããã¨ãsshdã ãã§éç¨ãããã¨ãå¯è½ã§ããã ãªã®ã§ãå¿ é ãªã®ã¯sshdã ãã¨èãã¦è¨è¨ãå§ããã
ç§ã®ã¡ã¤ã³ãµã¼ãã¼ã®å ´åã¯ããã®ã»ãã«Postfix master, Dovecot, Nginxãå¤é¨NICã§åãã¦ããã localhostã§listenãã¦ãããã®ã¯ãSystemd Resolved, Docker, Containerd, Spamassassin (spamd), lighttpd, hiawasa, Maildeliver, OpenDKIMãããã
ãµããµã¼ãã¼ã®ã»ãã¯webãµã¼ãã¼ããªãæ§æãªã®ã§ãNginxãLighttpdãããã«ä¼´ãã³ã³ãããªã©ãåãã¦ããªããã¤ã¾ãããªã¼ãã³ã§åãã¦ãããµã¼ãã¼ã¯sshd, Postfix master, Dovecotã ããDovecotã¯POP3ãåä½ãã¦ããªãããããã¼ãã¯ããã«çµããã¦ããã
ãããã¯ã¼ã¯ä¸ã§è¨±å¯ãã¦ãããã¼ãã¯22, 80, 443, 587, 993ã¨ãªãã
鏿çãªè¨å®ã¨ãã¦ãæç¤ºçSMTPSã§ä½¿ç¨ãã465ãIMAPã¨æé»çIMAPsã§ä½¿ç¨ãã143ãéããªãã
SMTPã¯submissionãã¼ãã使ã£ã¦ã®StartTLSããIMAPã¯æç¤ºçTLSã«ããIMAPsã使ããã¨ãå¼·ãããã¨ã§è§£æ±ºãã¦ããã
使ãã®ã¯ã©ããèªåãªã®ã§åé¡ãªãã
ã¾ããèªåã§ã¯IPv6ã使ããªããã¨ãããIMAPã¯IPv6ãç¡å¹åãã¦ããã
ã¾ããä¸è¬çã«ã¯å
¬éãµã¼ãã¼ã¯sshd, httpdã ãã§ã許å¯ãã¼ãã¯22, 80, 443ã®3ã¤ã«ããã®ãä¸è¬çã ãããã
è¨ç®åã¨ãã¦ä½¿ãããã®ãµã¼ãã¼ã§ããã°ãä¾ãwebã¤ã³ã¿ã¼ãã§ã¤ã¹ãæã¤å ´åã§ãsshdãåãã¦ãããªã対å¿å¯è½ãªããã22ã ããå
¬éããã»ããè¯ãã ããã
PAMã¨SSHã®è¨å®
OpenSSHã®åææé
ãã¹ã¯ã¼ããã°ã¤ã³ãç¡å¹ã«ããããã«keyboard-interactiveãããããããªè¨å®ãæ¨å¥¨ãã¦ããããPasswordAuthenticationããããããã«æç¤ºãã¦ãããããããæ£ããã¯ããã§ã¯ãªãã
SSHã®ãã°ã¤ã³ã«ãã¹ã¯ã¼ããå«ã¾ãããã©ããã¯AuthenticationMethodsã«ãã£ã¦æ±ºã¾ããã®ã§ããã(ããã©ã«ãã®è¨å®ãã¡ã¤ã«ã«ã¯è¨è¼ã®ãªã)AuthenticationMethodsã®è¨å®ã¯å¿
é ã§ããã¨è¨ããã
AuthenticaitonMethodsã«A, B C, Dã¨ããå ´åããAâBã¾ãã¯CâDãã®3段éã§èªè¨¼ãçªç ´ããå¿
è¦ãããã
ä¾ãã°
AuthenticationMethods publickey password
ã¨ããã°ãå ¬ééµèªè¨¼ã¾ãã¯ãã¹ã¯ã¼ãèªè¨¼ã®ã©ã¡ããã«ãã£ã¦èªè¨¼ãããã°è¯ãã¨ããæå³ã«ãªãã
ã¾ãã¯ç¬¬ä¸æ®µéã¨ãã¦ããã°ã¤ã³ããããã®éµãç¨æããããç´ã¡ã«
AuthenticationMethods publickey
ã¨ã°ãã¼ãã«ã»ã¯ã·ã§ã³ã«è¨è¼ãã¦ãªãã¼ããããã¨ã§ãå ¬ééµãå¿ é ã«ããã å¯è½ãªãã°ããã以åã«sshdãèµ·åãããã³ã³ã½ã¼ã«ãããã°ã¤ã³ãã¦ãã®ããã«ããã®ãæã¾ããã
ã¾ããå³åº§ã«rootã·ã§ã«ãåãã¦ãã¾ããããrootã§ã®ãã°ã¤ã³ã¯ç¦æ¢ããã¹ãã§ãã¾ãsshãã°ã¤ã³ãåæã¨ããããã«ããã¹ã¯ã¼ãã¯ç¾å®çã«å©ç¨ä¸å¯ã«ãããã ãããæé ã¨ãã¦ã¾ã¨ããã¨ããããªã
- ã¤ã³ã¹ã¿ã³ã¹ãä½ã
- å ¥åå°é£ãªãã¹ãã¬ã¼ãºãrootã«è¨å®ããæå ã«ã¡ã¢ã¨ãã¦æã¤
- ã³ã³ã½ã¼ã«ããrootã¨ãã¦ãã°ã¤ã³ãã
- sshdãå°å ¥ãã
AuthenticationMethods publickeyãè¨è¼DenyUsers rootãè¨è¼- ä¸è¬ã¦ã¼ã¶ã¼ãä½ããå ¥åãé常ã«å°é£ãªãã¹ãã¬ã¼ãºãè¨å®ãã
- ä¸è¬ã¦ã¼ã¶ã¼ã§rootãã°ã¤ã³ã§ããããã«ãã (å¾è¿°ããsudoé¨å)
- å ¬ééµãä¸è¬ã¦ã¼ã¶ã¼ç¨ã«ç»é²ãã
- sshdãèµ·å
- ä¸è¬ã¦ã¼ã¶ã¼ã§ãã°ã¤ã³ã§ãããã¨ã確èªãã
- rootã®ãã¹ãã¬ã¼ãºãç¾å®çã«å ¥åä¸å¯è½ãªãã®ã«è¨å®ãã
- ã³ã³ã½ã¼ã«ãããã°ã¢ã¦ããã
publickeyèªè¨¼ã®å®å ¨æ§
ãã¦ãããã§SSHã®åºæ¬çãªç¥èã«æ»ãããå ¬ééµèªè¨¼ã¯ä¸å®ã®æ¡ä»¶ã®ãã¨ã§ååãªå®å ¨æ§ãæã¤ããããããæºããã¦ããã®ã§ããã°ããã§ååã§ããã
ãã®æ¡ä»¶ã¨ã¯
- SSHv2ãããã³ã«ã§å ¬ééµèªè¨¼ããããã¤ååã«å®å ¨ãªç½²åã¢ã«ã´ãªãºã ã使ã£ã¦ãã
- ç§å¯éµãååã«å®å ¨ã«ç®¡çããã¦ãã
RSAã¯ãã§ã«ãååã«å®å ¨ãªç½²åã¢ã«ã´ãªãºã ãã§ã¯ãªãã ECDSAã¯å¥ã«å®å ¨æ§ã主ç¼ã§ã¯ãªãã®ã ããECDSAãããã¯EdDSAéµã使ãã¹ãã§ããã
ç§å¯éµã®å®å ¨æ§ã¯ã以ä¸ã®ãããªæ¡ä»¶ãæºããå ´å
- ã©ããããããUSBãã³ãã©ã¤ãã«å ¥ãã¦å¤ã«æã¡åºãã¨ãã£ããã¨ããªã
- éµãæ ¼ç´ããã¹ãã¬ã¼ã¸ã¯ååã«å¼·åºã«æå·åããã¦ãã
- ã·ã¹ãã ã¯ååãªãªã³ã©ã¤ã³å®å ¨æ§ãæã£ã¦ãã
ã·ã§ã«ãã¼ãããã³ã°ãããªãç¨åº¦ã®ãã¹ãã¬ã¼ãºã«ãã£ã¦ä¿è·ãããã¨ã§å®å ¨ã§ããã¨èããããã ããã§ãªãå ´åãéµèªä½ããã¹ã¯ã¼ãã¯ã©ããã³ã°ã«ãã£ã¦ç ´ãããããæ©ããµã¼ãã¼ããéµãé¤å»ã§ããç¨åº¦ã®æéã稼ããã ãã®å¼·åº¦ãæã¤ãã¹ãã¬ã¼ãºã«ãã£ã¦æå·åããã¦ããå¿ è¦ãããã
OpenSSHã§ã®å¤è¦ç´ èªè¨¼
ãããè£ãã¢ããã¼ãã¨ãã¦ãåè¿°ãã夿®µéèªè¨¼ãå©ç¨ã§ããã
UsePAM yesã§ãããªãã°ãkeyboard-interativeã¡ã½ããã¯PAMãç¨ãã¦èªè¨¼ãããã使ç¨ããããµã¼ãã¹ã¯sshdã§ãããã¤ã¾ããè¨å®ãã¡ã¤ã«ã¯/etc/pam.d/sshdã«ããã
PAMã使ãããªãpam_execãå©ç¨å¯è½ã ã
ããããpam_execã使ã£ã¦éããªãããã«æ¸ãã®ã¯ãããªãã«å¤§å¤ãªã®ã§pam_oauthãªã©ã使ãã»ããè¯ãã ããã(ãããã¯pam_execã§ä½¿ããã¨ãåæã«ããããã°ã©ã ã)
Google Authenticatorã¯ã©ã¤ã¢ã³ãã¯PAMã¢ã¸ã¥ã¼ã«ã®google-authãæã£ã¦ããã®ã§ãGoogle Authenticatorã使ãã®ã¯å®¹æã
ãã ãåè¿°ã®ã¨ãããpublickeyã¯é©åã«éç¨ãã¦ããã°ååã«å®å ¨ãªã®ã§ãäºè¦ç´ èªè¨¼ã¯éå°ãªè©±ã«ãªããããã
PAMèªè¨¼ã¨ã·ã¹ãã ãã¹ãã¬ã¼ãº
ãã¦ãSSHãååãªå¼·åº¦ãæã¤ããã«ãªã£ãããæ¬¡ã«PAMãã¹ã¯ã¼ãèªè¨¼ã®è©±ã ã
PAMã®ãã¹ã¯ã¼ãã¯ããã·ã¥åããã¦ä¿åããããããå®éã®ã¨ããããªãã§ã使ããã1ãããã¦ããã¼ãã¼ãããå ¥åã§ããªããã¹ã¯ã¼ããè¨å®ããã¨ãç¾å®çã«ãã°ã¤ã³ã§ããªããªãã
Archlinux/Manjaro Linuxã®ããã©ã«ãã®ããã·ã¥ã¢ã«ã´ãªãºã ã¯SHA-512ã§ããã
ããã·ã¥ã¢ã«ã´ãªãºã ã§ãã以ä¸ãããã·ã¥è¡çªãçºçããã®ã§ãç¡éã«é·ãããã°ããã ãå¼·åºã«ãªãããã§ã¯ãªãã®ã ããããã¹ã¯ã¼ããæ¨æ¸¬ããæ¹æ³ãç¾å®çã«éç¨ããªããã¬ãã«ã¾ã§ããã°ãã¹ã¯ã¼ãã«ãã£ã¦çªç ´ãããå¿é ã¯é常ã«å°ãããªãã
ãã¦ãåè¿°ã®ããã«ãã¦ã¼ã¶ã¼ã¯ãé常ã«å°é£ããªç¨åº¦ãrootã¯ãç¾å®çã«ä¸å¯è½ããªç¨åº¦ã®ãã¹ãã¬ã¼ãºã«ãããunprintableã«ããã¨ããæªéã®æ³ãç¨ããªã話ããããªãã°ãurandomã使ãmkpwd.rbã®ãããªãã¹ã¯ã¼ãçæå¨ã使ã£ã¦ååãªé·ããæã¤ãã¹ã¯ã¼ããçæããã
ã¦ã¼ã¶ã¼ã§ããã°32ã48æåãrootã¯128ã256æåç¨åº¦ã«ããã¨è¯ãã ããã試ãã«128æåçæããã¨ãã
h,_ADz|m(CSc/p".7igL!z9;3EJs.rI+~u}MQF;+$$w>qa*~j^@jC(&>};TB(~I=Rjanmf522{v%Yh/ixA'y:#]{~F(YT']o/SD8}R{1|k7*M#w|;#i7_tP%Q>X-oj\"
ã¨ãªã£ãããç¾å®çã«ä¸å¯è½ãã®æå³ããçè§£ããã ãããã¨æãã ããã¯ãã³ã³ã½ã¼ã«ä¸ã§ã¯è¦ãªããæã¤ã®ãç¸å½å³ãããã³ãããªãã§ãããã
ã¾ããfaillockãå¿ ã使ããã¨ã ã©ãã»ã©å¼·åºãªãã¹ã¯ã¼ããã試è¡åæ°ãç¡éãªããããç ´ãããã æè¦æéã¯é常ã«éè¦ã ã
SSHã®ãã¼ã
ããç¨åº¦ä»¥ä¸ã«å®å ¨ã§ããåæã§ããã°ãSSHãã¼ãã¯ã»ãã¥ãªãã£ã«è²¢ç®ããªãã
SSHã¸ã®æ»æã¯å¤§ããããã¦2種é¡ã«åããããã
- åã«22çªãã¼ãã«åãã£ã¦æãã¦ãããã®
- ãã¼ãã¹ãã£ã³ããããã¼ã確èªããä¸ã§æãã¦ãããã®
åè ã«é¢ãã¦ã¯ãèªè¨¼ãéãããã«ãªããµã¼ãã¼ã«åºå·ããªãã ãªã«ããã¼ãã¹ãã£ã³ããããã«æãã¦ãã¦ããããã§ããè¨å®ããããèå¼±ãªãã¹ã¯ã¼ãã使ã£ã¦ããæããªãã¹ãããã¤ãæ¢ãã¦ããã®ã§ããã ãã®ããã22çªãã¼ããçéããªããããªç¸æã¯ãSSHã«ã¤ãªãã£ã¦ããã®æ»æã¯éç¨ããªãå¯è½æ§ãé«ãããã諦ããã ã©ãã©ã次ã¸ãã£ã¦è±æ½°ãã§è©¦ããã¨ã§ãå¼±ããµã¼ãã¼ãè¦ã¤ããã»ããæ©ãã¨èãã¦ããããã ã
䏿¹ããã¼ãã¹ãã£ã³ãã¦ããã¼ã確èªãã¦ãããããªç¸æã¯ããã®ãµã¼ãã¼ãé¥è½ããã¤ããã§ãã¦ããã ã¤ã¾ããããç¨åº¦ç¢ºçãããæ»æææ³ã試ãã¦ããããSSHã®ãã¼ããçºè¦ããã®ã¯ãã®ç¬¬ä¸æ©ã«ãããªãã ãã®ãããSSHã®ãã¼ã夿´ã¯ãã¼ãã«ã»ã©ã®é²æ¢å¹æããªãããããããç«ã¡å ¥ãç¦æ¢ãã®å¼µãç´ãããç¨åº¦ã®å¹æã ã
ãã®ããã«ãã»ãã¥ãªãã£ä¸ã®æå³ã¯ã¾ã£ãããªããããµã¼ãã¼ã®è² è·è»½æ¸ã«ã¯ãªãã ã¨ããã®ãããµã¼ãã¼ã«æ¥ãSSHæ»æã®éã¯ãã®ããããã®ãªã®ã§ãçµæ§ãªè² æ ã«ãªãã ãªããã¤ãããã®ãããéãã®å¤§é¨åã¯åè ã®ã¿ã¤ããªã®ã§ããã¼ã夿´ããã¨SSHã¸ã®æ¥ç¶éã¯å¤§å¹ ã«æ¸ãã
以ä¸ã¯ãç§ã®SNSãµã¼ãã¼ã®SSHHeatmapã ã 22çªãã¼ããéæ¾ãã¦ãããããã¢ã¯ã»ã¹ã¯ããªãå¤ãã
5ã¶æã§1383ã¢ã¯ã»ã¹ãã£ãã1æ¥ããã9.22ã¢ã¯ã»ã¹ã»ã©ã æ»æè ã®æ ç¹(è¸ã¿å°)ã¯ã½ã¦ã«ãæãå¤ããæ¬¡ãã§å京ã
ã¡ãªã¿ã«ãç¾å¨ã¯ãå°ãã§ãã¡ã¢ãªãç¯ç´ããããã¨ããçç±ã§ãã®ãµã¼ãã¼ã®SSHãã¼ãã¯å¤æ´ããã¦ããã
ããã«ãã¹ã¤ããã¬ãã«/ã«ã¼ã¿ã¼ã¬ãã«ã§22çªãã¼ãã鮿ããã¨ãéä¿¡ã¯ãµã¼ãã¼ã«å±ãããããªããããSSHã®è² è·ã«æ©ã¾ããã¦ããå ´åã¯ãããã广ãããã
ãã ããããå¾®å¦ã§ã¯ããã æå¤§ã®çç±ã¯ãSSHã¸ã®æ»æã¨ã¯æ¡éãã«HTTP(s)ã¸ã®æ»æãå¤ããã¨ã ã
以åã¯HTTPSãä¸è¬åã«åºã使ããã¦ããªãã£ãã®ã§ãæ»æã¯HTTPã§ãããSSHã¨æ¯ã¹ãã¨æ¥ç¶ç¢ºç«èªä½ã軽ããããSSHã®ãã¼ã夿´ã§æ©æµãæãããã¨ãã§ããã ãããç¾å¨ã¯ãåºæ¬çã«HTTPSæ¥ç¶ã«ãªã£ã¦ãããããæ¥ç¶ã軽ãã¨ãããã¨ã¯ç¹ã«ãªããHTTPSã¸ã®æ»æéèªä½ãæ°ååå¢ãã¦ãããããHTTPSã¸ã®æ»æã¨æ¯ã¹ãã¨SSHã¸ã®æ»æã«ããè² è·ã¯ãäºç´°ãªãã¨ãã«éããªããªã£ã¦ããã®ã ã
ä¾ãã°ãç§ã®SNSãµã¼ãã¼ã®ãã®5ã¶æéã§ã®HTTP(s)ã«ããæ»æçã¢ã¯ã»ã¹ã®æ°ã¯321590ã§ãã£ãã1æ¥ããã2144ä»¶ã®æ»æã§ãããSSHã®232.5åã§ããã
ä»ãã¨ã«ãããwebãµã¼ãã¼ãåãããªãããæãæ»æã忏ããæ¹æ³ã«ãªã£ã¦ããã ç¾å®çã«ã¯é£ããã¨ãè¨ããããwebãµã¼ãã¼é¨åã ããå¤é¨ã«ç½®ã(SaaSãªã©ã使ã)ã¨ããã®ãè¯ãã½ãªã¥ã¼ã·ã§ã³ã«ãªã£ã¦ããã¨ãè¨ããã
ãªãããµã¼ãã¼ãç«ã¦ãç®çãwebãµã¼ãã¼ãããªãã¨æã£ã¦ãã人ã¯ãwebã¢ããªã±ã¼ã·ã§ã³éçºè ãªãããã§ã許ããããããã©ãããã©ã¼ã éå¶è ã¨ãã¦ã¯é©æ ¼ã§ã¯ãªãã
webãµã¼ãã¼
webãµã¼ãã¼ã¯ä½ãæ¡ç¨ãããã«ãããããã©ã®ãããªæ§æã鏿ãããã«ãããã
ä¸è¬çãªãã¨ã§è¨ãã°ãrootã¦ã¼ã¶ã¼ã§ã¯åãããªããã¨ãã»ãã¥ãªãã£ãããã¯ã¡ããã¨å½ã¦ããã¨ãhashlimitãè¨å®ãããã¨ãªã©ã ãããã
ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã使ãå ´åã¯ãå ¬élistenããªãããã«æ³¨æãæãå¿ è¦ãããã
ã¾ãå®éã®ã¨ãããwebãµã¼ãã¼ã¯ãµã¼ãã¼ã«ä½ãé¸ã¶ãã8å²ã§ãããã¦webãµã¼ãã¼èªä½ãè½ã¨ããããã¨ããããwebã³ã³ãã³ããã¢ããªã±ã¼ã·ã§ã³ã«èµ·å ãããã¨ãå§åçã«å¤ãã
webã»ãã¥ãªãã£ã®è©±ã¯é常ã«åºç¯ãªãããã¯ã¹ãæã¡ãè¨äºã®ä¸ç¯ã¨ãã¦æ±ãã«ã¯è¨å¤§ãããã Mimir Yokohamaã§ã®webã»ãã¥ãªãã£ã®æ¨æºçãªåè¬ã³ãæ°ã¯20ã30ã§ãããã¤ã¾ãã40ã60æéç¨åº¦å¦ãã§ããããéãä¸å¤ã®ç¥èãç²å¾ã§ããã¨ãããã¨ã ã
ã¡ãªã¿ã«ãã»ãã¥ãªãã£ãç ´ãããçç±ã®ã»ã¨ãã©(ãããã99.99%以ä¸)ã¯ãæ»æè ã®è½åãå·å¿µã«ãããã®ã§ã¯ãªããåã«ç®¡çè ãæãã§ãããã¨ã«èµ·å ããã ããã¯ä¾ãã°ãè¨å®ãã¾ãã§ããåæç¶æ ã®ã¾ã¾ã«ãã¦ããã¨ãããã¹ã¯ã¼ãã8æå以ä¸ã§ããã¨ããåèªã®ãlãããiããã1ãã«å¤ãããã¨ã§ã»ãã¥ãªãã£ãåä¸ããã¨èãã¦ããã¨ãã ã
ããã¦ãã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ãã©ã®ç¨åº¦ã®æ¨©è½ãæã£ã¦ããããã¤ã¾ããæããªäººã使ã£ããããã«ä¹ã£åããããã¨ããèªä½ãæ³å®ãã¦æ¨©è½ãå°ãããã¦ãããã¯ç´ç²ã«ã¢ããªã±ã¼ã·ã§ã³ã«ãããã ä»»æã³ãã³ãå®è¡ãå¯è½ãªã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ã¨ãããã®ãããããããã¯(ã¡ããã¨è¨å®ããã°)å åºãªèªè¨¼ãçªç ´ããªããã°ä½¿ããªããã®ã§ãããªãã°ãèå¼±æ§ã¨ã¯å¼ã°ãªãã
ã¤ã¾ããwebã»ãã¥ãªãã£ã¨ããæå³ã§ã¯
- 管çè ãæãã§ãã»ãã¥ãªãã£ãæ¾æ£ãã¦ãã
- ã¢ããªã±ã¼ã·ã§ã³ãèå¼±ã§ãã
- webãµã¼ãã¼ã®èå¼±æ§ãæ»æããã
ã®é ãªã®ã§ããã ãã®ãããå½ããåã®ãã¨ãé©åã«ãã£ã¦ããã°é²ãããã¨ã大åãªã®ã ããç¾å®ã«ãã®ããã«ãã¦ããã®ã¯ã²ã¨æ¡ãã ã
ã¢ããªã±ã¼ã·ã§ã³ã®èå¼±æ§ã«å¯¾ããè©ä¾¡ã¯é£ããã ç¸å¯¾çã«è¦ãã°ãwebã¢ããªã±ã¼ã·ã§ã³ã¯èå¼±ãªãã®ãå§åçã«å¤ãã å°ãªãã¨ããNginx, Squid, Postfix, Bindã¨ãã£ããµã¼ãã¼ã¨ã¯æ¯ã¹ç©ã«ãªããªãã»ã©å¼±ãå¾åã«ããã
ãã¨ãã£ã¦ã¿ããªå¼±ããã¨ããã¨ãããªãã¨ããªããå¼·ããã®ã¯ã¡ããã¨å¼·ãã ããã«ãã¡ã¸ã£ã¼ãªãã®ã¯ã¿ããªå¼·ããã¨ããã¨ãããªãã¨ããªãããã使ããã¦ããã¢ããªã±ã¼ã·ã§ã³ã ãã©å¼±ãã¨ãããã¨ã¯æ®éã«ããããWordPressã®ããã«ãã¢ããªã±ã¼ã·ã§ã³èªä½ã«é大ãªèå¼±æ§ã(ãªãããã§ã¯ãªãã)ããã¨ããããããè¨å®ã«ãã£ã¦èå¼±ãªç°å¢ãä½ã£ã¦ãã¾ãããããããªãã®ãããã
ã¨ã¯ãããã¡ã¸ã£ã¼ãªã¢ããªã±ã¼ã·ã§ã³ã¯ãæ®éã«èªä½ãããã®ããã¯å®å ¨ã§ããå¯è½æ§ãé«ãã ããã°ã©ã ãã»ãã¥ãªãã£çã«å®å ¨ã§ããããã«ã¯ãä½è ã«ã»ãã¥ãªãã£ã«å¯¾ããæ·±ãç¥èã¨æ³¨ææ·±ããè¦æ±ãããã ç§ãæ¸ãã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ããã ãããã¯å®å ¨ãã ããç ãã¨ãã«æ¸ãããã®ã¯ä¸æ³¨æã«ãã£ã¦èå¼±æ§ãå«ãã§ããããããã¨ãããã
ããã¦ããã®åé¡ã¯ã¦ã§ãã¢ããªã±ã¼ã·ã§ã³ãä½ãå ´åã«ãå¤ãã®ã©ã¤ãã©ãªã使ããªã©ãã¦ãã³ã³ããã¼ã«/ææ¡ã§ãã¦ããªãé åãå¤åã«å«ããã¨ãå¤ãã¨ãããã¨ãé¢ä¿ãã¦ããã
ãã ã¾ãããã®è¨äºã§webã¢ããªã±ã¼ã·ã§ã³éçºè ã«éçã説ãã®ã¯å¤ãªè©±ã ãããµã¼ãã¼ã®è©±ã«æ»ããã
webãµã¼ãã¼ã¯å°ãªãã¨ããã¡ã¼ã«ãµã¼ãã¼ã®ããã«ç«ã¦ãç¬éã«æ»æã«å æ ãã¦ãã¾ããããªãªã¹ã¯ããããã®ã§ã¯ãªãã ã©ã®ãããªãµã¼ãã¼ã使ããã«ãããããä¸è¬çã«ã¯ã¢ããã¹ããªã¼ã ã®ããã©ã«ãã§èµ·åãã¦ãã»ãã¥ãªãã£çã«ã¯åé¡ã®ãªããã®ã§ããå ´åãå¤ãã ãã ãSSLã¨HTTPSã«é¢ããç¥èãªã©ãçµæ§å¹ åºãç¥èãå¿ è¦ãªãã®ã§ã¯ããã
webãµã¼ãã¼ã«é¢ããä½è«
webãµã¼ãã¼ã«ä½ã使ãããã¨ãã話ããããã
å®ã¯ä»ã®ãµã¼ãã¼ã¨éããwebãµã¼ãã¼ã¯é常ã«è±å¯ãªé¸æè¢ãããã webã¢ããªã±ã¼ã·ã§ã³åãã®ãã®(ä¾ãã°Thin, Unicone, Lightspeed)ãé¤ããã¨ãã¦ãã ã
æåãªã¨ããã§ããã¨Apache, Nginx, Lighttpdãããã ãããã ã»ãã«ãHiawasaãªã©ãè²ã ããã
ãã®è¨äºã¯ã»ãã¥ãªãã£ã®è©±ãªã®ã§ãã»ãã¥ãªãã£è¦³ç¹ã§ããã¨ãApacheã¯é£ãããã§ããã
Apacheã¯äººã®æã«è² ããªã髿©è½ããããããããã¡ãã£ã¨ããè¿éã§èå¼±æ§ãçºçãããããã¨ãããã ãã®æå³ã§ããã¨ãNginxãLighttpdã¯å²ã¨å®å ¨ã ã
Nginxã¯webãµã¼ãã¼ã¨ãããããHTTPãªãã¼ã¹ãããã·ã§ããã ã¤ã¾ããã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã®å段ã«åå¨ããã®ãåºæ¬ãªã®ã ããéçãã¡ã¤ã«ã®ãã¹ãã£ã³ã°ã¨ããæå³ã§ãæªãã¯ãªãã â¦â¦ããããã¾ã§ãæªãã¯ãªããã§ãã£ã¦ãããã©ã¼ãã³ã¹ã¯ããããè¯ãããæ©è½çã«ã¯ãã¾ã²ã¨ã¤ã ã¨ã¯ããè¨å®ã¯ããããé¨é¡ãªã®ã§ãéçãã¡ã¤ã«ããã¹ãã£ã³ã°ãã鏿è¢ã¨ãã¦ã¯ååèããããã
ç§ã¯ç¾å¨ã¯Nginxã使ã£ã¦ãããã以åã¯DeleGateã使ã£ã¦ããã DeleGateã¯æ¥µéã¾ã§è¤éãªã½ããã¦ã§ã¢ã ãããæ¸ãããã¨ä»¥å¤ä¸åãããªããã¿ã¤ããªã®ã§ã以å¤ã¨èå¼±æ§ã¯çºçããã¥ããã¿ã¤ãã ã£ãã
Lighttpdã¯é常ã«åççãªåä½ããããããã®ä¸é¢¨å¤ãã£ãåä½ãã¡ããã¨çè§£ãã¦ããªãã¨æãã¬èå¼±æ§ãçããã¨ãããã ãã ãwebã¢ããªã±ã¼ã·ã§ã³ã使ããªã(ã¤ã¾ãããªãã¼ã¹ãããã·ã¨ãã¦åä½ããªã)webãµã¼ãã¼ã¨ãã¦ã¯ãä¸çªæåã ã¨ç§ã¯èãã¦ããã
ã¾ãããããè¸ã¾ãã¦è¨ãã¨ãã»ãã¥ãªãã£è¦³ç¹ã§ã¯ãNginxãä¸çªç¡é£ãã§ããã
ã¡ã¼ã«ãµã¼ãã¼
ã¡ã¼ã«ãµã¼ãã¼ãéå¶ãã¦23å¹´ã«ãªãç§ãæè¨ããã ä»ããèªåã§ã¡ã¼ã«ãµã¼ãã¼ãéç¨ããããªã©ã¨èããªãã»ããããã
ããããè§åº¦ã§ä»è ã«è¿·æããããæ©ä¼ããã®ãããå¤ããè¨å®ã®ã¢ã©ãã¤ãã¦æ»æãããæ©ä¼ãå¤ããããã¦ããã¯å®éã«æåãã¦ãã¾ãããããæ°ããæ»æææ³ã¨è¦ç´ ãã©ãã©ã追å ããã¦ããã
ã¡ã¼ã«ãµã¼ãã¼ã®éå¶ã¯ãç¡éã«èµ°ãç¶ããªããã°ãããªãã½ã·ã£ã²ã¿ãããªãã®ã ã ããããå®èµ°ã§ããªããã°å 害è ã«ãªãããµã¤ã¢ã¯ã ã
å®ã®ã¨ãããåãåãã ãã§ããã°ã¾ã ãªãã¨ããªãé¨åãããã
Postfixã®å ´åãmain.cfã§ä¾ãã°æ¬¡ã®ããã«è¨å®ããã
myhostname = example.com
mydomain = example.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydoamin, localhost
mynetwork_style = host
relay_domains =
ããã§Postfixã¯ã¡ã¼ã«ãå¤é¨ã«ãªã¬ã¼ããªããèªèº«ã®ãã¡ã¤ã³ã§ããexample.comå®ã®ã¡ã¼ã«ã ããåãåããã¾ãèªãã¹ã(localhost)ããæ¥ç¶ãããå ´åã®ã¿ã¡ã¼ã«ãé
éããã(å®éã¯é
éãããã¨ãã¦ã¯ãããªãããé
éããªãè¨å®ã¯ã§ããªã)
ããã§ä»è
ããã®ã¡ã¼ã«ãµã¼ãã¼ã使ã£ã¦ä»è
ã«ã¡ã¼ã«ãéãã¤ãããã¨ã¯ã§ããªããªã£ãããåå¨ããªãã¦ã¼ã¶ã¼å®ã«éãä»ãããã¦ã³ã¹ã¡ã¼ã«ã使ã£ã¦è»¢éãããã¨ããææ³ãåå¨ããã
ããã§ãmain.cfã§
luser_relay = blackhole
ããã¦ãaliasesã§æ¬¡ã®ããã«ããã
blackhole: /dev/null
ããã§åä¿¡ä¸ç¶ç¨ã¡ã¼ã«ãµã¼ãã¼ãã§ããããããã§ããããã»ããããã
ããã¦ãéä¿¡ã«é¢ãã¦ã¯å度è¨ãã絶対ã«ãããã»ããããã
ãã¡ã¤ã¢ã¦ã©ã¼ã«
åºæ¬çã«ã¯ãã¹ãã§ã¯ãªãããããã¯ã¼ã¯ã¬ãã«ã§é®æãã¹ãã ã
ç§ã¯Vultrã使ã£ã¦ããããã¹ã¤ããã¬ãã«ã®ãã±ãããã£ã«ã¿ãªã³ã°ãå¯è½ã ConoHaããããããã¼ãåä½ã§å¯è½ã ã
䏿¹ãæµéå¶éã¯DDoSãSynfloodingãªã©ãèãã¦ãå¿ è¦ã¨ãªã£ã¦ããå ´åãããã
ããã§ã¯ä¾ã¨ãã¦ãSSHã«å¯¾ããæ°è¦æ¥ç¶ã2å/åã«å¶éãã10åã¾ã§ãé¤å¤ãããã¼ãã«ã15åä¿æããã¨ãã
iptablesã使ãå ´åã®å¶é:
iptables -N HLIMIT
iptables -A HLIMIT -m hashlimit --hashlimit-name hlimit_ssh --state NEW --syn --dport ssh --hashlimit 2/m --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-htable-expire 900000 -j ACCEPT
iptables -A HLIMIT -j DROPãã ããããå²ã¨å¾®å¦ãªè©±ã§ã¯ããã ã¨ããã®ããHTTP(s)以å¤ã¸ã®å¤§éã®æ¥ç¶ã¨ããã®ã¯ãããªã«ãã話ã§ããªããHTTPã«é¢ãã¦ã¯åä¸ã®æ¥ç¶ã確ç«ãã¦å¤§éã®ãªã¯ã¨ã¹ããçºè¡ããæ»æãªã®ã§ããã®æ¹æ³ã§é²ããã¨ãã§ããªãã
ããHTTPã®éä¿¡ã鮿ãããã¨èãããªãã°ãhttpdã®ããã·ã¥ãªããããããªã¬ã¼ã«ããåçãã¡ã¤ã¢ã¦ã©ã¼ã«ãå¿ è¦ã ã httpdèªä½ã®ããã·ã¥ãªãããã«ãã£ã¦ãªã¯ã¨ã¹ããå¶éãããã¨ã¯ã§ããããhttpdã«å°éããç¶æ ã§å¶å¾¡ããããã®ãªã®ã§ãã»ãã¥ãªãã£ã¸ã®è²¢ç®åº¦ã¯ä½ãã广ã¯å°ããã
ç£è¦
ç´ äººã¯ç£è¦ãè¡ããªãããããµã¼ãã¼ãä¹ã£åããã¦ãããã¨ã«æ°ã¥ãããè³¢ãããã«ã¼ã¯èªåããµã¼ãã¼ãæ¯é ãã¦ãããã¨ãæ°ã¥ãããªãã ç£è¦ããã¦ããªããµã¼ãã¼ã¯ãè²¬ä»»ãæ¾æ£ãã¦ããã¨è¨ã£ã¦éè¨ã§ã¯ãªãã ããã
ç£è¦ç³»ã®è©±ã¯é常ã«è¤éãªè©±ã§ãããXã«å¯¾ããè§£AãYã«å¯¾ããè§£Bãã®ããã«åã ã®äºæã«å¯¾ãã対å¿ããäºæã®æ°ã ãåå¨ããããã ã ã¾ããç£è¦ç³»ã®ã½ããã¦ã§ã¢(NagiosãMuninãªã©)ã®å¤ãã¯å¤§ä»°ã§é£ããã
ã ããç£è¦ã¨ããæ¦å¿µèªä½ã¯ãç£è¦å¯¾è±¡ã«å¯¾ããçè§£ãããåæãªãé£ããã¯ãªãã ç£è¦å¯¾è±¡ã¯äºè±¡ã«å¯¾ãã¦ãã°ãåºåããããã®ãã°ããä¸å®ã®è¦åã§ç°å¸¸ãæ¤åºãã対å¿ããã°è¯ãã
Systemd-Journaldã¯ãµã¼ãã¹ã®åºåãDBã«ä¿åããããµã¼ãã¹ã®æ¨æºåºåã«å ããsyslogãµã¼ãã¼ã¨ãã¦ããµã¼ãã¹ã®åºåãåãåãã
ãã°ãèªããã¡ã¤ã«ãªã©ã«ä¿åãããµã¼ãã¹ã«ã¯å¯¾å¿ã§ããªãããå¤ãã®å ´åãã®ãã°DBãåãæ±ãjournalctlã«ãã£ã¦çµ±ä¸çã«æä½ã§ããã
journalctlã¯é常ã«è±å¯ãªãã£ã«ã¿æ©è½ãæã£ã¦ãããé常ã«ä¾¿å©ã ã
æ¥å¸¸çãªã¬ãã«ã§ãã使ãã®ã¯ãä»åã®èµ·åã®ãã°ãåç
§ããjournalctl -u $UNIT -b 0ãã仿¥ã®ãã°ã確èªããjournalctl -u $UNIT -S todayãããã ããä¾ãã°SSH Heatmapã®ããã®ãã°ãæ½åºããæ¹æ³ã¨ãã¦ã¯
journalctl -q -u sshd -g "authentication failure| Failed password"ã使ããã
ãã¦ãããã使ãã¨ç£è¦ç³»ãç°¡åã«çµããã
åç´ã«åé¡ããã£ãã¨ãã«éç¥ããã³ãã³ãsecalertãããã¨ä»®å®ããã¨ã次ã®ãããªã·ã§ã«ã¹ã¯ãªãããæç«ããã
if journalctl -S today -g "authentication failure| Failed password"
then
secalert sshd
fiããã ã¨ä¸åº¦è¦åãçºçããã¨éè¤ãã¦ãã¾ãããããããåé¿ãããªããããªæãã«ãªãã
typeset since
if [[ -e /tmp/obs_sshd_checknext ]]
then
since=(</tmp/obs_sshd_checknext)
else
since=today
fi
typeset log=$(journalctl -S "$since" -g "authentication failure| Failed password")
if (( ? != 0 ))
then
secalert sshd <<< "$log"
ruby -e 'puts ARGF.read.each_lines[-1].sub(/myhost.*/, "").succ' <<< "$log" > /tmp/obs_sshd_checknext
fiããã¯ããããªãã§ãããªãã¯ãéããã®ã§å°ã解説ã
since=(</tmp/obs_sshd_checknext)Zshã®çç¥ããæ¸ãæ¹ã§ãããããã©ã«ãã§ã¯catã¸ã®ãªãã¤ã¬ã¯ãã«ãªãã
(( ? != 0 ))
(( ... ))ã¯ç®è¡è©ä¾¡ã
ç®è¡è©ä¾¡ã®ä¸ã§ã·ã³ãã«ã¯ãã¹ã¦å¤æ°åã«ãªãã
ç´åã®ã³ãã³ãã®çµäºãã©ã¡ã¼ã¿ã¯å¤æ°$?ã§ãããç®è¡è©ä¾¡ã®ä¸ã§ã¯ååã ãã«ãªãããã夿°åã¯?ã§ã?ã0ã§ãªãã¨ããã«ãªãã
ãªãã$?ã¯æ´æ°åã§ããã
ruby -e 'print ARGF.read.split("\n")[-1].strip.sub(/myhost.*/, "").succ' <<< "$log" > /tmp/obs_sshd_checknextRubyã使ã£ã¦ãã¦ãããã«ããããããã»ããã¨
print ARGF # åºåããã®ã¯æ¨æºå
¥åãã
.read # èªã¿è¾¼ãã§
.split("\n")[-1] # æ¹è¡ã§åå²ããæå¾ã®è¦ç´
.strip # åå¾ã®ç©ºç½ãé¤å»
.sub(/myhost.*/, "") # myhostããå
ãé¤å»
.succ # ã®æ¬¡ãã¤ã³ãã¯ãµãã¤ãããã²ã¨ã¤ã¯Rubyã®String#succã§ããã
ããã¯ãæååã®ã次ããè¿ãã®ã ããä¾ãã°8æ 02 22:38:56ã®ã次ãã¯8æ 02 22:38:57ã«ãªãããã®æ©è½ã使ãããã¨ã§ããªãè©±ãæ¥½ã«ãªãã
ããã¦ã次ãSystemd timestampã®ä»æ§ã ã
Systemd Timestampã¯8æ 02 22:38:57ã®ãããªãã±ã¼ã«ã®æ¥ä»ã§ãè§£éã§ããã
ããã¦ãæéã®ãç§ãã®å¤ã¯ã61ã¾ã§åãä»ããã
ãã®ãããå½ç¶ãªãã8æ 02 22:38:59ã®æ¬¡(succ)ã¯8æ 02 22:38:60ãªã®ã ãããã®ç¹°ãä¸ããå¦çãããªãã¦ãè¯ãããã ã
ã¾ãããããªæãã§ã¡ãã¡ãã£ã¨ã·ã§ã«ã¹ã¯ãªãããæ¸ãã°ç°¡åã«ç£è¦ãå¯è½ã ãã¡ãããã·ã§ã«ã¹ã¯ãªããã§ããããé£ããé¨åãããã®ã§ãPerl, Python, Rubyãªã©ãæ¸ãããªãã°ãã£ã¨ç°¡åã
ã¡ãªã¿ã«ãç§ã¯ç£è¦ç³»ã«ããçºè¦ã¯Discordã«éç¥ãããããã«ãªã£ã¦ããã ãªããã¤ãDiscordã¯éç¥å°ç¨ã«ä½¿ã£ã¦ãããä»ã®ãµã¼ãã¼ã«ã¯å ¥ã£ã¦ããªãç¶æ ã§ãDiscordã«éç¥ãå ¥ãã¨çé³ã§éç¥é³ãé³´ãã æã certbotãã³ã±ããããããã©ãããããã¨ãã¯çé³ã§é¿ã渡ãã®ã§ããµã²ãï¼ãã¨ãªãã LINEãé »ç¹ã«ä½¿ã人ãªããLINEã«éç¥ããã®ããããããããªãã
ã¾ããç°å¸¸ãæ¤ç¥ããã¨ãã®æ¯ãèãã ããç§ã®å ´åã¡ã¼ã«ãµã¼ãã¼ãæããªãSNSãµã¼ãã¼ã¯ãã·ã£ãããã¦ã³ãããã¨ãªã£ã¦ããã ã·ã£ãããã¦ã³ãã¦ãã¾ãã¨ããã¹ãã£ã³ã°ãããã¤ãã¼ã®ã¢ã«ã¦ã³ããããã¯ããã¦ããã®ã§ãªãéããæ»æè ã¯ãã以ä¸ä½ãã§ããªããããã«ãããç¡çãªããè °ãæ®ãã¦åãçµããã¨ãã«å¯¾çãåããã¨ãã§ããã ã¾ããæ»æè ã¯ä»®ã«æ»æã«æåãã¦ããã¨ãã¦ããã¿ã¤ãã³ã°ã失ããã¨ã§æ»æã®ç¶ç¶ãé£ãããªãã
ã¡ã¼ã«ãµã¼ãã¼ãããå ´åãæ¯è¼ççæéã®ãã¦ã³ã§ãåé¡ã«ãªããããããwebãµã¼ãã¼ã¯å人éå¶ã®ãã®ãªã©ããã¦ã³ãã¦ã大ãã話ã§ã¯ãªãã SNSãµã¼ãã¼ã¯ActivityPubçµç±ã§é ä¿¡ãããããããããä»ãµã¼ãã¼ã«å¯¾ãã¦è¿·æããããªãããã§ã¯ãªãããæ°æéã®ãã¦ã³ã¿ã¤ã ãæ·±å»ãªåé¡ã«ãªãã»ã©ã§ã¯ãªãã ãµã¼ãã¼ã®ç°å¸¸ç¶æ ãªã©ããèµ·ãããã¨ã§ã¯ãªã2ã®ã§ããã®ãããªç°å¸¸äºæ ã«å¯ç¨æ§ãåªå ããå¿ è¦ãªã©ãªãã
ãµã¼ãã¼ã«archlinuxã使ãã¡ãªãã
è¨å®ãã¢ããã¹ããªã¼ã ã®ããã©ã«ããå¼ãç¶ãã§ããã®ã§ãããã©ã«ãã®è¨å®ãé©ç¨ããã¦ããã¨ããåæã§èãããã¨ãã§ããè¨å®ãã¡ã¤ã«ãå ¨é¨æ¹ããªãã¦ãã¡ããã¨å®å ¨ãªè¨å®ãã§ããã
é©åãªããã±ã¼ã¸ç®¡çããããããè¨å®ã®ã¢ãããã¼ã管çã容æã
ã»ãã¥ãªãã£ãèããä¸ã§ãé©ç¨ããã¦ããè¨å®ãææ¡ããã®ã¯å½ç¶ãªãããã¹ãã ã ãããæ¥½ã«ãªãã®ã¯å¤§ããã
çµã³
ã»ãã¥ãªãã£ã«å®ç§ã¯ãªããæ¥ã ææ°æ å ±ã追ãç¶ããªããã°ãããªããã®ã§ãããã é常ã«é£ãã大å¤ã§ããµã¼ãã¼ã建ã¦ãã®ã¯åè²ã¦ã®ããã«ãæ¥ã ç®ãé¢ãããæéãããç¶ããå¿ è¦ããããã®ã§ãã[^observable]ã
ãã®ãã¨ãçè§£ãã¦ãããªãã°ãå人ã§éå¶ãããµã¼ãã¼ã§ã¾ãèããã®ã¯ãå¿ è¦ãªå´åãæ¸ãããç®ãé ãã¹ãã¨ãããæ¸ãããã¨ã ã ã ã£ã¦å¤§å¤ã ããã ã ãããããã§ããã ããµã¼ãã¼ãæ¢ããã§ããã ããã¼ããå¡ããã§ããã ãæ»æè ã®ã¨ã£ããããæ¸ããããã³ãã¤ã³ãã«æ¼ããã¦ããã°ææ¡ã§ããç¶æ ãä½ã£ã¦ããã
ãµã¼ãã¼éå¶ã«çç·´ãã¦ããã¨ãèªç¶ã¨ãèªåã§ãµã¼ãã¼ã建ã¦ãªããã¨ããæ¹æ³ãæ¤è¨ããããã«ãªãã å®ç¾ããªãã±ã¼ã¹ãå¤ãããPaaSãSaaSãå©ç¨ãããªã©ãæ§ã ãªæ¹æ³ã§èªåã管çããé åãæ¸ããã
ã¾ãããµã¼ãã¼éå¶ã¯æ¥½ããã¨ããé¢ãããã ããã«ã¯ããããããã¯ããã«ã®ãããã責åãå¿ãã¦è¯ãã¨ããæå³ã§ã¯ãªãã ãç¯ç½ªã®å æ ããããã¨ããªãããããã®è²¬åãæãããã¨ããæèãå½ç¶ã®ãã®ã¨ãã¦ãæ¥ã éå¶ãã¦ããããã§ããã
25å¹´ã»ã©ãµã¼ãã¼ãéå¶ãã¦ãã¦ã®ææã ããéè¦ãªãã¨ãè¦ç´ããã¨æ¬¡ã®ããã«ãªã
- è²¬ä»»ã¯æ¬å½ã«éãããã®ãã¨ã¯æ±ºãã¦å¿ãã¦ã¯ãããªã
- 人çã®ãããæããªããµã¼ãã¼ã®éå¶ãªã©å§ããªãã»ããè¯ã
- ã»ãã¥ãªãã£ã®ææ°æ å ±ãå®å ¨ã«è¿½ãç¶ããã®ã¯ãã¡ãã£ã¨äººéã«ã¯ç¡çã§ããããã«æãã
- ãµã¼ãã¼éå¶ã«ããã¦ããã¹ããã¨ã¯æ¬å½ã«å¤ããè ãä¸ããã»ã©æ¼ããçºè¦ãããã¨ã«ãªã (25å¹´çµã£ãä»ã§ãã ï¼)
- ããããçç·´ãã¦ããã°äººåã§ãããªãããã«ã·ã¹ãã ãçµãããã«ãªããããããç¨åº¦å¹´æ°ãçµã£ã¦ããã¨å®éã®å´åã¯é常ã«å°ããã¦ãåé¡ãªãããã«ãªã£ã¦ãã
- ãå®å ¨ã§æéãããããªãããå®ç¾ããããã«ã¯ãé©åãªå²ãåã(éå®)ãå¿ è¦ãç¹ã«å¯ç¨æ§ããã¾ãä»ä¸ãã£ãã·ã¹ãã ã¯æ¬å½ã«æéãããããªã (ããããã¯ããã§ä¸å®ã«ãªã)
- ãçµå±ãå¤é¨ãµã¼ãã¹ä½¿ã£ãã»ããããããããªãããã¨ãã§ããã£ã±ãèªåã®ãµã¼ãã¼ä¾¿å©ã ããªããã®éã§ç¡éã«æºãåãããã«ãªã
- ä¿¡ç¨ã®åé¡ãæè»æ§ã¨èªç±åº¦ã®åé¡ãªã©ã§ãèªåã®ãµã¼ãã¼ã使ããªãã¨é常ã«ã¹ãã¬ã¹ãæããããã«ãªã£ãããããå¿ç¨ããå ´åã¯ç¹ã«ãã
- ã ãåºæ¬çã«ã¯ãæ®éã®äººããããªããããªç°å¸¸ãªãã¨ããããã¨ãã¦ãããããããã¯éå°ã«å¼·ããã ããããã£ã¦ãããã©ã£ã¡ãã§ãªãã¨ç¶ããæå³ã¯ãªã
ãã¾ã: ééé¢ã®è©±
ç§ã®ãµã¼ãã¼ãä»ã¾ã§ã©ããããã³ã¹ã(ãã¡ã¤ã³ä»£ãè¨¼ææ¸ä»£ãé¤ã)ãããã¦ãããã¨ããã¨â¦â¦
- èªå® ãµã¼ãã¼æä»£ ââ ããããªã
- ServerManæä»£ ââ 500å/æ ããã
- ConoHaæä»£(åå) ââ 2000å/æ ããã
- ConoHaæä»£(å¾å) ââ 4500å/æ ããã
- ConoHa+ãããæä»£ ââ 5000å/æ ããã
- Vultræä»£ ââ 26000å/æ ããã
ç¾å¨ã§ã®Vultrã§ã®éå¶ã¯ãä½å¶ã®æåãããããããããããµã¼ãã¼ãå¢ãã¦ããã®ãããã®ã§ã³ã¹ãã¯ã ãã¶å¢ãã¦ããã VPSæ§æã¯ä½ã³ã¹ããªã®ã§ãã³ã³ãã¯ãã«éç¨ãããªãä»ã®ã¨ããã ãããæ2000ã4500åãããã®æ°´æºã«ãªãã®ã§ã¯ãªãã ãããã
ããã¼ã¸ããã¼ã¿ãã¼ã¹ãå ¥ãããããã¼ããã©ã³ãµã¼ãå ¥ãããã¨ãã£ãæ§æã«ãªã£ã¦ããã¨ãããªãã®ã§ã¯æ¸ã¾ãªããªã£ã¦ããããµã¼ãã¼1å°ã§å®çµããªãã®ã¯çµæ§å³ããå åã ã
ç¹ã«ã¹ãã¬ã¼ã¸ã®ä¸è¶³ã¯ãµã¼ãã¼éå¶ã§å³ãããã®ã®ä»£è¡¨ã Vultrã¯ã¹ãã¬ã¼ã¸ãé«ãã®è¨å®ãªã®ã§ããã®æå³ã§ãè² æ ã¯å¢ãã¦ããã ãµã¼ãã¼éå¶ã¯ãæãè² ããªããã¨ã«ãªããªãããã«ãããã®ãçµæ§éè¦ãç¡éã«å¢å ãããã®ã対象ã«ããéå¶ã¯ããã¦ãããã»ããè¯ãã