Arch Install Linux Zen Kernel + LUKS2 + LVM + BTRFS + systemd-boot + hyprland + Fish shell

Mise à jours en 07/2023 de mon installation d'Arch Linux avec quelques nouveautés en particulier la prise en charge de snapshot avec BTRFS, modification container luks2, ajout kernel linux-zen, bureau hyprland.

Voila sur quoi je travail sur ma nouvelle installation d'Arch Linux en mode dev dans une VM sous Proxmox, avant de déployer sur mon thinkpad Helix. Tout fonctionne pour l'instant jusqu'à l'installation du bureau hyprland.

Ce qui est une grosse mise à jour de ma machine de production actuel > code l'ancienne config sous LUKS + LVM + EXT4 + GRUB + XFCE + Zsh

Inclus:

  • Editeur de texte Neovim avec l'autocompletion,ctags du code en C/C++ et Python
  • Shell Fish
  • Synchro Cloud MEGA
  • VPN Proton
  • L'aide à l'écriture Manuskript
  • Second cerveau Obsidian
  • VScodium
  • Calcul numérique avec les notebook Jupyter en Python
  • Calcul Formel Sagemath
  • Recherche en vulnérabilité et le repo Blackarch
  • Interpréteur Ruby Pry via RVM
  • Launcher fzf
  • Machine virtuelle KVM et Virt-manager
  • Gestion du par-feu ufw
  • Navigateur Firefox
  • Gestion de bibliothèque ebook avec calibre et bibliographie avec Zotero
  • Editeur LaTex texmaker
  • Editeur markdown Ghostwriter

Pour qui c'est destiné?

  • Les hackers
  • Ingénieurs et dévéloppeurs informatique
  • Chercheurs
  • Ecrivains

Peut-on faire du jeu-video?

Installer Steam est possible, ou Minecraft, vous serez limité en ressource graphique.

yay -S minecraft-launcher

Stack:

  • OS: Arch Linux
  • Chiffrement: dmcrypt-LUKS
  • Bootloader: systemd-boot
  • Système de fichier: BTRFS
  • Shell: Fish
  • Windows Manager: hyprland
  • Terminal: Kitty
  • Prompt: Starship.rs
  • File Manager: Broot (term)
  • Launcher: fzf (term)
  • Navigation rapide directory: z (term)
  • Historique intelligent: mcFly (term)
  • Corriger et fixer des erreurs, typos de la commande précédente: thefuck (term)
  • Moderne replacement pour ls: exa (term)
  • cat clone avec coloration syntaxique et git integration : bat (term)
  • Disque monitoring: duf (term)
  • Outil de téléchargement supportant HTTP/HTTPS, FTP, SFTP, BitTorrent, Metalink: aria2 (term)
  • Recherche récursive dans le directory à base de pattern de regex: ripgrep (term)
  • grep-like optimisé pour la recherche dans le code source: ack3 (term)
  • Interactive monitoring des ressources, gestion des processus: htop (term)
  • Rapide et facile, outil de partage de fichier: transfer.sh (term)
  • Virtualisation: Virt-Manager QEMU/KVM
  • Lecteur audio: CMUS (term)
  • Lecteur video: Vlc
  • Spotify TUI client: spotify-tui (term)
  • Recherche et regarder des vidéos sur Youtube: ytfzf (term)
  • Télécharger de l'audio et des vidéos sur Youtube + d'autres sites: yt-dlp (term)
  • Simple iptv player avec fuzzy finder: IPTV (term)
  • Utilitaire pour rechercher et télécharger des liens torrents: tordl (term)
  • IRC: Weechat (term)
  • Editeur de texte: Neovim (term)
  • Contrôle de version: Git (term)
  • Commande Git TUI: lazygit (term)
  • Extension ligne de commande Git intégrant Github: hub (term)
  • Interface de monitoring de container Docker: ctop (term)
  • Management des containers Dockers et services: dockly (term)
  • HTTP Client pour les API: HTTPie (term)
  • Rapide prise de note: terminal velocity (term)
  • SSH + VPN connexion: xiringuito (term)
  • User-friendly détails et statistiques de sockets TUI: neoss (term)
  • Analyseur de packet réseau: wireshark-cli (term)
  • Force TCP connection avec un proxy utilisant TOR, SOCK, HTTP: proxychains (term)
  • Outil de diagnostique réseau: mtr (term)
  • TUI Client pour Network Manager pour configurer le réseau: nmtui (term)
  • Notepad: Mousepad
  • Calculatrice: Galculator
  • P2P Torrent: Deluge
  • Navigateur internet: Firefox
  • Documentation langage: Zeal
  • Gestionnaire de mot de passe: Keepass
  • Client Serveur FTP: Filezilla
  • Carte Mentale: Freemind
  • Editeur d'image: Gimp
  • EDI Java: Eclipse
  • Compilateur: GCC
  • Interpréteur Ruby: IRB
  • Notebook Python: Jupyter
  • Container chiffré: Veracrypt
  • Outil d'écrivain: Manuskript
  • Calcul formel: SageMath
  • Par-feu: Gufw
  • Sauvegarde: Deja-dup
  • Cloud: MEGA
  • VPN: Proton
  • Gestion bibliographique: Zotéro
  • Base de connaissance: Obsidian
  • Wiki local: Zim
  • Editeur LaTex: Texmaker
  • Office: Cryptpad
  • Flowchart & Diagram: draw.io
  • Documentation langage en ligne: https://devdocs.io/
  • Social Bookmarking: Pearltrees
  • Explication détaillée d'une ligne de commande: explainshell
  • Construit, test et debug des expressions régulières: Regex101
  • Gestion communautaire de man pages: tldr (term)
  • Réponse instantannée à propos du code: howdoi (term)
  • Construction communautaire de docs et cheatsheet, tous langages et frameworks: wat
  • Outil interactif cheatsheet navi
  • Recherche dans stack overflow quand une erreur ou une exception est levé dans le code à la compilation: rebound
  • Utiliser chatGPT via l'API d'OpenAI: chatGPT-cli & gpt-cli (term)
  • Surveiller le marché des cryptomonnaies: cointop (term)
  • Maths calculateur, calcul symbolique, matrice, équation: Qalculate (term)
  • Sauvegarde chiffrée à distance (cloud service, NAS, etc): rclone (term)
  • Enregistrement de session terminal: asciinema (term)
  • Un terminal façon Matrix: cmatrix (term)
  • Generateur de bannière ASCII Art: figlet (term)
  • Information sur le système: neofetch (term)
  • Recherche les informations de l'architecture du CPU: cpufetch (term)
  • Partage de terminal: duckly
  • Encodage de gifs: gifski

Listes d'applications spécifique à la recherche de vulnérabilité:

  • Exploration réseau et audit de sécurité: nmap
  • Collection de classe Python pour travailler avec les protocoles réseaux: impacket
  • Outil d'analyse de protocoles réseaux: wireshark
  • Capturer et analyser les packets sur le réseau: tcpdump
  • Outil de récupération de mot de passe: hashcat
  • Sécurité audit de mot de passe: john
  • Surfer anonymement via TOR ou un serveur proxy: proxychains-ng
  • Base de donnée d'exploits exploitdb
  • Client HTTP CLI httpie
  • Framework d'audit de sécurité, développement d'exploits: metasploit
  • Front-end GUI pour metasploit, aide à l'utilisation armitage
  • Bind outil d'administration DNS: bind-tools
  • Framework de retro-ingénierie et analyse de fichier binaire r2: radare2
  • Automatisation détection et exploitation injection SQL: sqlmap
  • Wordpress security scanner: wpscan
  • Outil de copy/coller clipboard en CLI: xclip
  • Navigateur exploitation framework: beef
  • Outils d'ingénierie sociale: set
  • DDoS service outils: ufonet
  • Traffic capture implementation d'attaque de type man-in-the-middle: ettercap
  • Web Application Attack and Audit Framework: w3af
  • Vulnerability Assessment Scanner: openvas
  • Command and control server et agent post-exploitation HTTP/2 Merlin

nota: désactiver dans le bios le secure boot pour booter en USB. Vérifier le démarrage UEFI.

pre-check configuration

Charger le clavier français en tapant "loqdkeys fr"

$ loadkeys fr

Verifier boot mode

$ ls /sys/firmware/efi/efivars    (Si le répertoire existe, l'ordinateur supporte l'efi)

Connexion au réseau

Vérifier le nom du reseau et si celui-ci est up

$ ip addr show

vérifier la connexion internet

$ ping -c 2 google.com

Connexion au wifi

$ iwctl

affichage du prompt [IWD]#

[iwd]# device list
[iwd]# station device scan
[iwd]# station device get-networks
[iwd]# station device connect SSID

MAJ

$ sudo mount -o rw,remount /
$ reflector --verbose --country 'France' -l 50 -p https --sort rate --save /etc/pacman.d/mirrorlist
$ pacman -Syu

Check les disques

Vérifier le nom de votre disque dur ou SSD (ie sda ou NVME)

lsblk

Partitionnement

Destruction des données sécurisées du disque

$ shred -v -n 1 /dev/sda

Utilitaire de partitionnement

$ gdisk /dev/sda

Commande gdisk:

  1. o (écrire table de partition GPT)
  2. n (nouvelle partition), default, 512MB, ef00
  3. n (nouvelle partition), default, default, 8300
  4. w (écrire et quitter)

Mise en place de la table de partition:

/dev/sda1 EFI ef00 512MB
/dev/sda2 Linux 8300

Formatage de la partition EFI

$ mkfs.vfat -F32 -n BOOT /dev/sda1

Chiffrement

$ cryptsetup --type luks2 --cipher aes-xts-plain64 --key-size 512 --pbkdf argon2id --use-random --verify-passphrase luksFormat /dev/sda2

Ouverture du container chiffré:

$ cryptsetup luksOpen /dev/sda2 cryptlvm

Systèmes de fichiers

# Initialize un groupe physique de volume LVM
$ pvcreate --dataalignment 4M /dev/mapper/cryptlvm

# Initialise un groupe virtuel attaché au groupe physique
$ vgcreate vg /dev/mapper/cryptlvm

# Initialise une partition nommée 'arch' dans le volume group 'vg'
$ lvcreate -l +100%FREE vg -n arch

# Affiche les volumes logiques créés
$ lvdisplay

Formater la partition root

$ mkfs.btrfs -KL ARCH /dev/mapper/vg-arch

Monter les partitions:

$ mount /dev/mapper/vg-arch /mnt

Créer les subvolumes

$ btrfs subvolume create /mnt/@
$ btrfs subvolume create /mnt/@home
$ btrfs subvolume create /mnt/@_snapshot
$ brtfs subvolume list /mnt

Démonter la partition

$ cd /
$ umount /mnt

Remonter le subvolume @

$ mount -o noatime,space_cache=v2,compress=zstd,ssd,subvol=@ /dev/mapper/vg-arch /mnt

Créer les dossiers boot et home

$ mkdir -p /mnt/{home,_snapshot}
$ lsblk -l

Monter le subvolume @home

$ mount -o noatime,space_cache=v2,compress=zstd,ssd,subvol=@home /dev/mapper/vg-arch /mnt/home

Monter le subvolume @_snapshot

$ mount -o noatime,space_cache=v2,compress=zstd,ssd,subvol=@_snapshot /dev/mapper/vg-arch /mnt/_snapshot

Créer et Monter la partition EFI

$ mkdir -p /mnt/boot
$ mount /dev/sda1 /mnt/boot

Système de base

$ pacstrap /mnt base base-devel linux-zen linux-firmware btrfs-progs sudo git linux-tools lvm2 cryptsetup vim intel-ucode fwupd

Générer fstab

$ genfstab -L -p /mnt >> /mnt/etc/fstab

Chrooter l'environnement

$ arch-chroot /mnt

Nom de la machine

$ echo archbox > /etc/hostname

Edit /etc/hosts:

127.0.0.1       localhost
::1                 localhost
127.0.1.1       archbox.localdomain archbox

Configuration de local paramétrage des langues

$ vim /etc/locale.gen
en_US.UTF-8 UTF-8
fr_FR.UTF-8 UTF-8

Génération du fichier

$ locale-gen

Configuration des langues par defaut

$ vim /etc/locale.conf
LANG="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"

Exporter le langage actuel pour création dans initramfs

$ export LANG=fr_FR.UTF-8

Console, fonts, clavier azerty

$ vim /etc/vconsole.conf
KEYMAP=fr-pc
FONT=
FONT_MAP=

Assigne le fuseau horaire

$ ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime 
$ hwclock --systohc

Editer mkinitcpio

$ vim /etc/mkinitcpio.conf
    HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt sd-lvm2 btrfs filesystems)
    Si VM virtIO MODULES=(virtio virtio_blk virtio_pci virtio_net)

Générer initramfs

$ mkinitcpio -p linux-zen

Mot de passe super-administrateur root

$ passwd

Installation de paquets supplémentaires:

$ pacman - S networkmanager network-manager-applet dialog wpa_supplicant reflector linux-zen-headers avahi xdg-user-dirs xdg-utils gvfs nfs-utils inetutils dnsutils cups hplip bash-completion openssh rsync acpi acpi_call tlp ipset ufw sof-firmware nss-mdns acpid ntfs-3g terminus-font nano man-db man-pages zip p7zip unzip tar htop tmux wget pciutils lshw syslog-ng ntp 

Configuration de NTP:

$ vim /etc/ntp.conf
server 0.fr.pool.ntp.org iburst
server 1.fr.pool.ntp.org iburst
server 2.fr.pool.ntp.org iburst
server 3.fr.pool.ntp.org iburst

Driver carte graphique, openGL, touchpad

$ pacman -S xf86-video-intel xf86-input-libinput mesa

Installation de QEMU/KVM pour la virtualisation

$ pacman -S virt-manager qemu qemu-arch-extra edk2-ovmf bridge-utils dnsmasq vde2 openbsd-netcat

Configuration de systemd-boot

$ bootctl --esp=/boot install

Configuration générale du chargeur

$ vim /boot/loader/loader.conf
default arch.conf
editor no
timeout 4
console-mode max

Récupérez le champs UUID= de la partition LUKS

$ blkid | grep /dev/sda2

Configuration d’une entrée du menu de démarrage.

$ vim /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux-zen
initrd <cpu>-ucode.img
initrd /initramfs-linux-zen.img
options rd.luks.uuid=<UUID> root=/dev/mapper/vg-arch rootflags=subvol=@ rw

Activer les services systemD

$ systemctl enable NetworkManager
$ systemctl enable cups
$ systemctl enable sshd
$ systemctl enable avahi-daemon
$ systemctl enable tlp
$ systemctl enable reflector.timer
$ systemctl enable libvirtd
$ systemctl enable acpid
$ systemctl enable ufw
$ systemctl enable syslog-ng@default
$ systemctl enable ntpd

Créer un utilisateur

$ useradd -mG storage,wheel,power -s /bin/bash trivial
$ passwd trivial
$ usermod -aG libvirt trivial

Ajout dans sudoers de l'utilisateur

$ echo "trivial ALL=(ALL) ALL" >> /etc/sudoers.d/trivial

Démonter et reboot

$ exit
$ umount -R /mnt
$ reboot

Post-installation

Check ip adresse

$ ip a

Connexion au wifi/ethernet via Networkmanager TUI

$ nmtui

Synchronisation repository MAJ + reflector

Activer multilib et communauty:

$ sudo vim /etc/pacman.conf
[community]
Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist
$ sudo reflector --verbose --country 'France' -l 50 -p https --sort rate --save /etc/pacman.d/mirrorlist

$ sudo pacman -Syu

Installation AUR Helper

$ mkdir sources 
$ cd sources 
$ git clone https://aur.archlinux.org/yay.git 
$ cd yay 
$ makepkg -si 

Installation de timeshift et zramd

$ yay -S timeshift-bin zramd
$ sudo systemctl enable zramd.service
$ sudo systemctl start zramd.service

Vérification que la swap est active:

$ lsblk -l

Configuration de hyprland

Post-installation:

Prérequis avoir base-devel, git et wget

Listing des packages et dépendances:

$ yay -S hyprland waybar-hyprland eww-wayland mako swaybg \
         kitty fish starship z fzf mclfy neovim broot \
         pipewire wireplumber \
         cliphist grimblast-git ffmpeg wf-recorder viewnior \
         polkit-kde-agent xdg-desktop-portal-hyprland-git \
         qt5-wayland qt6-wayland \
         wlogout swaylock-effects ly \
         webcord weechat fractal \
         cmus spotify-tui vlc ytfzf-git mpv haxor-news \
         cmatrix neofetch \
         ripgrep exa bat duf thefuck aria2 ack transfer.sh \
         lazygit hub ctop dockly httpie \
         xiringuito neoss mtr \
         howdoi tldr navi rebound \
         python python-pip python-virtualenv \
         firefox obsidian mousepad \
         adobe-source-han-sans-otc-fonts ttf-droid ttf-dejavu noto-fonts noto-fonts-emoji nerd-fonts-meta \
         gtk-cyberpunk-neon-theme-git \
         fcitx-im \
         udiskie \
         cointop libqalculate rclone asciinema figlet cpufetch gifski \

Installation de youtube-dl:

$ pip install yt-dlp

Installation de terminal velocity

$ pip install terminal_velocity

Installation IPTV:

$ sudo wget https://raw.githubusercontent.com/shahin8r/iptv/master/iptv -qO /usr/local/bin/iptv && sudo chmod +x /usr/local/bin/iptv

### Run playlist:

$ iptv https://raw.githubusercontent.com/Free-TV/IPTV/master/playlist.m3u8

Configurer Tordl:

$ git clone https://github.com/X0R0X/cli-torrent-dl.git
$ cd ~/cli-torrent-dl
$ ./setup.sh

# configurer client torrent (deluge)
$ nano ~/.config/torrentdl/config.json

Autostart authentification agent:

$ exec-once=/usr/lib/polkit-kde-authentication-agent-1

Activer le service au démarrage ly:

$ sudo systemctl enable ly.service

Configurer fish comme shell par défault:

$ echo /bin/fish | sudo tee -a /etc/shells
$ chsh -s /bin/fish

Editer fichier de configuration:

$ nvim ~/.config/hypr/hyprland.conf

Lancer automatiquement le montage USB, etc:

exec-once = udiskie &

Clavier configuration ajouter:

device:nom-clavier {
    kb_layout=fr,us
}

Commande pour switcher entre les claviers:

$ hyprctl switchxkblayout nom-clavier fr

NOTA: Pour activer la prise en charge Pinyin, utiliser fcitx.

Codec Multimédia

Nous allons installer l’ensemble des greffons gstreamer qui est le framework utilisé par de nombreux environnements de bureau pour gérer le multimedia.

$ sudo pacman -S gst-plugins-{base,good,bad,ugly} gst-libav

Extension essentiel sur Firefox:

  • DuckDuckGo Privacy Essentials
  • Smart HTTPS
  • Disconnect
  • U-Block Origin
  • Privacy Badger
$ reboot

Configuration des applications

Application pour développeur et designer

$ sudo pacman -S keepass gimp vlc filezilla inkscape deluge deluge-gtk galculator veracrypt kazam calibre

Embedded (microcontroller, AVR, etc...) - Pour utiliser Arduino et PlatformIO, installer et configurer:

  • arduino-cli
  • arduino-ide-bin (AUR)
  • platformio (AUR)

Documentation des langages

$ yay -S zeal

NOTA: Problème de lenteur de compilation de qt5-webkit

Installation des outils de développeurs C/C++, Clang, Ruby

$ sudo pacman -S llvm clang nodejs npm ctags

RVM Ruby

$ sudo gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

$ \curl -sSL https://get.rvm.io | bash -s stable --ruby --gems=pry

### Verifier l'installation dans le terminal 
$ source /etc/profile.d/rvm.sh

### Install Gems
$ gem install <gems>

### Integration avec fish

$ curl -L --create-dirs -o ~/.config/fish/functions/rvm.fish https://raw.github.com/lunks/fish-nuggets/master/functions/rvm.fish

$ echo "rvm default" >> ~/.config/fish/config.fish

Install Wat, outil communautaire documentation:

$ npm install -g wat

Installation de Jedi autocompletion pour python

$ pip install jedi

Editeur de texte VSCodium

$ yay - S vscodium-bin

Installation de Java Eclipse

$ sudo pacman -S jdk-openjdk
$ yay -S eclipse-java

Outil de mind mapping (java)

$ yay -S freemind

Configuration de Neovim

Installation du gestionnaire de plugin "vim-plug" cf: https://github.com/junegunn/vim-plug

$ sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

init.vim

" Neovim configuration file init.vim
" author: Anthony J.R Le Goff legoff.ant@gmail.com
" date: 16th april 2022

:set number
:set autoindent
:set tabstop=4
:set shiftwidth=4
:set smarttab
:set softtabstop=4
":set mouse=a

call plug#begin() 

Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-surround'
Plug 'scrooloose/nerdtree'
Plug 'scrooloose/syntastic'
Plug 'vim-airline/vim-airline'
Plug 'tomasr/molokai'
Plug 'raimondi/delimitmate'
Plug 'kien/ctrlp.vim'
Plug 'ryanoasis/vim-devicons'
Plug 'majutsushi/tagbar'
Plug 'neoclide/coc.nvim', {'branch': 'release'}

set encoding=UTF-8

call plug#end()

:set statusline+=%#warningmsg#
:set statusline+=%{SyntasticStatuslineFlag()}
:set statusline+=%*

:let g:syntastic_always_populate_loc_list = 1
:let g:syntastic_auto_loc_list = 1
:let g:syntastic_check_on_open = 1
:let g:syntastic_check_on_wq = 0

nnoremap <C-f> :NERDTreeFocus<CR>
nnoremap <C-n> :NERDTree<CR>
nnoremap <C-t> :NERDTreeToggle<CR>

nmap <C-r> :TagbarToggle<CR>
nmap <C-p> :CtrlP<CR>

:colorscheme molokai

let g:NERDTreeDirArrowExpandable="+"
let g:NERDTreeDirArrowCollapsible="~"

" air-line
let g:airline_powerline_fonts = 1


" :CocInstall coc-python
" :CocInstall coc-clangd

Outils de Hacking, pentesting, bug bounty, CTF

Installation de dépot BlackArch >> https://blackarch.org/

$ curl -O https://blackarch.org/strap.sh
$ curl https://blackarch.org/checksums/strap
$ sha1sum strap.sh # doit etre egal a 5ea40d49ecd14c2e024deecf90605426db97ea0c (valeur du fichier strap)
$ sudo chmod +x strap.sh
$ sudo ./strap.sh

Mise à jour des paquets:

sudo pacman -Syyu

Vous pouvez installer tous les outils Blackarch via cette commande (recommandé):

$ sudo pacman -S blackarch

SINON Installer les outils un par un:

Installation des outils basics

$ sudo pacman -S nmap impacket wireshark-qt tcpdump hashcat john proxychains-ng exploitdb httpie metasploit armitage bind-tools radare2 sqlmap wpscan xclip beef set ufonet ettercap w3af merlin-server

L'installation d'OpenVAS est un peu plus complexe, voir la page: https://wiki.archlinux.org/title/OpenVAS

Configuration WordLists

$ mkdir -p /usr/share/wordlists
$ wget -q https://github.com/danielmiessler/SecLists/raw/master/Passwords/Leaked-Databases/rockyou.txt.tar.gz -O /usr/share/wordlists/rockyou.txt.tar.gz
$ wget -q https://github.com/danielmiessler/SecLists/raw/master/Discovery/Web-Content/common.txt -O /usr/share/wordlists/common.txt

Outils pour écrivain et chercheur

$ sudo pacman -S ghostwriter pdfjs pandoc texmaker manuskript libreoffice-still libreoffice-still-fr hunspell hunspell-fr

Extension Grammalecte et gestion de bibliographie

$ yay -S zotero libreoffice-extension-grammalecte-fr

Calcul numérique et scientifique (remplace Matlab)

$ python -m pip install jupyter scipy numpy matplotlib pandas ipython

Calcul Formel

$ sudo pacman -S sagemath

Sauvegarde

Installation du client SAMBA

$ sudo pacman -S smbclient gvfs-smb

Redémarrer le PC pour prendre en compte la découverte du réseau local.

GUI: Ensuite rechercher votre serveur dans thunar en tapant:

smb://192.168.X.X

Terminal: Monter le serveur SMB:

List SMB shares folders

$ smbclient -L //myServerIpAdress

Créer le point de montage:

sudo mkdir -p /media/NAS

Commande de montage

$  mount -t smbfs -W workgroup //user:password@IPSERVER/shares /media/NAS

OU

$ gio mount smb://<server>/<share>

Autres méthodes 8 ways to mount smbfs samba file system in linux

Penser à éditer `fstab' pour ajouter le serveur SMB en permanence. Ex:

$ vim /etc/fstab
//192.168.0.1/share1 /media/NAS smbfs rw,user,username=trivial,password=xylBJRS8 0 0
$  sudo mount -a

Pour mettre en place les sauvegardes, le plus simple est d'utiliser deja-dup qui est une interface graphique de duplicity. La sauvegarde est chiffré et incrémental sur une période d'une semaine. Il existe d'autre méthode de sauvegarde tel que avec Borg-backup ou bien rync.

$ sudo pacman -S deja-dup

Par-feu ufw

Activation des logs (très utile pour la suite) :

$ sudo ufw logging on

Rejet par défaut des connexions entrantes :

$ sudo ufw default deny incoming

Autorisation des connexions sortantes :

$ sudo ufw default allow outgoing

Recherchement des règles du pare-feu pour finir :

$ sudo ufw reload

Services Cloud

Vous trouverez plusieurs services de cloud gratuit tels que qcloud, Google drive, Dropbox. Nous allons installer MEGA qui est plus sécurisé ques les autres offres de cloud, le service de l'entrepreneur Kim Dotcom a évolué sur les principes d'anonymat et de vie privée sur les données qui sont stocké sur son serveur depuis l'affaire de megaupload.

Aller sur le site https://mega.io/desktop

Sélectionner Arch Linux et télécharger l'application.

Pour installer sélectionner le package via:

$ sudo pacman -U <package>

Service VPN Proton

Configurer un VPN. Installer le metapackage sur AUR:

$ yay -S protonvpn

CLI (Command Line Interface)

Login:

$ protonvpn-cli login <your_protonmail>

Connect to the VPN:

$ protonvpn-cli connect

Pour créer un compte protonVPN: https://protonvpn.com/free-vpn/linux/

Pour voir le status de la connexion:

$ protonvpn-cli status

Vérifier que votre adresse IP pointe sur le VPN: https://www.whatismyip.com/fr/