GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer RKHunter sur CentOS 7

Dans cet article, nous allons apprendre à installer et à trouver des rootkits avec Rootkit Hunter, entre autres menaces, vous pourrez l'utiliser pour trouver des signes de certaines variantes du malware XOR.DDoS, qui est actuellement utilisé pour créer des botnets avec Systèmes Linux pour les attaques massives par déni de service distribué.

Table des matières

  • Installer
    • Télécharger
    • Correctif - (facultatif)
    • Installer
  • Configurer
    • tests
    • journaux
    • listes d'attente
    • divers
  • Exécuter
    • drapeaux
    • planification cron

Installer RKHunter

Téléchargez Rkhunter, essayez cURL pour le faire.

curl http://nbtelecom.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz -o rkhunter-1.4.2.tar.gz

Puis extrayez le contenu du package.

tar zxvf rkhunter-1.4.2.tar.gz

Entrez le répertoire tarball.

cd rkhunter-1.4.2

Correctif (facultatif)

Cette étape va par contre patcher le script rkhunter et sa base de données pour rechercher le malware XOR DDoS Linux. Ce correctif est basé sur le port et les fichiers trouvés dans les rapports d'Akamai, Avast et Malware Must Die.

Entrez dans le répertoire des fichiers sous le répertoire rkthunter.

cd files

Installez le correctif utilitaire avec yum.

yum install patch

Téléchargez maintenant le correctif.

curl http://sourceforge.net/p/rkhunter/patches/44/attachment/rkhunter.patch -o rkhunter.patch

Alternativement, vous pouvez copier et coller le contenu du fichier rkhunter.patch à partir d'ici.

--- rkhunter    2014-03-12 17:54:55.000000000 -0300
+++ rkhunter.new        2015-10-02 17:01:25.040000000 -0300
@@ -7797,6 +7797,19 @@
#

+       # XOR.DDoS
+       XORDDOS_FILES="/lib/udev/udev
+                      /lib/udev/debug
+                      /etc/cron.hourly/cron.sh
+                      /etc/cron.hourly/udev.sh
+                      /lib/libgcc4.so
+                      /var/run/udev.pid
+                      /var/run/sftp.pid"
+       XORDDOS_DIRS=
+       XORDDOS_KSYMS=
+
+
+
# 55808 Variant A
W55808A_FILES="/tmp/.../r
/tmp/.../a"
@@ -11907,6 +11920,13 @@
return
fi

+       # XOR.DDoS Rootkit
+       SCAN_ROOTKIT="XOR.DDoS - Rootkit"
+       SCAN_FILES=${XORDDOS_FILES}
+       SCAN_DIRS=${XORDDOS_DIRS}
+       SCAN_KSYMS=${XORDDOS_KSYMS}
+       scanrootkit
+

# 55808 Trojan - Variant A

--- backdoorports.dat   2010-11-13 20:41:19.000000000 -0300
+++ backdoorports.dat.new       2015-10-02 17:10:24.086000000 -0300
@@ -12,6 +12,7 @@
2001:Scalper:UDP:
2006:CB Rootkit or w00tkit Rootkit SSH server:TCP:
2128:MRK:TCP:
+3502:Possible XOR.DDoS Botnet Malware:TCP:
6666:Possible rogue IRC bot:TCP:
6667:Possible rogue IRC bot:TCP:
6668:Possible rogue IRC bot:TCP:

Appliquez le patch sur le rkhunter script et backdoors.dat fichiers avec la commande suivante.

patch < rkhunter.patch

Le patch est terminé, revenez maintenant au répertoire racine de l'archive pour continuer l'installation.

cd ..

Installer les fichiers

Exécutez le script d'installation avec les paramètres suivants pour l'installer sous /usr/local.

./installer.sh --install --layout /usr/local

Vous pouvez également utiliser les --exemples drapeau pour afficher plus d'informations et d'exemples de mise en page ou et le --show au lieu de l'option --install pour montrer ce qui doit être installé sur votre mise en page.

Installer Afficher (recommandé)

Le afficher et unhide-tcp les utilitaires rechercheront les processus et les ports cachés, bien que cela ne soit pas obligatoire, cela est fortement recommandé car la plupart des rootkits sophistiqués cacheront leur présence.

Tout d'abord, nous devons installer GNU Compiler Collection.

yum install gcc

Installez glibc-static, nécessaire pour créer les binaires entrelacés.

yum install glibc-static

Compilez unhide-linux.

gcc -Wall -O2 --static -pthread unhide-linux*.c unhide-output.c -o unhide-linux

Compilez unhide-tcp.

gcc -Wall -O2 --static unhide-tcp.c unhide-tcp-fast.c unhide-output.c  -o unhide-tcp

Installez les fichiers sous /usr/local/bin et créez un lien symbolique pour les afficher.

cp unhide-linux unhide-tcp /usr/local/bin && cd /usr/local/bin/ && ln -s unhide-linux unhide && cd -

Configurer

Dans cette section, je vais montrer certaines des options trouvées sur le rkhunter.conf fichier, les options sont séparées en groupe et leur description est simplifiée, lisez la description réelle sur le fichier et si vous n'êtes pas sûr, ignorez simplement car les options par défaut devraient suffire, la plupart d'entre elles sont commentées.

Nous vous encourageons à faire une première exécution avant de faire les modifications réelles sur le fichier de configuration, cela vous donnera une meilleure compréhension du fonctionnement de rkhunter et la possibilité d'identifier certains faux positifs à mettre en liste blanche sur le fichier de configuration.

Appelez simplement rkhunter avec le -c ou --vérifier paramètres.

rkhunter -c

Comme vous pouvez le voir sur l'image ci-dessus, il y aura des avertissements concernant des fichiers comme egrep ou ifup pour être des scripts au lieu de binaires ELF, mais ce sont des fichiers système légitimes et la plupart des options sur le fichier de configuration concernent la façon dont faire rkhunter ignorer ces occurrences.

Tests

Les options suivantes ENABLE_TESTS et DISABLE_TESTS définissent les types de testicules à créer, activent tous, puis désactivent ceux qui ne sont pas souhaités. C'est une bonne idée d'avoir au moins suspscan désactivé par défaut car il est sujet aux faux positifs.

ENABLE_TESTS=ALL

DISABLE_TESTS=suspscan

Secure Shell

Ce n'est jamais une bonne idée d'activer la connexion root sur les connexions SSH, utilisez plutôt su/sudo, sinon définissez-le sur yes.

ALLOW_SSH_ROOT_USER=no

La version 1 du protocole SSH est connue pour être non sécurisée, définissez-la sur 1 besoin d'ignorer cette vérification de protocole

ALLOW_SSH_PROT_V1=0

Ports réseau

Ports réseau autorisés au format protocol:port

PORT_WHITELIST

Définissez la liste blanche pour certains programmes avec la syntaxe path_to_binary:protocol:port_number

PORT_PATH_WHITELIST=/usr/sbin/squid:TCP:3801

Version de l'application

Cette option vous permet d'exécuter certaines applications obsolètes, ce n'est généralement pas recommandé et vous devez être sûr que l'application est sûre avant de la mettre sur cette liste.

APP_WHITELIST=openssl:0.9.7d gpg httpd:1.3.29

Renifleurs

Autoriser l'utilisation de renifleurs, des logiciels qui capturent les paquets réseau.

Autorisez le processus suivant à écouter le réseau, comme la ligne suivante.

ALLOWPROCLISTEN=/usr/sbin/snort-plain

Cela permettra à l'interface réseau répertoriée d'écouter le réseau en mode promiscuité.

ALLOWPROMISCIF=eth0

Fichiers

Vous devrez créer des exceptions aux tests effectués par rkhunter, les options suivantes vous permettent de contourner les tests sur des objets spécifiques, tels que des fichiers, des répertoires.

Autoriser certains répertoires cachés.

ALLOWHIDDENDIR=/etc/.java

Autoriser certains fichiers cachés.

ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5identity.5.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5login.5.gz

Cette liste blanche permettra à certains fichiers d'être des scripts au lieu d'un binaire ELF.

SCRIPTWHITELIST=/usr/sbin/ifdown
SCRIPTWHITELIST=/usr/sbin/ifup
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/ldd

Autoriser le fichier à être accessible en écriture par tout le monde.

WRITEWHITELIST=/usr/bin/date

Autoriser le fichier à avoir des changements d'attributs.

ATTRWHITELIST=/usr/bin/date

Autoriser le processus à interroger les fichiers supprimés.

ALLOWPROCDELFILE=/sbin/cardmgr

Options de journal

Cela définira dans quel fichier se connecter.

LOGFILE=/var/log/rkhunter.log

Définissez celui-ci sur 1 si vous souhaitez continuer à vous connecter sur le même fichier à chaque exécution de rkhunter, la valeur par défaut est 0, cela ajoutera '.old' au fichier journal et en créera un nouveau.

APPEND_LOG=0

Si vous souhaitez conserver le fichier journal en cas de problème, définissez l'option suivante sur 1.

COPY_LOG_ON_ERROR=0

Décommentez et définissez la fonction de journalisation si vous souhaitez utiliser syslog.

USE_SYSLOG=authpriv.warning

Par défaut, les éléments de la liste blanche rapporteront ok sur les tests, si vous souhaitez mettre en évidence les éléments de la liste blanche, vous devez définir cette option sur 1.

WHITELISTED_IS_WHITE=0

Options du système d'exploitation

Définissez l'option du gestionnaire de packages sur RPM sur les systèmes de type Red Hat, qui incluent CentOS.

PKGMGR=RPM

Activez cette option pour signaler un avertissement lorsque le système d'exploitation change de version/version.

WARN_ON_OS_CHANGE

Doit-on mettre à jour notre base de données lors d'un changement de système d'exploitation ?

UPDT_ON_OS_CHANGE

Où trouver le fichier de version du système d'exploitation, défini sur /etc/redhat-release sur CentOS.

OS_VERSION_FILE=/etc/redhat-release

Verrouillage

Si vous êtes susceptible d'avoir plus d'un rkhunter en cours d'exécution en même temps, vous devez activer cette option pour permettre l'utilisation de fichiers de verrouillage et éviter la corruption de la base de données.

USE_LOCKING=0

Si vous avez activé l'utilisation des verrous, vous devez définir un délai d'attente pour éviter les blocages.

LOCK_TIMEOUT

Doit-on avertir des sessions verrouillées ?

SHOW_LOCK_MSGS

Startup et super démon

Où se trouve le fichier de configuration inetd.

INETD_CONF_PATH=/etc/inetd.conf

Quels services sont autorisés à s'exécuter via l'inetd.

INETD_ALLOWED_SVC=/usr/sbin/rpc.metad /usr/sbin/rpc.metamhd

Fichier de configuration Xinetd.

XINETD_CONF_PATH=/etc/xinetd.conf

Chemins des fichiers de démarrage RC.

STARTUP_PATHS=/etc/rc.d /etc/rc.local

Comptes

Le fichier qui contient les mots de passe cachés.

PASSWORD_FILE=/etc/shadow

Autoriser les comptes d'utilisateurs autres que root avoir l'UID 0.

UID0_ACCOUNTS=toor rooty

Autoriser les comptes sans mot de passe.

PWDLESS_ACCOUNTS=abc

Syslog

Fichier de configuration Syslog.

SYSLOG_CONFIG_FILE=/etc/syslog.conf

Autoriser syslog à se connecter à distance.

ALLOW_SYSLOG_REMOTE_LOGGING=0

Rapports

Signaler le nombre d'avertissements ?

SHOW_SUMMARY_WARNINGS_NUMBER

Afficher le temps total nécessaire pour exécuter les tests ?

SHOW_SUMMARY_TIME

Pour recevoir des rapports par e-mail lorsque rkhunter trouve quelque chose, vous devez définir les options suivantes et disposer d'une application de messagerie.

Qui recevra l'e-mail.

[email protected]

Quelle commande a été utilisée pour envoyer un e-mail.

MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"

Exécuter rkhunter

OK, à ce stade, vous devriez déjà avoir exécuté rkhunter au moins une fois, jetez maintenant un coup d'œil à d'autres drapeaux qui peuvent être utilisés avec rkhunter.

Vérifiez vos modifications

Une fois la configuration terminée, exécutez rkhunter avec le -C ou --check-config drapeau pour vérifier toute erreur dans le fichier.

rkhunter -C

Mise à jour des propriétés

Maintenant, et chaque fois que vous modifiez le fichier de configuration, assurez-vous de mettre à jour la base de données des propriétés du fichier.

rkhunter --propupd

Signaler uniquement les avertissements.

rkhunter --rwo

Parfois, vous souhaitez exécuter uniquement un test spécifique, pour cela essayez --list tests pour obtenir les noms des tests disponibles, puis utilisez le --enable drapeau suivi du nom du test.

rkhunter --list tests

L'option suivante désactivera l'invite d'appui sur les touches.

rkhunter --sk

Pour exécuter rkhunter sur un cronjob, utilisez le --cronjob flag, créez le fichier exécutable /etc/cron.daily/rkhunter.sh avec le contenu suivant pour effectuer une vérification quotidienne

#!/bin/sh

( /usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update

/usr/local/bin/rkhunter --cronjob -c ) >> /dev/null 2>&1

Conclusion

Cela devrait vous permettre de démarrer avec rkhunter, vous offrant une couche de sécurité supplémentaire, mais cela ne suffira pas si vous négligez les principes de sécurité de base ainsi que si vous mettez tous les avertissements que vous rencontrez sur des listes blanches au lieu d'atténuer les problèmes. Gardez également à l'esprit que rkhunter vous aidera à empêcher vos machines de devenir membres d'un botnet Linux mais ne protégera pas votre site contre la cible d'une campagne DDoS. Merci d'avoir lu !


Cent OS
  1. Comment installer PHP 7, 7.2 et 7.3 sur CentOS 7

  2. Comment installer Java 11 et 12 sur CentOS 7

  3. Comment installer Wine 4.0 sur CentOS 7

  4. Comment installer Vim 8.2 sur CentOS 7

  5. Comment installer VirtualBox sur CentOS 7

Comment installer Ruby sur CentOS 7

Comment installer PostgreSQL sur CentOS 7

Comment installer Go sur CentOS 7

Comment installer R sur CentOS 7

Comment installer R sur CentOS 8

Comment installer Rootkit Hunter sur CentOS 6