Category Archives: Linux

  • 0

Install NordVPN on Ubuntu

Category:Linux,Network,Réseaux,Sécurité,Uncategorized,WAN Tags : 

1. Get the NordVPN repo setup .deb package

You can the file here. ( https://nordvpn.com/download/linux/ )

2. Install the NordVPN repository

cd Downloads
sudo apt-get install ./nordvpn-release_1.0.0_all.deb


3. Update the apt-get package list

sudo apt-get update

4. Install NordVPN

sudo apt-get install nordvpn

5. Connect to Nordvpn Server

Nordvpn Connect

You will be asked to type your Email/Username and Password.

Enable Wiregard

By default, NordVPN for Linux runs on the OpenVPN protocol. Follow these steps to switch to NordLynx:

Update your app to the latest version.

nordvpn set technology NordLynx

Reverse to OpenVPN

nordvpn set technology OpenVPN


  • 0

How do I remove old kernel in Ubuntu – Graphically ?

Category:Linux Tags : 

An alternative is Synaptic (Install withsudo apt install synaptic)

Take care !

You have to know wich kernel are you running with uname -r

Synaptic though will not attempt to verify what you are trying to remove… you could inadvertently delete your newest kernel – or even delete all of your kernels via this tool leaving you with an unbootable Ubuntu!.

Recommendation

My recommendation is to keep at least two or preferably three kernels including the latest. The reason for the recommendation is that you will have at least one/two other kernels to boot with, if for what-ever reason the latest kernel you are unable to boot with or introducing a regressed capability such as broken wireless.

Search for linux-image, right-click a kernel and choose complete removal and finally click the Apply button to delete the kernel.

Repeat the search but this time for linux-header – you can delete the associated headers for the kernel image chosen previously.

Synaptic Package Manager

Repeat the search but this time for linux-header – you can delete the associated headers for the kernel image chosen previously.

Maria Perez


  • 0

How To Upgrade Ubuntu To 20.04 LTS Focal Fossa

Category:Linux Tags : 

The latest Ubuntu release, 20.04, marks an opportunity for both LTS users and people on the previous 19.10 release to update Ubuntu and take advantage of the latest features.

Software Requirements

An existing Ubuntu 18.04 LTS or 19.10 install with root privileges.

Run your Ubuntu Update

Before you do anything, make sure that your system is already up-to-date.

$ sudo apt update
$ sudo apt upgrade
$ sudo apt dist-upgrade

This will help to ensure that the difference between packages is as small as possible.

$ sudo apt autoremove

How to Upgrade Ubuntu

Ubuntu have developed their own automatic way of upgrading between releases. It essentially scripts the traditional Debian approach. This way, you can set it up to upgrade and walk away. Ubuntu will handle the rest.

Please Note: Upgrades from 19.10 will not be enabled until a few days after 20.04’s release. Upgrades from 18.04 LTS will not be enabled until a few days after the 20.04.1 release expected in late July 2020. There are no offline upgrade options for Ubuntu Desktop and Ubuntu Server.

$ sudo apt install update-manager-core

When that finishes, run the Ubuntu upgrade utility.

$ sudo do-release-upgrade

If you’re doing this too soon, it will tell you that there is No new release found. In that case, and at your own risk, add the -d flag at the end of the command to force the upgrade. For more information read the below “No new release found” section.

$ sudo do-release-upgrade -d

Then it can takes at least 1 hour to complete…

Maria Perez


  • -

Installer Clamav sur CentOS 7.6

Category:Antivirus,Linux,Sécurité Tags : 

Note

ClamAV (« Clam AntiVirus »), est un logiciel antivirus pour systèmes UNIX et Linux. Il est souvent utilisé avec les serveurs de courriels pour filtrer les virus transportés par ce vecteur. Les virus ciblés sont majoritairement des virus s’attaquant au système d’exploitation Microsoft Windows, et non pas aux systèmes sur lesquels ClamAV s’installe. Toutefois, UNIX et Linux (Tout comme MacOS…) sont vulnérables à quelques dizaines de souches de virus, et il est important de protéger également les machines fonctionnant dans ces environnements, sans compter sur le fait que si ces serveurs abritent des dossiers utilisateurs, on va y trouver tout et n’importe quoi…Le 1 mars 2017, ClamAV affichait 5 902 241 signatures

Installer ClamAV

Pour installer ClamAV sur CENTOS, nous utilisons le repostory EPEL (Extra Packages for Enterprise Linux).

Installer EPEL

yum install epel-release

Installer les composants CLAMAV

yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

Configurer SELinux pour ClamAV

Si l’on souhaiter utiliser ClamAV avec CentOS et SELinux activé, il faut rajouter une configuration particulière afin que ClamAV puisse accéder à tous les fichiers du disque, et mettre à jour ses fichiers de définition. Permettre « antivirus_can_scan_system »:

setsebool -P antivirus_can_scan_system 1

Configuration du daemon Clam

Créer un lien symbolique sur le chemin de fichier par défaut

ln -s /etc/clamd.d/scan.conf /etc/clamd.conf

Editer le fichier de configuration installé par le package clamd-scanner:

nano /etc/clamd.d/scan.conf

Commenter la ligne

#Example

Dé-commenter la ligne LocalSocket pour l’activer

LocalSocket /var/run/clamd.scan/clamd.sock

Sauver et quitter l’éditeur de texte

Démarrer le service et l’activer au démarrage

Démarrer le service

systemctl start clamd@scan

Et l’activer au démarrage…

systemctl enable clamd@scan

Redémarrer la machine. Pour vérifier le statut du daemon, taper

systemctl status clamd@scan

Au besoin, pour désactiver l’agent, tout de même gourmand en ressources…(Souvent ClamAV n’est utilisé que pour des analyses occasionnelles…

systemctl disable clamd@scan

Installer et configure l’updater ClamAV

Pour bénéficier des mises à jour automatique (Le package doit déjà être installé…)

yum install clamav-update

Editer le fichier de configuration:

nano /etc/freshclam.conf

Commenter la ligne d’exemple:

#Example

Editer le second fichier de configuration (dans sysconfig…):

nano /etc/sysconfig/freshclam

Comment cette ligne pour pouvoir utiliser crontab (Les mises à jour sont désactivées par défaut):

#FRESHCLAM_DELAY=disabled-warn

Sauver et quitter l’éditeur de texte. Lancer la commande freshclam pour mettre à jour la base d’antivirus. Au besoin vous pouvez créer une tâche crontab pour l’exécuter régulièrement.

freshclam

Tester votre scanner ClamAV

Il est possible de scanner en utilisant le daemon, avec clamdscan, ou en utilisant le client interactif clamscan. Les deux exemples sont fournis ici. On considère que clamdscan est plus économe en ressource, mais il faut qu’il soit chargé en mémoire, et si ce n’est pas le cas, utilisez donc clamscan.

Toujours utiliser l’option –fdpass pour donner les permissions correctes si vous utilisez le daemon clamdscan.

clamdscan --fdpass /var/log/*

Pour scanner tout votre système avec lamscan

clamscan -r /

Pour scanner tout votre système en t’ache de fond, mais seulement afficher les fichiers infectés:

clamscan -r -i / &

Pour scanner les fichiers dans tous les dossiers utilisateurs “home”

clamscan -r /home

Pour scanner les fichiers dans le dossier “home” d’un utilisateur et déplacer le fichier infecté dans le dossier =/home/USER/VIRUS

clamscan -r --move=/home/USER/VIRUS /home/USER

Pour scanner les fichiers dans le dossier “home” d’un utilisateur et supprimer le /les  fichier (s) infecté (s). Attention, les fichiers seront vraiment supprimés…

clamscan -r --remove /home/USER

  • -

Le service de notification Pushover.Net

Category:Linux,Notification,Surveillance Tags : 

Pushover.Net

Pour faire court, Pushover (https://pushover.net/) est un service qui permet de recevoir des notifications instantanées sur votre téléphone ou votre tablette depuis une grande variété de sources.

Il faut toutefois installer l’application associée qui se trouvera sur le “store” approprié.

Sur le serveur, il est possible d’utiliser une API pouvant être intégrée dans un script ou un programme, que cela soit du Bash Shell, du PHP ou du C, qui utilisera une URL du serveur Pushover.net pour générer l’alerte.

Pushover coute 5 US$ par client (Android, IOS ou desktop en plugin Chrome & Firefox) qui recevront les notifications, au maximum de 7500 par mois.

Si de nombreuses utilisations sont possibles, un cas d’école qui peut être retenu est l’installation de ce service de notification avec le logiciel de surveillance « Monit », qui enverra des alertes en fonction de l’état des services surveillés, comme Apache ou MariaDB.

Note

La procédure est donnée telle quelle, sans garantie de fonctionnement.

User Key

Après avoir créé un compte, vous recevrez votre clé utilisateur  « User Key” qui sera composée de 30 caractères alphanumériques, ex. Td5vz6wfqg6s2cmcjSkSus4p5FrF41

Api Token

Si vous souhaitez utiliser un script, il faudra préalablement créer une application qui générera une “Api Token “ également de 30 caractères alphanumériques. J’en ai créé une appelée LinuxAlert qui a créé un token utilisé dans l’exemple plus bas.

Lien avec Monit

Dans notre exemple précédent avec Monit, il était indiqué que dans les scripts de surveillance la quatrième ligne était liée à l’expédition d’une alerte via un système de push dont le tutoriel sera créé ultérieurement par une collègue, c’est donc chose faite.

… then exec "/root/pushover.sh/pushover.sh" if failed port 80 for 2 cycles then restart if 3 restarts within 5 cycles then exec "/root/pushover.sh"

En effet, cette ligne invoque le script « pushover.sh » qui nous fait notre « colle » avec le service Monit.

L’utilisation du programme cURL (client URL request library ou see URL)  est au centre du script, car il permet de créer une ressource correctement formatée qui va créer un objet d’entrée directement sur le service de Pushover.net.

Toutefois, pour que le message passe, il devra comprendre la clé du Token API créé sur le site de PushOver.net, et la clé utilisateur qui vous a été attribuée.

Tests du service PushOver.net

Avant de se lancer dans le script proprement, il est bien de faire un test de notification afin de s’assurer que tout fonctionne correctement (clés Token et utilisateur, firewall, etc…). Créer le fichier texte « alerte » avec le contenu suivant :

#!/bin/bash

curl -s \

--form-string "token=avdrt678902345d1qri86easbav3" \

--form-string "user=alsorditz8d9s9" \

--form-string "message=Hello WORLD" \

https://api.pushover.net/1/messages.json

Enregistrer et marquer le fichier comme exécutable avec

chmod +x alert

Et exécutez le script en tapant

./alert

Le script final

Immédiatement, vous devriez recevoir une notification sur votre récepteur avec le message « Hello World » depuis l’API LinuxAlert créée dans la console. Si cela fonctionne, il faudra adapter le script pour prendre en compte les entrées retournées par les actions Monit. Cela donnera

#!/bin/bash

curl -s \

--form-string "token= avdrt678902345d1qri86easbav3" \

--form-string "user= alsorditz8d9s9" \

--form-string "message=[$MONIT_HOST] $MONIT_SERVICE - $MONIT_DESCRIPTION" \

https://api.pushover.net/1/messages.json

Bons tests !

Maria Perez


  • -

Monitorer les services avec Monit sur CentOS 7…

Category:Linux,Notification,Sécurité,Surveillance Tags : 

NOTE

La procédure est donnée comme cas d’école, et il se peut qu’elle ne convienne pas à vos environnements. Elle est réservée à des personnes expérimentées à même d’en comprendre les tenants et les aboutissants, et d’effectuer les adaptations nécessaires.

Vous devez avoir installé préalablement le repository epel.

Installer MONIT

sudo yum install monit

Démarrer le service Monit

sudo systemctl restart monit.service

Mettez le service Monit en lancement automatique au démarrage du serveur

sudo systemctl enable monit.service

Créer des fichiers de configurations pour surveiller les services

La seconde chose à faire est de créer des fichiers de configurations qui indiqueront à Monit quels sont les services à surveiller, et les actions à entreprendre en cas de dysfonctionnement. Pour commencer, nous allons mettre en œuvre une surveillance du service Apache.

Apache

Créer un fichier apache.conf dans le dossier /etc/monit.d/

nano /etc/monit.d/apache.conf

Le fichier doit contenir les lignes suivantes:

check process httpd with pidfile /var/run/httpd/httpd.pid

start program = "/usr/bin/systemctl start httpd.service" with timeout 60 seconds

stop program = "/usr/bin/systemctl stop httpd.service" if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles

then exec "/root/pushover.sh/pushover.sh" if failed port 80 for 2 cycles then restart if 3 restarts within 5 cycles then exec "/root/pushover.sh/pushover.sh"

  1. La première ligne indique le service à monitorer
  2. La seconde est la commande de démarrage, en laissant 60 secondes de marge pour indiquer qu’il fonctionne directement (Sur un système lent, cela peut prendre du temps ;>)
  3. La troisième comment le service doit redémarrer en fonction de diverses contraintes.
  4. La quatrième ligne est liée à l’expédition d’une alerte via un système de push dont le tutoriel sera créé ultérieurement par une collègue.

Tester le status de Monit

Afin de voir si Monit démarre correctement avec ce fichier de configuration, il faut le relancer avec

sudo monit reload

Ou

sudo systemctl restart monit

Contrôler que la syntaxe des fichiers est correcte avec

monit -t

Qui devra renvoyer

Control file syntax OK

Et voir le statut de Monit

sudo monit status

Pour avoir une vue simplifiée, il est aussi possible d’utiliser

sudo monit summary

MariaDb

Nous devons créer un fichier de configuration pour surveiller MariaDB

nano /etc/monit.d/mariadb.conf

Le fichier doit contenir les lignes suivantes:

check process mariadb with pidfile /var/run/mariadb/mariadb.pid

start program  "/usr/bin/systemctl start mariadb.service" with timeout 60 seconds

stop program  "/usr/bin/systemctl stop mariadb.service" if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles

then exec "/root/pushover.sh/pushover.sh" if failed host 127.0.0.1 port 3306 for 2 cycles then restart if 3 restarts within 5 cycles then exec "/root/pushover.sh/pushover.sh"

ProFTPD

Nous devons créer un fichier de configuration pour surveiller notre serveur ProFTPD

nano /etc/monit.d/proftpd.conf

Le fichier doit contenir les lignes suivantes:

check process proftpd with pidfile /var/run/proftpd.pid

start program  "/usr/bin/systemctl start proftpd.services" with timeout 60 seconds

stop program  "/usr/bin/systemctl stop proftpd.services" if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles

then exec "/root/pushover.sh/pushover.sh" if failed port 21 for 2 cycles then restart if 3 restarts within 5 cycles then exec "/root/pushover.sh/pushover.sh"

SSHD

Nous devons créer un fichier de configuration pour surveiller notre serveur SSHD

nano /etc/monit.d/sshd.conf

Le fichier doit contenir les lignes suivantes:

check process httpd with pidfile /var/run/sshd.pid

start program = "/usr/bin/systemctl start sshd.service" with timeout 60 seconds

stop program = "/usr/bin/systemctl stop sshd.service" if children > 250 then restart if loadavg(5min) greater than 10 for 8 cycles

then exec "/root/pushover.sh/pushover.sh" if failed port 22 protocol ssh for 2 cycles then restart if 3 restarts within 5 cycles then exec "/root/pushover.sh/pushover.sh"

Les options de Monit

Nous n’allons pas rentrer dans les détails ici, mais il faut savoir que Monit possède un fichier de configuration dans

/etc/monit.rc

Le « Polling Frequency » est le paramètre qui indique l’intervalle en seconde du contrôle des services. Le défaut est 30 secondes, ce qui peut sembler être une cadence trop rapide, et cette valeur dépendra surtout du nombre de tests que vous souhaiterez effectuer sur un nombre donné de services et les actions entreprises dans les différents fichiers de configuration. Plus vous surveillerez de service, plus cette valeur devra être importante afin de ne pas surcharger inutilement votre système.

Le fichier comprend également des entrées relatives à son propre serveur WEB affichant des informations sur le port 2812. Par défaut il n’est accessible que depuis la machine hôte avec l’utilisateur admin et le mot de passe monit, et il est évidemment conseillé de laisser ce paramètre ainsi. Voici les paramètres par défaut :

set httpd port 2812 and

    use address localhost  # only accept connection from localhost

    allow localhost        # allow localhost to connect to the server and

    allow admin:monit      # require user 'admin' with password 'monit'

A supposer que l’on désire afficher la page WEB de Monit depuis n’importe quel endroit, ce qui est évidemment déconseillé car extrêmement risqué si ce port est ouvert sur Internet, il suffit de changer les sections suivantes (Ici on n’autorise que depuis adresse IP publique…)

set httpd port 2812 and

# use address localhost  # only accept connection from localhost

allow localhost        # allow localhost to connect to the server and

allow 94.67.23.22      # Votre adresse IP publique

allow admin:monit      # require user 'admin' with password 'monit'

Puis redémarrer le service avec

sudo systemctl restart monit

Contrôler le statut avec

sudo monit status

Et vous devriez pouvoir afficher la page WEB ainsi, indiquant les services surveillées. En cliquant sur un des services, vous accédez à des informations complémentaires, comme par exemple son uptime ou sa consommation mémoire.

Comment tester ?

Il y’a plusieurs manières de faire le test. Trouver par exemple le processus lié à MariaDB en tapant

ps -ef|grep mysqld

Donc mon cas, il s’agit du processus ayant le PID 6926. Je vais donc lui envoyer une commande kill, en tapant

kill 6926

Le /var/log/messages m’indique

mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended

Puis

Apr  8 21:06:48 www systemd: Stopped MariaDB database server.

Et quelques dizaines de secondes plus tard…

Apr  8 21:07:05 www systemd: Starting MariaDB database server...

Apr  8 21:07:05 www mysqld_safe: 170408 21:07:05 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.

Apr  8 21:07:05 www mysqld_safe: 170408 21:07:05 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Apr  8 21:07:07 www systemd: Started MariaDB database server.

Le daemon de MariaDB a donc bien été relancé. Si j’insiste, je recevrai une alerte, mais ceci est une autre histoire…

Maria Perez


  • -

Mises à jour automatique sous CentOS 7

Category:Linux,Sécurité,Surveillance

Dans la plupart des cas, il est préférable d’avoir un serveur à jour, plutôt qu’utiliser des logiciels obsolètes dans lesquels une faille de sécurité ou un problème de fonctionnement a été décelé. De nombreux serveurs WEB sont affectés par un certain délaissement, car installés une fois et peu suivis; différents prétextes sont invoqués, comme ne pas toucher quelque chose qui fonctionne, ou par excès de foi dans la sécurité de Linux, ou simplement par manque de temps.

Toutefois, mettre à jour automatiquement un serveur peut avoir un impact considérable sur son fonctionnement ; Imaginez que vous avez installé un kernel non fournit dans la distribution de base (une version 4 sous CentOS…), et que celui-ci est remplacé lors d’une mise à jour par une version antérieur. Que se passerait-il ? Et bien cela dépend des cas. Des fois rien du tout, ou alors un dysfonctionnement majeurs.

Installer yum-cron

sudo yum install yum-cron

Configurer yum-cron

La configuration de yum-cron se trouve dans 2 fichiers. Le premier fait un contrôle journalier et le second horaire. Généralement, nous ne configurons que le premier.

/etc/yum/yum-cron.conf

/etc/yum/yum-cron-hourly.conf

Dans yum-cron.conf  il faut changer mettre à jour ces trois lignes afin que les mises à jour puissent s’effectuer

update_message = yes

download_update = yes

apply_update = yes

Il est également possible de modifier le paramètre d’envoi des messages afin de choisir un destinataire externe, en choisissant la méthode appropriée. Pour cela il faut changer la ligne concernant la manière d’envoyer les informations en changeant à « email » et indiquer un destinataire.

# List of addresses to send messages to.

# email_to = root

email_to = votreemail@domaine.com

emit_via = email

Démarrer le deamon au démarrage

sudo systemctl enable yum-cron

Démarrer le deamon

sudo systemctl start yum-cron

Contrôler que le deamon est actif

sudo systemctl status yum-cron

Redémarrer yum-cron

sudo systemctl restart yum-cron

Pour s’assurer que yum-cron fonctionne, il faut contrôler le fichier log

tail -50 /var/log/yum.log

On doit voir une section « updated » avec des dernières mises à jour

Maria Perez


  • -

Quelques outils de monitoring sous Linux

Category:Linux,Monitoring,Sécurité,Surveillance Tags : 

But du document

Il n’est pas toujours simple d’identifier les problèmes de performances sous Linux, mais on sera plus efficace avec ces quelques outils, qui constituent la trousse de secours de tout administrateur système.

Note

L’auteur fournit tel quel cette liste d’outils, et ne prend aucune responsabilité sur leur utilisation qui doivent être effectuée par des personnes confirmées sur un système de production.

1. htop

htop est une évolution de top, permettant une excellente vision des processus ou des threads s’exécutant sur le système en mode utilisateur ou en mode kernel, htop permet de trier ou stopper les processus d’une manière entièrement interactive. Pour l’installer

sudo yum install htop

2. glances

Outil de monitoring général similaire à htop permettant d’afficher un maximum d’information sur le moins d’espace possible. Pour l’installer

sudo yum install glances

3. iotop

iotop indique des informations sur les I/O des différents processus sur le disque dur, permettant de détecter d’éventuels latences ou autres goulets d’étranglements par rapport à la performance du sous-système disque. Pour l’installer

sudo yum install iotop

4. df

df signifie Disk Free et permet de voir l’occupation des volumes sur n’importe quel système UNIX ou Linux, il est préinstallé par défaut. Pour visualiser les informations de manière confortable, utiliser l’option –h (Pour Human…)

df -h

5. lshw

Un outil qui extrait les informations du matériel, que ce soit du processeur à la carte mère. Pour l’installer

sudo yum install lshw

Et pour le lancer, simplement

lshw

6. apachetop

apachetop monitor les performances globales de votre serveur apache en affichant le nombre d’accès en lecture et en écriture, comme le nombre global de requêtes effectuées. Pour l’installer

sudo yum install apachetop

7. ftptop

ftptop indique des informations de base sur les connections ftp courantes, comme le nombre d’utilisateurs connectés et les chargements et téléchargements en cours. Pour l’installer

sudo yum install ftptop

8. mytop

mytop indique des informations concernant les threads en cours et la performance d’une base mysql ou mariadb. Pour l’installer

sudo yum install mytop

Pour se connecter à une base du serveur

mytop –d nom_de_la_base –u utilisateur –p mot_de_passe

9. powertop

powertop vous donne une vision de la consommation électrique des processus et du matériel, et peut vous aider à effectuer les réglages adéquats pour limiter la consommation du système.

sudo yum install powertop

Il faut ensuite utiliser la touche <TAB> pour passer d’une vue à l’autre.

10. Netstat

Netstat affiche des statistiques sur les paquets entrants et sortants, ainsi que sur les interfaces réseaux. Il est installé par défaut dans le système, et l’exemple d’utilisation est le suivant :

netstat -pan | less

11. Nmap

Nmap est un scanner permettant de connaitre les ports ouverts, sur sa machine ou un host distant. Pour l’installer

sudo yum install –y nmap

L’exemple d’utilisation est le suivant :

nmap 127.0.0.1

12. iftop

Outil de visualisation du réseau indiquant le connexions entrantes et sortantes avec le serveur ainsi que la consommation de la bande passante pour chaque connexion, la résolution des hosts ainsi que les ports utilisés. Un must to have ;>)

sudo yum install iftop

13. jnettop

jnettop est un autre outils de visualisation des arcanes du réseau. Pour l’installer, télécharger la dernière version depuis

http://li.nux.ro/download/nux/dextop/el7/x86_64/

sudo rpm -Uvh jnettop-0.13.0-15.el7.nux.x86_64.rpm

sudo yum install jnettop

Pour l’utiliser, lancer

jnettop

Et choisissez ensuite votre carte réseau en pressant les touches de 0 à 9 jusqu’à ce que vous ayez trouvé votre carte.

14. Iptraf-ng

Encore un autre outil d’analyse des métriques réseaux.

sudo yum install Iptraf-ng

15. bmon

Un outil qui mesure la bande passante de votre carte et les affiche sous la forme d’un graphique

sudo yum install bmon

16. tcpdump

tcpdump est un outil de capture du trafique réseau aux possibilités quasi infinies, demandant toutefois une certaine expertise largement documentée sur Internet. Pour installer tcpdump

sudo yum install tcpdump

Exemple d’utilisation : Capturer tout le trafic mais exclure son adresse IP et son protocol ssh en combinant ces 2 exclusions afin de ne pas visualiser votre trafique parasite :

tcpdump -i eth0 port not 22 and host 85.218.71.41

Capturer tout le trafic depuis une adresse de destination

tcpdump -i eth0 dst 50.116.66.139

Capturer tout le trafic depuis une adresse source

tcpdump -i eth0 src 192.168

16. lsof

Un outil préinstallé lisant tous les fichiers ouverts et les connections réseaux. Outil puissant, il permet de trouver quel fichier est ouvert par quel processus, basé sur son nom, ou sur un utilisateur. Et pour le lancer, simplement

lsof

Maria Perez


  • -

Mettre à jour le kernel sur CentOS 7.3

Category:Linux,Sécurité Tags : 

But

Passer CentOS 7.3 à une version de kernel de génération 4.

Note

L’auteur fournit tel quel  cette procédure et ne prend aucune responsabilité sur son bon fonctionnement. Changer le kernel sur une distribution peut amener des dysfonctionnements majeurs sur un système de production. Le repository communautaire proposant le nouveau kernel est ELRepo, qui n’est pas officiel, et dont les sources doivent être ajoutées manuellement.

Mise à jour du kernel

Contrôler la version actuelle du kernel

uname –a

La version retournée sera 3.X. Il faut pour poursuivre ajouter la clé GPG du repository ELRepo. (Note : cette commande peut avoir été changée ; elle est visible sur le site de ELRepo http://elrepo.org/)

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Ensuite, le repository ELRepo dans CentOS 7 / RHEL 7 ou Scientific Linux 7. (Note : cette commande peut avoir été changée ; elle est visible sur le site de ELRepo http://elrepo.org/)

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Activer les miroirs rapides de ELRepo afin de télécharger les sources depuis une position géographique plus proche de vous :

yum install yum-plugin-fastestmirror

Maintenant, installer le kernel Linux 4.10 (ou supérieur…) avec la commande

yum --enablerepo=elrepo-kernel install kernel-ml

Redémarrer et choisir le nouveau kernel dans le menu de démarrage, car les anciennes versions seront toujours présentes. Contrôler avec uname –a qu’il s’agit du bon kernel…

Après s’être assuré que le matériel et les logiciels fonctionnent correctement, il faut modifie le loader grub pour le charger par défaut. Pour lister les entrées de Grub, tapez

grep '^menuentry' /boot/grub2/grub.cfg

Ou plus clair encore…

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

Dans les 2 cas on voit que l‘entrée comportant le kernel le plus récent est la première…qui porte donc le numéro d’entrée 0. Demander à grub de charger par défaut la valeur 0

grub2-set-default 0

Et sauvegarder la configuration…

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Rebooter et contrôler avec uname –a que nous avons bien la version attendue du kernel.

Maria Perez


  • -

Installer fail2ban sous CentOS 7.3

Category:Linux,Sécurité,Surveillance Tags : 

But

Mettre en quarantaine les tentatives d’accès et les signaler par courriel en utilisant une passerelle GMAIL. Fail2ban est un script qui lit le journal /var/log/secure et bannit les adresses IP dans le firewall en suivant certains critères.

Note

L’auteur fournit la procédure de l’installation de fail2ban tel quel et ne prend aucune responsabilité sur son bon fonctionnement. fail2ban est une contre-mesure aux attaques courantes, mais n’est qu’un élément sécuritaire parmi d’autres.

Installer fail2ban

Fail2ban n’est pas disponible dans le repository officiel de CentOS, il faut ajouter celui du projet EPEL.

sudo yum install -y epel-release

Installer maintenant le package fail2ban

sudo yum install -y fail2ban

Activer le service

sudo systemctl enable fail2ban

Configure Local Settings

Les fichiers de configuration se trouvent dans /etc/fail2ban. Le fichier de configuration par défaut est jail.conf, qui peut être modifié en tout temps par des nouvelles versions de package. Il ne faut en aucun cas l’éditer, mais en faire une copie jail.local qui contiendra les paramètres que nous souhaitons écraser.

Ce fichier contient une section [DEFAULT], suivies par des sections individuelles. Ce fichier peut être à la limite vide si l’on se contente des paramètres par défaut, mais sera populé au besoin des modifications souhaitées.

Les paramètres sont appliqués dans l’ordre des fichiers suivants :

  1. /etc/fail2ban/jail.conf
  2. /etc/fail2ban/jail.d/*.conf, alphabetically
  3. /etc/fail2ban/jail.local
  4. /etc/fail2ban/jail.d/*.local, alphabetically

Chaque fichier peut contenir une section [DEFAULT] exécutée en premier, ainsi que d’autres sections pour les prisons individuelles.

Par défaut tous les jails sont désactivés dans le jail.conf et il faut les créer dans le fichier jail.local.

Créons notre premier fichier

sudo nano /etc/fail2ban/jail.local

Créer les éléments suivants :

[DEFAULT]
#BAN HOSTS FOR 2 heures
# maxretry = 4 bloque l’adresse IP fans le firewall après 4 tentatives
bantime = 7200
#OVERRIDE
banaction = iptables-multiport
[sshd]
enabled = true
maxretry = 4
[sshd-ddos]
enabled = true
maxretry = 4
[php-url-fopen]
enabled = true
maxretry = 4
[apache-auth]
enabled = true
maxretry = 4
[apache-badbots]
enabled = true
maxretry = 4
[apache-overflows]
enabled = true
maxretry = 4

Redémarrer fail2ban

sudo systemctl restart fail2ban

La commande doit se terminer sans erreurs. Nous pouvons le statut de fail2ban en invoquant son statut :

systemctl status fail2ban

Nous pouvons le statut de fail2ban en invoquant son client :

sudo fail2ban-client status

Nous pouvons avoir des informations concernant une prison particulière :

sudo fail2ban-client status sshd

Il est possible de checker le journal de fail2ban depuis son dernier démarrage

sudo journalctl -b -u fail2ban

Il est aussi possible de checker directement le journal de fail2ban

sudo tail –f –n 2000 /var/log/fail2ban.log

Ou de contrôler les rôles courants définis par fail2ban dans iptables:

sudo iptables -L

Ou de lister les entrées sous la forme des commandes employées dans iptables.

sudo iptables -S

Ou encore de voire toutes les adresses IP bannies par fail2ban

sudo iptables -L -n

Lorsqu’on est certain que fail2ban fonctionne correctement, on peut l’ajouter en démarrage automatique et redémarrer le serveur pour tester.

systemctl enable fail2ban

Envoyer des emails d’alertes

Attention: Il faut compter environ une dizaine de tentative par heure sur le port SSH pour un serveur qui vient d’être activé sur Internet.

Toutefois il y’a un prérequis pour envoyer des courriels, c’est d’installer un MTA. Inutile d’installer Postfix ou Sendmail, des produits qui risquent de vous ouvrir à de nouvelles vulnérabilités, il faut juste pouvoir envoyer des messages en ligne de commande, et surtout passer par un gateway authentifié sur GMAIL pour que vos messages ne soient pas rejetés par le système de messagerie du destinataire.

Installer Heirloom mailx

yum install -y mailx

Créer un lien symbolique sur email

ln -s /bin/mailx /bin/email

Configurer mail.rc

nano /etc/mail.rc

#Use TLS
set smtp-use-starttls
# Ignore SSL
set ssl-verify=ignore
set nss-config-dir=set nss-config-dir=/root/.certs
# set smtp=smtp://smtp.server.tld:port_number
set smtp=smtp://smtp.gmail.com:587
# tell mailx that it needs to authorise
set smtp-auth=login
# set the user for SMTP
# set smtp-auth-user=user@domain.tld
set smtp-auth-user=votreuser@gmail.com
# set the password for authorisation
set smtp-auth-password=votremotdepasseducomptegmail

Importer les certificats nécessaires à l’implémentation TLS avec GMAIL

Créer un dossier pour les certificats

mkdir ~/.certs

Créer une nouvelle base de données (Ne pas oubleir d’y rentrer et noter votre mot de passe)

certutil -N -d ~/.certs

Créer 3 fichiers pour stocker les chaines de certificats

touch ~/.certs/google ~/.certs/geotrust ~/.certs/equifax

Copier la chaine de certificats pour smtp.google.com:465 dans le fichier my_certs. (Utiliser l’option -showcerts, et terminer par CTRL + C)

openssl s_client -showcerts -connect smtp.gmail.com:465 > ~/.certs/my_certs

Maintenant copier chaque certificat en incluant

–BEGIN CERTIFICATE—

Jusqu’à

–END CERTIFICATE—

Et les coller dans les fichiers respectifs créés auparavant (google, geotrust, equifax), puis les sauvegarder.

Ouvrir le fichier my_certs créé précédemment et copier le certificat Google (En général le premier)

nano ~/.certs/my_certs

Ouvrir le fichier google, et y coller le certificat. Sauvegarder et fermer.

nano ~/.certs/google

Ouvrir le fichier my_certs créé précédemment et copier le certificat geotrust (En général le second)

nano ~/.certs/my_certs

Ouvrir le fichier geotrust, y coller le certificat geotrust. Sauvegarder et fermer

nano ~/.certs/geotrust

Ouvrir le fichier my_certs créé précédemment et copier le certificat equifax (En général le troisième)

nano ~/.certs/my_certs

Ouvrir le fichier equifax, y coller le certificat equifax. Sauvegarder et fermer

nano ~/.certs/equifax

Importer chaque certificat dans la DB

Importer le certificat Google dans la DB :

certutil -A -n "Google Internet Authority" -t "TC,," -d ~/.certs -i ~/.certs/google

Importer le certificat geotrust dans la DB :

certutil -A -n "GeoTrust Global CA" -t "TC,," -d ~/.certs -i ~/.certs/geotrust

Importer le certificat equifax dans la DB :

certutil -A -n "Equifax Secure Certificate Authority" -t "TCP,," -d ~/.certs -i ~/.certs/equifax

Contrôler que l’opération été effectuée correctement :

certutil -L -d ~/.certs

Sortie d’exemple :

Certificate Nickname                                         Trust Attributes
SSL,S/MIME,JAR/XPI
Google Internet Authority                                  CT,,
GeoTrust Global CA                                           CT,,
Equifax Secure Certificate Authority                         CT,,

Tester l’envoi de message

Tapez la ligne pour envoyer un message

echo "Votre message" | mail -s "Sujet" email@votrechoix

Configurer fail2ban pour envoyer des alertes par email

Pour utiliser mailx, la première chose à faire est de dupliquer le fichier mail.conf en mail-whois.conf

cp /etc/fail2ban/action.d/mail.conf /etc/fail2ban/action.d/ mail-whois.conf

Editer à nouveau le fichier précédent /etc/fail2ban/jail.local

sudo nano /etc/fail2ban/jail.local

Dans la section [DEFAULT] du fichier local, il faut rajouter les paramètres de configuration qui vont écraser ceux du fichier de base :

[DEFAULT]
destemail = mail@votrechoix
mta = mail
sender = votrecompte@gmail.com
sendername = votrenom
action = %(action_mw)s

Redémarrer fail2ban

sudo systemctl restart fail2ban

Vous devriez commencer à recevoir vos emails

Maria Perez