diff options
author | doc <doc@filenotfound.org> | 2025-06-30 20:06:28 +0000 |
---|---|---|
committer | doc <doc@filenotfound.org> | 2025-06-30 20:06:28 +0000 |
commit | 717fcb9c81d2bc3cc7a84a3ebea6572d7ff0f5cf (patch) | |
tree | 7cbd6a8d5046409a82b22d34b01aac93b3e24818 /cheatsheets | |
parent | 8368ff389ec596dee6212ebeb85e01c638364fb3 (diff) |
Diffstat (limited to 'cheatsheets')
-rw-r--r-- | cheatsheets/rclone_cheat_sheet.md | 133 | ||||
-rw-r--r-- | cheatsheets/server_hardening_disaster_recovery.md | 87 | ||||
-rw-r--r-- | cheatsheets/zfs_cheat_sheet.md | 153 |
3 files changed, 373 insertions, 0 deletions
diff --git a/cheatsheets/rclone_cheat_sheet.md b/cheatsheets/rclone_cheat_sheet.md new file mode 100644 index 0000000..4637fcd --- /dev/null +++ b/cheatsheets/rclone_cheat_sheet.md @@ -0,0 +1,133 @@ +# ๐ Rclone Command Cheat Sheet + +## โ๏ธ Configuration + +### Launch Configuration Wizard +```bash +rclone config +``` + +### Show Current Config +```bash +rclone config show +``` + +### List Remotes +```bash +rclone listremotes +``` + +## ๐ Basic File Operations + +### Copy Files +```bash +rclone copy source:path dest:path +``` + +### Sync Files +```bash +rclone sync source:path dest:path +``` + +### Move Files +```bash +rclone move source:path dest:path +``` + +### Delete Files or Dirs +```bash +rclone delete remote:path +rclone purge remote:path # Delete entire path +``` + +### Check Differences +```bash +rclone check source:path dest:path +``` + +## ๐ Listing and Info + +### List Directory +```bash +rclone ls remote:path +rclone lsd remote:path # List only directories +rclone lsl remote:path # Long list with size and modification time +``` + +### Tree View +```bash +rclone tree remote:path +``` + +### File Size and Count +```bash +rclone size remote:path +``` + +## ๐ฆ Mounting + +### Mount Remote (Linux/macOS) +```bash +rclone mount remote:path /mnt/mountpoint +``` + +### Mount with Aggressive Caching (Windows) +```bash +rclone mount remote:path X: \ + --vfs-cache-mode full \ + --cache-dir C:\path\to\cache \ + --vfs-cache-max-size 100G \ + --vfs-read-chunk-size 512M \ + --vfs-read-ahead 1G +``` + +## ๐ Sync with Filtering + +### Include / Exclude Files +```bash +rclone sync source:path dest:path --exclude "*.tmp" +rclone sync source:path dest:path --include "*.jpg" +``` + +## ๐ Logging and Dry Runs + +### Verbose and Dry Run +```bash +rclone sync source:path dest:path -v --dry-run +``` + +### Log to File +```bash +rclone sync source:path dest:path --log-file=rclone.log -v +``` + +## ๐ก Remote Control (RC) + +### Start RC Server +```bash +rclone rcd --rc-web-gui +``` + +### Use RC Command +```bash +rclone rc core/stats +rclone rc vfs/stats +``` + +## ๐ ๏ธ Miscellaneous + +### Serve Over HTTP/WebDAV/SFTP +```bash +rclone serve http remote:path +rclone serve webdav remote:path +rclone serve sftp remote:path +``` + +### Crypt Operations +```bash +rclone config create secure crypt remote:path +``` + +--- + +> โ
**Tip**: Always use `--dry-run` when testing `sync`, `move`, or `delete` to prevent accidental data loss. diff --git a/cheatsheets/server_hardening_disaster_recovery.md b/cheatsheets/server_hardening_disaster_recovery.md new file mode 100644 index 0000000..fd23c40 --- /dev/null +++ b/cheatsheets/server_hardening_disaster_recovery.md @@ -0,0 +1,87 @@ +# ๐ก๏ธ Server Hardening & Disaster Recovery Cheat Sheet + +## ๐ Server Hardening Checklist + +### ๐ OS & User Security +- โ
Use **key-based SSH authentication** (`~/.ssh/authorized_keys`) +- โ
Disable root login: + ```bash + sudo sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config + sudo systemctl restart sshd + ``` +- โ
Change default SSH port and rate-limit with Fail2Ban or UFW +- โ
Set strong password policies: + ```bash + sudo apt install libpam-pwquality + sudo nano /etc/security/pwquality.conf + ``` +- โ
Lock down `/etc/sudoers`, remove unnecessary sudo privileges + +### ๐ง Kernel & System Hardening +- โ
Install and configure `ufw` or `iptables`: + ```bash + sudo ufw default deny incoming + sudo ufw allow ssh + sudo ufw enable + ``` +- โ
Disable unused filesystems: + ```bash + echo "install cramfs /bin/true" >> /etc/modprobe.d/disable-filesystems.conf + ``` +- โ
Set kernel parameters: + ```bash + sudo nano /etc/sysctl.d/99-sysctl.conf + # Example: net.ipv4.ip_forward = 0 + sudo sysctl -p + ``` + +### ๐งพ Logging & Monitoring +- โ
Enable and configure `auditd`: + ```bash + sudo apt install auditd audispd-plugins + sudo systemctl enable auditd + ``` +- โ
Centralize logs using `rsyslog`, `logrotate`, or Fluentbit +- โ
Use `fail2ban`, `CrowdSec`, or `Wazuh` for intrusion detection + +## ๐พ Disaster Recovery Checklist + +### ๐ฆ Backups +- โ
Automate **daily database dumps** (e.g., `pg_dump`, `mysqldump`) +- โ
Use **ZFS snapshots** for versioned backups +- โ
Sync offsite via `rclone`, `rsync`, or cloud storage +- โ
Encrypt backups using `gpg` or `age` + +### ๐ Testing & Recovery +- โ
**Verify backup integrity** regularly: + ```bash + gpg --verify backup.sql.gpg + pg_restore --list backup.dump + ``` +- โ
Practice **bare-metal restores** in a test environment +- โ
Use **PITR** (Point-In-Time Recovery) for PostgreSQL + +### ๐ Emergency Scripts +- โ
Create service restart scripts: + ```bash + systemctl restart mastodon + docker restart azuracast + ``` +- โ
Pre-stage `rescue.sh` to rebuild key systems +- โ
Include Mastodon/Gitea/etc. reconfig tools + +### ๐๏ธ Documentation +- โ
Maintain a **runbook** with: + - Service recovery steps + - IPs, ports, login methods + - Admin contacts and escalation + +### ๐งช Chaos Testing +- โ
Simulate failure of: + - A disk or volume (use `zpool offline`) + - A network link (`iptables -A OUTPUT ...`) + - A database node (use Patroni/pg_auto_failover tools) + +--- + +> โ
**Pro Tip**: Integrate all hardening and backup tasks into your Ansible playbooks for consistency and redeployability. diff --git a/cheatsheets/zfs_cheat_sheet.md b/cheatsheets/zfs_cheat_sheet.md new file mode 100644 index 0000000..760aeb1 --- /dev/null +++ b/cheatsheets/zfs_cheat_sheet.md @@ -0,0 +1,153 @@ +# ๐ ZFS Command Cheat Sheet + +## ๐ ๏ธ Pool Management + +### Create a Pool +```bash +zpool create <poolname> <device> +zpool create <poolname> mirror <dev1> <dev2> +zpool create <poolname> raidz1 <dev1> <dev2> <dev3> ... +``` + +### List Pools +```bash +zpool list +``` + +### Destroy a Pool +```bash +zpool destroy <poolname> +``` + +### Add Devices to a Pool +```bash +zpool add <poolname> <device> +``` + +### Export / Import Pool +```bash +zpool export <poolname> +zpool import <poolname> +zpool import -d /dev/disk/by-id <poolname> +``` + +## ๐ Pool Status and Health + +### Check Pool Status +```bash +zpool status +zpool status -v +``` + +### Scrub a Pool +```bash +zpool scrub <poolname> +``` + +### Clear Errors +```bash +zpool clear <poolname> +``` + +## ๐งฑ Dataset Management + +### Create a Dataset +```bash +zfs create <poolname>/<dataset> +``` + +### List Datasets +```bash +zfs list +zfs list -t all +``` + +### Destroy a Dataset +```bash +zfs destroy <poolname>/<dataset> +``` + +## ๐ฆ Mounting and Properties + +### Set Mount Point +```bash +zfs set mountpoint=/your/path <poolname>/<dataset> +``` + +### Mount / Unmount +```bash +zfs mount <dataset> +zfs unmount <dataset> +``` + +### Auto Mount +```bash +zfs set canmount=on|off|noauto <dataset> +``` + +## ๐ Snapshots & Clones + +### Create a Snapshot +```bash +zfs snapshot <poolname>/<dataset>@<snapshotname> +``` + +### List Snapshots +```bash +zfs list -t snapshot +``` + +### Roll Back to Snapshot +```bash +zfs rollback <poolname>/<dataset>@<snapshotname> +``` + +### Destroy a Snapshot +```bash +zfs destroy <poolname>/<dataset>@<snapshotname> +``` + +### Clone a Snapshot +```bash +zfs clone <poolname>/<dataset>@<snapshot> <poolname>/<new-dataset> +``` + +## ๐ Sending & Receiving + +### Send Snapshot to File or Pipe +```bash +zfs send <snapshot> > file +zfs send -R <snapshot> | zfs receive <pool>/<dataset> +``` + +### Receive Snapshot +```bash +zfs receive <pool>/<dataset> +``` + +## ๐งฎ Useful Info & Tuning + +### Check Available Space +```bash +zfs list +``` + +### Set Quota or Reservation +```bash +zfs set quota=10G <dataset> +zfs set reservation=5G <dataset> +``` + +### Enable Compression +```bash +zfs set compression=lz4 <dataset> +``` + +### Enable Deduplication (use cautiously) +```bash +zfs set dedup=on <dataset> +``` + +--- + +> โ
**Tip**: Always test ZFS commands in a safe environment before using them on production systems! |