From 5b42119ba01836952091d435fb71457364913c9b Mon Sep 17 00:00:00 2001 From: xpetit <32063953+xpetit@users.noreply.github.com> Date: Wed, 24 Feb 2021 07:51:25 +0100 Subject: [PATCH] Adding sysadmin summary --- subjects/sys/README.md | 31 +++++++++++++++++++++++++++++++ subjects/sys/sys.jpg | Bin 0 -> 23294 bytes 2 files changed, 31 insertions(+) create mode 100644 subjects/sys/README.md create mode 100644 subjects/sys/sys.jpg diff --git a/subjects/sys/README.md b/subjects/sys/README.md new file mode 100644 index 00000000..1bb4c42e --- /dev/null +++ b/subjects/sys/README.md @@ -0,0 +1,31 @@ +# `sys` + +![sys](sys.jpg) + +> _Ex Machina_ (film) + +--- + +| Name | Description | Skills | Done | +| ------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------- | --------------- | +| `linux` | Introduction and VirtualBox installation/basic usage. | OS, virtualization | subject + audit | +| `login` | Connect to console (using different virtual terminals), basic commands and usage of the console. | OS | subject | +| `update-vm` | Fetch, update and use our training virtual machine (introduction to snapshots and cloning). | virtualization | script | +| `connect` | Fix a conflict of IP address, configure DHCP & static IP address. | OS, network | | +| `remote` | Remotely connect to a pseudo-terminal (configure firewall, change SSH port and listening address). | OS, network, security | WIP | +| `upgrade` | Free disk space (caches, logs & temporary files) to upgrade the OS. | OS | | +| `scan` | Discover machines and services (scan ARP, `nmap`), brute-force portals. | OS, network, security | WIP | +| `reboot` | Learn how to recognize a blocked system and reboot it (hard reset, magic SysRq key). | OS | | +| `ram` | Fix a program being OOM (enlarge swap and system memory, compare performance). | OS, virtualization | | +| `benchmark` | Learn how to benchmark a program | OS, disk | WIP | +| `boot` | Fix the various boot stages of a broken system (including a misconfigured application). | OS, network | WIP | +| `process` | Find processes by port, name, file, resource usage. Find their configuration file path. | OS | WIP | +| `monitoring` | Monitor the system, by hand and with an application. | OS | WIP | +| `network` | Build a network by hand, DNS, `arp`, `ip.` | network | | +| `modem` | Configure a system as a router/firewall, making it similar to a residential gateway. | network | | +| `censorship` | Bypass or mitigate various censorship methods (DNS, IP, DPI, MITM, shadowban, non-indexed content, deplatforming). | network, security | | +| `virus` | Remove a stealth virus (multiple signatures and infection vectors). Reinstall safely. | OS | | +| `data` | Data recovery, fix corrupted file system, obtain minimal disk image size. | OS, disk | | +| `nas` | Make your own NAS with RAID, Samba, NFS, iSCSI, ClamAV | OS, network, disk | WIP | +| `performance` | Boost the performance of a service tweaking scheduling CPU pinning, `[io]nice`, RAID 0, NIC bonding. | OS, CPU, network, disk | | +| `sys` | (Bonus) Recreate `debian-01` virtual machine. | All of the above | WIP | diff --git a/subjects/sys/sys.jpg b/subjects/sys/sys.jpg new file mode 100644 index 0000000000000000000000000000000000000000..90d2040ab6fb36bed1eaf714363f9835b5a6a8d5 GIT binary patch literal 23294 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 literal 0 HcmV?d00001