Durcissement de la sécurité du système Kylin V10

  1. Installation de l'antivirus ClamAV

Pour installer ClamAV, téléchargez l'archive depuis le site offficiel ou GitHub. Par exemple, pour la version 1.1.2, utilisez la commande suivante :

rpm -ivh clamav-1.1.2.linux.x86_64.rpm

Ensuite, téléchargez les bases de virus depuis ClamAV et configurez un serveur Nginx pour les servir localement. Créez un fichier de configuration Nginx similaire à :

server {
    listen 80;
    server_name localhost;
    root /chemin/vers/miroir-clamav;
    index index.html;
    location / {
        autoindex on;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root html;
    }
}

Copiez les fichiers de configuration d'exemple dans /usr/local/etc/ et modifiez-les. Pour clamd.conf, définissez :

DatabaseDirectory /var/lib/clamav
TCPSocket 3310
TCPAddr 0.0.0.0

Pour freshclam.conf, ajustez les paramètres pour pointer vers votre miroir local :

DatabaseDirectory /var/lib/clamav
DatabaseOwner root
DatabaseMirror 192.168.1.100  # Adresse du miroir Nginx
ScriptedUpdates yes
PrivateMirror 192.168.1.100
Checks 12

Exécutez la mise à jour des bases de virus :

/usr/local/bin/freshclam

Démarrez le service ClamAV et lancez une analyse sur un répertoire cible :

clamd --config-file=/usr/local/etc/clamd.conf
/usr/local/bin/clamscan -r -i /chemin/vers/dossier/à/analyser
  1. Configuration du service rsyslog

Sur le serveur de journaux, activez l'écoute sur le port 514 et configurez des chemins de stockage spécifiques pour chaque client. Ajoutez les lignes suivantes au fichier de configuration rsyslog :

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
if ($fromhost-ip == '10.0.0.1') then /var/log/clients/10.0.0.1.log
& stop
if ($fromhost-ip == '10.0.0.2') then /var/log/clients/10.0.0.2.log
& stop

Sur les machines clientes, modifiez /etc/rsyslog.conf pour envoyer les journaux au serveur :

*.* @10.0.0.50:514
*.* @@10.0.0.50:514

Redémarrez le service avec systemctl restart rsyslog.

  1. Ajustement des politiques d'authentification utilisateur

Modifiez /etc/seucrity/limits.conf pour limiter les connexions simultanées :

* hard maxlogins 4
* hard maxsyslogins 2
root hard maxsyslogins 2
root hard maxlogins 2

Dans /etc/profile, ajoutez un délai d'inactivité et un masque de création de fichiers restrictif :

TMOUT=900
export TMOUT
umask 077

Activez les limites PAM pour SSH en modifiant /etc/pam.d/sshd.pam :

auth required pam_limits.so

Activez PAM dans la configuration SSH en définissant UsePAM yes dans /etc/ssh/sshd_config.

Configurez /etc/pam.d/login pour appliquer les limites :

account required pam_limits.so

Ajustez la politique des mots de passe dans /etc/login.defs : expiration après 90 jours, longueur minimale de 16 caractères.

Renforcez la complexité des mots de passe via /etc/security/pwquality.conf en définissant minlen=16 et des exigences pour les chiffres, majuscules, minuscules et caractères spéciaux.

Enfin, configurez SSH pour limiter les sessions et tentatives d'authentification dans /etc/ssh/sshd_config :

MaxSessions 2
MaxStartups 2:30:2
MaxAuthTries 3
UsePAM yes
  1. Mise en place de la séparation des rôles

Créez trois comptes pour la séparation des tâches : administrateur, opérateur et auditeur.

useradd adminsys
echo 'MotDePasse1' | passwd --stdin adminsys

useradd operateur
echo 'MotDePasse2' | passwd --stdin operateur

useradd auditeur
echo 'MotDePasse3' | passwd --stdin auditeur

Configurez les privilèges sudo dans /etc/sudoers pour chaque rôle. Par exemple, pour l'administrateur :

Cmnd_Alias LOGICIEL = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl restart
adminsys ALL=(root) LOGICIEL,SERVICES

Pour l'opérateur, autorisez les commandes réseau et de processus. Pour l'auditeur, donnez accès en lecture seule aux journaux :

auditeur ALL=(root) NOPASSWD:/usr/bin/cat /var/log/audit/*, /usr/bin/less /var/log/audit/*

Vérifiez la syntaxe avec visudo -c.

  1. Mise à niveau d'OpenSSH

Pour mettre à jour OpenSSH vers la version 9.9p1, installez d'abord telnet pour la récupération en cas de problème. Téléchargez et etxrayez l'archive depuis le site officiel.

tar xf openssh-9.9p1.tar.gz
cd openssh-9.9p1
./configure --prefix=/usr/local/openssh --with-zlib --with-pam

Si des dépendances comme openssl-devel sont manquantes, installez-les via un dépôt local. Créez un lien symbolique si nécessaire pour libcrypto. Compilez et installez :

make && make install

Sauvegardez les anciens binaires et copiez les nouveaux :

mv /usr/sbin/sshd /usr/sbin/sshd.old
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.old
cp /usr/local/openssh/bin/ssh /usr/bin/ssh

Redémarrez le service SSH pour appliquer les changements.

  1. Création d'un dépôt local pour les mises à jour

Montez l'image ISO du système dans un répertoire dédié, par exemple /mnt/iso_local. Créez un fichier de configuration yum dans /etc/yum.repos.d/ :

[depot_local]
name=Depot local
baseurl=file:///mnt/iso_local
gpgcheck=0
enabled=1

Nettoyez le cache yum et installez les paquets depuis ce dépôt.

Étiquettes: ClamAV rsyslog OpenSSH PAM Kylin V10

Publié le 8 juin à 04h52