Wikipediaã«ãããšã
ownCloudã¯ãã¯ã©ãŠãã§ã®ããã¥ã¡ã³ãã®ããŒã¿åæããã¡ã€ã«å
±æããªã¢ãŒãã¹ãã¬ãŒãžçšã®ç¡æã®ãªãŒãã³Webã¢ããªã±ãŒã·ã§ã³ã§ãã ãããŠãç§ã«ã¯ãããªãèªèº«ã®ããŒã ã¯ã©ãŠããæŽçããããã®ããªãèå³æ·±ã解決çã®ããã§ãã
ãã ãã
FreeNASã·ã¹ãã ã«ãã©ã°ã€ã³ãšããŠã€ã³ã¹ããŒã«ãããããã«äœ¿çšã§ããownCloudã«ã¯ãèªå®
ã§äœ¿çšããå Žåã§ãåãé€ãããšãã§ããããã€ãã®æ¬ ç¹ããããŸãã
- ãŸãã SQLiteãšäžç·ã«ã€ã³ã¹ããŒã«ãããŸããããã¯ãå°æ°ã®ãã¡ã€ã«ãšãŠãŒã¶ãŒãããå Žåã«ã®ã¿é©ããŠãããã¯ã©ã€ã¢ã³ãã䜿çšããŠåæããäºå®ãããå Žåã«ã¯çµ¶å¯Ÿã«é©ããŠããŸããã ç§ã®ãªããžããªã¯ãã§ã«5Tbã«ãŸã§åºãã£ãŠããã®ã§ããã®æ¹æ³ã§ã€ã³ã¹ããŒã«ãããç§ã®ownCloudã¯ããã¡ã€ã«ã®äžéšãèŠãããšãåã«æåŠããŸããã ãããŠãåæããªããã°ãã¯ã©ãŠãã§ã®å©çã¯å€§ãããããŸããã ããŒã¿ããŒã¹ãMariaDBã«çœ®ãæããŸã ã
- 第äºã«ãhttpsã§ã®äœæ¥ã¯ãããŸãããã誰ããç§ã®ãã¡ã€ã«ãååã§ãããšããèãã¯å¥œãã§ã¯ãããŸããã httpsããªã³ã«ããŸãã
- 第äžã«ããã«ãŒããã©ãŒã¹æ³ã䜿çšããç°¡åãªãã¹ã¯ãŒãæšæž¬ã«å¯Ÿããä¿è·ã¯ãŸã£ãããããŸããã fail2banã§ãã«ãŒããã©ãŒã¹ããå®ããŸãã
- 第4ã«ããããã³ã°ã®ããã«ãã°ãé »ç¹ã«èª¿ã¹ãã®ã¯é¢åã§ããããã®ãããªè©Šã¿ã«ã€ããŠããã«ç¥ãããã§ãã pushover.netãµãŒãã¹ã䜿çšããŠããã¹ã¯ãŒãã®è©Šè¡ã«é¢ããããã·ã¥éç¥ãèšå®ããŸãã
ããã«äºçŽãããã§ãã ç§ã¯ITã¹ãã·ã£ãªã¹ãã§ã¯ãªãããã·ã¢ã®ã·ã¹ãã ã€ã³ãã°ã¬ãŒã¿ãŒã®ãããžã§ã¯ããããŒãžã£ãŒã§ãããã®ãæ瀺ãã¯ãEsxiã§å®è¡ãããŠããç§ã®ããŒã ã·ã¹ãã ã§ããFreeNASã§ãããã®4ã€ã®ãã€ã³ããã¹ãŠãæ§æããè©Šã¿ã§çãŸããŸããã åœä»€ã¯åå¿è
ã®ããã«åå¿è
ã«ãã£ãŠæžãããã®ã§ãã©ããã«ã³ãã³ããèšå®ã«æãããªééãããšã©ãŒãããå Žåã¯ãã³ã¡ã³ãã§ãããã瀺ããŠãã ããã
ç§ã¯ãã³ã³ãœãŒã«ãããã¹ãŠã®èšå®ãããã³ãã«ã䜿çšããŠãã§ããã ãã倧人ãã®ITã¹ãã·ã£ãªã¹ããè¡ãæ¹æ³ã«ã§ããã ãè¿ã¥ããŠè¡ããŸãã
1 ownCloudçšã®Jailã®æºå
1.1ååæãäœæãã
ãã®æé ã«ã€ããŠã¯èª¬æããŸããã FreeNASãã€ã³ã¹ããŒã«ã§ããŠããããããªãã®ããã«åããªãã°ãããªãã¯ãã®ã¹ãããã§åé¡ãèµ·ãããªãã¯ãã§ãã æåã®ååæã®äœæã«ã¯ããªãæéããããå ŽåããããŸãã
1.2ãã®ååæãžã®SSHã¢ã¯ã»ã¹ãéã
Webã¿ãŒããã«ã§ã¯ãªããæ¬æ Œçãªã¿ãŒããã«ããã°ã©ã ã䜿çšããŠãããã«èšå®ãè¡ãã®ãæã䟿å©ã§ãã ããšãã°ã
puttyã§ãã ãããè¡ãã«ã¯ã
Jailãžã®
SSHã¢ã¯ã»ã¹ãéããæ°ãããŠãŒã¶ãŒãäœæããŸãããã®ãŠãŒã¶ãŒããåŒãç¶ãæ§æãè¡ããŸãã
FreeNASãŠã§ãã€ã³ã¿ãŒãã§ãŒã¹ã§äœæããååæãéžæããäžã®
ã·ã§ã«ãã¿ã³ãã¯ãªãã¯ããŸãã

Jail Webã³ã³ãœãŒã«ã§ã次ã®ããã«å
¥åããŸãã
# sysrc sshd_enable="YES"
sshãåäœããããã«ããŒã¢ã³ãå®è¡ããŸãã
# service sshd start
次ã«ããŠãŒã¶ãŒãäœæãããã®ãŠãŒã¶ãŒã«ä»£ãã£ãŠã·ã¹ãã ãæ§æããŸãã ãŠãŒã¶ãŒã«ã¯
ã¹ãŒããŒãŠãŒã¶ãŒç¹æš©ãäžããã
ãŸã ããã®ããã圌ã
wheelã°ã«ãŒãã«å«ããŸãã
# adduser
ãŠãŒã¶ãŒèšå®ãè¿œå
UsrnameïŒã¿ãŒããã«ã§ãã¹ãŠã®æäœãå®è¡ããæ°ãããŠãŒã¶ãŒã ããšãã°ã superstepaãå
¥åããŸãã
æ°åïŒãã®ãŠãŒã¶ãŒã®æ°åã ããšãã°ã Dyadya Stepa Policemanãšå
¥åããŸãã
UidïŒããã©ã«ãã§ã¯ç©ºã®ãŸãŸïŒïŒç©ºã®ãŸãŸã«ããããã«æ±ãããããããããè¡ããŸãã EnterããŒãæŒããŠãã ãã ã
ãã°ã€ã³ã°ã«ãŒã[superstepa]ïŒããŒã«ã«ç®¡çè
ïŒã¹ãŒããŒãŠãŒã¶ãŒïŒã®ãã¹ãŠã®æš©éããŠãŒã¶ãŒã«äžããŠã ãã€ãŒã«ã°ã«ãŒãã«å«ããããã«ããŸãã
ãã°ã€ã³ã°ã«ãŒãã¯ãã€ãŒã«ã§ãã superstepaãä»ã®ã°ã«ãŒãã«æåŸ
ããŸããïŒ []ïŒ EnterãæŒããŸãã
ãã°ã€ã³ã¯ã©ã¹[ããã©ã«ã]ïŒ EnterãæŒããŸãã
ã·ã§ã«ïŒsh csh tcsh git-shell nologinïŒ[sh]ïŒããã©ã«ãã§ã¯shã®ãŸãŸã«ããŸãã EnterãæŒãã ãã§ãã
ããŒã ãã£ã¬ã¯ããª[/ home / superstepa]ïŒããäžåºŠå
¥åããŸãã
ããŒã ãã£ã¬ã¯ããªã®ã¢ã¯ã»ã¹èš±å¯ïŒããã©ã«ãã§ã¯ç©ºã®ãŸãŸïŒïŒããäžåºŠå
¥åããŸãã
ãã¹ã¯ãŒãããŒã¹ã®èªèšŒã䜿çšããŸããïŒ [ã¯ã]ïŒãã¹ã¯ãŒãã§ãã®ãŠãŒã¶ãŒãèªèšŒããŸããïŒ ãã¡ããããã§ãïŒ EnterãæŒããŸãã
空ã®ãã¹ã¯ãŒãã䜿çšããŸããïŒ ïŒã¯ã/ãããïŒ[ããã]ïŒã»ãã¥ãªãã£ã®ããã§ãããã¹ãŒããŒãŠãŒã¶ãŒç¹æš©ãæã€æ°ãããŠãŒã¶ãŒã空ã®ãã¹ã¯ãŒããæã€ããšã¯æãŸãããããŸããã ãã®ãããããäžåºŠEnterãæŒããŸãã
ã©ã³ãã ãªãã¹ã¯ãŒãã䜿çšããŸããïŒ ïŒã¯ã/ãããïŒ[ããã]ïŒç§ãã¡ãçºæãããã¹ã¯ãŒããæãä¿¡é Œã§ãããšç¢ºä¿¡ããŠããŸãã ãããŠããã䜿ãããã§ãã ãããã£ãŠã EnterãæŒããŸãã
ãã¹ã¯ãŒããå
¥åããŠãã ããïŒã¯ããããã«ãããŸãã ãã¹ã¯ãŒããå
¥åããŠãã ããã
ãã¹ã¯ãŒããããäžåºŠå
¥åããŠãã ããïŒããäžåºŠå
¥åããŠãã ãã ã
äœæåŸã«ã¢ã«ãŠã³ããããã¯ã¢ãŠãããŸããïŒ [no]ïŒãããããã®ã¢ã«ãŠã³ãããããã¯ããå¿
èŠã¯ãããŸããã ãå
¥åããŠãã ãã ã
ããã£ã ïŒyes / noïŒïŒãã¹ãŠãæ£ãããã©ããã確èªããæ£ããå Žåã¯yesã«ããŸã ã
å¥ã®ãŠãŒã¶ãŒãè¿œå ããŸããïŒ ïŒã¯ã/ãããïŒïŒä»ã®ãŠãŒã¶ãŒã¯å¿
èŠãããŸããã ãã
2 ownCloudã®ã€ã³ã¹ããŒã«ãšéå§
端æ«ããã°ã©ã ã䜿çšããŠãååæã«åå ããŸãã
äœæãããŠãŒã¶ãŒã®ååãšãã¹ã¯ãŒããå
¥åããŸãã
ã³ãã³ãããã³ããã§
$ write
suãšå
¥åããŸãã ããã§ãã³ãã³ãããã³ããã¯
root @ ownCloudã®ãããªãã®ã«å€ãããŸã
ïŒ/ usr / home / superstepaïŒ ããã¹ãŠã®ã³ãã³ãã¯ã¹ãŒããŒãŠãŒã¶ãŒã®ä»£ããã«å®è¡ãããŸãã
ç°¡ç¥åããããã«ãã³ãã³ãã©ã€ã³ããã³ãããèšå·
ïŒã§ç€ºããå
¥åããå¿
èŠã®ãªãã³ã¡ã³ãã¯
//ã§å§ããŸãã
2.1å¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ãã
ãŸããçŸåšã®ããã±ãŒãžãæŽæ°ããŸãã
# pkg upgrade
次ã«ãownCloudãæ©èœããããã«å¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãïŒãã¹ãŠã®è³ªåã«
yesãšçã
ãŸã ïŒã
# pkg install mariadb100-server php56-extensions php56-bz2 php56-curl php56-exif php56-fileinfo php56-gd php56-mbstring php56-mcrypt php56-pdo_mysql php56-openssl php56-zip php56-zlib pecl-APCu pecl-intl
httpsã§ã®äœæ¥ãæå¹ã«ããããã«ãå¿
èŠãªããã±ãŒãžãåéããŠãããããŒããã
nginx WebãµãŒããŒãã€ã³ã¹ããŒã«ããŸãã
# portsnap fetch extract // , # cd /usr/ports/www/nginx && make config // web- nginx
ã¢ã»ã³ããªããã»ã¹äžã«ã次ã®ããã±ãŒãžãéžæãããŠããããšã確èªããŸãã
IPV6
HTTP
HTTP_CACHE
HTTP_DAV
HTTP_FLV
HTTP_GZIP_STATIC
HTTP_PERL
HTTP_REWRITE
HTTP_SSL
HTTP_STATUS
WWW
# make install
2.2èªå·±çœ²åéµãšèšŒææžãäœæãã
# cd /usr/local/etc/nginx/
server.keyã«ãŒãããŒïŒdes3æå·å
ã¢ã«ãŽãªãºã ã1024ãããé·ïŒãäœæããŸãã
# openssl genrsa -des3 -out server.key 1024
ãããè¡ãããã«ãã·ã¹ãã ã¯ãã¹ãã¬ãŒãºã2åå
¥åããããèŠæ±ããŸãã çºæãã玹ä»ããŸãã
ã«ãŒã蚌ææžãäœæããŸãã
# openssl req -new -key server.key -out server.csr
質åã«èªç±ã«çããããšãã§ããŸãã äž»ãªãã®ïŒ
-æåã®èŠæ±ã§ã
server.keyã®ãã¹ãã¬ãŒãºãå
¥åãã以åã«äœæããã«ãŒãããŒã®æ£ãããã¹ã¯ãŒããå
¥åããŸãã
-ãã¹ãŠã®è³ªåã«å¿
ãçããŠãã ãããããããªããšãownCloudã¯ã©ã€ã¢ã³ããå°æ¥ãã¡ã€ã«ã®åæãæåŠããå¯èœæ§ããããŸãã
-å
¥åããããŒã¿ãèŠããŠãããšãå°æ¥ã蚌ææžãèªåã®ãã®ã§ããããšãç°¡åã«èŠããããããã«ãªããŸãã
-質å
Aãã£ã¬ã³ãžãã¹ã¯ãŒã[]ïŒã«å
¥åãããã¹ã¯ãŒããèŠããŠãããŠ
ãã ãããäžèšã®ã³ãã³ãã«
-days 10000åŒæ°ãè¿œå ããããšã«ããã蚌ææžã®æå¹æéããããšãã°10,000æ¥ã«å€æŽã§ããŸãã
# cp server.key server.key.org // # openssl rsa -in server.key.org -out server.key // # openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt //
2.3 WebãµãŒããŒãPHPãããã³ããŒã¿ããŒã¹ã®èªåå®è¡ãæå¹ã«ãã
# sysrc nginx_enable="YES" php_fpm_enable="YES" mysql_enable="YES"
2.4èšå®ãç°¡åã«ç·šéããããã®ãšãã£ã¿ãŒãã€ã³ã¹ããŒã«ãã
ããã§ããç§ãã¡ã¯ãŸã ãå°ããããããªã€ã³ã¹ããŒã«ããã
viãšãã£ã¿ãŒã䜿çšããããšã¯ãŸã é£ããã®ã§ãåçŽãª
nanoãšãã£ã¿ãŒãé
眮ããŸãïŒçºçãããã¹ãŠã®è³ªåã«
yesãšçã
ãŸã ïŒã
# pkg install nano
泚æïŒãšãã£ã¿ãŒãã€ã³ã¹ããŒã«ããåŸã
nanoã³ãã³ãã§å®è¡ããŠã¿ãŠãã ããã ç§ã«ã¯æããã§ãªãããã€ãã®ã±ãŒã¹ã§ã¯ãäœãããããããªããéå§ãã代ããã«ã次ã®ãšã©ãŒã衚瀺ãããŸãã
å
±æãªããžã§ã¯ããlibiconv.so.2ããèŠã€ãããªãããlibgmoudle-2.0.so.0ããå¿
èŠ
ãããä¿®æ£ããããã«ã2ã€ã®ã³ãã³ãã®ã¿ãå®è¡ããŸãã
# pkg delete -f gettext # pkg upgrade
2.5 nginx WebãµãŒããŒã®èšå®ãä¿®æ£ãã
å®éã®ç®¡çè
ãšããŠã調æŽããåã«æ§æã®ã³ããŒãåžžã«äœæãããããåé¡ãçºçããå Žåã¯ãã€ã§ãããŒã«ããã¯ã§ããŸãã
# cp /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/nginx.old
æ§æãã¡ã€ã«ãç·šéããŸãã
# nano /usr/local/etc/nginx/nginx.conf
æ§æã®å
容å
šäœã次ã®ãã®ã«çœ®ãæããŸãã worker_processes 2; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' access_log logs/access.log main; sendfile off; keepalive_timeout 65; gzip off; ssl_certificate /usr/local/etc/nginx/server.crt;
Ctrl + XãæŒããŠãšãã£ã¿ãŒãçµäºããŸãã çµäºæã«å€æŽãä¿åããããšãå¿ããªãã§ãã ããã
2.6 phpèšå®ãä¿®æ£ãã
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini # nano /usr/local/etc/php.ini
ãã¡ã€ã«å
ã§æ¬¡ã®è¡ãèŠã€ãïŒæ€çŽ¢ããã«ã¯Ctrl + Wã䜿çšïŒãæå®ãããå€ããããã«äžããŸãã always_populate_raw_post_data = -1
2.7æ£ããphp-fpm.confïŒ
# cp /usr/local/etc/php-fpm.conf /usr/local/etc/php-fpm.old # nano /usr/local/etc/php-fpm.conf
ãã¡ã€ã«å
ã§æ¬¡ã®è¡ãèŠã€ãïŒæ€çŽ¢ããã«ã¯Ctrl + Wã䜿çšïŒãæå®ãããå€ããããã«äžããŸãã listen = /var/run/php-fpm.sock listen.owner = www
2.8æ£ãã/var/db/mysql/my.cnfïŒ
# cp /var/db/mysql/my.cnf /var/db/mysql/my.old # nano /var/db/mysql/my.cnf
ãã¡ã€ã«ã¯ç©ºã«ãªãããã次ã®è¡ãè¿œå ããŸãã [server] skip-networking skip-name-resolve innodb_flush_method = O_DIRECT skip-innodb_doublewrite innodb_flush_log_at_trx_commit = 2 innodb_file_per_table expire_logs_days = 1
2.9 nginxãPHPãMariaDB WebãµãŒããŒãèµ·åããããŒã¿ããŒã¹ãæ§æããŸãã
# service nginx start && service php-fpm start && service mysql-server start
ãã¹ãŠãæ£ããè¡ãããå Žåããã¹ãŠããšã©ãŒãªãã§éå§ããã
httpsïŒ// <YOUR_JAIL_IP>ã§ãã©ãŠã¶ãŒã«ã¢ã¯ã»ã¹ã§ã
ãŸã ã
蚌ææžã¯èªå·±çœ²åãããŠããããšãæãåºããŸããããããåãå
¥ãããšã
403 Forbiddenãšããç¢æã®ããããŒãžã«ç§»åããŸãã

MariaDBããŒã¿ããŒã¹ãã»ããã¢ããããŸãã
# mysql_secure_installation
MariaDBèšå®ïŒã«ãŒãã®çŸåšã®ãã¹ã¯ãŒããå
¥åïŒãªãã®å Žåã¯å
¥åïŒïŒããã©ã«ãã§ã¯ãã¹ã¯ãŒãã¯ãããŸãããEnterãæŒããŸãã
ã«ãŒããã¹ã¯ãŒããèšå®ããŸããïŒ [Y / n] ïŒ Yãå
¥åããŸãã
æ°ãããã¹ã¯ãŒãïŒæ°ããã«ãŒããã¹ã¯ãŒããå
¥åããŸãã
æ°ãããã¹ã¯ãŒããåå
¥åïŒä»¥åã«å
¥åãããã¹ã¯ãŒããç¹°ãè¿ããŸãã
ä»ã®ãã¹ãŠã®è³ªåã«ã€ããŠã¯ã Yãšçããããåã«EnterãæŒããŠãã ãã
å€ãå
¥åããŠã
ownCloudããŒã¿ããŒã¹ãã»ããã¢ããããŸã
ãowncloudã¯ããŒã¿ããŒã¹ã®ååã
ownclouduserdbã¯ããŒã¿ããŒã¹ã
æäœããããã®ãŠãŒã¶ãŒåãpasswordownclouddbã¯ãã®ãŠãŒã¶ãŒã®ãã¹ã¯ãŒãã§ãã
# mysql -u root -p CREATE DATABASE owncloud; GRANT ALL PRIVILEGES ON owncloud.* TO 'ownclouduserdb' IDENTIFIED BY 'passwordownclouddb'; FLUSH PRIVILEGES; quit;
2.10ææ°ããŒãžã§ã³ã®OwnCloudãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸã
ãªã³ã¯ãã¯ãªãã¯ããŠã
ownCloudã®çŸåšã®çŸåšã®ããŒãžã§ã³ã
確èªããŸãã å·çæç¹ã§ã¯ãããã¯ããŒãžã§ã³
8.0.2ã§ããã
ã¢ãŒã«ã€ããããŠã³ããŒãããŸã
ã8.0.2ã®ä»£ããã«çŸåšã®çŸåšã®ããŒãžã§ã³
ã瀺ããŸãã
# fetch "http://download.owncloud.org/community/owncloud-8.0.2.tar.bz2"
解åïŒ
# tar jxf owncloud-*.tar.bz2 -C /usr/local/www
äžèŠã«ãªã£ãã¢ãŒã«ã€ããåé€ããŸãã
# rm owncloud-*.tar.bz2
ã·ã¹ãã ææè
ïŒãŠãŒã¶ãŒãšã°ã«ãŒãïŒã«ownCloudãå²ãåœãŠãŸãã
# chown -R www:www /usr/local/www/owncloud /mnt/files
2.11ã¯ããŒã³ã§ã¿ã¹ã¯ãäœæããŸãã
# setenv EDITOR nano // nano # crontab -u www -e
æžã蟌ã¿ãŸãïŒ
*/15 * * * * /usr/local/bin/php -f /usr/local/www/owncloud/cron.php
ãã¹ãŠã®ã¹ãã«ãæ£ããå Žåã次ã®ã·ã¹ãã ã¡ãã»ãŒãžã衚瀺ãããŸãã
crontabïŒæ°ããcrontabã®ã€ã³ã¹ããŒã«
httpsïŒ// <YOUR_JAIL_IP> / owncloudã®ãã©ãŠã¶ãŒã«ç§»åããããã§æåŸã®èšå®ãè¡ããŸãã 䜿çšããããŒã¿ããŒã¹ã®ã¿ã€ããå€æŽããå¿
èŠãããããšãå¿ããªãã§ãã ããããã®ããã«ã[
ã¹ãã¬ãŒãžãšããŒã¿ããŒã¹ ]ãã¯ãªãã¯ããããŒã¿ããŒã¹ã¿ã€ããéžæããŸãïŒ
MySQL / MariaDB ã

ãã£ãŒã«ãã«å
¥åããŸããŠãŒã¶ãŒåïŒã¯ã©ãŠãã®ç®¡çè
åã ããšãã°ã Stepanadministratovich ã
ãã¹ã¯ãŒã ïŒç®¡çè
ãã¹ã¯ãŒãã
ããŒã¿ãã£ã¬ã¯ããª ïŒ / mnt / files / ã ãã®ãã£ã¬ã¯ããªã«ãæ¢åã®ããªã¥ãŒã ãããFreeNASãªããžããªãããŠã³ãããŸãã æ¹æ³ã説æããå¿
èŠãããå Žåã¯ãã³ã¡ã³ããèšå
¥ããŠãã ããã
ããŒã¿ããŒã¹ãŠãŒã¶ãŒ ïŒ ownclouduserdbã®ã¹ããã2.9ã§äœæããŸããã
ããŒã¿ããŒã¹ãã¹ã¯ãŒã ïŒæé 2.9ã§åè¿°ããpasswordownclouddbãå²ãåœãŠãããŠããŸã ã
ããŒã¿ããŒã¹å ïŒãã¹ãŠåãã¹ããã2.9 owncloud ã
ownCloudã¯ããã«äœ¿çšã§ããŸãã

3詳现èšå®
3.1æ€çŽ¢ãšã³ãžã³ïŒYandexãGoogleãªã©ïŒã«ãµã€ãã®ã€ã³ããã¯ã¹ãäœæããªãããäŸé ŒããŸãã
# ln -s /usr/local/www/owncloud/robots.txt /usr/local/www
4ãã¹ã¯ãŒãä¿è·
4.1ããŒãããfail2banãã€ã³ã¹ããŒã«ããŸãã
# cd /usr/ports/security/py-fail2ban # make install clean
Fail2banãã£ã¬ã¯ããªæ§é Fail2banã¯ã次ã®ãã¹ã«ãããŸãïŒ/ usr / local / etc / fail2banã ããã«ãããã£ã¬ã¯ããªãšãã¡ã€ã«ã®æ§é ïŒ
action.dãã©ã«ããŒ-ã¢ã¯ã·ã§ã³ãã¡ã€ã«ãå«ãŸããŠããŸã
folder filter.d-ãã£ã«ã¿ãŒãã¡ã€ã«
fail2ban.confãã¡ã€ã«-ã¡ã€ã³æ§æãã¡ã€ã«
jail.confãã¡ã€ã«-ç¹å®ã®ãµãŒãã¹ã®ã»ãã¥ãªãã£èšå®ãã¡ã€ã«
4.2 ownCloudã§ã®ãã®ã³ã°ã®èšå®ïŒ
ãã°ã€ã³ã«å€±æããå Žåã«ownCloudãã°ãæžã蟌ãŸãããã¡ã€ã«ãäœæããŸãã
touch /var/log/owncloud-acces.log
ãã¡ã€ã«ã¯wwwã«ãã£ãŠæžã蟌ã¿å¯èœã§ãªããã°ãªããŸããïŒ
# cd /var/log/ # chown www:www owncloud-acces.log
ownCloudã§å€±æãããšã³ããªã®ãã°ãæå¹ã«ããŸãã
# nano /usr/local/www/owncloud/config/config.php
ãã¡ã€ã«ã§ã¯ãæåŸã®è¡ã®åã«æ¬¡ã®è¡ãæ€çŽ¢ãŸãã¯è¿œå ãïŒæ€çŽ¢Ctrl + Wã䜿çšïŒãæå®ãããå€ãæå®ããŸãã 'logtimezone' => 'Europe/Moscow',
倱æãããšã³ããªã®ãã®ã³ã°ãå®è¡ãããŠãããã©ããã確èªããŸããæå³çã«èª€ã£ããã¹ã¯ãŒããŸãã¯ãŠãŒã¶ãŒåã䜿çšããŠã
ownCloud Webã€ã³ã¿ãŒãã§ãŒã¹ã«äœåºŠã
å
¥ãããšããŸãã
次ã«ãã³ã³ãœãŒã«ã§ã³ãã³ããå®è¡ããŸãã
# nano /var/log/owncloud-acces.log
ãã¹ãŠãæ£ããè¡ããããšããã¡ã€ã«ã«æ¬¡ã®ãšã³ããªã衚瀺ãããŸãã
{"ReqId"ïŒ "es09787k250rv52fu0iu44124z494687"ã "remoteAddr"ïŒ "192.168.1.1"ã "app"ïŒ "core"ã "message"ïŒ "ãã°ã€ã³å€±æïŒ 'Admin'ïŒãªã¢ãŒãIPïŒ '192.168.1.10'ãX- Forwarded-ForïŒ ''ïŒ ''ãâ levelâïŒ2ãâ timeâïŒâ 2015-04-04T18ïŒ59ïŒ50 + 03ïŒ00â}
4.3 fail2banã®ãã£ã«ã¿ãŒãã¡ã€ã«ãäœæããŸãã
nano /usr/local/etc/fail2ban/filter.d/owncloud.conf
ãã¡ã€ã«ã«æ¬¡ã®ããã«èšè¿°ããŸãã [Definition] failregex={"app":"core","message":"Login failed: user '.*' , wrong password, IP:<HOST>","level":2,"time":".*"}
å®éãããã¯ãownCloudããã°ã«æžã蟌ããã¹ãŠã®ãµãŒãã¹æ
å ±ã§ããšã³ããªã®ãã¹ã¯ãŒããèŠã€ããããšãã人ã®IPã¢ãã¬ã¹ãèŠã€ããªããã°ãªããªãããŒãµãŒã§ãã ãã°ãšã³ããªã§æ±ºããŠå€æŽãããªãèŠçŽ ã¯ãããã«æ瀺çã«ç€ºãããŠããŸãã å€æŽãããã®ã¯*ã«çœ®ãæããããŸãã å®éãæ¢ããŠããIPã¢ãã¬ã¹ã¯å€æ°<\ HOST> \ã«çœ®ãæããããŠããŸãã
4.4ãµãŒãã¹èšå®ãã¡ã€ã«ãç·šéããŸãã
# cp /usr/local/etc/fail2ban/jail.conf /usr/local/etc/fail2ban/jail.old # nano /usr/local/etc/fail2ban/jail.conf
jail.confãã¡ã€ã«ã®æåŸã«è¿œå ããŸãã [owncloud] enabled = true filter = owncloud port = https logpath = /var/log/owncloud-acces.log
4.5ãã£ã«ã¿ãŒãæ©èœãããã©ãããããã³ãã°ã€ã³è©Šè¡ã倱æããå Žåã«ownCloudãã°ã§å¿
èŠãªè¡ãèŠã€ããããšãã§ãããã©ããã確èªããŸãã
# fail2ban-regex /var/log/owncloud-acces.log /usr/local/etc/fail2ban/filter.d/owncloud.conf
ãã¹ãŠãæ£ããå Žåãåºåã®äžéšã«æ¬¡ã®åœ¢åŒã®è¡ããããŸãã
è¡ïŒ2è¡ã0ã¯ç¡èŠã2ã¯äžèŽã0ã¯æ¬ èœ[0.0ç§ã§åŠç]
4.6ãã°ã€ã³è©Šè¡ã倱æããå Žåã«å®è¡ãããã¢ã¯ã·ã§ã³ãèšå®ããŸãïŒ
# cp /usr/local/etc/fail2ban/action.d/bsd-ipfw.conf /usr/local/etc/fail2ban/action.d/bsd-ipfw.local # nano /usr/local/etc/fail2ban/action.d/bsd-ipfw.conf
ããã©ã«ãã§ã¯ãã¹ãŠãæ®ããŸãã çŠæ¢ãžã®éä¿¡æã«ãIPã¢ãã¬ã¹ã
ipfwãã¡ã€ã¢ãŠã©ãŒã«ããŒãã«ã«è¿œå ããããšããã«ãŒã«ããã§ã«ç¶Žã£ãŠããŸãïŒ1ïŒïŒ
actionban = ipfw table \ <ããŒãã«\> add \ <ip \>
ããŒãã«ïŒ1ïŒã«ãããã¹ãŠã®IPã¢ãã¬ã¹ããããã¯ããã«ãŒã«ã
ipfwãã¡ã€ã¢ãŠã©ãŒã«èªäœã«è¿œå ããŸãã ãã¡ã€ã¢ãŠã©ãŒã«ã«ã¯ããã®è¡šïŒ1ïŒã®ã¢ãã¬ã¹ãã©ãåŠçããããšããã«ãŒã«ã¯ãããŸããã
# ipfw add 1 deny all from table\(1\) to me
ipfwã®äœ¿çšäŸïŒ ipfw list // ipfw delete 13 // 13 ipfw add 14 <> // 14 ipfw table 1 add 192.168.1.5 // ipfw table 1 add 192.168.1.0/24 // ipfw table 1 list // ipfw add deny ip from table(10) to me // 50 ipfw table 1 delete 192.168.1.5 // ipfw table 1 flush //
4.7 fail2banã®å®è¡ïŒ
éå§ããåã«ãfail2bançšã«pushover-notifyã¢ã¯ã·ã§ã³ãèšè¿°ã
ããã¡ã€ã«ãäœæããŸããããã«ã€ããŠã¯æ¢ã«èª¬æããŸããã
#touch /usr/local/etc/fail2ban/action.d/pushover-notify.conf
autostart fail2banã/etc/rc.confã«ç»é²ããŸãã
# sysrc fail2ban_enable="YES"
ãããŠãããå®è¡ããŸãïŒ
# /usr/local/etc/rc.d/fail2ban start
ãã¹ãŠãæ£ããè¡ãããå Žåãèµ·åããŸã;ããã§ãªãå Žåããšã©ãŒã®å ŽæãèŠã€ããŸãã éå§ããããçŠæ¢ã確èªããŸãããµãŒãããŒãã£ã®IPã¢ãã¬ã¹ããééã£ããã¹ã¯ãŒããå
¥åããŸãã
jail.confãã¡ã€ã«ã§æå®ãã
æéã¯çŠæ¢ããå¿
èŠããããŸãã
ãããã°ããã»ã¹äžã«äŸ¿å©ãªfail2banã䜿çšããããã€ãã®äŸïŒ å®éãownCloudããããŸããããã¯ããã¹ã¯ãŒãä¿è·ããããã¢ãã«ããhttpsããŒã¿ããŒã¹ã§åäœããŸãã
ã»ãšãã©ãã¹ãŠã§ããããã¹ã¯ãŒããééã£ãŠå
¥åãããå Žåã®ãããã¯ã«é¢ããéç¥ããé»è©±ã§ã®ããã·ã¥éç¥ã®åœ¢åŒã§è¿œå ããŸãããã
5 IPãããã¯éç¥
ããã·ã¥éç¥ã®å Žåãpushover.netãµãŒãã¹ã䜿çšããŸãã APIãæ±ãã®ã¯ä»ã§ã¯é£ãããªããšæããŸãã ãã ããåé¡ãããå Žåã¯ãã³ã¡ã³ããèšå
¥ããŠãã ããããã®ãµãŒãã¹ã䜿çšããããã®é©åãªèª¬æãè¿œå ããŸãã
5.1倱æãããã°ã€ã³è©Šè¡ãšãã¹ã«é¢ããããã·ã¥ãªãŒããŒéç¥ã®æ§æïŒ
# nano /usr/local/etc/fail2ban/action.d/pushover-notify.conf
ãã¡ã€ã«ã«æ¬¡ã®ããã«æžããŸãïŒ [Definition] actionstart= actionstop= actioncheck= actionban = url -k https:
ããã§ã
[API Token / keyïŒapplication keyïŒ]ããã³
[User key]㯠pushover.netãã
ã®å¯Ÿå¿ããå€
ã§ã ã
fail2banãåèµ·åã
ãŸã # /usr/local/etc/rc.d/fail2ban restart
ownCloudã«å
¥ãããã®ããã€ãã®å€±æããè©Šè¡ãå®è¡ããããšã«ãããéç¥ã®åäœã確èªããŸãã

以äžã§ãã
ownCloudã«ã¢ã¯ã»ã¹ããããã«ãã«ãŒã¿ãŒã®ããŒã80ãš443ã転éããããšãå¿ããªãã§ãã ããã
ãã¡ãããã»ãã¥ãªãã£ã匷åããããã«ãæšæºããŒãããããšããŸããã¯ãªãã®ã«çœ®ãæããããšãã§ããŸãã