Starmate Posts

13 novembre 2017

On commence par se brancher au port console en USB

On se connecte au port console (voir dmesg pour le nom du terminal):

minicom -D /dev/ttyACM0

Une fois connecté, nous allons lister les vlan présent et les ports qui y sont associés:

show vlan

Maintenant que nous voyons la configuration actuelle, nous élevons nos droits  pour pouvoir éditer la configuration:

enable

Password:

On passe en mode configuration:

conf t

On sélectionne le port que nous souhaitons déplacer, ici le n°29:

interface gi1/0/29

ou alors une plage de port, ici du n°29 au n°39:

interface range gi1/0/29-39

On rend le port disponible pour pouvoir l’affecter:

switchport mode access

On affecte maintenant le port au vlan voulu, ici le 202:

switch port access vlan 202

On vérifie que notre port à bien été déplacé de vlan:

do show vlan

Si tout est bon, on sort du mode configuration:

end

Et bien sur, on sauvegarde la configuration:

wr

11 novembre 2017

Nous pouvons consulter le niveau d’entropie disponible dans le fichier suivant:

/proc/sys/kernel/random/entropy_avail

Si le niveau d’entropie disponible est inférieur à 1000, le noyau va avoir des difficultés à générer des nombres aléatoires lorsque cela lui sera demandé. Le noyau va donc attendre tranquillou jusqu’à ce qu’il collecte suffisamment d’entropie. Idéalement, on aura une valeur avoisinant les 2000.

Le serveur SSH par exemple, qui utilise de l’entropie, peut souffrir de lenteurs lors de l’établissement de connexions si celle-ci vient à manquer. Cela affecte particulièrement les machines virtuelles.

Pour palier ce problème, le paquet haveged permet d’alimenter le noyau en entropie.

apt-get install -y haveged

ou

yum install -y haveged

On active le service

systemctl enable haveged

On va augmenter le niveau d’entropie à 2048 bits en éditant le fichier suivant:

vi /etc/default/haveged

Puis on modifie ce paramètre:

DAEMON_ARGS="-w 2048"

On redémarre le service:

systemctl stop haveged
systemctl start haveged

Pour voir le niveau d’entropie maintenant optimisé:

watch -n 0,1 cat /proc/sys/kernel/random/entropy_avail

18 août 2017

Installation

Installation de Docker via Aptitude:

sudo apt-get update
sudo apt-get install lxc-docker​

Installation de Docker via le script d’installation officiel:

wget -O dockerinstall.sh https://get.docker.com
sh ./dockerinstall.sh

Information

Afficher les informations sur la version de Docker installée​:

docker version

Obtenir la liste des commandes du client Docker:

docker help

Obtenir de l’aide sur les options d’une commande:

docker help nom_de_la_commande

Docker Hub

​Connexion à un compte Docker Hub:

docker login

Déconnexion du compte Docker Hub:

docker logout

Récupérer une image

Récupérer une image sans la lancer:

docker pull nom_de_l_image

Récupération d’une image Ubuntu dans sa dernière version:

docker pull ubuntu:latest

​Rechercher une image Nginx avec au moins 5 étoiles:

docker search --stars=5 nginx

Envoyer d’une image

Envoyer une image locale sur le registre Docker Hub:

docker push nom_image

Envoyer une image sur un registre privé:

docker push localhost:88/ubuntu

Dépôt de l’image depuis une autre machine (host=starmate):

docker push starmate:5000/ubuntu

Sauvegarde et restauration

Export d’une image sous forme d’archive:

docker save -o fichier.tar nom_image

Import d’une archive d’image:

docker load -i fichier.tar

Lancement de conteneur

Démarrer un conteneur arrêté:

docker start nom_image

Redémarrer un conteneur en cours:

docker restart nom_image

Redémarrer un conteneur en spécifiant la période de grâce:

docker restart -t 20 nom_image

Démarrer le conteneur de test Hello World:

docker run hello-world​

Démarrer un conteneur en mode interactif:

docker run -i -t ubuntu

Démarrer sans option d’un conteneur:

docker run ubuntu

Démarrer un conteneur avec un nom donné:

docker run --name=nom_donné nom_image

Démarrer un conteneur avec une commande donnée:

docker run nom_de_l_image commande_à_exécuter

Démarrer un conteneur en ajoutant une variable d’environnement:

docker run -e=nom_variable=valeur nom_image

ou

docker run -e nom_variable=valeur nom_image

Démarrer un conteneur en injectant une des variables d’environnement de la machine hôte:

docker run -e=nom_variable image_à_instancier

Démarrer un conteneur en injectant des variables d’environnement stockées dans un fichier:

docker run --env-file=nom_fichier nom_image

Démarrer un conteneur en modifiant son hostname:

docker run -h hostname_voulu

Démarrer un conteneur en montant un dossier dans le conteneur depuis la machine hôte en RO (read only):

docker run -v dossier_sur_hote:dossier_sur_l_image:ro nom_image

Démarrer un conteneur en mode détaché:

docker run -d nom_image

Démarrer un conteneur d’un registre privé en localhost (port 5000 vers 88):

docker run -d --name starmate -p 88:5000 starmate:2.0

Démarrer un conteneur d’un registre privé sur le réseau local (IPhost=starmate dans tous les fichiers hosts):

docker run -d --name starmate -p 5000:5000 starmate:2.0

Démarrer un conteneur du registre privé en réseau local (IPhost= starmate dans tous les fichiers hosts) en montant un dossier local de la machine host:

docker run -d --name starmate -p 5000:5000 -v /dossier_machine_host:/dossier_image_starmate starmate:2.0

Démarrer et supprimer un conteneur dès la sortie du processus:

docker run --rm hello-world

Suppression de conteneur

Supprimer un conteneur arrêté:

docker rm loving_lovelace

Supprimer un conteneur de manière forcée:

docker rm -f nom_conteneur

Supprimer tous les conteneurs:

docker rm `docker ps -a -q`

Suppression d’une image

Supprimer une image:

docker rmi nom_de_l_image

Supprimer plusieurs images:

docker rmi image1 image2 imageN

Arrêt d’un conteneur

Arrêter un conteneur:

docker stop nom_image

Envoyer un signal à un conteneur:

docker kill -s code_du_signal nom_image

Monitoring

​Lister les conteneurs en cours de fonctionnement:

docker ps

​Lister tous les conteneurs:

docker ps -a

Lister les images Docker présentes sur la machine locale:

docker images

Lister les modifications d’un conteneur par rapport à son image de lancement:

docker diff identifiant_du_conteneur

Visualiser les logs d’un conteneur:

docker logs nom_image

Explorer les processus d’un conteneur:

docker top nom_image

Construction d’un conteneur

Persister l’état d’un conteneur en une nouvelle image:

docker commit identifiant_du_conteneur  nom_de_l_image

Tag

Tag d’un conteneur:

docker build -t identifiant_du_conteneur starmate:1.0

Modifier le tag d’un conteneur:

docker tag starmate:1.0 starmate:latest

Forcer le tag d’un conteneur (si tag déjà existant):

docker tag -f starmate:1.0 starmate:latest

 

17 août 2017

Installation

sudo yum update -y
sudo yum install httpd -y
sudo yum install perl perl-CGI -y
sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Création d’un fichier de test CGI

Pour cela on va créer un répertoire de test:

mkdir /var/www/test_cgi
vi /var/www/test_cgi/hello.cgi

Et on y ajoute cela:

#!/usr/bin/perl
print "Content-type: text/html\n\n"; # Obligatoire
print "<h2>Hello world!</h2>";

Chargement du module mod_cgi.so dans Apache

On peux vérifier les modules présent dans la configuration principale d’Apache:

grep -n "LoadModule" /etc/httpd/conf/httpd.conf

Si il n’est pas présent, on va l’ajouter, pour cela on va localiser le module:

find /etc/httpd/modules/ -iname "*cgi*"

Cela devrait nous retourner:

/etc/httpd/modules/mod_cgi.so

Une fois trouvé, on ajoute cette ligne au fichier de configuration d’apache:

LoadModule cgi_module modules/mod_cgi.so

Particularité sur Ubuntu pour activer le module cgi:

sudo a2enmod cgi
sudo service apache2 restart

Déclaration du répertoire du script test dans httpd.conf

vi /etc/httpd/conf/httpd.conf

Puis on y ajoute ça:

<Directory "var/www/test_cgi">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>

On modifie également cette ligne comme ceci:

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

qui devient:

#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /test_cgi/ "/var/www/test_cgi/"

Attribution des droits

chmod 755 hello.cgi

On redémarre Apache:

sudo systemctl restart httpd.service

On peux maintenant tester le script à cette adresse:

http://@IP/hello.cgi

3 août 2017

Désactiver l’expiration du mot de passe et effacer l’historique des mots de passe pour une appliance VMware.

chage -M -1 root; echo "" > /etc/security/opasswd