Comment bien sécuriser son ordinateur sous Arch Linux

Parlons un peu de ma tâche et mon job sur le blog via mon entreprise https://kor51.org. Moi mon boulot c'est de sécuriser les ordinateurs, avec les meilleurs techniques, à la pointe de la sécurité informatique. D'ou que j'apprends dans ma formation à la cybersécurité à utiliser Arch Linux pour mes clients qui est l'outil de travail pour déployer la sécurité informatique. Allons y. N'hésitez pas à parler de moi, le bouche à oreille sur mes compétences.

On va faire un tour des bonnes pratiques "blue team" de la sécurité informatique sur son réseau et son ordinateur sous Arch Linux. Je conseil pour tous hacktivistes qui à besoin de sécuriser des données. Sécuriser et auditer un ordinateur sous Arch Linux implique plusieurs étapes couvrant la configuration du système, l'installation de logiciels de sécurité, la mise en place de pratiques sécurisées et l'utilisation d'outils d'audit.

Préambule

Commençons par la première faille et risque, le firmware des routeurs. Ils sont parfois vulnérables en particulier les routeurs des FAI et n'ont pas assez de sécurité tel que par-feu, double NAT, VPN ou WPA3 voir la nécessité de logs avancées, certain intègre une protection DDOS. De plus il faut et c'est nécessaire pour éviter le "deep packet inspection" et contourner la censure changer les DNS d'office des FAI par des DNS perso comme Cloudflare sur le routeur.

Quels modèle choisir d'entrée de gamme? Le Netgear Nighthawk RAX120 ou le ASUS RT-AX86U Pro. Tous les deux ont des services dédiés de la protection réseaux supplémentaire tel que Netgear Armor et AiProtection pro. Il faudra mettre le routeur en mode bridge derrière le routeur de la fibre du FAI ou en DMZ.

1. Mise à jour du système

Assurez-vous que votre système est toujours à jour avec les derniers correctifs de sécurité. Pour cela faite une veille CVE pour être au courant de vulnérabilité importante sur le système tel que le service cert-fr et Security Advisory d'Arch Linux.

sudo pacman -Syu

2. Configuration du pare-feu

Utilisez ufw (Uncomplicated Firewall) pour configurer facilement les règles de pare-feu.

sudo pacman -S ufw
sudo systemctl enable ufw
sudo systemctl start ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable

3. Contrôle des services démarrés au boot

Vérifiez et désactivez les services inutiles pour réduire la surface d'attaque.

systemctl list-unit-files --state=enabled
sudo systemctl disable nom_du_service

4. Configuration de SSH

Pour sécuriser l'accès SSH, modifiez /etc/ssh/sshd_config :

  • Changez le port par défaut.
  • Désactivez l'accès root.
  • Utilisez des clés SSH plutôt que des mots de passe.
sudo vim /etc/ssh/sshd_config
# Modifiez ou ajoutez les lignes suivantes :
Port 2222
PermitRootLogin no
PasswordAuthentication no
# Redémarrez le service SSH :
sudo systemctl restart sshd

5. Antivirus et Anti-malware

Bien que les virus soient moins fréquents sur Linux, il est toujours bon d'avoir des outils de détection comme clamAV. Je conseil d'apprendre à utiliser Yara et des règles pour détecter des malwares. Pour effectuer un scan YARA avec les règles du dépôt Elastic's protection artifacts, suivez ces étapes :

Commencer par cloner le dépot 'protections-artifacts' sur votre machine

git clone https://github.com/elastic/protections-artifacts.git
cd protections-artifacts

Assurez-vous que YARA est installé sur votre système Arch Linux :

sudo pacman -S yara

Le dépôt protections-artifacts contient un dossier rules avec les règles YARA. Vous pouvez compiler toutes les règles dans ce dossier.

yara -r rules/ /path/to/scan_directory
  • -r : Option pour récursivement scanner les sous-répertoires dans le répertoire rules.
  • /path/to/scan_directory : Répertoire à scanner pour les malwares.

Liste des répertoires clés à scanner avec Yara:

sudo yara -r /path/to/protections-artifacts/rules/ /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /lib /lib64 /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64 /etc /home /root /tmp /var/tmp /var/log /var/lib /var/run

Pensez à automatiser avec un script bash et des tâches périodiques Cron.

6. Analyse des vulnérabilités

Utilisez Lynis pour une analyse de sécurité approfondie.

sudo pacman -S lynis
sudo lynis audit system

7. Contrôle d’intégrité des fichiers

Utilisez AIDE (Advanced Intrusion Detection Environment) pour surveiller les modifications de fichiers.

sudo pacman -S aide
sudo aide --init
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
sudo aide --check

9. Audit des journaux

Surveillez régulièrement les journaux du système avec journalctl et logwatch.

sudo pacman -S logwatch
sudo logwatch --detail High --mailto votre-email --service All --range today

10. Audits des ports et processus

Utilisation de netstat

netstat permet de lister les connexions réseau et les ports ouverts.

sudo pacman -S net-tools
sudo netstat -tuln

Audit des Processus: Utilisation de htop

htop est une version améliorée et interactive de top.

sudo pacman -S htop
htop

11. Utilisation de SELinux ou AppArmor

Considérez l'utilisation de SELinux ou AppArmor pour renforcer la sécurité du système.

# Pour AppArmor :
sudo pacman -S apparmor
sudo systemctl enable apparmor
sudo systemctl start apparmor

12. Surveillance réseau et détection d'intrusions

Utilisez des outils comme Snort ou Suricata pour la détection d'intrusions réseau IDS

sudo pacman -S snort
sudo snort -c /etc/snort/snort.conf

13. Backups régulier

Effectué des sauvegardes régulièrement avec la stratégie 3-2-1. Deux copie local (un sur NAS + disque externe) + copie cloud (tel que le service hyperbackup C2 de Synology pour NAS). Un outil simple pour sauvegarder est deja-dup utilisant duplicity de façon incrémental et chiffré.

sudo pacman -S deja-dup

14. Détection et prévention des rootkits

sudo pacman -S rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

15. Renforcement du noyau

Utilisation de sysctl pour sécuriser le noyau

Ajoutez les lignes suivantes à /etc/sysctl.d/99-sysctl.conf :

# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0

# Enable TCP SYN cookies
net.ipv4.tcp_syncookies = 1

# Log martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0

# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1

Appliquez les modifications:

sudo sysctl -p /etc/sysctl.d/99-sysctl.conf

16. Utilisation de sandboxing

Utilisez Firejail pour exécuter des applications dans des environnements sandboxés :

sudo pacman -S firejail
# Exécutez une application avec Firejail
firejail firefox

17. Chiffrement des disques et volumes

Utilisez LUKS pour chiffrer vos partitions :

sudo pacman -S cryptsetup
sudo cryptsetup luksFormat /dev/sdXn
sudo cryptsetup open /dev/sdXn nom_du_volume

Et utiliser des containers chiffrés pour vos documents sensibles via Veracrypt

sudo pacman -S veracrypt

18. Utilisation de 'arch-audit'

arch-audit est un outil très utile pour sécuriser un système Arch Linux. Cet outil permet de vérifier si les paquets installés sur votre système sont affectés par des vulnérabilités connues. Il utilise la base de données de sécurité Arch Linux, ce qui le rend spécifiquement adapté pour les utilisateurs d'Arch Linux.

sudo pacman -S arch-audit
arch-audit

19. Analyse de vulnérabilité local avec Nmap et NSE Script vulnscan

Utiliser nmap pour effectuer une analyse de vulnérabilités (vulnscan) sur votre propre ordinateur. nmap est un outil puissant de scan de réseau et de sécurité qui peut être utilisé pour identifier les ports ouverts, les services en cours d'exécution, et les vulnérabilités potentielles.

sudo pacman -S nmap
sudo nmap -sS -sV --script vuln 127.0.0.1

Cette commande :

  • Effectue un scan SYN des ports ouverts.
  • Identifie les services en cours d'exécution et leurs versions.
  • Exécute une analyse de vulnérabilités à l'aide des scripts NSE.