jeudi 24 juin 2021

Linux : Les commandes utiles

Réseaux :

Connaître le nombre de connexions sur un port (exemple https)
netstat -anp | grep :443 | grep ESTABLISHED | wc -l

Système :

Rechercher les dossiers qui prennent de la place :
du -sh * | sort -nr | head

du -hx --max-depth=1 /var/lib/mysql
Vider le cache mémoire :
sysctl -w vm.drop_caches=3

Fichiers

Rechercher une chaine dans un dossier :
find /var/www/html | xargs grep 'promo' -sl
Supprimer tous les fichiers temporaires OSX d'un dossier :
find /var/www/html -name '*.DS_Store' -type f -delete

find /var/www/html -name '._*' -type f -delete

dimanche 13 novembre 2011



1 - Installation de NRPE sur le serveur (CentOS chez 1and1 dans mon cas)

sudo yum install nagios-plugins-nrpe
Il faudra contrôler que les lignes suivantes sont bien présentes dans le fichier "/usr/local/nagios/etc/objects/commands.cfg" (dans mon cas elles n'y étaient pas)
######
# NRPE
######
# 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
C'est là que ça a coincé sur mon installation, c'est que l'installation du plugin NRPE s'effectue dans "/usr/lib64/nagios/plugins/" or tous les plugins de mon installation de nagios depuis les sources sont dans "/usr/local/nagios/libexec/"...
Ce qui a eu pour effet de me retourner l'erreur suivante : "Return code of 127 is out of bounds - plugin may be missing" car il ne trouvait pas le plugin NRPE dans libexec
J'ai donc tout implement copié le plugin dans le bon dossier :
sudo cp /usr/lib64/nagios/plugins/check_nrpe /usr/local/nagios/libexec/

2 - Installer La partie cliente sur le serveur à surveiller

Sur Ubuntu :
sudo apt-get install nagios-nrpe-server
sudo apt-get install nagios-plugins //Normalement ils seront installés en même temps que NRPE-server
Sur CentOS :
Utilisation du repo EPEL (en root) :
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
Installation :
sudo yum install nrpe
sudo yum install nagios-plugins-all
Ensuite éditer le fichier /etc/nagios/nrpe.cfg pour renseigner l'IP de votre serveur Nagios et l'autoriser à accéder au service NRPE :
allowed_hosts = Mettre ici l'adresse IP de votre serveur Nagios
(Jusqu'ici rien de différent par rapport à l'installation décrite chez Nicolargo)

3 - Installer le script de surveillance de la mémoire

On commence par récupérer le script et le copier avec les autres plugins :
Une petite recherche sur le site http://exchange.nagios.org sur le mot clé check_mem vous permettra de trouver le script perl qui permet de surveiller la mémoire de votre client.
J'ai juste modifié la fin du script pour retourner un affichage plus complet car par défaut il n'affiche que la mémoire libre. [Script check_mem Modifié par moi-même]
Donc une fois que vous aurez copié ce script dans votre réperoire de plugins nagios : /usr/lib/nagios/plugins, rendez-le executable :
sudo chmod +x /usr/lib/nagios/plugins/check_memory.pl
Puis testez-le :
cd /usr/lib/nagios/plugins
sudo ./check_memory.pl
Si vous êtes dans le même cas que moi, vous aurez un message d'erreur car il manque Nagios::Plugin
Pour l'installer sur ubuntu :
sudo apt-get install libnagios-plugin-perl
Pour l'installer sur CentOS (un peu plus compliqué car à la mano, suivre les instructions) :
perl -MCPAN -e 'install Nagios::Plugin'
Une fois l'installation terminée, testez à nouveau le script perl :
sudo ./check_memory.pl
#CHECK_MEMORY OK - Free : 520M / Used : 454M / Total : 974M | free=545787904b;;
Si tout s'est bien passé, il vous aura retourné les informations sur la mémoire
On renseigne maintenant le fichier /etc/nagios/nrpe.cfg pour y intégrer ce plugin :
//Ajouter ce plugin avec les autres déjà renseignés :
command[check_mem]=/usr/lib64/nagios/plugins/check_memory.pl -w 100: -c 1%

Note :

Il est possible que vous rencontriez des problèmes sur Nagios:Plugin, suivez ces étapes si vous obtenez ce message d'erreur lors de l'exécution du script :
Can’t locate Nagios/Plugin.pm in @INC
Voici donc la marche à suivre sur les serveurs CentOS car c'est sur cette distrib que j'ai le plus rencontré de problèmes.
Installer Plugin.pm n'est pas difficile mais lors de son install via ICAN on se trouve bloqué par beaucoup de dépendances manquantes alors qu'il suffit en fait simplement d'installer "perl-Params-Validate".
[pre] //Installation de perl-Params-Validate sudo yum install perl-Params-Validate //Installation de Nagios::Plugin sudo perl -MCPAN -e 'install Nagios::Plugin' [/pre]
C'était aussi simple que ça...
Note : vous aurez un message vous indiquant qu'il manque des dépendances mais en validant il arrivera à les installer sans problème cette fois ci ;)

4 - Vous pouvez donc démarrer le service NRPE

Sur Ubuntu :
sudo /etc/init.d/nagios-nrpe-server start
Sur Centos :
sudo services nrpe start
Voilà tout devrait maintenant parfaitement remonter sur votre serveur Nagios via NRPE

samedi 12 novembre 2011

Installation et configuration d'un serveur DLNA sous linux Ubuntu



Un serveur Dlna, qu'est-ce que c'est ?
Un serveur Dlna permet le partage de documents (audio,photos,vidéos) à des clients tels que des téléphones, télévisions, consoles (PS3,xbox), Boitiers multimédia tels que les box évoluées de nos opérateurs.

Dans ce billet je vais essentiellement parler de l'installation de miniDlna qui est le plus simple et le plus rapide à mettre en place sur une machine linux Ubuntu ou autre dérivée

1 - Installation simple (static)

Télécharger la dernière version sur http://sourceforge.net/projects/minidlna/
A la publication de cet article, la dernière version est la 1.0.18 :
wget http://sourceforge.net/projects/minidlna/files/minidlna/1.0.18/minidlna_1.0.18_static.tar.gz
Puis Décompresser l'archive
tar -zxvf minidlna_1.0.18_static.tar.gz
Copier le serveur et son fichier de configuration aux bons endroits :
cp usr/sbin/minidlna /usr/sbin/
cp  etc/minidlna.conf /etc/
Editer le fichier de configuration :
vi /etc/minidlna.conf
Et modifier les informations nécessaires au bon fonctionnement :
  • port=49200
  • network_interface=eth0 (Mettez ici l'interface de votre réseau)
  • friendly_name=NOM DU SERVEUR (que vous souhaitez voir sur les clients)
  • media_dir=/mnt/MEDIAS (répertoire contenant vos fichiers média (vous pouvez en ajouter autant que vous le voulez)
  • db_dir=/var/cache/minidlna (permettra de ne pas voir le serveur rescanner tous les médias à chaque fois que vous le relancez car par défaut la base est stockée dans /tmp qui est vidé à chaque reboot)
Pour exécuter le serveur minidlana, 2 commandes possibles :
En arrière plan :
/usr/sbin/minidlna -f /etc/minidlna.conf -R
Avec affichage des évènements :
/usr/sbin/minidlna -f /etc/minidlna.conf -P /var/run/minidlna.pid -d -R
Maintenant si vous souhaitez voir ce serveur démarrer en même temps que votre machine, il faudra télécharger la source et récupérer le script init.d. qui n'est pas livré dans la version "static"

2 - Installation du script init.d

Télécharger la dernière version sur http://sourceforge.net/projects/minidlna/
wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.0.18/minidlna_1.0.18_src.tar.gz
Puis Décompresser l'archive
tar -zxvf minidlna_1.0.18_static.tar.gz
Puis copiez le script se trouvant dans le dossier "linux" puis rendez-le executables avec les bons droits :
cat linux/minidlna.init.d.script > /etc/init.d/minidlna
chmod +X /etc/init.d/minidlna
chmod 755 /etc/init.d/minidlna
Il est maintenant possible d'éxécuter le serveur via cette commande beaucoup plus simple :
/etc/init.d/minidlna start
Et d'ajouter le script au démarrage :
update-rc.d minidlna defaults
Voilà le serveur Dlna le plus léger et le plus fonctionnel est maintenant en marche, il ne reste plus qu'à y accéder via un client tel qu'une freebox TV ;)

Installation et configuration OpenVPN


Le VPN (Virtual Private Network) a pour but de vous permettre d'acceder à votre réseau personnel ou d'entreprise, depuis un point délocalisé et ce de façon sécurisée. Ainsi, grâce au VPN vous pouvez accéder à votre intranet d'entreprise depuis chez vous ou inversement, pour petits malins, d'accéder à internet depuis votre entreprise comme si vous étiez chez vous (permet de contourner des proxy trop sécurisés qui ne vous permettraient même pas d'acceder à un simple FTP).


1 - Installation de OpenVPN et OpenSSL

apt-get install openvpn openssl
Nous allons utiliser les exemples de configuration livrés dans /usr/share/doc/openvpn/examples/
cd /usr/share/doc/openvpn/examples
Nous copions ./sample-config-files/server.conf.gz et ./easy-rsa/2.0/ dans /etc/openvpn
cp ./sample-config-files/server.conf.gz /etc/openvpn
cp -r ./easy-rsa/2.0 /etc/openvpn
On renomme le dossier 2.0 en easy-rsa
cd /etc/openvpn
mv 2.0 easy-rsa
On dezippe le fichier de configuration exemple :
gzip -d server.conf.gz
Voilà pour l’installation :)

2 - Création des Certificats

Ici nous allons configurer les informations de certificat :
cd /etc/openvpn/easy-rsa
vi vars
Modifiez ces valeurs pour y mettre vos informations de certificat :
export KEY_COUNTRY=”US”
export KEY_PROVINCE=”CA”
export KEY_CITY=”SanFrancisco”
export KEY_ORG=”Fort-Funston”
export KEY_EMAIL=”me@myhost.mydomain”
Puis sauvegardez (escape puis :w et :q pour quitter) On génère ensuite le Certificat Maitre (CA) et les clés qui vont avec
. ./vars
./clean-all
./build-ca
On génère ensuite le certificat et les clés du serveur (en laissont les valeurs par défaut)
./build-key-server server
On génère ensuite le certificat et les clés pour autant de client (en laissont les valeurs par défaut)
./build-key clientVPN1
./build-key clientVPN2
... autant de fois que vous souhaitez créer de clients
On Génère les paramètres de clés Diffie Hellman
./build-dh

3 - Configuration du serveur :

On édite le fichier /etc/openvpn/server.conf
vi /etc/openvpn/server.conf
Ces paramètres fonctionnent bien (# = comment):
port 1194 # par defaut modifiable selon besoins
proto udp # tcp ou udp, selon vos besoins
dev tap
#Certificates
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
#Server settings
server 10.8.0.0 255.255.255.0 # Default VPN ip range.
push “redirect-gateway”
# DNS
push “dhcp-option DNS 208.67.222.222″
push “dhcp-option DNS 208.67.220.220″
# Allow clients to see eachother
client-to-client
# Service executé par (limite les droits du service)
user nobody
group nogroup
Ensuite on copie les Certificats et clés générés dans /etc/openvpn
cd /etc/openvpn/easy-rsa/keys
cp ca.crt server.crt server.key dh1024.pem /etc/openvpn
Les clients VPN auront besoin de ces fichiers, récupérez les ;) clientVPN1.crt clientVPN1.key ca.crt Puis redémarrez le service :
/etc/init.d/openvpn restart

Note :

Si le démarrage du daemon OpenVPN échoue (Fail), regardez le fichier /var/log/syslog et si vous avez ces lignes d'erreur concernant Tun/Tap :
 Note: Cannot open TUN/TAP dev /dev/net/tun: Permission denied (errno=13)
 Note: Attempting fallback to kernel 2.2 TUN/TAP interface
 Cannot open TUN/TAP dev /dev/tun0: No such file or directory (errno=2)
Alors voici la procédure à suivre :
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
cat /dev/net/tun #Pour tester si tout fonctionne bien
Si la dernière ligne fonctionne, vous devriez avoir le message suivant :
cat: /dev/net/tun: File descriptor in bad state
Vous pouvez alors relancer OpenVPN :)

4 - Configurer les règles de routage

Editez le fichier /etc/sysctl.conf et dé commentez la ligne : net.ipv4.ip_forward=1
vi /etc/sysctl.conf
Sauvegardez et quittez (escape, :w puis :q) Pour éviter de rebooter utilisez cette commande :
sysctl -w net.ipv4.ip_forward=1
Pour confirmer la prise en compte :
sysctl net.ipv4.ip_forward
Ajouter kes regles suivantes dans /etc/rc.local avant exit 0
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Note :

Si vous installez votre serveur VPN sur un serveur dédié, chez 1and1 par exemple, vous n'aurez par d'interface eth0 mais plus quelque chose du genre venet0:0 et donc MASQUERADE ne fonctionnera pas.
Dans ce cas la règle de routage ressemblera à ceci :
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source XXX.XXX.XXX.XXX (Adresse IP de votre serveur Dédié)
iptables-save
Un petit /etc/init.d/rc.local start pour activer les règles et c'est parti !!!!

5 - Configuration du client

Pour les clients je vous conseille :
  • Windows : OpenVpn
  • Mac : Viscosity (shareware à 9 euros mais il est très bien foutu : eval 30 jours)
Comme je ne suis pas spécialement fan de Windows, je vais vous montrer la configuration du client avec Viscosity :
Une fois le soft installé, créez une novelle connexion que j'appelle ici "Mon VPN" mais vous faites comme vous voulez
C'est dans l'onglet général que l'on va renseigner l'adresse IP ou l'URL du serveur VPN, le port et le protocole choisi durant la configuration du serveur (ici par défaut port 1194 en UDP)


Ensuite dans l'onglet "Authentication" nous allons aller rechercher les 3 clés générées sur le serveur (il faudra les rapatrier sur votre ordinateur client au préalable )



Puis dans l'onglet réseau, nous cochons les 2 cases "Envoyer tout le traffic dans le tunnel du temps ;)" et "Enable Support DNS" qui nous permettra de récupérer les DNS définis sur le serveur VPN



Et voilà vous êtes parés pour une connexion complète en VPN !