Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Skapa din egen pålitliga molnserver
Steg 1: Hårdvara
- Använd en metalllåda och måla den i din favoritfärg. (Jag använde en gammal lagringskontroller)
- Hobbyfärgplatta som klarar minst 75 C
- Hallon pi 3
- Micro SD -kort (jag använde 16 GB men du kan använda valfri storlek> = 4 GB)
- USB -hubb med ett externt strömuttag
- Usb till sata -adaptrar
- Hårddiskar
- Nätverkskabel + vägguttag
- Ledningar + strömuttag
- Bultar återhämtade sig från den gamla datorns seriella eller vga -port
- Usb -portar återhämtade sig från den gamla datorn
Raspberry pi är fäst på hobbyfärgplattan med bultar från vga -porten.
Skivor fästs med vanliga bultar på baksidan.
Steg 2: Kabeldragning
Strömingången ansluts till båda återställda usb -portarna
Första usb (bakom alla ledningar längst fram till vänster) används som strömkälla, endast röda och svarta ledningar används och ansluts till strömuttaget. Första usb -kabeln i denna port ger ström till pi, den andra usb -kabeln ger ström till USB -hubben.
Andra usb (den på baksidan - användbar för anslutning av ytterligare enheter) har rött och svart anslutet direkt till strömförsörjningen, medan det vita och gröna på varje port är anslutet till en usb -kabel som återställts från en gammal mus (de vita direkt ansluten till pi)
Lan -kabel ansluter det externa nätverkets vägguttag till Raspberry pi LAN -porten
Skivor är anslutna via usb till sata -adaptrar till den externa USB -hubben (större diskar kräver mer ström och vi vill inte göra pi instabil), som är ansluten i en av pi -portarna
Steg 3: Programvara
Installera operativsystemet
Använd Centos 7 för arm för högre säkerhet. (https://mirror.centos.org/altarch/7/isos/armhfp/); testad: CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz, handledning här:
Lägg bilden på micro sd -kortet från din Linux -dator (för Windows -kontroll:
xzcat CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz | sudo dd of = $/path/to/sd/card status = progress bs = 4M
root -lösenord: centos
använd nmtui för att konfigurera nätverk och ställ in en statisk ip -adress
Installera skivorna
Skapa en partition på varje disk (är bättre att vara lite mindre än hela disken - låt oss säga 1 GB mindre - olika diskar med samma kapacitet - ex: wd vs toshiba - har olika storlekar:)). På så sätt är du säker om du behöver byta ut en av skivorna
Skapa ett btrfs raid 1 -filsystem på dina diskar
mkfs.btrfs -d raid1 -m raid1 /dev /sda1 /dev /sdb1
btrfs filsystem etikett /dev /sda1 rpi3
Montera filsystemet med autofs (förhindrar att pi inte startas om något går fel med skivorna)
yum installera -y autofs
lägg till flödet till /etc/auto.master:
/-/etc/auto.ext-usb-timeout = 300
Skapa /etc/auto.ext-usb med innehållet:
/srv -fstype = auto, komprimera = lzo, noatime:/dev/disk/by -label/rpi3
service autofs starta om
ls /srv, df -h, bekräfta att den är monterad
Installera owncloud
Förkunskaper (apache, php, mariadb):
yum install -y httpd; yum install -y mod_ssl; yum installera -y mariadb -server; yum installera -y php*
Installera owncloud 9 som är kompatibel med php54 som följer med centos7, en bra handledning för det:
download.owncloud.org/download/repositories …
När owncloud är igång flyttar du datadir från standardplatsen till de nya enheterna (/srv)
service httpd stop
redigera /var/www/html/owncloud/config/config.php och gör den här ändringen:
'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
Du kan installera owncloud -skrivbordsklient på linux / windows och för telefoner använder jag foldersync
-
Aktivera och konfigurera SELinux
(arbetsversion är: selinux-policy-3.13.1-166.el7.5.noarch, selinux-policy-riktad-3.13.1-166.el7.5.noarch)
se till att du inte uppdaterar den policyn (i /etc/yum.conf append: exclude = selinux-policy*)
återställa -Rv /
/boot/cmdline.txt ska innehålla: selinux = 1 säkerhet = selinux genomdriva = 1
/etc/sysconfig/selinux bör innehålla: SELINUX = verkställande och SELINUXTYPE = riktat
starta om
Gör följande inställningar efter omstart:
yum installera -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
om du stöter på några problem lägger du in SD -kortet i en annan dator och ändrar cmdline.txt för att ha: selinux = 0
Säkra din låda
Ändra rotlösenord
Skapa dig en användare (adduser -s /bin /bash "me") och ange ett starkt lösenord (passwd "me")
konfigurera sshd för att lyssna på en annan port och tillåta INTE root -inloggningar
I/etc/ssh/sshd_config, ställ in Port
(låt oss säga 2222), PermitRootLogin nr
Berätta för SELinux och firewalld om dina avsikter:
semanage port -a -t ssh_port_t -p tcp 2222
service firewalld start && systemctl aktivera firewalld.service
brandvägg-cmd-permanent-lägg till-port 2222/tcp
brandvägg-cmd-ladda om
service sshd starta om
Gör det offentligt
På din internetrouter vidarebefordra dessa portar till din statiska ip -uppsättning i första steget: 80, 443, 2222.
Konfigurera DDNS på din router så att du kan komma åt din box var som helst.
Finjustering
Ställ in apache på 5 procs eftersom minnet är lågt:
/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
service httpd starta om
Installera cron för att varje vecka skrubba skivorna och göra en ögonblicksbild varje kväll (i /etc /crontab)
01 02 * * 6 root btrfs scrub start/srv01 01 * * * root/usr/sbin/btrfs subvolym ögonblicksbild -r/srv/srv/@$ (printf "\%s" $ (/bin/date +\%d \%b \%Y-\%k-\%M))
kolla då och då volymen med: btrfs dev stats /srv
Använd vakthund för att automatiskt återställa om den inte svarar (hallon pi3 har en hårdvara):
yum installera -y vakthund
/etc/watchdog.conf
watchdog-device = /dev /watchdogwatchdog-timeout = 15
interval = 1logtick = 1 log-dir =/var/log/vakthund
realtid = japrioritet = 1
service watchdog start && systemctl aktivera watchdog.service