Born2beRoot is a system administration project from the 42 curriculum. This project introduces virtualization and server setup using Debian or Rocky Linux while enforcing strict security and system configuration rules.
- π₯οΈ Virtual machine setup using VirtualBox (or UTM on macOS M1+).
- β Server installation without a graphical interface.
- π LVM partitioning with at least two encrypted partitions.
- π SSH service running on port 4242 with restricted root login.
- π₯ Firewall configuration using UFW (or Firewalld for Rocky Linux).
- π‘οΈ Strict password policy enforcement.
- π οΈ Secure sudo configuration with logging and custom security rules.
- π Automated monitoring script displaying system information every 10 minutes.
- Install Debian (recommended) or Rocky Linux as the OS.
- Ensure SELinux (Rocky) or AppArmor (Debian) is active.
- Create a hostname using your 42 login followed by '42'.
- Configure at least two encrypted LVM partitions.
- Enable and configure the firewall (UFW/Firewalld) with only port 4242 open.
- Prevent root SSH login.
- Create a user with your 42 login.
- Add the user to
user42andsudogroups. - Enforce strong password policies:
- π Expiry every 30 days
- β³ Minimum age of 2 days before password change
β οΈ 7-day expiration warning- π Minimum 10 characters, mix of uppercase, lowercase, and numbers
- π« No more than 3 consecutive identical characters
- β Cannot contain username
- Secure
sudousage:- π« Limit authentication attempts to 3
- βοΈ Custom error message for incorrect sudo password
- π Log sudo actions to
/var/log/sudo/ - π Enable TTY mode
- π Restrict sudo executable paths
- A
monitoring.shscript must run every 10 minutes and display:- ποΈ System architecture and kernel version
- π₯οΈ Number of physical and virtual CPUs
- πΎ RAM and disk usage
- π CPU load
- β° Last reboot time
- π₯οΈ LVM usage
- π Active connections and users
- π IPv4 and MAC address
- π’ Number of sudo commands executed
- π½ Additional partitioning setup.
- π Deployment of a WordPress website with Lighttpd, MariaDB.
- π§ Setup of a useful custom service (excluding Apache/Nginx).
- π Submit a
signature.txtfile containing the SHA-1 signature of the virtual disk. - β Ensure the signature matches during the defense.
- π« Do not include the virtual machine in the repository.