Anonim

Ang pag-iimbak ng Cloud ay isang mahusay na paraan upang mapanatiling ligtas ang iyong mga file kung sakaling may mangyari at nawala ang iyong computer o nasira. Makakatulong ito sa iyo na ma-access ang iyong mga file sa kalsada o mula sa trabaho, at makakatulong sa iyo na mapanatiling naka-sync ang lahat sa iyong mga aparato.

Ang pag-iimbak ng ulap ay may isang pangunahing sagabal, bagaman. Kailangan mong magtiwala sa ilang kumpanya sa lahat ng iyong mga personal na file. Ano ang mangyayari kung sila ay na -hack? Totoo ba ang lahat ng mga ito na mapagkakatiwalaan, o pinagdadaanan ba nila ang iyong mga bagay kapag hindi ka naghahanap? Hindi talaga siguro alam kung panigurado.

May isa pang pagpipilian. Maaari kang mag-host ng iyong sariling pag-iimbak ng ulap sa Nextcloud. Ang Nextcloud ay isang bukas na mapagkukunan ng solusyon sa pag-iimbak ng ulap na nagbibigay-daan sa iyo upang maging iyong sariling kumpanya ng imbakan sa ulap. Ito ay isang madaling gamitin at malinis na interface at kasamang mga app para sa lahat ng iyong mga aparato, kaya hindi ka nakikitungo sa ilang mga na-hack na magkasama.

Patnubay ang gabay na ito sa pag-host sa Nextcloud sa isang VPS (Virtual Pribadong Server), ngunit maaari mo ring patakbuhin ito nang lokal sa iyong home network. Huwag lamang asahan na mai-access ito mula sa labas maliban kung nag-set up ka ng port forwarding o nagpapatakbo ng VPN. Ang ilan sa mga hakbang ay magkakaiba, at hindi mo kailangang bumili ng pangalan ng domain o mag-set up ng mga sertipiko ng SSL.

Pumili ng isang Host

Mabilis na Mga Link

  • Pumili ng isang Host
  • I-install ang Kailangan mo
  • I-set up ang Iyong Firewall
  • I-configure ang SSH
    • SSH Keys
      • Windows
      • Mac at Linux
    • Huwag Paganahin ang Root at Mga Password
  • I-configure ang Iyong Database
  • I-configure ang PHP
  • Kumuha ng Nextcloud
  • Lumikha ng SSL Sertipiko
  • I-configure ang Nginx
  • Simulan ang Nextcloud

Sa pag-aakalang pupunta ka sa isang tunay na solusyon sa ulap at nais mong ma-access ang iyong mga file sa Web, kailangan mong mag-set up ng isang VPS upang mag-host sa Nextcloud. Mayroong ilang mga magagandang pagpipilian sa labas, kaya pumili kung ano ang pinakamahusay para sa iyo. Suriin ang Linode, DigitalOcean, at Gandi, kung wala ka nang isang host sa isip.

Gagamitin ng gabay na ito ang Debian 9 "Stretch" bilang operating system ng server. Ang Debian ay sobrang matatag at medyo ligtas sa pamamagitan ng default. Sinusuportahan din ito ng karamihan sa mga platform ng pag-host. Kung mas komportable ka sa Ubuntu, karamihan sa mga ito ay mailalapat din doon, dahil ang Ubuntu ay batay sa Debian.

Kailangan mo ring makakuha ng isang domain name para sa iyong server. Dahil hindi ito magiging isang pampublikong site, maaari mo itong gawin kahit anong gusto mo. Ang proseso para sa pagbili at pag-link ng isang domain name ay naiiba para sa bawat host at domain name provider, kaya siguraduhing suriin ang dokumentasyon na ibinigay ng mga serbisyong iyong pinili.

Lahat ng bagay dito ay mai-hahawakan mula sa linya ng utos ng Linux. Kaya, kung nasa Mac o Linux ka, maaari mo lamang buksan ang isang terminal at gamitin ang SSH upang ma-access ang iyong VPS. KUNG nasa Windows ka, kumuha ng isang SSH client tulad ng PuTTY .

I-install ang Kailangan mo

Mayroong maraming mga piraso sa puzzle na ito. Maaari mo ring kunin ang lahat ng mga ito ngayon, kaya mayroon kang kailangan mong magpatuloy mula dito. Ang Debian ay hindi karaniwang naka-install ng sudo bilang default, kaya grab muna iyon, at i-set up ito.

$ su -c 'na-install ng sudo'

Ipasok ang iyong root password at mai-install ang Sudo. Pagkatapos, kailangan mong idagdag ang iyong gumagamit sa pangkat ng sudo.

$ su -c 'gpasswd-isang username sudo'

Ngayon, maaari mong gamitin ang sudo. Maaaring kailanganin mong mag-log in muli, kung hindi ito gumana kaagad. Mula sa puntong ito pasulong, gagamitin mo ang sudo sa halip, lalo na dahil hindi mo paganahin ang mga root log para sa mga layuning pangseguridad.

Ngayon, kunin ang lahat mula sa mga repositori ni Debian.

$ sudo apt install ufw mariadb-server nginx sertbot php php-mysql php-fpm php-cli php-json php-curl php-imap php-gd php-xml php-zip php-intl php-mcrypt php-imagick php-mbstring

I-set up ang Iyong Firewall

Ang iyong server ay nasa Internet. Walang paraan sa paligid nito, at nangangahulugan ito na kailangan mong harapin ang mga umaatake. Ang pag-set up ng isang simpleng firewall ay makakatulong na maiwasan ang maraming potensyal na banta.

Sa halip na gumamit ng mga iptable nang direkta, maaari mong gamitin ang UFW (Uncomplicated Firewall) upang ma-secure ang iyong system. Mayroon itong mas simpleng syntax, at mas madali itong magtrabaho.

Magsimula sa pamamagitan ng hindi paganahin ang lahat sa firewall. Itatakda nito ang default na patakaran upang tanggihan ang mga koneksyon sa lahat ng mga serbisyo at port, tinitiyak na ang mga umaatake ay hindi makakonekta sa ilang nakalimutan na port.

$ sudo ufw default tanggihan ang papasok

$ sudo ufw default tanggihan ang papalabas na $ sudo ufw default na tanggihan pasulong

Susunod, maaari mong sabihin sa ufw ang mga serbisyo na nais mong pahintulutan. Sa kasong ito, kakailanganin mo lamang ang SSH at pag-access sa web. Gusto mo ring paganahin ang NTP at DNS upang ang iyong server ay maaaring makakuha ng mga update at itakda ang orasan nito.

Pinahihintulutan ng $ sudo ufw sa ssh $ sudo ufw payagan ang ssh $ sudo ufw payagan sa http $ sudo ufw payagan ang http $ sudo ufw payagan sa https $ sudo ufw payagan ang https $ sudo ufw payagan sa ntp $ sudo ufw payagan ntp $ sudo ufw payagan sa 53 $ sudo ufw payagan ang 53 $ sudo ufw payagan sa 67 $ sudo ufw pay out 67

Maaari mong simulan ang iyong firewall ngayon. Bibigyan ka nito ng babala tungkol sa pagkagambala sa SSH, ngunit pinayagan mo na ang SSH, kaya magiging okay ka.

paganahin ang $ sudo ufw

I-configure ang SSH

Ang SSH ay isa sa mga madalas na pag-atake ng mga serbisyo sa mga server ng Linux. Ito ang gateway sa lahat ng iba pa sa server, at karaniwang protektado lamang ito ng isang password. Iyon ang dahilan kung bakit mahalagang tiyakin na ang iyong server ay hindi madaling ma-access sa mga umaatake sa SSH.

SSH Keys

Una, kailangan mong mag-set up ng isang mas ligtas na alternatibo sa isang password, isang SSH key. Ang proseso ay naiiba sa Windows kaysa sa Mac at Linux, kaya sundin ang mga tagubilin na akma sa iyong desktop.

Windows

Tulad ng paraan ng Windows, kailangan mo pa ng isa pang programa upang makumpleto ang simpleng gawain na ito. Ang PuTTYgen ay isang RSA key generator para sa PuTTY. Magagamit ito mula sa pahina ng pag-download ng PuTTY . I-download ito, at patakbuhin ito.

Sa window na bubukas, pangalanan ang iyong susi at lumikha ng isang password para dito. Ito ang password na gagamitin mo upang mag-log in sa iyong server. Sa ilalim, piliin ang SSH-2 RSA at magtakda ng isang pangunahing sukat ng hindi bababa sa 2048 bits. Mas mahusay ang 4096, ngunit ang 2048 ay magiging mas mabilis. Pagkatapos, makabuo ng iyong mga susi, at i-save ang parehong pampubliko at pribadong mga key. Sa wakas, kopyahin ang pampublikong susi na nagpapakita sa tuktok ng window.

Gumamit ng PuTTY upang kumonekta sa iyong server. Magbukas ng isang file sa ~ / .ssh / authorized_key at i-paste ang iyong key.

Bumalik sa PuTTY, hanapin ang SSH sa side menu. Pagkatapos, buksan ang "Mga May-akda." Sa patlang para sa pangunahing pindutan, mag-browse sa lokasyon ng pribadong key na na-save mo lang. Kapag ang lahat sa PuTTY ay naka-set up para sa iyong server, i-save ang session. Subukan ito upang matiyak na nakakonekta ka sa iyong susi bago lumipat.

Mac at Linux

Ang mga gumagamit ng Mac at Linux ay may mas madaling kalsada dito. Magsimula sa pamamagitan ng pagbuo ng isang SSH key, kung wala ka pa. Mayroon kang pagpipilian ng paglikha ng isang password para sa key. Ito ay opsyonal, kaya iyon ang iyong tawag.

$ ssh-keygen -b 4096 -t rsa

Ngayon, ipadala lamang ang iyong susi sa iyong server. Palitin ang iyong username at ang IP ng server.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub

Ayan yun!

Huwag Paganahin ang Root at Mga Password

Matapos mong mai-set up ang iyong key, maaari mong paganahin ang mga password para sa SSH. Huwag mag-alala kung nagtatakda ka ng isang susi na may isang password. Iyon ay isang bagay na kakaiba, at hindi ito magiging epekto sa lahat. Buksan ang file ng pagsasaayos ng SSH sa / etc / ssh / sshd_config.

$ sudo nano / etc / ssh / sshd_config

Hanapin ang linya na bumabasa:

Ipinagbabawal ng #PermitRootlogin ang password

Baguhin ito sa:

PermitRootlogin hindi

Susunod, hanapin ang dalawang linya:

#PasswordAuthentication oo #PermitEmptyPasswords no

Baguhin ang mga ito sa:

PasswordAthentipikasyon walang PermitEmptyPasswords no

Sa wakas, hanapin:

UsePAM oo

Gawin mo:

UsePAM no

I-save ang iyong file, at isara ito. Pagkatapos, i-restart ang SSH. Ito ay maaaring sipa sa iyo, kaya muling kumonekta kung ito ay.

$ sudo systemctl i-restart ang sshd

I-configure ang Iyong Database

Ang susunod na bagay na kailangan mong gawin ay i-configure ang iyong database. Talagang hindi gaanong kasangkot dito, kaya huwag masyadong mag-alala. Kailangan mo lamang mag-set up ng isang gumagamit at walang laman na database para ma-access ang Nextcloud.

Mayroong talagang isang maginhawang script upang mai-set up at ma-secure ang MariaDB para sa iyo. Patakbo muna ito.

$ sudo mysql_secure_installation

Ang default na password ng root ay walang laman, kaya't "Enter" kapag tinanong. Pagkatapos hilingin nito sa iyo na mag-set up ng isang password sa ugat. Gawin mo yan. Sagutin ang "Oo" sa bawat tanong na sumusunod.

Maaari kang mag-log in sa iyong database gamit ang root password na na-set up mo lamang.

$ sudo mysql -u ugat -p

Ang prompt ay magbabago sa isang MariaDB. Ito ang console para sa pamamahala ng iyong database server. Magsimula sa pamamagitan ng paglikha ng isang bagong database. Binibilang dito ang capitalization.

CREATE DATABASE nextcloud;

Susunod, gumawa ng isang gumagamit para sa database na iyon.

KUMITA NG USER `nextcloud` @` localhost` IDENTIFIED NG "PasswordForUser";

Pagkatapos, bigyan ang pahintulot ng gumagamit na gamitin ang database.

GRANT LAHAT SA nextcloud. * TO `nextcloud` @` localhost`;

Ayan yun! Maaari mong lumabas sa database server ngayon.

q

I-configure ang PHP

Ang Nextcloud ay nakasulat sa PHP. Na-install mo na ang pinakabagong bersyon ng PHP na magagamit sa Debian Stretch kasama ang mga extension ng PHP na kinakailangang gumana nang tama si Nextcloud. Kailangan mo pa ring gumawa ng isang pares ng pag-tweak sa iyong pagsasaayos ng PHP upang mas madali itong gumana sa Nginx.

Kailangan talaga nito ang ilang mga pangunahing pag-tweak ng seguridad. Ang mga ito ay hindi anumang pangunahing, ngunit makakatulong sila na mapabuti ang seguridad ng iyong server.

Buksan up /etc/php/7.0/fpm/php.ini kasama ang sudo at ang iyong paboritong text editor.

Ang file ay napakalaking, kaya gumamit ng paghahanap ng iyong editor upang mag-navigate sa paligid. Kung gumagamit ka ng Nano, ito ay Ctrl + W. Ang pagpipilian ng kamao na kailangan mong hanapin ay hindi paganahin_functions. Magdagdag ng magdagdag ng phpinfo, system, mail, exec, sa dulo.

Pagkatapos, maghanap ng sql.safe_mode at i-on ito. Susunod, i-set off ang_url_fopen. Sa dulo ng file, idagdag ang sumusunod na linya, i-save, at isara ito.

register_globals = Naka-off

Kumuha ng Nextcloud

Ang Nextcloud ay hindi magagamit bilang isang package para sa Debian, at tama na. Hindi mo talaga kailangan ito. Ito ay tulad ng iba pang mga pre-built na mga aplikasyon ng web sa web, tulad ng WordPress, at dumating ito sa isang naka-compress na archive na maaari mong kunin kung saan nais mong mai-install ang Nextcloud.

Sa ngayon, ang pinakabagong matatag na release ay Nextcloud, i-double-check kung ano ang pinakabagong bersyon para sa iyo kapag binabasa mo ito. Ang gabay ay tumutukoy sa 12, ngunit gagamitin ang anuman ang pinakabagong matatag.

Magbago sa isang direktoryo kung saan nais mong i-download ang iyong archive ng Nextcloud. Pagkatapos, baguhin ang / var / www upang kunin ito.

$ cd ~ / Pag-download ng $ wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.tar.bz2 $ cd / var / www $ sudo tar xjpf ~ / Downloads / nextcloud-12.0.3. tar.bz2

Kung binabasa mo ito sa hinaharap, maaari mong makita ang pag-download na link sa pahina ng pag-install ng server ng Nextcloud.

Sa wakas, baguhin ang pagmamay-ari ng iyong pag-install ng Nextcloud sa www-data.

$ sudo chown -R www-data: www-data / var / www / nextcloud

Lumikha ng SSL Sertipiko

Ang paglikha ng iyong mga sertipiko ng SSL ay napakadaling salamat sa Certbot. Awtomatikong bubuo ng Certbot ang iyong SSL certs para sa iyo at ilagay ang mga ito sa web root ng alinmang site na nilikha mo para sa kanila. Kailangan mo lamang magpatakbo ng isang solong utos.

$ sudo certbot certonly --webroot -w / var / www / nextcloud -d your-domain.com -d www.your-domain.com

Dahil ito ang iyong unang pagkakataon sa pagpapatakbo ng Certbot, hihilingin ito ng isang email address. Gagamitin nito ang adres na iyon upang bigyan ka ng babala kapag malapit nang matapos ang iyong mga certs. Madali mong mai-renew ang mga ito gamit ang isang solong utos.

$ sudo certbot na pag-renew

I-configure ang Nginx

Ang Nginx ay isang magaan, ngunit malakas, web server. Pupunta ito upang maghatid ng interface na ginagamit mo upang ma-access ang Nextcloud. Mayroong isang pares ng mga file ng pagsasaayos na nauugnay sa Nginx. Ang una ay ang pangunahing pagsasaayos na matatagpuan sa /etc/nginx/nginx.conf. Iyon ang pangunahing file ng pagsasaayos, ngunit mayroon itong solidong mga default. Maaari mong i-play ito kung alam mo kung ano ang ginagawa mo, ngunit maaari mo itong iwanan at maging maayos din.

Ang susunod na pagsasaayos ay mas mahaba at mas kumplikado. Sa kabutihang palad, hindi mo kailangang isulat ang lahat. Ginawa na ng Nextcloud devs. Kailangan mo lamang baguhin ito. Ang config file ay matatagpuan sa site ng Nextcloud . Kunin ang isa para sa webroot ng Nginx. Lumikha ng isang bagong file sa / atbp / nginx / magagamit ng mga site / nextcloud, at idikit ito.

Kapag mayroon kang file, kailangan mong gumawa ng isang pares ng mga simpleng pagbabago. Una, hanapin ang upstream block at baguhin ito upang magmukhang ganito:

upstream php-handler {server unix: /run/php/php7.0-fpm.sock; }

Pagkatapos, hanapin kahit saan sinasabi nito cloud.example.com at baguhin ito sa iyong domain name.

Ang huling bagay na kailangan mong gawin ay ituro ang Nginx sa iyong SSL certs. Baguhin ang mga linya:

ssl_certigned /etc/ssl/nginx/cloud.example.com.crt; ssl_certigned_key /etc/ssl/nginx/cloud.example.com.key;

Upang:

ssl_certigned /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certigned_key /etc/letsencrypt/live/your-domain.com/privkey.pem;

Ayan yun! Susunod, kailangan mong i-link ito upang mahahanap ito ni Nginx.

$ cd / etc / nginx / site na pinagana ang $ sudo ln -s / etc / nginx / site-magagamit / nextcoud nextcloud

Alisin ang umiiral nang default na nandiyan.

$ sudo rm default

I-restart ang PHP at Nginx, at ma-access mo ang Nextcloud!

$ sudo systemctl i-restart ang php7.0-fpm $ sudo systemctl i-restart ang nginx

Simulan ang Nextcloud

Buksan ang iyong web browser at mag-navigate sa iyong domain name. Babatiin ka sa screen ng pag-setup ng Nextcloud. Lumikha ng iyong sarili ng isang admin account at ipasok ang impormasyon para sa database account na iyong nilikha.

Ang Nextcloud ay tatagal ng ilang minuto upang i-configure ang sarili at mai-install. Kapag natapos na ito, ibababa ka sa iyong bagong Nextcloud dashboard. Mula doon, maaari kang lumikha ng mga bagong gumagamit upang payagan ang mga taong pinagkakatiwalaan mo sa iyong bagong imbakan ng ulap. Maaari mo ring simulan ang pag-upload ng mga file kaagad.

Ayan yun! Mayroon ka na ngayong iyong sariling pribadong ulap!

Lumikha ng iyong sariling pribadong ulap na may nextcloud