| |||||||||||||||
|
sgrx1.ulm.go-itservice.de
Asrock J5040-ITX mit Debian 11.0 Bullseye Hardware:
Debian 11 Bullseye GrundinstallationNetinstall CD herunterladen, ISO auf CD Brennen und Laptop damit booten, installation - Kommandozeile auswählen.Language: German<enter> ... IP: 192.168.80.11 Netmask: 255.255.255.0 Gateway: 192.168.80.1 DNS: 192.168.80.1 Rechnername: sgrx1 (wird durch DNS automatisch erkannt) Domain: ulm.go-itservice.de (wird durch DNS automatisch erkannt)Passwort root ..., User: dummy, es sind keine echten User nötig, diese werden von dem alten Rechner übernommen. Im weiteren Ablauf wird die SSD (256 GB) partitioniert: 250 MB sda1 EFI-System 80,0 GB sda2 83 / 20,0 GB sda3 82 swap 155,0 GB sda4 83 /localbei der Grundinstallation wird als Zielssysteme: web ssh standardausgewählt, User "dummy" wird später gelöscht, sonst die üblichen Systemparameter und Passwörter. Nach dem Booten kommt man via ssh erstmal nicht auf die Kiste, also muss man passwortbasierten SSH Zugang erst mal aktivieren:in /etc/ssh/sshd_config ändert man PermitRootLogin zu
PermitRootLogin yesBei dem Asrock Board wurde die Netzwerkkarte auf RTL 8125A Basis erkannt und konnte benutzt werden. Anscheinend lag der Totalabsturz bei dem bisher verwendeten Board (mit I7-4770T von 2014) an einer Inkompatibilität zu der PCI-Express V2.1 Karte. Nach der Grundinstallation ist weder aptitude noch rsync oder ifconfig installiert, das wird nachgeholt.
Anschliessend wird der Rest der Pakete entweder klassisch mit aptitude gesucht oder mit dem apt-get Einzeilern installiert:
# apt-get install aptitude net-tools rsync # apt-get install apache2 bind9 catdoc cryptsetup cups curl debconf dkms dnsutils dosfstools dos2unix exiftran \n exfat-utils git id3 id3v2 imagemagick iptables lame laptop-mode-tools libapache2-mod-php7.4 ldap-utils \n lynx mcrypt mariadb-server mariadb-client nfs-kernel-server nfs4-acl-tools ntpdate openssh-server parted \n php php-cli php-curl php-dev php-gd php-imagick php-imap php-intl php-ldap php-mbstring php-mysql \n php-pspell phpmyadmin proftpd rsh-redone-client samba slapd squid squidguard tcpdump tcptraceroute \n tcptrace unzip \nAuf die bisher verwendeten Perl-Module habe ich verzichtet, da ich die letzte Applikation schon vor Jahren mit PHP nachimplementiert habe. Damit der neue Rechner sich wie der alte verhät, werden die Hostkeys und das root-Verzeichnis vom prokyon geholt, das macht das cpHOST / /dest/ IDENTITY . Vorsicht, Besitzer der Dateien kontrollieren. Wenn z.B. /root/.ssh irgendeinem
anderen User gehört, kann man sich nicht mit Zertifikat verbinden (Der Owner muss root:root sein)
cpHOST / /dest/ IDENTITYdas kopiert folgende Verzeichnisse: /root/.ssh /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pubAnschliessend habe ich die Platte an den alten Server geängt und nach /dest gemounted. Man kann das aber auch im laufenden Betrieb machen,
dann wird aus rsync -avrtHAX /root/ /dest/root/ halt rsync -avrtHAX root@sgrx1:/root/ /root/
mkdir -p /dest/etc/init.d mkdir -p /dest/usr/local/bin/ mkdir -p /dest/etc/exim4/ rsync --progress -avurtHAX /usr/local/bin/ /dest/usr/local/bin/ scp /etc/init.d/obi1 /dest/etc/init.d/obi1 scp /etc/apache2/apache2.conf /dest/etc/apache2/apache2.conf rsync -avrtHAX /root/ /dest/root/ rsync /etc/exports /dest/etc/exports rsync /etc/sudoers /dest/etc/sudoers rsync /etc/init.d/obi1 /dest/etc/init.d/obi1 rsync -avrtHAX /etc/cups/ /dest/etc/cups/ rsync -avrtHAX /etc/apache2/sites-available/ /dest/etc/apache2/sites-available/ rsync -avrtHAX /etc/apache2/sites-enabled/ /dest/etc/apache2/sites-enabled/ rsync -avrtHAX /usr/share/fonts/truetype/ /usr/share/fonts/truetype/ mkdir -p /dest/root/FILES.sgrx1/ scp /etc/passwd /dest/root/FILES.sgrx1/passwd scp /etc/shadow /dest/root/FILES.sgrx1/shadow scp /etc/group /dest/root/FILES.sgrx1/group cp /dest/etc/passwd /dest/etc/passwd.ORG cp /dest/etc/shadow /dest/etc/shadow.ORG cp /dest/etc/group /dest/etc/group.ORG cat /dest/root/FILES.sgrx1/passwd >> /dest/etc/passwd cat /dest/root/FILES.sgrx1/shadow >> /dest/etc/shadow cat /dest/root/FILES.sgrx1/group >> /dest/etc/groupDann in den /dest/etc/ Dateien mit dem Editor die Systemuser der alten Dateien, beginnend ab dem 2. "root" löschen und nur die echten User behalten, siehe obi1 Verzeichnisse anlegen: # mkdir /SDCARD # mkdir /local Samba Exportdieser ist nur für das Fotobuchprogramm wichtig, welches über die SMB-Freigabe auf gespeicherte Fotos zugreift.# smbpasswd -a go # smbpasswd -a uw ..Die SMB Arbeitsgruppe lautet workgroup
cron-JobsDie der Job mitgetPictFromDatacard wurde wegen dem besser zugänglichen USB-Anschluss auf den Rechner rigel verlegt.
resizePict läuft noch auf sgrx1 .
Weiterhin startet alle 5 Minuten
echo 3 > /proc/sys/vm/drop_caches;weil sonst durch irgendeinen Bug das Lesen und Schreiben auf die Platten immer langsamer wird. Startdatei in rc.nabhänigkeitsgesteuerte Bootskripte müssen ihre Abhänigkeiten und "start","stop" Zweige enthalten. Der Start Teil in meinem Beispiel (komplette Datei hier im Anhang)mount 192.168.80.1:/home /home mount /dev/sda3 /local df -k echo "ok"Ist das Startskript fertig, wird es in den Bootablauf eingebunden. Hierzu wird im Verzeichnis /etc/init.d folgendes Kommando ausgeführt:
# update-rc.d obi1 defaults User und RechteBenutzer und Gruppen so anlegen, dass für jeden User eine Gruppe mit GID=UID existiert. Zugriff auf gemeinsame Resourcen kann dann einfach mittels Gruppenzugehörigkeiten geregelt werden:/etc/passwd
go:x:801:801:Guenther Obermaier:/home/go:/bin/bash USER:x:899:899:USER:/home/USER:/bin/bash common:x:890:890:Common User:/home/common:/bin/falseNeben der normalen Gruppe für gemeinsame Daten, habe ich wegen den Kindern noch Gruppen eingerichtet, damit diese nur auf altersgerechte Inhalte vom Server zugreifen können: /etc/group
go:x:801:go,www-data USER:x:899:USER,www-data child06:x:881:common,go,USER,CHILD12,CHILD06 child12:x:882:common,go,USER,CHILD12 child16:x:883:common,go,USER adult:x:888:common,go,USER common:x:890:common,www-data,go,USER,CHILD12,CHILD06User www-data ist in jeder Usergruppe, deren korrespondierender User httpd-Unterverzeichnisse besitzt die via Webbrowser erreichbar sein sollen. Genaueres siehe User- und Verzeichnisrechte für Familie mit Kindern Apache 2site-available und site-enabled von altem Rechner/Server kopieren:# rsync --delete -avurtHAX root@wega:/etc/apache2/sites-available/ /etc/apache2/sites-available/ # rsync --delete -avurtHAX root@wega:/etc/apache2/sites-enabled/ /etc/apache2/sites-enabled/Damit die Seiten unter /home/go/httpd wieder funktionieren, muss dieses Verzeichnis in der /etc/apache2/apache2.conf
freigegeben werden:
<Directory /home/go/httpd> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>Weitere Links bei Bedarf in /etc/apache2/sites-enabled mit der Endung .conf erzeugen in der Art
# ln -s ../sites-available/sece-it-dev.local 001-sece-it-dev.local.conf /etc/hosts anpassen, damit die Entwicklungsseiten auf spica nicht im Internet gesucht werden:
127.0.0.1 sece-it-dev.localIn den Proxy-Einstellungen des Browsers muss die verwendete Domain ".local" vom Proxys ausgenommen werden Ich habe die Aliase in den einzelnen sites-available so gestaltet, dass diese auf allen wichtigen Rechnern
ohne weitere Veränderung passen sollten. Aussehen der Datei im AnhangDa ich testhalber über Reverse Proxy auf eine Webcam zugreife, muss der mod_proxy aktiviert werden: # a2enmod proxy # a2enmod proxy_http # systemctl restart apache2Falls der Apache (der ein anderer Dienst) nicht startet, kann man mit # systemctl status apache2.serviceoder # journalctl -xeDetails erfahren |