Skip to content

A guide for the evaluation of 42 School's Born2BeRoot project.

Notifications You must be signed in to change notification settings

mbraga-s/Born2BeRoot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Born2BeRoot

This 42 School's Born2BeRoot Project Guide was made using information obtained from several other similar guides and sources in order to better prepare my defence of this project. The questions answered below were obtained from this document (by Adrian Musso-Gonzalez).

In order to really grasp the information needed for this project, I recommend writing your own guide (feel free to use this one as a starting point to make your own).

Index

I. Guide

III. Sources and Further Reading

Guide

What is a Virtual Machine?

A Virtual Machine (VM) is an application that utilises software instead of a physical device to run programs and launch applications. It is hosted on a physical computer and allows the installation of an Operating System (OS) into it, running the OS as if it were installed on the physical computer directly. This allows, amongst other things, to test applications in a safe, separate environment.

How does a Virtual Machine work and what is its purpose?

Virtual Machines act as virtual devices that behave as physical devices - they utilise their own CPU, RAM, storage and network interface (this is possible because the VM is hosted on a physical machine). The software responsible for creating VMs and for isolating hardware resources (hardware virtualisation) for them to use is called hypervisor. This software is also responsible for implementing all necessary changes to allow the utilisation of those resources by VMs.

Hardware Virtualisation by MongoDB Image source: A Guide to Virtual Machines (VM) by MongoDB

Debian vs Rocky Linux

Both Debian and Rocky are Linux distributions even though they are distinct in many ways.

  • Debian is upstream of Ubuntu and uses the same package format and package manager as it does, .deb and apt respectively. It's a distribution known for having many software packages available and for supporting several system architectures.

  • Rocky Linux is a community enterprise downstream of RHEL (Red Hat Enterprise Linux) introduced as an alternative to the former CentOS. It uses a .rpm package format and yum as package manager. It is a stable distribution with regular security patches.

What's the difference between aptitude and APT?

Advanced Packaging Tool (APT) is a package management system designed for Debian for the dpkg utility. It is used to install or upgrade all dependencies so that .deb packages can be installed. It is a lower-level package manager and is restricted to command line only.

Aptitude is front-end to APT, adding a user interface to the functionality allowing the user to interactively search for a package and install/remove it.

All in all, Aptitude is a high-level package manager while APT is a low-level package manager which can be used by other high-level package managers. Aptitude has more functionalities than APT while integrating the functionality of APT.

What is AppArmor?

AppArmor is a Linux application security system that provides Mandatory Access Control (MAC) security. It allows system admin to restrict the actions that processes can perform. AppArmor confinement is provided by profiles, which can work in complain-more (AppArmor prohibits applications from performing restricted tasks) or in enforce-mode (AppArmor allows applications to do restricted tasks, but creates a registry entry to display the complaint).

Password policy and rules

As said by Pasquale Rossi in his guide:

For the password rules, we use the password quality checking library and there are two files the common-password file which sets the rules like upper and lower case characters, duplicate characters etc and the login.defs file which stores the password expiration rules (30 days etc). Sudo nano /etc/login.defs Sudo nano /etc/pam.d/common-password

What is LVM?

LVM stands for Logical Volume Manager. It is an abstraction layer between a storage device and a file system that allows flexibility when managing partitions. This permits expanding the storage of partitions (logical volumes) without worrying about the contiguous space available on each logical volume and allows moving different logical volumes between physical devices.

Uncomplicated Firewall (UFW)

UFW is an interface to modify the firewall of the device without compromising security. It's used to configure which ports to allow connections to and which ports to close. This is useful in conjunction with SSH, to set a specific port for it to work with.

SSH - How it works and what it means

SSH or Secure Shell is a network communication protocol that enables secure system administration and file transfers over insecure networks. It works by encrypting the secure connection between a client and a server. As said in the SSH website:

The protocol works in the client-server model, which means that the connection is established by the SSH client connecting to the SSH server. The SSH client drives the connection setup process and uses public key cryptography to verify the identity of the SSH server. After the setup phase the SSH protocol uses strong symmetric encryption and hashing algorithms to ensure the privacy and integrity of the data that is exchanged between the client and server.

Simplified setup flow of a secure shell connection by SSH Academy Image source: Simplified setup flow of a secure shell connection by SSH Academy

Above are mentioned two different encryption techniques - symmetric encryption and hashing.

Symmetric Encryption

This technique encompasses utilising a solitary key to encode the data being sent and the same key to decode this data at its objective. For this reason, this method is also referred to as shared key encryption. A common issue with this kind of trade is the underlying key trade. In the event that an outside figure manages to access the trade during this stage, they would be able to acquire the key and decrypt the data.

Symmetric Encryption by WallarmImage source: Symmetric Encryption by Wallarm

Hashing

Hashing is a technique that transforms data value into another value for the purpose of security. Hashing is used as one-way encryption and hashed values are very had to decode. It can be used in password validation, blockchain and message/fie integrity in order to prevent interference or tampering of information.

enter image description hereImage source: Hashing Algorithms by Wallarm

What is Cron?

The cron standard Unix utility can be used to schedule commands or scripts for automatic execution at specific intervals (for instance, at a specific time of day).

Sources and Further Reading

About

A guide for the evaluation of 42 School's Born2BeRoot project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages