2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Creați propriul server cloud de încredere
Pasul 1: Hardware
- Folosiți o cutie metalică și vopsiți-o în culoarea preferată. (Am folosit un controler de stocare vechi)
- Placă hobbycolor care rezistă la cel puțin 75 C
- Raspberry pi 3
- Card Micro SD (am folosit 16 GB, dar puteți utiliza orice dimensiune> = 4 GB)
- Hub USB cu mufă de alimentare externă
- Adaptoare USB la sata
- Unități de disc
- Cablu de rețea + priză de perete de rețea
- Cabluri + mufă de intrare
- Șuruburile recuperate din portul serial sau vga al computerului vechi
- Porturile USB recuperate de pe computerul vechi
Raspberry pi este atașat la placa hobbycolor cu șuruburi de la portul VGA.
Discurile sunt atașate cu șuruburi obișnuite pe spate.
Pasul 2: Cablare
Mufa de intrare de alimentare se conectează la ambele porturi USB recuperate
Primul USB (în spatele tuturor firelor din fața stânga) este utilizat ca sursă de alimentare, doar firele roșii și negre sunt utilizate și conectate la mufa de intrare de alimentare. Primul cablu USB din acest port furnizează alimentare pentru pi, al doilea cablu USB furnizează alimentare hub-ului USB.
Al doilea USB (cel din spate - util pentru conectarea dispozitivelor suplimentare) are roșu și negru conectate direct la intrarea de alimentare, în timp ce albul și verdele fiecărui port sunt conectate la un cablu USB recuperat de la un mouse vechi (cele albe direct conectat la pi)
Cablul LAN conectează priza de perete a rețelei externe la portul LAN raspberry pi
Discurile sunt conectate prin USB la adaptoare sata la hub-ul USB alimentat extern (discurile de capacitate mai mare necesită mai multă energie și nu vrem să facem pi instabil), care este conectat într-unul din porturile pi
Pasul 3: Software
Instalați sistemul de operare
Folosiți Centos 7 pentru braț pentru o securitate mai mare. (https://mirror.centos.org/altarch/7/isos/armhfp/); testat: CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz, tutorial aici:
Puneți imaginea pe cardul micro SD de pe computerul dvs. Linux (pentru Windows verificați:
xzcat CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz | sudo dd of = $ / path / to / sd / status card = progres bs = 4M
parola de root: centos
utilizați nmtui pentru a configura rețeaua și a seta o adresă IP statică
Configurați discurile
Creați o partiție pe fiecare disc (este mai bine să fiți puțin mai mic decât întregul disc - să spunem 1 GB mai mic - discuri diferite de aceeași capacitate - ex: wd vs toshiba - au dimensiuni diferite:)). În acest fel veți fi în siguranță dacă trebuie să înlocuiți unul dintre discuri
Creați un sistem de fișiere raid 1 btrfs pe discurile dvs.
mkfs.btrfs -d raid1 -m raid1 / dev / sda1 / dev / sdb1
eticheta sistemului de fișiere btrfs / dev / sda1 rpi3
Montați sistemul de fișiere folosind autofs (previne neîncărcarea pi dacă ceva nu merge bine cu discurile)
yum install -y autofs
adăugați fluxul la /etc/auto.master:
/ - /etc/auto.ext-usb --timeout = 300
Creați /etc/auto.ext-usb cu conținutul:
/ srv -fstype = auto, compress = lzo, noatime: / dev / disk / by-label / rpi3
service autofs repornire
ls / srv, df -h, confirmați că este montat
Instalați owncloud
Condiții preliminare (apache, php, mariadb):
yum install -y httpd; yum install -y mod_ssl; yum install -y mariadb-server; instalează -y php *
Instalați owncloud 9, care este compatibil cu php54 care vine cu centos7, un tutorial bun pentru asta:
download.owncloud.org/download/repositories…
După ce owncloud este pornit, mutați direcția de date din locația implicită pe noile unități (/ srv)
serviciu httpd stop
editați /var/www/html/owncloud/config/config.php și efectuați această modificare:
'datadirectory' => '/ srv / owncloud / data', mkdir / srv / owncloud; mv / var / www / html / owncloud / data / srv / owncloud && chown -R apache: apache / srv / owncloud / data /
service httpd start
Puteți instala propriul client desktop desktop pe linux / windows și pentru telefoane folosesc foldersync
-
Activați și configurați SELinux
(versiunea de lucru este: selinux-policy-3.13.1-166.el7.5.noarch, selinux-policy-target-3.13.1-166.el7.5.noarch)
asigurați-vă că nu actualizați acea politică (în /etc/yum.conf append: exclude = selinux-policy *)
restorecon -Rv /
/boot/cmdline.txt ar trebui să conțină: selinux = 1 securitate = selinux impunere = 1
/ etc / sysconfig / selinux ar trebui să conțină: SELINUX = punere în aplicare și SELINUXTYPE = țintă
reporniți
Efectuați următoarele setări după repornire:
yum install -y policycoreutils-python
semange fcontext -a -t httpd_sys_rw_content_t /srv/owncloud(/.*)?
setsebool -P httpd_builtin_scripting = 1; setsebool -P httpd_can_network_connect = 1; setsebool -P httpd_enable_cgi = 1; setsebool -P httpd_graceful_shutdown = 1
dacă întâmpinați probleme, puneți cardul SD pe alt computer și modificați cmdline.txt pentru a avea: selinux = 0
Asigurați-vă cutia
Schimbați parola de root
Creați-vă un utilizator (adduser -s / bin / bash "me") și setați o parolă puternică (passwd "me")
configurați sshd pentru a asculta pe un alt port și NU permiteți conectarea root
În / etc / ssh / sshd_config, setați Port
(să zicem 2222), PermitRootLogin nr
Spuneți SELinux și firewalld despre intențiile dvs.:
semanage port -a -t ssh_port_t -p tcp 2222
service firewalld start && systemctl activate firewalld.service
firewall-cmd --permanent --add-port 2222 / tcp
firewall-cmd --reload
service sshd reporniți
Faceți-o publică
Pe routerul dvs. de internet redirecționați aceste porturi către ip-ul dvs. static setat în primul pas: 80, 443, 2222.
Configurați DDNS pe router, astfel încât să puteți accesa caseta de oriunde.
Reglaj fin
Setați apache la 5 procs deoarece memoria este redusă:
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules / mod_mpm_prefork.so
StartServers 5
MinSpareServers 5
MaxSpareServers 5
ServerLimit 5
MaxClients 5
MaxRequestsPerChild 3000
repornirea serviciului
Configurați cron pentru a spăla discurile săptămânal și pentru a face un instantaneu în fiecare noapte (în / etc / crontab)
01 02 * * 6 root btrfs scrub start / srv01 01 * * * root / usr / sbin / btrfs subvolum instantaneu -r / srv / srv / @ $ (printf "\% s" $ (/ bin / date + \% d \% b \% Y - \% k - \% M))
verificați din când în când volumul cu: btrfs dev stats / srv
Utilizați watchdog pentru a reseta automat dacă acesta nu răspunde (raspberry pi3 are unul hardware):
instalați -y câine de pază
/etc/watchdog.conf
device-watchdog = / dev / watchdogwatchdog-timeout = 15
interval = 1logtick = 1 log-dir = / var / log / watchdog
în timp real = yespriority = 1
service watchdog start && systemctl activate watchdog.service