Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Lag din egen pålitelige skyserver
Trinn 1: Maskinvare
- Bruk en metallboks og mal den i din favorittfarge. (Jeg brukte en gammel lagringskontroller)
- Hobbycolor -tallerken som tåler minst 75 C
- Bringebær pi 3
- Micro SD -kort (jeg brukte 16 GB, men du kan bruke hvilken som helst størrelse> = 4 GB)
- USB -hub med ekstern strømkontakt
- USB til sata -adaptere
- Harddisker
- Nettverkskabel + nettverkskontakt
- Ledninger + inngangskontakt
- Bolter gjenopprettet fra den gamle datamaskinens serielle eller vga -port
- Usb -porter gjenopprettet fra gammel datamaskin
Bringebær pi er festet til hobbyfargeplaten med bolter fra vga port.
Skiver festes med vanlige bolter på baksiden.
Trinn 2: Kabling
Strøminngangskontakt kobles til begge gjenopprettede usb -porter
Første usb (bak alle ledningene foran til venstre) brukes som strømkilde, bare røde og svarte ledninger brukes og kobles til strøminngangen. Den første usb -kabelen i denne porten gir strøm til pi, den andre usb -kabelen gir strøm til USB -huben.
Andre usb (den på baksiden - nyttig for tilkobling av flere enheter) har rød og svart koblet direkte til strøminngangen, mens den hvite og grønne på hver port er koblet til en usb -kabel som er gjenopprettet fra en gammel mus (de hvite direkte koblet til pi)
Lan -kabel kobler den eksterne nettverkskontakten til bringebær pi LAN -porten
Diskene er koblet via usb til sata -adaptere til den eksterne USB -huben (større disker krever mer strøm, og vi vil ikke gjøre pi ustabil), som er koblet til en av pi -portene
Trinn 3: Programvare
Installer operativsystemet
Bruk Centos 7 for arm for høyere sikkerhet. (https://mirror.centos.org/altarch/7/isos/armhfp/); testet: CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz, opplæring her:
Legg bildet på micro sd -kortet fra din Linux -datamaskin (for Windows sjekk:
xzcat CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz | sudo dd av = $/path/to/sd/card status = fremgang bs = 4M
rotpassord: centos
bruk nmtui til å konfigurere nettverk og angi en statisk ip -adresse
Sett opp diskene
Lag en partisjon på hver disk (er bedre å være litt mindre enn hele disken - la oss si 1 GB mindre - forskjellige disker med samme kapasitet - eks: wd vs toshiba - har forskjellige størrelser:)). På denne måten vil du være trygg hvis du trenger å bytte ut en av diskene
Lag et btrfs raid 1 -filsystem på diskene dine
mkfs.btrfs -d raid1 -m raid1 /dev /sda1 /dev /sdb1
btrfs filsystem etikett /dev /sda1 rpi3
Monter filsystemet ved hjelp av autofs (forhindrer ikke oppstart av pi hvis noe går galt med diskene)
yum installere -y autofs
legg til strømningen til /etc/auto.master:
/-/etc/auto.ext-usb-timeout = 300
Lag /etc/auto.ext-usb med innholdet:
/srv -fstype = auto, komprimere = lzo, noatime:/dev/disk/by -label/rpi3
service autofs start på nytt
ls /srv, df -h, bekreft at den er montert
Installer owncloud
Forutsetninger (apache, php, mariadb):
yum install -y httpd; yum install -y mod_ssl; yum installere -y mariadb -server; yum installere -y php*
Installer owncloud 9 som er kompatibel med php54 som følger med centos7, en god opplæring for det:
download.owncloud.org/download/repositories…
Etter at owncloud er i gang, flytter du datadir fra standardplasseringen til de nye stasjonene (/srv)
service httpd stopp
rediger /var/www/html/owncloud/config/config.php og gjør denne endringen:
'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 installere owncloud -skrivebordsklienten på linux / windows og for telefoner bruker jeg foldersync
-
Aktiver og konfigurer SELinux
(arbeidsversjonen er: selinux-policy-3.13.1-166.el7.5.noarch, selinux-policy-targeted-3.13.1-166.el7.5.noarch)
sørg for at du ikke oppdaterer denne policyen (i /etc/yum.conf vedlegg: ekskludere = selinux-policy*)
restorecon -Rv /
/boot/cmdline.txt skal inneholde: selinux = 1 sikkerhet = selinux håndheve = 1
/etc/sysconfig/selinux bør inneholde: SELINUX = håndheving og SELINUXTYPE = målrettet
starte på nytt
Gjør følgende innstillinger etter omstart:
yum installere -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
Hvis du støter på problemer, sett SD -kortet inn i en annen datamaskin og endre cmdline.txt for å ha: selinux = 0
Sikre boksen din
Endre rotpassord
Lag deg en bruker (adduser -s /bin /bash "me") og angi et sterkt passord (passwd "me")
konfigurer sshd til å lytte på en annen port og IKKE tillate root -pålogginger
I/etc/ssh/sshd_config, angi Port
(la oss si 2222), PermitRootLogin no
Fortell SELinux og firewalld om dine intensjoner:
semanage port -a -t ssh_port_t -p tcp 2222
service firewalld start && systemctl aktivere firewalld.service
brannmur-cmd-permanent-legge til port 2222/tcp
brannmur-cmd-last inn på nytt
service sshd restart
Gjør det offentlig
På Internett -ruteren videresender du disse portene til det statiske ip -settet i første trinn: 80, 443, 2222.
Sett opp DDNS på ruteren slik at du får tilgang til boksen din hvor som helst.
Finjustering
Sett apache til 5 prosesser ettersom minnet er lite:
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
StartServers 5
MinSpareServers 5
MaxSpareServers 5
Servergrense 5
MaxClients 5
MaxRequestsPerChild 3000
service httpd restart
Sett opp cron for å skrubbe diskene ukentlig og lage et øyeblikksbilde hver kveld (i /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))
sjekk av og til volumet med: btrfs dev stats /srv
Bruk vakthund for å automatisk tilbakestille hvis den ikke reagerer (bringebær pi3 har en maskinvare):
yum installere -y vakthund
/etc/watchdog.conf
watchdog-device = /dev /watchdogwatchdog-timeout = 15
interval = 1logtick = 1 log-dir =/var/log/watchdog
sanntid = japrioritet = 1
service watchdog start && systemctl aktivere watchdog.service