A dumping ground for basic gnulinux sysadmin and other miscellaneous notes, or miscadmin for short.


-Text Editors-

Change the default text editor, terminal, web browser, in Debian

exo-preferred-applications

Some systems are not kind with exo, so …

xdg-mime default caja.desktop inode/directory application/x-gnome-saved-search

Set caja or other file managers to manage desktop

gsettings set org.gnome.desktop.background show-desktop-icons false
gsettings set org.nemo.desktop show-desktop-icons true

-motd-

Create the following to make a message of the day that will be appended to the dynamic message of the day.

sudo nano /etc/motd

Is motd printing twice, comment out motd statis in pam setting

/etc/pam.d/sshd
#session    optional     pam_motd.so noupdate
(actually it is the line above this, leave this active)

Print motd with every shell log in …

nano ~/.bashrc

Navigate to the end of the file, and add

cat /etc/motd

-Firefox-

To install the latest firefox on Debian and make it default, do the following. The link below may not always work, so replace when updated.

sudo mkdir -p /opt/firefox
sudo chown -R $USER:$USER /opt/firefox
cd ~/Downloads && wget -O FirefoxSetup.tar.bz2 "https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=en-US"
tar xjf FirefoxSetup.tar.bz2 -C /opt/firefox/
sudo mv /usr/lib/firefox-esr/firefox-esr /usr/lib/firefox-esr/firefox-esr_orig
sudo ln -s /opt/firefox/firefox/firefox /usr/lib/firefox-esr/firefox-esr

To restore firefox-esr that comes with Debian.

unlink /usr/lib/firefox-esr/firefox-esr
mv /usr/lib/firefox-esr/firefox-esr_orig /usr/lib/firefox-esr/firefox-esr

-youtube-dl-

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod 750 /usr/local/bin/youtube-dl

-optical ripping example-

cdrecord -pad -dao -data blag-140k-i686.iso

-pam hardening location-

sudo nano /etc/pam.d/common-password

Prevent Log in - create file

/etc/nologin

-old reminders-

remove old and offending keyring from gnome, make new directory for new one

sudo rm -rf ~/.local/share/keyrings
mkdir ~/.local/share/keyrings

start or stop network manager (or other services)

systemctl <start/stop/restart> networkmanager.service
/etc/init.d/network-manager <start/stop/restart>

verify dhcp client working for interface eno1

dhclient -v eno1

add subnet to interface eno1

ip address add 192.1##.1##.2/24 dev eno1

interface tool w/ eno1 example

ethtool eno1  

interface with switch using screen

screen /dev/ttyUSB0/ 19200

calculate subnet automatically

subnetcalc

proxying web traffic through remote server

ssh -D <port#> <user>@<domain.com>

get block ID of drives

blkid

nmap to scan devices on lan

nmap -sP 10.##.##.0/24

find utils example

find . -iname "name" 

-ngrok-

ngrok notes; private http(s) tunnels

./ngrok http 80
wget https://[ngrok tunnel]/id_rsa.pub
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

query hosts on the lan

avahi-browse -tl _workstation._tcp

Debian print system configuration to stdout; use root

cat /proc/cpuinfo && lspci | grep -i vga && uname -a && lsb_release -a
lsb_release -a
lspci

Debian repo management

cd /etc/apt
nano sources.lsit
[main contrib non-free]

-sftp basics-

cd ~/Downloads
sftp user@host.com:/path/to/sftp/directory/of/choice/
> put /path/to/file.txt 

-build app from source-

tar -xf <source_filename>

Navigate to the directory that tar unarchived the files to. Then, within that directory, execute:

./configure --prefix=/usr/local

make
sudo make install clean

-using vi to scrape unnecessary text strings away from openwrt packages that need updating

:1,$s/ .*//

-passing traffic through wifi radio to another interface on host-

sudo su -c "iptables -t nat -A POSTROUTING -o wlp2s0 -j MASQUERADE"
sudo su -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
set a static ip using ip a a x.x.x.x. dev blah
set static on wndr wan

-exim delete all messages and other-

exim -bp <print message ids>
exim -Mrm <message id>
exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

use this for local interfaces for ipv6
::::0:0.0.0.0

view
exim -Mvh

-verifying TLS with swaks on exim4 relay setup

swaks -a -tls -q HELO -s smtp.haacksnetworking.com:587 -au test -ap '<>'

-mysql password-

nano /etc/mysql/debian.cnf 
sudo mysql -u debian-sys-maint  

-temporary name servers - how to add some - temporary/permanent syntax below:

echo "nameserver 4.2.2.1" | sudo tee /etc/resolv.conf > /dev/null
echo "nameserver 4.2.2.1" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null

-strip desktop environments from GUI system

tasksel --list-tasks
tasksel --task-packages desktop
sudo apt-get purge $(tasksel --task-packages desktop)

-deborphan

sudo apt install deborphan
sudo apt-get remove `deborphan`
for i in `deborphan`; do apt-get --purge remove -y $i; done

-checking ssh logs

cat /var/log/auth.log | grep 'sshd.*Invalid'
cat /var/log/auth.log | grep 'sshd.*opened'

-checking disk space-

du -ch -d 1 | sort -hr

-check disk space with ncurses tool-

sudo apt install ncdu
ncdu

-stop/start sleep of any form on servers-

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

-xorg with ssh

touch /root/.Xauthority 
touch /home/user/.Xauthority

-batch convert with ffmpeg to mp4 from mkv

for i in *.mkv; do
ffmpeg -i "$i" -codec copy "${i%.*}.mp4"
done

-fix badly configured zpool that used short names to by-id names. This command can be entered as-is, and does not need to be adjusted at all for what your specific ids are or for multiple drives. It literally exports the short names and by-ids, unmounts the volumes/pool, then remakes it using the blkid.

zpool export tank 
zpool import -d /dev/disk/by-id tank

monitor ram usage every 3 seconds in human readable way

free -h -w -s 3

postfix to relay, satellite option, enter the relay like this: to prevent lookups

[smtp.smtpserver.com]:587

Re-attach to screen session that's attached.

screen -d -r <session#.user>

mysqldump to local from remote

ssh root@hub.haacksnetworking.org /usr/bin/mysqldump --all-databases --single-transaction --skip-comments --skip-dump-date > hknet.sqldump

Turn off sleep.

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Amd gPU errors fix

mkdir ~/Repositories
cd /home/user/Repositories && git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/firmware/linux-firmware.git
sudo cp /home/user/Repositories/linux-firmware/amdgpu/* /lib/firmware/amdgpu && sudo update-initramfs -k all -u -v

Unattended Upgrades

sudo apt install unattended-upgrades
sudo apt install apt-config-auto-update
sudo unattended-upgrades --dry-run --debug
sudo systemctl status unattended-upgrades

Next … ssh failed attempts

grep "Failed password" /var/log/auth.log
journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"
faillock --user <user>
grep "authentication failure" /var/log/auth.log | awk '{ print $14 }' | cut -b7-  | sort | uniq -c

Display Managers (Lightdm, etc.)

sudo nano /etc/lightdm/lightdm-gtk-greeter.conf
[SeatDefaults]
allow-guest=false
greeter-hide-users=true
nano ~/.config/gtk-3.0/settings.ini
[Settings]
gtk-application-prefer-dark-theme=1
sudo nano /etc/lightdm/lightdm.conf
cd /usr/share/lightdm/light.conf.d/

Setting ufw to allow connections to only certain subnets.

ufw allow from 10.16.16.0/24 to any proto tcp port 8006
ufw allow from 10.36.36.0/24 to any proto tcp port 8006
ufw allow from 10.16.16.0/24 to any proto tcp port 22
ufw allow from 10.36.36.0/24 to any proto tcp port 22
ufw allow from 10.16.16.0/24 to any proto tcp port 80
ufw allow from 10.36.36.0/24 to any proto tcp port 80
ufw allow from 10.16.16.0/24 to any proto tcp port 443
ufw allow from 10.36.36.0/24 to any proto tcp port 443

Establish NIC name using mac:ID

nano /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="00:00:00:00:00:00",ATTR{type}=="1",NAME="eth100"

Establish Nemo as default, remove desktop icons, verify nemo default

xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search
gsettings set org.gnome.desktop.background show-desktop-icons false
xdg-mime query default inode/directory

Sury php

sudo apt install -y apt-transport-https lsb-release ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list 

Static ipv6 in ifupdown

iface enp0s3 inet6 static
  address 2001:db8:1000::1
  netmask 64
  gateway 2001:db8:1000::1
  autoconf 0
  dns-nameservers 2001:4860:4860::8888 2001:4860:4860::8844
  

Assigning an interface a persistent name so that bridging and static ifupdown assignments don't fail on reboot.

sudo nano /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net",ACTION=="add",ATTR{address}=="29:af:2c:34:g7:11",ATTR{type}=="1",NAME="eth100"

Convert pdf to Word

libreoffice --infilter="writer_pdf_import" --convert-to docx Terms-Of-Service.pdf

Instruct a client to ignore the DNS server offers made by the router on Debian.

sudo nano /etc/dhcp/dhclient.conf

In that file, find the section that begins with request subnet-mask and remove domain-name-servers from it.

request subnet-mask, broadcast-address, time-offset, routers,
  domain-name, __domain-name-servers__, domain-search, host-name,
  dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
  netbios-name-servers, netbios-scope, interface-mtu,
  rfc3442-classless-static-routes, ntp-servers;

After that's removed, find the section that begins with prepend domain-name-servers 127.0.0.1; and change it as you see fit:

prepend domain-name-servers 192.168.1.20;
prepend domain-name-servers 192.168.1.21;
sudo systemctl restart networking

After you restart networking, run cat /etc/resolv.conf and make sure the DNS is what you desired.

oemb1905 2024/11/03 14:24