====== New Linux Stuff ======
* putty-Alternative: https://mremoteng.org/
===== MDM, RAID, SMART =====
* ''cat /proc/mdstst''
* ''mdadm -D /dev/md1''
* MD: [[https://www.ionos.com/help/server-cloud-infrastructure/dedicated-server-for-servers-purchased-before-102818/rescue-and-recovery/software-raid-status-monitoring-linux/|Link]]
* SMART: [[https://www.thomas-krenn.com/de/wiki/Smartctl|Link]]
* ''smartctl -a /dev/sda''
* **Reallocated Sectors Count:** Anzahl der Sektoren, die aufgrund von Lesefehlern neu zugeteilt(remaped) wurden.
* **Spin Retry Count:** Anzahl der Versuche die benötigt wurden um die Spindel auf Betriebsgeschwindigkeit zu bringen.
* **Reallocation Event Count:** Anzahl der Remaps die durchgeführt wurden (erfolgreich und nicht erfolgreich).
* **Current Pending Sector Count:** Anzahl der Sektoren die auf ein Remapping warten.
* **Offline_Uncorrectable:** Anzahl der nicht korrigierbaren Fehler beim Zugriff(read/write) auf Sektoren.
===== WinDirStat =====
* WizTree → dikanalyzer.com
===== Internet auf FritzBox ustellen =====
* ''ip route list''
* ''ip r''
* ''ip route delete default''
* ''ip route add default via 10.255.255.253 dev eno1''
* DNS in /etc/samba/smb.conf umschalten !!!
* Service ''samba-ad-dc'' neu starten
:td: **''bash''-Komplettierung einschalten**
[[https://glt18-programm.linuxtage.at/system/attachments/130/original/gtl18_-_Moderne_Kommandozeilentools_upload_version.pdf|Vortragsfolien]]
:yt: [[https://www.youtube.com/watch?v=OlQMXu4yCGk|Video dazu]]
===== Quick-Tipps =====
* Neueste Dateien finden: ''find . -type f -printf '%T+ %p\n' | sort -r | head -n 10''
* Dateien zuletzt geändert mit komplettem Pfad: ''find . -mtime -1 -exec ls -lahs -d {} \; | less''
* [[https://dev.yorhel.nl/ncdu|ncdu]] du-Replacement (kein deb aber tgz statisch)
* [[https://the.exa.website/|exa]] ls-Replacement (kein deb)
* ''tree /schnack -sh --sort=size'' (Größe anzeigen, lesbar, sortiert nach Größe)
* **BESSER:** ncdu
* ''date --iso-8601'' für Datierung von Dateien (''touch a-`date --iso-8601`-b.txt'')
* [[https://help.ubuntu.com/lts/serverguide/network-configuration.html.en|Ubuntu Server Guide]]
* ''ip a'' --> Adressen aller Interfaces
* ''lshw'' --> Hardware ausgeben (''lshw -class network'')
* ''lsusb'', ''lsblk'', ''lslocks'', ''lsof'' bzw. ''lsof -i''/''netstat -npl''
* ''netplan''/''netplan apply'' (nach Änderung der Konfiguration)
* ''ethtool enp0s3'' (Infos zum HW-Interface)
* ''ip link set dev enp0s25 up/down''
* **Firewall/''ufw''**: [[https://help.ubuntu.com/lts/serverguide/firewall.html.en|Server Guide]]
* [[https://help.ubuntu.com/lts/serverguide/firewall.html.en#ip-masquerading|Masquerading/NAT]] mit ufw
* [[https://help.ubuntu.com/lts/serverguide/samba.html.en|SAMBA]]
* ''byobu'' statt ''tmux''
* ''nethogs'' --> Bandbreitenmessung
* ''nload'' --> als Graph :)
* ''iptraf'' --> **ALLES!** (Konfiguration DNS und Dienst ändern)
* ''du -kh --max-depth=1'' du mit Summe der ersten Verzeichnisse
* ''entr'' → überwacht Dateien und führt Programme aus (siehe man für Beispiele)
* geht auch mit WSL und VS Code 😁
* ''nmtui'' → NetworkManager TUI-Tool (CLI)
* ''chkservice'' → systemd-TUI-Manager
* Explorer stürzt bei Sicherheit ab: https://superuser.com/questions/1459741/samba-ad-dc-windows-explorer-exe-crashes-on-security-tab-access
===== systemd =====
[[https://www.digitalocean.com/community/tutorials/systemd-essentials-working-with-services-units-and-the-journal|Allgemeine Infos zu systemd]]
[[https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs|Logging in systemd]]
* systemctl behandelt **units** (Dienste bzw. Dinge, die von systemd gestartet/gestoppt/verwaltet werden
* ''systemctl start|stop|restart|reload schnack.service'' (auch ohne service)
* ''systemctl enable|disable'' schnack.service (dto.)
* ''systemctl list-units|list-unit-files [--all]''
* ''journalctl -b'' **Logging** seit dem letzten Reboot
* ''journalctl -b -p err'' seit [''b'']oot mit [''p'']riotity [''err'']or
* "emerg" (0), "alert" (1), **"crit" (2)**, "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7)
* ''journalctl -k'' nur [''k'']ernel messages
* ''systemctl status schnack'' **Status**
* ''journalctl -b -u schnack'' nur den Status der [''u'']nit schnack seit boot
* Edit unit-Files: siehe Link
* Event loggen: ''logger -p local1.err "Hallo Welt!"''
* Nur Fehler anzeigen: ''journalctl -p err -b'' [''p'']riotity [''err'']or seit [''b'']oot (siehe ''man logger'' -> "FACILITIES AND LEVELS"
* ''emerg alert crit err warning notice info debug''
* ''**lnav**'': journalctl mit Oberfläche
* ''journalctl --since yesterday'' nur seit gestern (mit ''p'' sehr nützlich)
* ''--no-pager'' kein less verwenden
* **''journalctl -f''** wie ''tail -f''
* ''journalctl --disk-usage''
* ''journalctl --vacuum-size=1G'' Logfile auf 1GB heruntersetzen (alte Einträge löschen)
* ''journalctl --vacuum-time=1years'' Logifile auf 1 Jahr heruntersetzen (alte Einträge löschen)
===== Backup-Script =====
#!/bin/bash
base_dir="/home/ivo/test"
year=`date +"%y"`
month=`date +"%m"`
day=`date +"%d"`
target="${base_dir}/${year}/${month}/${day}"
if [ ! -d "${target}" ]; then
mkdir -p "${target}";
fi
cp -a /tmp/schnack ${target} || logger "xxx backup Mist ..." && logger "vvv Backup done ..."
===== BASH-Prompt =====
* in ''~/.bashrc''
* ''root'' werden am besten mit ''sudo -s'', dann bleibt ''~'' erhalten
# roter Prompt für root
if [ "$LOGNAME" == "root" ]
then
echo "ROOT! AUFPASSEN!"
PS1="\[\e[31m\]ROOT\[\e[m\]\[\e[31m\]@\[\e[m\]\[\e[31m\]\h\[\e[m\]\[\e[31m\]:\[\e[m\]\[\e[31m\]\w\[\e[m\]\[\e[31m\]>\[\e[m\] "
else
echo "NICHT ROOT! ALLES EASY!"
PS1="\[\e[32m\]\u\[\e[m\]\[\e[32m\]@\[\e[m\]\[\e[32m\]\h\[\e[m\]\[\e[32m\]:\[\e[m\]\[\e[32m\]\w\[\e[m\]\[\e[32m\]>\[\e[m\] "
fi
{{:meins:rote-bash.png?nolink|}}
===== tmux =====
* ''^a + z'' maximize/unmaximize pane
===== mtr =====
* My Tracepath
* ''d'' um Anzeige umzustellen
===== ip =====
* ''ip addr show''
* ''ip link show''
* ''ip link set eth0 up|down''
* ''ip addr add 192.168.0.42/24 broadcast 192.168.0.255 dev eth0''
* ''ip route show''
===== ripgrep =====
* [[https://github.com/BurntSushi/ripgrep/releases|''deb''-File]] (statisch gelinkt)
* ''rg String Verzeichnis''
* [[https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md|User Guide]]
* keine man-Page -> ''rg --help''
===== ranger =====
* [[https://wiki.archlinux.org/index.php/ranger|Arch Linux]]
* :td: MACHEN!
===== sudo =====
* ''/etc/sudoers.d/ivo'':
Cmnd_Alias ADMINISTRATION = /usr/bin/apt-get, /usr/bin/dpkg, /bin/systemctl, /bin/journalctl
ivo ALL = NOPASSWD: ADMINISTRATION
* Datei muss ''06400'' sein
* kein Neustart notw.
* ''sudo'' trotzdem notwendig aber ohne PW
===== pdmenu =====
menu:main:Ivo's Menü
exec:_systemctl::systemctl
exec:l_s:truncate:ls -lahs
show:_Neues Untermenü...::library
exec:_IP Show:truncate:/sbin/ip addr show
menu:library:Schnick Schnack Überschrift?
exec:top::top
exec:In welchem Verzeichnis bin ich?:display:pwd
* Start mit pdmenu -s datei.in
* ''man pdmenurc''
===== ssmtp =====
* installieren
* ''mailutils'' installieren für ''/usr/bin/mail''
* [[https://linuxundich.de/gnu-linux/system-mails-ohne-einen-mail-server-mit-ssmtp-verschicken/|Gute DOku]]
* Achtung: TSL-Port ist bei all-inkl **465** **NICHT** 587
# /etc/ssmtp/revaliases
root:ivo@ivo-s.de:v033xxx.kasserver.com:465
ivo:ivo@ivo-s.de:v033xxx.kasserver.com:465
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=ivo
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=v033xxx.kasserver.com
# Where will the mail seem to come from?
rewriteDomain=ivo-s.de
# The full hostname
hostname=ivo-s.de
UseTLS=YES
# ACHTUNG in kasserver nach Benutzer schauen.
# ACHTUNG 8 (ACHT) Ziffern!
AuthUser=v033xxxxx
# ACHTUNG!
AuthPass=XXXXXXXXXXXX
# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
# WICHTIG!
FromLineOverride=NO
===== port knocking =====
* [[https://help.ubuntu.com/community/PortKnocking|Manual]], Achtung! UFW verwenden!
* install ''knockd''
[options]
UseSyslog
[SSH]
sequence = 7000,8000,9000
seq_timeout = 5
start_command = ufw allow from %IP% to any port 22
tcpflags = syn
cmd_timeout = 10
stop_command = ufw delete allow from %IP% to any port 22
* **ACHTUNG!!** Andere Sequenz verwenden!
# /etc/default/knockd
# control if we start knockd at init or not
# 1 = start
# anything else = don't start
# PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
START_KNOCKD=1
# command line options
KNOCKD_OPTS="-i enp0s3"
* service und ufw starten (''ufw enable'')
# /lib/systemd/system/knockd.service
[Unit]
Description=Port-Knock Daemon
After=network.target
Documentation=man:knockd(1)
[Service]
EnvironmentFile=-/etc/default/knockd
ExecStart=/usr/sbin/knockd $KNOCKD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
SuccessExitStatus=0 2 15
######################
# Disable if error not writable
# ProtectSystem=full
######################
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN
* Linux: ''knock -v 10.0.0.1 && ssh ivo@10.0.0.1''
* Windows: [[https://github.com/sebastienwarin/Knock/releases|knock.exe]]
* ODER: Bash benutzen!
===== IP-Adresse auf den Webserver =====
''curl -s ipinfo.io/ip > ip.txt && curl -s -T ip.txt ftp://xyz.de --user benutzer_name:passwort''
* ''-s'': silent
===== x11vnc =====
* installieren
* ''sudo x11vnc -storepasswd KENNWORT /etc/x11vnc.pass''
* [[https://wiki.ubuntuusers.de/VNC/#VNC-Server-bei-jedem-Bootvorgang-starten|beim Booten starten]]
* absichern mit Port-Knocking
# /etc/knockd.conf
[VNC]
sequence = 6000,7000,8000
seq_timeout = 5
start_command = ufw allow from %IP% to any port 5900
tcpflags = syn
cmd_timeout = 10
stop_command = ufw delete allow from %IP% to any port 5900
===== erweiterte Attribute für samba/DC (rsync und rsnapshot) =====
* ''apt install attr'' für ''setattr/getattr''
* ''rsync'' mit ''-X'' und ''-A'' und natürlich mit ''-a'' :)
* [[https://askubuntu.com/questions/820872/preserve-acls-with-rsync|Preserve ACLs with rsync]], [[https://wiki.samba.org/index.php/File_System_Support|Samba Wiki: File System Support]]
* ''rsnapshot.conf'': ''rsync_short_args-aAX''
* ''tar'' mit ''--xattrs'' und ''--acls''
* :td: ??? Funktioniert nicht ??? --> unter SAMBA versuchen :td: