2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Vytvořte si vlastní spolehlivý cloudový server
Krok 1: Hardware
- Použijte kovovou krabičku a namalujte ji svou oblíbenou barvou. (Použil jsem starý řadič úložiště)
- Hobbycolorová deska odolná minimálně 75 C
- Malina pi 3
- Karta Micro SD (použil jsem 16 GB, ale můžete použít libovolnou velikost> = 4 GB)
- Rozbočovač USB s externím napájecím konektorem
- Adaptéry USB na SATA
- Diskové jednotky
- Síťový kabel + síťová zásuvka
- Vodiče + napájecí konektor
- Šrouby získané ze sériového nebo vga portu starého počítače
- Porty USB obnoveny ze starého počítače
Raspberry pi je připevněn k hobbycolor desce pomocí šroubů z vga portu.
Disky jsou na zadní straně připevněny pravidelnými šrouby.
Krok 2: Zapojení
Napájecí konektor se připojuje k oběma obnoveným portům USB
První USB (za všemi vodiči vpředu vlevo) se používá jako zdroj energie, používají se pouze červené a černé vodiče připojené ke vstupnímu konektoru napájení. První USB kabel v tomto portu poskytuje napájení pro pi, druhý USB kabel napájí rozbočovač USB.
Druhý USB (ten vzadu - užitečný pro připojení dalších zařízení) má červenou a černou připojenou přímo k napájecímu vstupu, zatímco bílá a zelená každého portu je připojena k USB kabelu obnovenému z nějaké staré myši (ty bílé přímo připojeno k pí)
Lan kabel připojuje externí síťovou zásuvku k malinovému pi LAN portu
Disky jsou připojeny přes USB k SATA adaptérům k externímu napájenému USB rozbočovači (disky s větší kapacitou vyžadují více energie a nechceme, aby byl pi nestabilní), který je připojen v jednom z pi portů
Krok 3: Software
Nainstalujte si operační systém
Pro vyšší zabezpečení použijte Centos 7 pro arm. (https://mirror.centos.org/altarch/7/isos/armhfp/); testováno: CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz, návod zde:
Vložte obrázek na kartu micro sd z počítače s operačním systémem Linux (kontrola systému Windows:
xzcat CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz | sudo dd of = $/path/to/sd/card status = progress bs = 4M
heslo uživatele root: centos
použijte nmtui ke konfiguraci sítě a nastavení statické IP adresy
Nastavte disky
Na každém disku vytvořte jeden oddíl (je lepší být o něco menší než celý disk - řekněme o 1 GB menší - různé disky stejné kapacity - např.: wd vs toshiba - mají různé velikosti:)). Tímto způsobem budete v bezpečí, pokud potřebujete vyměnit jeden z disků
Vytvořte na discích souborový systém btrfs raid 1
mkfs.btrfs -d raid1 -m raid1 /dev /sda1 /dev /sdb1
štítek souborového systému btrfs /dev /sda1 rpi3
Připojte souborový systém pomocí autofs (brání nespustení pi, pokud se s disky něco pokazí)
yum install -y autofs
připojte fllowing k /etc/auto.master:
/-/etc/auto.ext-usb-timeout = 300
Vytvořte /etc/auto.ext-usb s obsahem:
/srv -fstype = auto, komprimovat = lzo, noatime:/dev/disk/by -label/rpi3
restartovat automatické autofs
ls /srv, df -h, potvrďte, že je připojeno
Nainstalujte si vlastní cloud
Předpoklady (apache, php, mariadb):
yum install -y httpd; yum install -y mod_ssl; yum install -y mariadb -server; yum install -y php*
Nainstalujte owncloud 9, který je kompatibilní s php54, který je dodáván s centos7, což je dobrý návod:
download.owncloud.org/download/repositories…
Jakmile bude vlastní cloud spuštěn, přesuňte datový adresář z výchozího umístění na nové jednotky (/srv)
služba httpd stop
upravte /var/www/html/owncloud/config/config.php a proveďte tuto změnu:
'datadirectory' => '/srv/owncloud/data', mkdir /srv /owncloud; mv/var/www/html/owncloud/data/srv/owncloud && chown -R apache: apache/srv/owncloud/data/
služba httpd start
Na linux / windows si můžete nainstalovat desktopového klienta owncloud a pro telefony používám foldersync
-
Povolte a nakonfigurujte SELinux
(pracovní verze je: selinux-policy-3.13.1-166.el7.5.noarch, selinux-policy-cílené-3.13.1-166.el7.5.noarch)
ujistěte se, že tyto zásady neaktualizujete (v souboru /etc/yum.conf append: exclude = selinux-policy*)
restorecon -Rv /
/boot/cmdline.txt by měl obsahovat: selinux = 1 zabezpečení = vymáhání selinuxu = 1
/etc/sysconfig/selinux by měl obsahovat: SELINUX = vynucování a SELINUXTYPE = cílené
restartovat
Po restartu proveďte následující nastavení:
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
pokud narazíte na nějaké problémy, vložte SD kartu do jiného počítače a upravte cmdline.txt tak, aby měl: selinux = 0
Zabezpečte svou schránku
Změňte heslo uživatele root
Vytvořte si uživatele (adduser -s /bin /bash "me") a nastavte silné heslo (heslo "já")
nakonfigurujte sshd tak, aby naslouchal na jiném portu, a NEDOVOLTE přihlášení root
V/etc/ssh/sshd_config nastavte Port
(řekněme 2222), PermitRootLogin č
Řekněte SELinuxu a firewalld o svých záměrech:
port správy -a -t ssh_port_t -p tcp 2222
service firewalld start && systemctl enable firewalld.service
firewall-cmd --permanent --add-port 2222/tcp
firewall-cmd-znovu načíst
restartování služby sshd
Zveřejnit
Na vašem internetovém routeru přepošlete tyto porty na vaši statickou IP nastavenou v prvním kroku: 80, 443, 2222.
Nastavte na routeru DDNS, abyste ke svému boxu měli přístup odkudkoli.
Doladění
Nastavte apache na 5 procs, protože paměť je nízká:
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
StartServers 5
Servery MinSpare 5
Servery MaxSpare 5
ServerLimit 5
MaxClients 5
MaxRequestsPerChild 3000
služba httpd restart
Nastavte cron na týdenní drhnutí disků a vytváření snímků každou noc (v /etc /crontab)
01 02 * * 6 root btrfs scrub start/srv01 01 * * * root/usr/sbin/btrfs subvolume snapshot -r/srv/srv/@$ (printf "\%s" $ (/bin/date +\%d \%b \%Y-\%k-\%M))
čas od času zkontrolujte objem pomocí: btrfs dev stats /srv
Pokud hlídací pes automaticky nereaguje (malinový pi3 má hardwarový), použijte jej:
yum install -y hlídací pes
/etc/watchdog.conf
watchdog-device = /dev /watchdogwatchdog-timeout = 15
interval = 1logtick = 1 log-dir =/var/log/watchdog
realtime = yespriority = 1
služba watchdog start && systemctl povolit watchdog.service