| |||||||||||||||
|
sgrx1.ulm.go-itservice.de
Asrock J5040-ITX mit Debian 121.0 Bookworm 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 (4 TB) partitioniert: 250 MB sda1 EFI-System 80,0 GB sda2 83 / 20,0 GB sda3 82 swap 155,0 GB sda4 83 /localVorsicht, unbedingt darauf achten, dass UEFI im BIOS und Bootmenue ausgewählt ist, das Asrock Board im Zielsystem funktioniert nicht mit klassischem BIOS/Legacy Boot! Real installiert habe ich das System in demselben 10 Jahre alten I7-4770T System wie vor drei Jahren, das letzte mit internem CD/DVD Laufwerk. Erst mal als Zweitserver altair , damit das Heimnetzwerk weiterhin funktioniert.Bei 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 wird die Netzwerkkarte auf RTL 8125A Basis erkannt und kann benutzt werden, im Installationsrechner mit dem I7-4770T von 2014 stürzt das wegen einer Inkompatibilität zu der PCI-Express V2.1 Karte aber ab. Also habe ich diese diesmal nicht mehr eingebaut. 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 \n exiftran git id3 id3v2 imagemagick iptables lame laptop-mode-tools libapache2-mod-php ldap-utils lynx \n 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 \nDamit der neue Rechner sich wie der alte verhät, werden die Hostkeys und das root-Verzeichnis vom alten sgrx1 mgeholt, das macht das cpHOST / /dest/ IDENTITY . Vorsicht, Besitzer der Dateien kontrollieren. Wenn z.B. /root/.ssh irgendeinem
anderen User gehört oder die Zufriffsrechte zu freizügig sind, kann man sich nicht mit Zertifikat verbinden. Das passiert z.B. beim Transport der Dateien mit eienm
DOS-formatiertem USB-Stick! Richtig sind die Rechte 644 bzw 600 bei den private Keys und obendrein muss der Owner 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.pubDiesmal habe ich die Platte nicht an den alten Rechner gehaengt, sondern den Kram via Netzwerk vom laufenden sgrx1 kopiert:
rsync --progress -avurtHAX root@sgrx1:/usr/local/bin/ /usr/local/bin/ scp root@sgrx1:/etc/init.d/obi1 /etc/init.d/obi1 scp root@sgrx1:/etc/apache2/apache2.conf /etc/apache2/apache2.conf rsync -avrtHAX root@sgrx1:/root/ /root/ rsync root@sgrx1:/etc/exports /etc/exports rsync root@sgrx1:/etc/sudoers /etc/sudoers rsync root@sgrx1:/etc/init.d/obi1 /etc/init.d/obi1 rsync -avrtHAX root@sgrx1:/etc/cups/ /etc/cups/ rsync -avrtHAX root@sgrx1:/etc/apache2/sites-available/ /etc/apache2/sites-available/ rsync -avrtHAX root@sgrx1:/etc/apache2/sites-enabled/ /etc/apache2/sites-enabled/ rsync -avrtHAX root@sgrx1:/usr/share/fonts/truetype/ /usr/share/fonts/truetype/ mkdir -p /root/FILES.sgrx1/ scp root@sgrx1:/etc/passwd /root/FILES.sgrx1/passwd scp root@sgrx1:/etc/shadow /root/FILES.sgrx1/shadow scp root@sgrx1:/etc/group /root/FILES.sgrx1/group cp /etc/passwd /etc/passwd.ORG cp /etc/shadow /etc/shadow.ORG cp /etc/group /etc/group.ORG cat /root/FILES.sgrx1/passwd >> /etc/passwd cat /root/FILES.sgrx1/shadow >> /etc/shadow cat /root/FILES.sgrx1/group >> /etc/groupDann in den /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-JobsresizePict läuft noch auf sgrx1 und 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. Beide Zeilen habe ich im neuen Rechner manuell mit crontab -e )code> angelegt
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
STAND 26.12.2024
Apache 2site-available und site-enabled von altem Rechner/Server kopieren:# rsync --delete -avurtHAX root@sgrx1:/etc/apache2/sites-available/ /etc/apache2/sites-available/ # rsync --delete -avurtHAX root@sgrx1:/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 |