[ codebase ] - Linux
OpenSSL Cipher Suites: /usr/bin/openssl ciphers -v

# vim: mehrere Zeilen einrücken
* STRG + V     # visual block mode
* mit Pfeiltasten die Zeilen markieren
* SHIFT + i
* gewünschte Anzahl Leerzeichen eingeben
* ESC

# delete one line in vim: dd
# delete 10 lines in vim: 10dd

# Ubuntu root Passwort zurücksetzen
1) booten
2) ENTF oder ESC
3) Ubuntu advanced Options
4) optional: Ubuntu kernel xyz (recovery mode)
5) e
6) linux /boot/vmlinuz- ... ro quiet splash ...
  linux /boot/vmlinuz- ... rw quiet splash ... init=/bin/bash
7) F10
8) mount -o rw,remount /
  mount -n -o rw,remount /
9) passwd rootuser
10) reboot , oder: shutdown -r , oder: exec /sbin/init

# Nach verfügbaren Paketen suchen
apt-cache search certbot

# Paketinformationen anzeigen
apt list certbot
apt list certbot -a
apt show certbot

# apt-get Fehler fixen
/etc/apt/sources.list backupen
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get -f install
sudo dpkg --configure -a
sudo apt-get -f install
# If the output is:
# 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
# That means it failed. Next solution is to run:
sudo apt-get -u dist-upgrade
# https://askubuntu.com/questions/140246/how-do-i-resolve-unmet-dependencies-after-adding-a-ppa

# Mit wget rekursiv alles downloaden
wget -e robots=off --reject="index.html*" --recursive --no-parent https://linux.rz.rub.de/porteus/i586/
# Nur ISOs mit wget runterladen
wget -e robots=off --reject="index.html*" -A '*.iso' --recursive --no-parent https://linux.rz.rub.de/porteus/i586/Porteus-v5.0/

# Festplatte sdd löschen: VORSICHT!
for n in `seq 3`; do dd if=/dev/urandom of=/dev/sdd bs=64k status=progress conv=notrunc; done

# ***GPG***
# Neues OpenGPG Schlüsselpaar erzeugen
* gpg --full-gen-key
* (1) RSA and RSA (default)
* What keysize do you want? 4096
* Please specify how long the key should be valid.
  Key is valid for? 3y
* Real name: NAME
* Email address: EMAIL-ADRESSE
* Comment:
  You selected this USER-ID:
  "NAME <EMAIL-ADRESSE>"

# Expiration Date von gpg key verlängern
shell> gpg --list-keys
shell> gpg --edit-key 123456AE
gpg> expire
gpg> 2y
 PASSWORD
gpg> list
gpg> key 1
gpg> expire
gpg> 2y
 PASSWORD
gpg> list
gpg> save
shell> gpg --list-keys
shell> gpg --keyserver pgp.mit.edu --send-key 123456AE

gpg --export -a "User Name" > public.key
gpg --export-secret-key -a "User Name" > private.key

# SubKey verlaengern:
gpg --edit-key KEYID=01123124251346345989AEBCDEF2734879238572
key SUB-KEY-ID
# nun sollte ein * bei ssb erscheinen
key
 Anzahl in Tagen ...
quit

# Public-Key exportieren
gpg --export -a "User Name" > public.key

# DATEI VERSCHLUESSELN (notwendig: email.adresse@gmx.de_pub.key)
gpg --encrypt -a --recipient ID=email.adresse@gmx.de test.txt

# DATEI ENTSCHLUESSELN (notwendig: email.adresse@gmx.de_private.key)
gpg --decrypt --output entschluesselt.txt test.txt.asc

# GPG KEY LÖSCHEN
gpg --delete-secret-and-public-key

# PRIVATE KEYS AUFLISTEN
gpg --list-secret-keys

# PUBLIC KEYS AUFLISTEN
gpg --list-keys

# FINGERPRINT ANZEIGEN
gpg --fingerprint ID

# DATEI SIGNIEREN (notwendig: email.adresse@gmx.de_private.key) ?
gpg --detach-sign -a test.txt

gpg --export -a "Vorname Nachname" > "public.key"
gpg --export-secret-keys -a "Vorname Nachname" > "private.key"
gpg --list-secret-keys
gpg --list-keys
gpg --list-public-keys
gpg --delete-secret-and-public-key "Vorname Nachname"

gpg --import vornamenachname_public.key
gpg --import vornamenachname_private.key

# Public Keys von einer anderen Person runterladen, key-id= letzte
# 8 Zeichen des Public Key Fingerprint
gpg --keyserver pgp.mit.edu --recv-keys key-id

# Fingerprint von dem eben heruntergeladenen Public-Key anzeigen lassen
gpg --fingerprint key-id

# Den eben heruntergeladenen Public-Key signieren mit eigenem Private-Key
# und Passphrase!
gpg --sign-key key-id

# Den signierten Key hochladen auf den Public-Key Server
gpg --keyserver pgp.mit.edu --send-key key-id
# Antwort bei Erfolg:
gpg: success sending to `' (status=200)

# Quellen:
How-to: http://www.cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html
Key-Server: https://pgp.mit.edu/
http://www.cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html

# Ubuntu: show used DNS-Server (settings)
systemd-resolve --status
cat /run/systemd/resolve/resolv.conf

# Überprüfen, ob IP Forwarding (auf Router) aktiviert ist
> sysctl net.ipv4.ip_forward
# net.ipv4.ip_forward = 1      ja, ist gesetzt

iptables -L -v
iptables -L --line-numbers
iptables -D INPUT 3       # Rule Nr. 3 aus der Chain INPUT löschen
iptables -F            # ALLE iptables rules löschen
/usr/sbin/iptables-save
/etc/firewall.user        # OpenWRT

# tcpdump
tcpdump -n -i bond0 host 194.232.72.7
tcpdump -vvvs 1024 -l -A host fir3net.com

# Denyhosts: unblock IP
# https://inrg.soe.ucsc.edu/howto-unblock-an-ip-thats-been-blocked-by-denyhosts/
* systemctl stop denyhosts , sudo /etc/init.d/denyhosts stop
* Remove IP address from
  /etc/hosts.deny
  /var/lib/denyhosts/...
  WORK_DIR/hosts
  WORK_DIR/hosts-restricted
  WORK_DIR/hosts-root
  WORK_DIR/hosts-valid
  WORK_DIR/users-hosts
* systemctl start denyhosts , sudo /etc/init.d/denyhosts start

Linux-User anlegen: adduser blubbfisch
Linux-User löschen: sudo deluser --remove-home blubbfisch

Samba-User anlegen: sudo smbpasswd -a nc_smbuser # vorher muss linuxuser angelegt worden sein
Samba-User löschen: smbpasswd -x nc_smbuser
sudo pdbedit -L -v      # Samba-User anzeigen
smbstatus --shares
smbstatus
testparm
smbclient -L //localhost/
smbclient //localhost/samba_user_share -U samba_user
 Enter WORKGROUP\samba_user's password:
 Try "help" to get a list of possible commands.
smb: \> ls

Raspi-Version: cat /etc/os-release
Board-Version: pinout

# Copy SSH Pubkey: (from user1@server1 to user2@server2)
ssh-copy-id -i /home/user1/.ssh/sshkey.pub user2@server2_IP -p 10000

sed -n '3,17p' monitoring.html
# Gibt auf Linux-Shell den Inhalt der Datei aus von Zeile 3 bis Zeile 17