Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Creëer uw eigen betrouwbare cloudserver
Stap 1: Hardware
- Gebruik een metalen doos en verf deze in je favoriete kleur. (Ik gebruikte een oude opslagcontroller)
- Hobbycolor plaat die bestand is tegen minimaal 75 C
- Frambozenpi 3
- Micro SD-kaart (ik gebruikte 16 GB, maar je kunt elke grootte >= 4 GB gebruiken)
- USB-hub met een externe voedingsaansluiting
- Usb naar sata-adapters
- Schijfstations
- Netwerkkabel + netwerkwandcontactdoos
- Draden + voedingsingang
- Bouten hersteld van de seriële of vga-poort van de oude computer
- Usb-poorten hersteld van oude computer
Raspberry pi is bevestigd aan de hobbycolor-plaat met bouten van de vga-poort.
Schijven worden aan de achterkant met gewone bouten bevestigd.
Stap 2: Bedrading
Voedingsingang kan worden aangesloten op beide herstelde USB-poorten
Eerste usb (achter alle draden linksvoor) wordt gebruikt als stroombron, alleen rode en zwarte draden worden gebruikt en aangesloten op de stroomingang. De eerste usb-kabel in deze poort levert stroom voor de pi, de tweede usb-kabel levert stroom aan de USB-hub.
Tweede usb (die aan de achterkant - handig voor het aansluiten van extra apparaten) heeft rood en zwart rechtstreeks aangesloten op de stroomingang, terwijl het wit en groen van elke poort is aangesloten op een usb-kabel die is hersteld van een oude muis (de witte direct aangesloten op pi)
Lan-kabel verbindt de externe netwerkwandcontactdoos met de Raspberry pi LAN-poort
Schijven worden via usb naar sata-adapters aangesloten op de extern gevoede USB-hub (schijven met grotere capaciteit hebben meer stroom nodig en we willen pi niet onstabiel maken), die is aangesloten op een van de pi-poorten
Stap 3: Software
Installeer het besturingssysteem
Gebruik Centos 7 voor arm voor meer veiligheid. (https://mirror.centos.org/altarch/7/isos/armhfp/); getest: CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz, tutorial hier:
Zet de afbeelding op de micro sd kaart van je Linux computer (voor windows check:
xzcat CentOS-Userland-7-armv7hl-Minimal-1611-RaspberryPi3.img.xz | sudo dd van=$/pad/naar/sd/kaart status=voortgang bs=4M
root-wachtwoord: centos
gebruik nmtui om het netwerk te configureren en een statisch ip-adres in te stellen
De schijven instellen
Maak één partitie op elke schijf (het is beter om iets kleiner te zijn dan de hele schijf - laten we zeggen 1 GB kleiner - verschillende schijven met dezelfde capaciteit - bijvoorbeeld: wd vs toshiba - hebben verschillende groottes:)). Op deze manier ben je veilig als je een van de schijven moet vervangen
Maak een btrfs raid 1-bestandssysteem op uw schijven
mkfs.btrfs -d raid1 -m raid1 /dev/sda1 /dev/sdb1
btrfs bestandssysteem label /dev/sda1 rpi3
Mount het bestandssysteem met behulp van autofs (voorkomt niet-opstarten van pi als er iets misgaat met de schijven)
yum install -y autofs
voeg de stroom toe aan /etc/auto.master:
/- /etc/auto.ext-usb --timeout=300
Maak /etc/auto.ext-usb aan met de inhoud:
/srv -fstype=auto, compress=lzo, noatime:/dev/disk/by-label/rpi3
service autofs herstart
ls /srv, df -h, bevestig dat het is gemount
Eigencloud installeren
Vereisten (apache, php, mariadb):
yum install -y httpd;yum install -y mod_ssl; yum install -y mariadb-server; yum install -y php*
Installeer owncloud 9 die compatibel is met php54 die bij centos7 wordt geleverd, een goede tutorial daarvoor:
download.owncloud.org/download/repositories…
Nadat owncloud actief is, verplaatst u de gegevensmap van de standaardlocatie naar de nieuwe schijven (/srv)
service httpd stop
bewerk /var/www/html/owncloud/config/config.php en breng deze wijziging aan:
'datadirectory' => '/srv/owncloud/data', mkdir /srv/owncloud; mv /var/www/html/owncloud/data /srv/owncloud && chown -R apache:apache /srv/owncloud/data/
dienst httpd start
U kunt owncloud desktop-client installeren op linux / windows en voor telefoons gebruik ik foldersync
-
Activeer en configureer SELinux
(werkende versie is: selinux-policy-3.13.1-166.el7.5.noarch, selinux-policy-targeted-3.13.1-166.el7.5.noarch)
zorg ervoor dat je dat beleid niet bijwerkt (in /etc/yum.conf append:exclude = selinux-policy*)
herstelcon -Rv /
/boot/cmdline.txt zou moeten bevatten: selinux=1 security=selinux enforcing=1
/etc/sysconfig/selinux zou moeten bevatten: SELINUX=enforcing en SELINUXTYPE=targeted
opnieuw opstarten
Maak de volgende instellingen na het opnieuw opstarten:
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
als u problemen ondervindt, plaatst u de sd-kaart in een andere computer en wijzigt u cmdline.txt om het volgende te hebben: selinux=0
Beveilig je box
Wijzig root-wachtwoord
Maak een gebruiker aan (adduser -s /bin/bash "me") en stel een sterk wachtwoord in (passwd "me")
configureer sshd om op een andere poort te luisteren en sta GEEN root-aanmeldingen toe
In /etc/ssh/sshd_config, stel Poort in
(laten we zeggen 2222), PermitRootLogin no
Vertel SELinux en firewalld over je bedoelingen:
semanage-poort -a -t ssh_port_t -p tcp 2222
service firewalld start && systemctl firewalld.service inschakelen
firewall-cmd --permanent --add-port 2222/tcp
firewall-cmd --reload
service sshd opnieuw opstarten
Maak het openbaar
Stuur deze poorten op uw internetrouter door naar uw statische ip-set in de eerste stap: 80, 443, 2222.
Stel DDNS in op je router, zodat je overal toegang hebt tot je box.
Scherpstellen
Stel apache in op 5 processen omdat het geheugen laag is:
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
Start Servers 5
MinSpareServers 5
MaxSpareServers 5
Serverlimiet 5
MaxClients 5
MaxRequestsPer Kind 3000
service httpd herstart
Stel cron in om wekelijks de schijven te scrubben en elke nacht een momentopname te maken (in /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))
controleer van tijd tot tijd het volume met: btrfs dev stats /srv
Gebruik watchdog om automatisch te resetten als deze niet meer reageert (raspberry pi3 heeft een hardwareversie):
yum install -y watchdog
/etc/watchdog.conf
watchdog-device = /dev/watchdogwatchdog-timeout = 15
interval = 1logtick = 1 log-dir = /var/log/watchdog
realtime = japrioriteit = 1
service watchdog start && systemctl activeer watchdog.service