Naja CLI wird nie aussterben, weil es einfach viel schneller geht, wenn man weiß, was man tut. Und man hat halt einfach viel mehr Freiheiten.
Selbst bei Windows10 benutzt man heute noch viel PowerShell, wenn man komplexeres tun will. Da ist das genau wie bei Linux. Willst du professionelleres tun, dann muss man doch CLI nutzen, weil viele der Windows-Programme zur Administrierung halt keine GUI besitzen.
Willst du z.B. auf Win10 professionell einen Ordner von A nach B kopieren, dann nimmst du die eingebaute Robocopy.exe per CLI anstatt das einfach per GUI über den Explorer zu tun.
Was ich bei jeder neuen Debian VM als erstes mache:
1.) Repositories mit
nano /etc/apt/sources.list
anpassen, dass da "main contrib non-free" benutzt werden. "non-free" ist oft nicht automatisch eingestellt.
2.) SSH key für root einrichten:
mkdir /root/.ssh
nano /root/.ssh/authorized_keys
Dort den Public Key einfügen.
Rebooten.
3.) Sollte man sich per RSA Key dann mit SSH als root verbinden können, dann den Login per Passwort verbieten:
nano /etc/ssh/sshd_config
Zeile "#PasswordAuthentication yes" auf "PasswordAuthentication no" ändern.
4.) Vergewissern, dass da die NIC eine statische IP benutzt:
nano /etc/network/interfaces
Fall da etwas steht wie "iface ens18 inet dhcp" dass dann auf etwas wie...
iface ens18 inet static
address 192.168.1.2/24
gateway 192.168.1.1
...ändern.
5.) Falls man kein IPv6 braucht und sich doppelte Arbeit sparen will das Linux abzusichern, dann kann man das auch verbieten:
nano /etc/network/interfaces
Dann da die Zeilen wie "iface ens18 inet6 auto" auskommentieren.
nano /etc/sysctl.conf
Dort "net.ipv6.conf.all.disable_ipv6 = 1" einfügen.
6.) Vergewissern, dass da der richtige DNS-Server gesetzt ist:
nano /etc/resolv.conf
Dort jeweilige DNS-Server einfügen:
Code:
nameserver 192.168.1.1
nameserver 8.8.8.8
7.) Swappiness anpassen:
nano /etc/sysctl.conf
Z.B. "vm.swappiness = 60" einfügen falls viel geswappt werden soll oder "vm.swappiness = 1" wenn Swapping möglichst vermieden werden soll.
8.) QEMU Guest Agent installieren
apt-get install qemu-guest-agent
Und dann sicherstellen, dass da in der ProxmoxGUI auch für die VM die "QEMU Guest Agent"-Checkbox aktiviert ist.
9.) "/tmp" auf RAMdisk legen um SSD zu schonen:
cp /usr/share/systemd/tmp.mount /etc/systemd/system/
systemctl enable tmp.mount
10.) Tägliches TRIM/Discard einrichten, damit für SSDs und Thin Provisioning auch wirklich gelöschte Daten gelöscht werden. Dazu muss für die virtuelle HDD im ProxmoxGUI natürlich auch die "Discard"-Checkbox aktiv sein:
nano /etc/cron.daily/daily_trim
Dort dann einfügen:
Code:
#!/bin/sh
#
# To find which FS support trim, we check that DISC-MAX (discard max bytes)
# is great than zero. Check discard_max_bytes documentation at
# https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt
#
# Copy script to /etc/cron.daily or /etc/cron.weekly
#
for fs in $(lsblk -o MOUNTPOINT,DISC-MAX,FSTYPE | grep -E '^/.* [1-9]+.* ' | awk '{print $1}'); do
fstrim "$fs"
done
chmod 755 /etc/cron.daily/daily_trim
crontab -e
Dort einfügen:
Code:
0 0 * * * /bin/sh /etc/cron.daily/daily_trim
(letzteres mache ich nur, weil "/etc/cron.daily/daily_trim" irgendwie nicht automatisch täglich aufgerufen wird. Weiß jemand warum eigentlich nicht?)
11.) Falls Zugriff auf SMB Shares nötig ist:
CIFS-Utils installieren um SMB-Shares mounten zu können:
apt install cifs-utils
Datei mit SMB-Zugangsdaten erstellen:
nano /root/.smb_[FREIGABE_NAME]
Dort einfügen:
Code:
username=[USERNAME]
password=[PASSWORT]
chmod 0600 /root/.smb_[FREIGABE_NAME]
mkdir /media/[FREIGABE_NAME]
chown root:root /media/[FREIGABE_NAME]
nano /etc/fstab
Dort einfügen:
Code:
#SambaShares
//[IP.DES.SMB.SERVERS]/[FREIGABE_NAME] /media/[FREIGABE_NAME] cifs auto,rw,credentials=/root/.smb_[FREIGABE_NAME],uid=[UID_DES_GEWÜNSCHTEN_BESITZERS],gid=[GID_DES_GEWÜNSCHTEN_BESITZERS],file_mode=0660,dir_mode=0770 0 0
12.) Autoupdates installieren, damit Sicherheitsupdates automatisch installiert werden. Sollte man lieber weglassen, wenn man keine regelmäßigen Snapshots und Backups hat:
apt-get install unattended-upgrades apt-listchanges
13.) Sicherstellen, dass da "noatime" für alle xfs-Partitionen und "noatime,nodiratime" für alle ext4-Partitionen unter "Options" gesetzt ist, damit die SSDs länger halten:
nano /etc/fstab
14.) Dann kommen bei mir noch der Zabbix-Agent für das Monitoring und Filebeat für das zentrale Sammeln von Logs hinzu, aber das bringt ja nur etwas, wenn du das auch nutzt.
Das wäre so meine Basics die ich überall in Debian-VMs einstelle. Kommen natürlich noch 100 Sachen hinzu, je nachdem, was ich da dann für Dienste drauf laufen lassen will. "fail2ban" wäre z.B. so eine Sache mit der man sich beschäftigen sollte, wenn man die Sicherheit erhöhen will. Oder "postfix", wenn man auch eMails über einen externen SMTP-Server versenden können will.