# CONFIG OS



# Config template

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/jDEPVkEUFCGAZI6w-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/jDEPVkEUFCGAZI6w-image.png)

```bash
Cat /etc/ntp/step-tickers
 
Timedatectl status
Timedatectl set-ntp true
hwclock
Iptables -F
Rm -fr  .bash_history
 
sudo useradd -M -s /sbin/nologin ansible
sudo -u ansible ssh-keygen -t rsa
```

# Hiearchy file system

/bin : binaire   
/lib : librairie de programme   
/boot : fichier du système démarage   
/usr :   
/usr/local :   
/opt : fichier optionnel   
/etc : editable text configuration   
/srv : service héberger par d'autre système, http, ftp, cvs, DB   
/var : donnée type variable, log mail ect   
/home : donnée aux utilisateurs spécifique

/root : donné aux système   
/tmp : donnée temporaire, pour pouvoir créer un programme dans le système   
/mnt : monter tous les différents de système de fichier temporaire   
/media : monter les média amovible '(clé usb, cd-rom, ID périphérique)'   
/dev : Fichier virtuel, pas besoin de partitions

btrfs : système de fichier plus moderne + révolutionnaire + snapshot

ext : extend file system

reseirfs : premier système de fichier sur linux plus accessible aujd

jfs : système de fichier constante et super éléver + gestionnaire de base de donnée

xfs : système de fichier constante et super élever particulièrement sur les entrées et sorties // favorisation pour les grosses hiérarchie à grosse données; meta donnée lente

fat: file allocation table

ntfs : new technologie file system

hfs : héarchie file système

udf : permet de gérer la création, suppression et modification des fichiers de disque optiques

dumpe2fs : récupérer des informations

tune2fs : modifier certain paramètre lié aux information récupérer de deumpe2fs

debugfs : relis tune2fs + dumpe2fs + autres outils = débugger un système de fichier

xfs\_metadump : permet de copié les métadonnées du système de fichier vers un fichier   
   
vim /etc/cups/cupsd.conf : configuration du pool cups : Imprimante

  
syslogd = log application

klogd = log pour le kernel k

Tous les messages d'erreur a fouiller : Authpriv, cron, kern, lpr, mail, new, syslog, user, uucp

/var/log

Logger = permet d'enregistrer des information dans le /var/log/syslog

/etc/init.d/atd "stop"or "start" :pour mettre en actif nos tache planifié

# Firewall

# Commande

<div id="bkmrk-">  
</div>- <span style="color: rgb(45, 194, 107);">**`iptables`** : Interface de bas niveau, nécessite une gestion manuelle et convient mieux aux systèmes plus anciens ou aux configurations spécifiques.</span>
- <span style="color: rgb(45, 194, 107);">**`firewalld`** : Plus haut niveau, offre une interface dynamique et facile à gérer via des zones.</span>

la commande suivante permet de lister les ports ouverts et les services en écoute sur un système, en utilisant netstat :

```bash
netstat -tulnp
```

lister les règles/filtrage:

```bash
Iptables -L -n -v
```

```bash
Firewall-cmd --list-all-zones
```

Pour ajouter une nouvelle règle de pare-feu à la zone par défaut, vous pouvez utiliser les commandes suivante :

```bash
firewall-cmd --permanent --add-rule type=tcp protocol=80 port=80
```

```bash
 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.242.0.0/27" port protocol="tcp" port="22" accept'
 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.242.0.0/27" port protocol="tcp" port="389" accept'
 firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.242.0.0/27" port protocol="tcp" port="636" accept'
```

Pour appliquer les modifications à votre pare-feu, vous pouvez utiliser la commande suivante :

```bash
firewall-cmd --reload
```

# Créer un environnement virtuel python

Créer un environnement virtual sur sa machine pour ne pas toucher au versionning des paquets directement de votre OS.

Création d'un environnement virtuel Python

```bash
mkvirtualenv -p /usr/bin/python3 le_nom_de_ton_env
```

  
Action: Cette commande crée un nouvel environnement virtuel Python nommé "le\_nom\_de\_ton\_env". L'option -p /usr/bin/python3 spécifie que cet environnement utilisera Python 3 comme interpréteur.

```bash
TMP=/var/tmp pip3 install --upgrade pip
```

<span style="color: rgb(230, 126, 35);">  
</span>  
Action: Cette commande met à jour le gestionnaire de paquets pip dans l'environnement virtuel nouvellement créé.  
L'option TMP=/var/tmp spécifie un répertoire temporaire pour effectuer l'installation.

Activation et utilisation de l'environnement virtuel

```bash
workon le_nom_de_ton_env
```

<span style="color: rgb(230, 126, 35);">  
</span>  
Action: Cette commande active l'environnement virtuel que vous avez créé précédemment. Une fois activé, les commandes pip s'exécuteront dans le contexte de cet environnement isolé, vous pouvez exemple installer un nouvelle version d'ansible sur votre environnement virtuel

# Créer SERVER local REPOSITORY

Yum install httpd –y

  
Mettre en place un disque avec bcp de GB selon les repo que vous allez synchroniser, Exemple ( le repos Appstream = prend 120G) [![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/RUEZtrpA84T3v9ir-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/RUEZtrpA84T3v9ir-image.png)  
  
Ouverture des ports firewall-cmd 80/tcp &amp; le service http :[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/6OmrelUrjuKjs6id-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/6OmrelUrjuKjs6id-image.png)

  
Aller dans <span style="color: rgb(45, 194, 107);">/etc/httpd/conf.d/httpd.conf </span>et changer le server name par l'adresse IP de votre server sur lequel vous pourrez acceder depuis internet via cette ip   
[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/30fcO7tuarW1N21Q-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/30fcO7tuarW1N21Q-image.png)

N'oublier pas de mettre le port sur le httpd.conf vous pouvez désormais sortir du fichier de conf et activer le service :  
<span style="color: rgb(230, 126, 35);">systemctl start httpd.service  
</span>[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/ThIhKSVgrCtpy1Z6-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/ThIhKSVgrCtpy1Z6-image.png)

Commande pour sync des repos d'internet sur le site web interne dans le chemin /var/www/html/......

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/6TeKycclsjtpcjrc-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/6TeKycclsjtpcjrc-image.png)[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/CkMEvXmxCf7FtPB4-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/CkMEvXmxCf7FtPB4-image.png)[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/xkErBWO7VBiKQlkC-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/xkErBWO7VBiKQlkC-image.png)

  
Apres le reposync vous avez normalement quelque chose comme ca sur votre path : /var/www/html/[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/9AHuFOlQc2dFs6jd-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/9AHuFOlQc2dFs6jd-image.png)

  
Vous pouvez désormais accéder sur une page web sur vos range ip local de votre server de repos :

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/qvDB7pMlICoalKN8-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/qvDB7pMlICoalKN8-image.png)

```yaml
Repos Important : 
---
- name: ums
  hosts: L
  tasks:
    - name: Create ums8.repo file
      ansible.builtin.copy:
        dest: /etc/yum.repos.d/ums8.repo
        content: |
          [UMS8OB]
          name=UMS8 epel
          baseurl=http://ip/epel/
          enabled=yes
          gpgcheck=no
```

# Logrotate

\# cat /etc/logrotate.d/prod

```shell
/production/www/clients/prod.log{
        daily
        missingok
        compress
        delaycompress
        notifempty
        copytruncate
        create 644 nom nom
}

/production/www/clients/dev.log{
        daily
        missingok
        compress
        delaycompress
        notifempty
        copytruncate
        create 644 nom nom
}
```

  
Pour lancer logrotate:  
logrotate -f /etc/logrotate.d/(ta conf)

# NMTUI

\#nmtui  
   
Activate a connection  
Set system hostname  
   
Edit connection  
Wired connection  
Check device mac  
   
Ipv4 configuration  
Manual &gt; show  
Never use this network for ipm  
   
Ipv4 configuration  
Manual &gt; show  
Automatically connect  
   
Deactivate et reactivate pour appliquer les changements

# Ajout Key SSh

```bash
#!/bin/bash
if [ "$#" -ne 2 ]; then
    echo "Usage: $0 <username> <remote_host>"
    exit 1
fi
 
username="$1"
remote_host="$2"
 
### COPY
If ssh-copy-id "$username@$remote_host" 2>/dev/null; then
    cat ~/.ssh/id_rsa.pub | ssh $username@$remote_host 'mkdir -p ~/.ssh && cat  >> ~/.ssh/authorized_keys'
    echo " COPY OK to host : $remote_host"
    echo "you can Test with   >>>   ssh $username@remote_host"
else
    echo "Failed to copy public key on host : $remote_host "
    exit 1
fi
```

# Ajout Proxy

Il faut mettre le script sous /etc/profile.d/proxy.sh

```bash
PROXY_URL=http://adresseip:port/
export http_proxy="$PROXY_URL"
export https_proxy="$PROXY_URL"
export ftp_proxy="$PROXY_URL"
export no_proxy="127.0.0.1,localhost"
```

   
Puis il faut exécuter :

```bash
source /etc/profile.d/proxy.sh
```