Back to École 42 Projects

Born2beroot

EN FR
Your browser does not support SVG

Visual representation of the Born2beroot project components and their relationships

Project Essence

Born2beroot is a system administration project that challenges you to create a secure virtual machine from scratch. Unlike most École 42 projects that focus on coding, this project immerses you in the world of system administration, security policies, and server management.

The Core Challenge

Create a virtual machine with a strict set of security requirements, including disk partitioning with LVM, SSH configuration, firewall setup, and user/group management—all without a graphical interface.

This project tests your ability to understand and implement system security concepts while documenting your process for a rigorous evaluation.

Born2beroot pushes you to think like a system administrator, considering:

  • How to structure a system for security and efficiency
  • How to implement and enforce security policies
  • How to monitor and maintain a server environment
  • How to document technical configurations for knowledge transfer

Why This Matters in the Real World

The skills you develop in Born2beroot have direct and significant applications in today's technology landscape:

  • Cloud Infrastructure Security: Companies like AWS, Google Cloud, and Azure apply the same security principles you'll learn to protect millions of virtual machines running critical applications worldwide.
  • Compliance Requirements: Industries like healthcare (HIPAA), finance (PCI-DSS), and government (FISMA) mandate strict security controls similar to what you'll implement, with severe penalties for non-compliance.
  • DevSecOps Practices: Modern development teams integrate security throughout the development lifecycle, requiring developers to understand system hardening, access controls, and monitoring.
  • Zero Trust Architecture: Organizations are moving toward security models that verify every access request regardless of source, using the same principles of least privilege and defense in depth you'll apply.
  • Infrastructure as Code: Tools like Terraform, Ansible, and Puppet automate the creation of secure infrastructure, requiring deep understanding of the underlying security configurations.

According to Cybersecurity Ventures, there will be 3.5 million unfilled cybersecurity positions globally by 2025. The system hardening and security monitoring skills you develop in this project are foundational to these high-demand roles.

100/100
Project Score
Debian/CentOS
Operating Systems
LVM
Partitioning
Advanced
Security Level

Mental Models

To approach Born2beroot effectively, consider these mental models that will help you conceptualize the system administration challenges:

The Fortress Model

Think of your virtual machine as a medieval fortress with multiple layers of defense. Each security measure—from partitioning to password policies—represents a wall or moat that potential attackers must overcome.

This model helps you understand defense in depth: if one security measure fails, others are in place to protect your system.

The Gatekeeper Model

Visualize your system's services (SSH, firewall, sudo) as gatekeepers that control access to your system's resources. Each gatekeeper has specific rules about who can enter, when, and what they can do once inside.

This model helps you implement the principle of least privilege: users and processes should have only the minimum access necessary to perform their functions.

The Living Organism Model

See your server as a living organism that needs constant monitoring and maintenance. Like a doctor checking vital signs, you must regularly check system health, resource usage, and security logs.

This model emphasizes the importance of monitoring scripts, log analysis, and proactive maintenance to keep your system healthy and secure.

These mental models will help you approach the project not just as a series of technical tasks, but as an integrated system design challenge that requires holistic thinking.

Key Concepts

Before diving into implementation, make sure you understand these fundamental concepts:

Historical Context: The Evolution of System Security

The security practices you'll implement in Born2beroot have evolved through decades of computing history:

  • Early UNIX Security (1970s): The original UNIX systems introduced the fundamental concepts of users, groups, and permissions that still form the backbone of Linux security today. However, early systems had minimal network security as they operated in trusted environments.
  • Internet Era Challenges (1990s): As systems became connected to the internet, firewalls and SSH emerged as critical security tools. The Morris Worm (1988) demonstrated the need for systematic security approaches beyond simple access controls.
  • Virtualization Revolution (2000s): VMware and later VirtualBox transformed how systems were deployed, enabling better isolation and security through virtualization. This led to the concept of security through compartmentalization.
  • DevOps Transformation (2010s): The rise of cloud computing and infrastructure as code changed how systems are secured, with emphasis on automated, repeatable security configurations and continuous monitoring.
  • Zero Trust Era (Present): Modern security approaches assume breach and verify every access request, combining the traditional security controls you'll implement with advanced monitoring, behavioral analysis, and least-privilege access.

By implementing these security measures in Born2beroot, you're connecting with this rich history and gaining insights into how system security has evolved to address increasingly sophisticated threats.

1. Virtualization

Virtualization allows you to run multiple operating systems on a single physical machine:

  • Virtual Machine: A software emulation of a physical computer
  • Hypervisor: Software that creates and manages virtual machines (VirtualBox, VMware)
  • VM Image: A file that contains the virtual machine's state and can be backed up or transferred

2. Logical Volume Management (LVM)

LVM provides flexible disk space management:

  • Physical Volumes (PV): Physical storage devices or partitions
  • Volume Groups (VG): Collections of physical volumes that form a storage pool
  • Logical Volumes (LV): Virtual partitions created from volume groups
  • Benefits: Resize volumes without downtime, snapshot capabilities, storage abstraction

3. Security Policies

Security policies define how your system protects resources:

  • Password Policy: Rules for password complexity, expiration, and history
  • User Management: Creating users, assigning permissions, and managing groups
  • Sudo: Controlled elevation of privileges for specific commands
  • SSH: Secure remote access with key-based authentication

4. Firewall Management

Firewalls control network traffic to and from your server:

  • UFW (Uncomplicated Firewall): A user-friendly interface for managing iptables
  • Port: A communication endpoint that services listen on
  • Rules: Specifications for allowing or denying traffic based on criteria
  • Default Policies: The default action for traffic not matching any rule

5. System Monitoring

Monitoring helps you understand system health and detect issues:

  • Cron: A time-based job scheduler for running scripts at regular intervals
  • System Metrics: CPU usage, memory consumption, disk space, network activity
  • Logs: Records of system events and service activities

Progress Checkpoints: Test Your Understanding

Before proceeding with your implementation, make sure you can answer these questions:

Virtualization and System Setup

  1. What is the difference between a Type 1 and Type 2 hypervisor, and which one are you using for this project?
  2. Why might you choose to create multiple virtual disks instead of one large disk for your VM?
  3. What happens if you allocate too little RAM to your virtual machine? How would you recognize and address this issue?

LVM and Partitioning

  1. What is the advantage of using LVM over traditional partitioning schemes?
  2. How would you extend a logical volume if you needed more space? What commands would you use?
  3. Why is it important to separate certain directories (like /var, /home) into their own partitions?

Security Configuration

  1. What is the purpose of disabling SSH root login, and how does this enhance security?
  2. How does a strong password policy contribute to system security, and what are its potential drawbacks?
  3. What is the principle of least privilege, and how is it implemented through sudo configuration?

If you can confidently answer these questions, you have a solid foundation for implementing Born2beroot. If not, revisit the relevant concepts before proceeding.

Thinking Framework

Here's a structured approach to help you think through the Born2beroot project:

1. Planning Your System

Before installation, consider these questions:

  • Which distribution (Debian or CentOS) aligns better with your learning goals?
  • How will you structure your partitions to meet the requirements while maintaining flexibility?
  • What services will your server need to run, and what ports should be open?
  • How will you document your configuration decisions for the evaluation?

Comparative Approaches: Debian vs. CentOS

The choice between Debian and CentOS represents different philosophies in system administration and security:

Aspect Debian CentOS
Package Management
  • APT (apt, apt-get)
  • DEB package format
  • More frequent updates
  • YUM/DNF
  • RPM package format
  • Emphasis on stability over frequency
Security Philosophy
  • Faster security patches
  • AppArmor for application isolation
  • More user-friendly security tools
  • Conservative, thoroughly tested updates
  • SELinux for mandatory access control
  • Enterprise-focused security approach
System Configuration
  • Configuration in /etc with Debian-specific locations
  • systemd for service management
  • More beginner-friendly defaults
  • Red Hat-style configuration structure
  • systemd for service management
  • Enterprise-oriented defaults
Industry Relevance
  • Popular in web hosting
  • Common in cloud deployments
  • Strong in developer environments
  • Dominant in enterprise environments
  • Common in financial and government sectors
  • Similar to Red Hat Enterprise Linux used in large organizations

Neither choice is inherently better—each represents different priorities and approaches to system administration. Your choice gives you insight into different philosophies of managing Linux systems.

Questions to Guide Your Planning

  • What are the security implications of each choice you make during installation?
  • How can you structure your partitions to isolate critical system components?
  • What is the minimum set of packages needed to fulfill the requirements?
  • How will you recover if something goes wrong during setup?
  • What documentation will be most helpful during the evaluation defense?

2. Implementation Strategy

A methodical approach to implementation:

Foundation First

Begin with a clean installation and proper partitioning:

  • Install the base OS with minimal packages
  • Configure LVM partitioning according to requirements
  • Set up basic networking and hostname
  • Document each step with screenshots and notes

Security Layers

Add security measures one layer at a time:

  • Configure SSH with key-based authentication
  • Set up the firewall with appropriate rules
  • Implement password policies and sudo configuration
  • Test each security measure thoroughly

Monitoring & Maintenance

Establish ongoing system management:

  • Create the monitoring script with required metrics
  • Set up cron to run the script at the specified interval
  • Implement log rotation and management
  • Document maintenance procedures

3. Testing Your Configuration

Verify your implementation meets all requirements:

  • Test each security measure from both inside and outside the VM
  • Verify that your monitoring script displays accurate information
  • Confirm that password policies are enforced when creating new users
  • Check that the firewall correctly blocks unauthorized access
  • Validate that sudo logs all commands as required

4. Preparing for Evaluation

Get ready to defend your choices:

  • Create a comprehensive explanation of your partition scheme
  • Be prepared to explain each security measure and its purpose
  • Practice demonstrating how to add a user, change passwords, and check group memberships
  • Understand how to modify firewall rules and check service status
  • Know how to interpret the output of your monitoring script

Common Pitfalls

Be aware of these common challenges when working on Born2beroot:

1. Installation Issues

  • Partition Sizing: Creating partitions that are too small for their intended use
  • Boot Configuration: Incorrect bootloader installation or configuration
  • Network Setup: Misconfiguring network interfaces, preventing connectivity
  • Package Selection: Installing unnecessary packages that increase attack surface

2. Security Configuration Errors

  • SSH Lockout: Disabling password authentication before setting up key-based access
  • Firewall Rules: Creating rules that block essential services or allow unauthorized access
  • Sudo Permissions: Granting too many or too few privileges to users
  • Password Policies: Setting policies that are difficult to implement or enforce

3. Monitoring and Maintenance Challenges

  • Script Errors: Creating monitoring scripts with syntax errors or incorrect calculations
  • Cron Configuration: Incorrect cron syntax leading to scripts not running as expected
  • Resource Consumption: Scripts that consume excessive resources or produce too much output
  • Log Management: Failing to rotate logs, leading to disk space issues

Evaluation Preparation Tips

To avoid issues during evaluation:

  • Take detailed notes during installation and configuration
  • Create a VM snapshot before making significant changes
  • Test all required commands and procedures before evaluation
  • Prepare clear explanations for each configuration choice
  • Practice explaining technical concepts in simple terms
  • Be ready to demonstrate how to check and modify configurations

Debugging Scenarios

Here are some common issues you might encounter and how to approach debugging them:

Scenario 1: SSH Connection Failures

Symptoms: Unable to connect to your VM via SSH, connection refused or timed out.

Debugging Approach:

  • Verify SSH service is running: sudo systemctl status ssh
  • Check firewall rules: sudo ufw status to ensure port 4242 is allowed
  • Verify SSH configuration in /etc/ssh/sshd_config (port, authentication methods)
  • Check network configuration: ip addr to confirm IP address
  • Test local connection: ssh username@localhost -p 4242 from within the VM

Scenario 2: LVM Issues

Symptoms: Disk space problems, unable to create or extend logical volumes.

Debugging Approach:

  • Check current LVM status: sudo lvdisplay and sudo vgdisplay
  • Verify available space: df -h and sudo pvs
  • Check for volume group fragmentation: sudo vgdisplay -v
  • Examine system logs: sudo journalctl | grep lvm
  • For resize issues, ensure the filesystem is also resized: sudo resize2fs /dev/mapper/volume-path

Scenario 3: Monitoring Script Not Working

Symptoms: Monitoring script doesn't run on schedule or displays incorrect information.

Debugging Approach:

  • Check script permissions: ls -l /path/to/script.sh (should be executable)
  • Verify cron configuration: sudo crontab -l
  • Test script manually: sudo /path/to/script.sh
  • Check for syntax errors: bash -n /path/to/script.sh
  • Examine system logs for cron issues: sudo grep CRON /var/log/syslog
  • Ensure the script has proper shebang line: #!/bin/bash

Learning Outcomes

Completing Born2beroot will equip you with valuable skills and knowledge that extend far beyond the project itself:

Technical Proficiency

You'll develop expertise in:

  • Linux system administration fundamentals
  • Logical Volume Management (LVM)
  • Security policy implementation
  • Firewall configuration and management
  • System monitoring and maintenance

Security Mindset

You'll cultivate a security-first approach:

  • Defense in depth strategies
  • Principle of least privilege application
  • Authentication and authorization concepts
  • System hardening techniques
  • Security policy design and enforcement

Professional Skills

You'll gain workplace-relevant abilities:

  • Technical documentation creation
  • System design and planning
  • Problem-solving in complex environments
  • Command-line proficiency
  • Technical communication skills

Beyond the Project: Career Impact

The skills you develop in Born2beroot have direct applications in professional settings:

DevOps
Understanding system administration is crucial for implementing and maintaining infrastructure as code
Cybersecurity
The security principles you learn form the foundation of cybersecurity practices in enterprise environments
Cloud Computing
Virtual machine management skills translate directly to cloud infrastructure provisioning and security
System Administration
The Linux skills you develop are in high demand for managing servers and infrastructure

Reflection Questions

  • How has this project changed your understanding of operating system security?
  • What aspects of system administration did you find most challenging, and how did you overcome them?
  • How would you approach this project differently if you were to start over?
  • What security principles from this project could you apply to your other programming projects?
  • How might the skills you've developed translate to cloud-based environments?

A Foundation for Infrastructure Management

Born2beroot may seem disconnected from coding projects, but it provides essential context for understanding how your code will eventually run in production environments. The security mindset and system administration skills you develop here will influence how you design, implement, and deploy software throughout your career.

In an age where infrastructure as code and DevOps practices are becoming standard, the line between development and operations continues to blur. This project gives you a valuable perspective on the operational side of technology that will make you a more well-rounded and effective developer.

Going Further: Resources for Deeper Understanding

If you want to explore the concepts in Born2beroot more deeply, here are some valuable resources:

Books and Documentation

  • "Linux Administration Handbook" by Evi Nemeth et al. - Comprehensive guide to Linux system administration
  • "The Practice of System and Network Administration" by Thomas A. Limoncelli - Best practices for system administration
  • "Linux Security Cookbook" by Daniel J. Barrett - Practical security recipes for Linux systems

Online Resources

  • DigitalOcean Community Tutorials - Excellent step-by-step guides for various Linux administration tasks
  • Linux Documentation Project - Comprehensive documentation on all aspects of Linux
  • Center for Internet Security (CIS) Benchmarks - Industry-standard security configuration guides

Advanced Topics to Explore

  • Infrastructure as Code - Learn tools like Terraform, Ansible, or Puppet to automate infrastructure provisioning
  • Container Technologies - Explore Docker and Kubernetes as modern alternatives to traditional VMs
  • Advanced Security Hardening - Study SELinux/AppArmor in depth, intrusion detection systems, and security auditing tools

These resources will help you build on the foundation you've established in Born2beroot and develop more advanced system administration and security skills.