Starmate Posts

12 juillet 2019 /

Partager rapidement des fichiers entre deux postes Linux, via le réseau local et sans installer de logiciel supplémentaire ou configuration d’un service c’est possible via deux methodes:

Avec Python

Sur le Linux qui partage
cd ~/repertoire_a_partager
python3 -m http.server

Un message nous confirme le lancement du service web sur le port 8000:

Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/

Maintenant depuis le poste qui veux accéder au partage, on ouvre firefox et on tape:

http://adresse_ip_du_linux_qui_partage:8000

Vous avez maintenant accès à tous les fichiers du répertoire.
Une fois que vous avez récupérer les fichier, faire un CTRL+c pour arrêter le partage.

Avec Netcat

Sur le Linux qui partage
nc -vv -l -p 1664 < fichier_a_partager.txt

Ici, netcat écoute sur le port 1664.
Vérifier que le pare-feu ne bloque pas ce port sinon modifier les règles ou choisir un autre port qui lui serait ouvert.

Sur le Linux veut récupérer le fichier
nc adresse_ip_du_linux_qui_partage 1664 > fichier_a_partager.txt

Dans ces deux méthodes, la sécurité a été laissée de côté au profit de la simplicité.

11 juillet 2019 /

VSFTPD possède deux types de logs :

Xfer : qui log les transferts
Vsftpd : qui log les connexions et commandes utilisé par les utilisateurs.

Dans le fichier de configuration de vsftpd, nous pouvons les configurer de cette manière :

# Option pour gérer les deux types de logs simultanément
dual_log_enable=YES

# Partie XFER
xferlog_enable=YES
xferlog_file=/var/log/vsftpd/vsftpd.xfer.log
xferlog_std_format=YES


# Partie VSFTPD
log_ftp_protocol=YES
vsftpd_log_file=/var/log/vsftpd/vsftpd.log
8 juillet 2019 /

Lorsque le nombre de fichiers dans un répertoire dépasse les 30000, cela peut constituer un problème.

Voici les étapes à suivre pour mener à bien cette tâche
find . -name '*.txt' -print >/tmp/fichiers_a_archiver
tar -cvzf fichiers_a_archiver.tar.gz --files-from /tmp/fichiers_a_archiver
find . -name '*.txt' | xargs rm -v

 

21 juin 2019 /

DRBD fait référence aux périphériques en mode bloc conçus pour former des clusters haute disponibilité (HA). Pour ce faire, un périphérique de bloc entier est mis en miroir via le réseau. DRBD peut être compris comme un raid-1 réseau.

Le problème est le suivant, DRBD ne se connecte pas à tous ses volumes réseaux suite à une panne d’un des contrôleurs de la baie de disques.

Après la remise en état du contrôleur, je me retrouve avec l’erreur suivante:

Supervision de l'etat des volumes DRBD depuis la baie n° 1
drbd-overview

0:datastores/0 Connected Primary/Secondary UpToDate/UpToDate
1:datastores/1 Connected Primary/Secondary UpToDate/UpToDate
2:images-stores02/0 StandAlone Primary/Unknown UpToDate/DUnknown 
3:images-stores03/0 Connected Primary/Secondary UpToDate/UpToDate
4:images-storesHS/0 StandAlone Primary/Unknown UpToDate/DUnknown

Supervision de l'etat des volumes DRBD depuis la baie n° 2
drbd-overview

0:datastores/0 Connected Secondary/Primary UpToDate/UpToDate
1:datastores/1 Connected Secondary/Primary UpToDate/UpToDate
2:images-stores02/0 WFConnection Primary/Unknown UpToDate/DUnknown
3:images-stores03/0 Connected Secondary/Primary UpToDate/UpToDate
4:images-storesHS/0 WFConnection Primary/Unknown UpToDate/DUnknown

Pour réparer cela:

Depuis la baie n° 2
drbdadm secondary images-stores02/0
drbdadm disconnect images-stores02/0
drbdadm connect --discard-my-data images-stores02/0

drbdadm secondary images-storesHS/0
drbdadm disconnect images-storesHS/0
drbdadm connect --discard-my-data images-storesHS/0
Depuis la baie n°1
drbdadm primairy mages-storesHS/0
drbdadm disconnect images-storesHS/0
drbdadm connect images-storesHS/0

drbdadm primairy images-stores02/0
drbdadm disconnect images-stores02/0
drbdadm connect images-stores02/0

On verifie que syncronisation s’est bien lancée:

Depuis la baie n°1 ou n°2
cat /proc/drbd

version: 8.4.3 (api:1/proto:86-101)
srcversion: 1A9F77B1CA5FF92235C2213
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
1: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–
ns:0 nr:59608 dw:232804 dr:0 al:0 bm:23 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
2: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r—–
ns:0 nr:888388 dw:888376 dr:972 al:0 bm:477 lo:3 pe:0 ua:3 ap:0 ep:1 wo:f oos:1404644
[===>…………….] sync’ed: 22.3% (1404644/1800120)K
finish: 0:13:30 speed: 1,724 (1,716) want: 102,400 K/sec
3: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–
ns:0 nr:436052 dw:3326216 dr:0 al:0 bm:196 lo:1 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
4: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r—–
ns:0 nr:8702052 dw:8700428 dr:992 al:0 bm:606 lo:2 pe:0 ua:2 ap:0 ep:1 wo:f oos:4173260
[============>…….] sync’ed: 67.5% (4072/12488)Mfinish: 0:01:32 speed: 44,952 (36,060) want: 0 K/sec

Une fois la syncronisation terminée, vous devriez avoir cela:

cat /proc/drbd

version: 8.4.3 (api:1/proto:86-101)
srcversion: 1A9F77B1CA5FF92235C2213
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
1: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–
ns:0 nr:183320 dw:356516 dr:0 al:0 bm:23 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
2: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–
ns:0 nr:7518312 dw:7518312 dr:972 al:0 bm:1437 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
3: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–
ns:0 nr:1377700 dw:4267864 dr:0 al:0 bm:196 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
4: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r—–
ns:0 nr:23442304 dw:23442288 dr:992 al:0 bm:1936 lo:1 pe:0 ua:1 ap:0 ep:1 wo:f oos:0

Depuis la baie n°1
drbd-overview

0:datastores/0 Connected Primary/Secondary UpToDate/UpToDate
1:datastores/1 Connected Primary/Secondary UpToDate/UpToDate
2:images-stores02/0 Connected Primary/Secondary UpToDate/UpToDate
3:images-stores03/0 Connected Primary/Secondary UpToDate/UpToDate
4:images-storesHS/0 Connected Primary/Secondary UpToDate/UpToDate

Depuis la baie n°2
drbd-overview

0:datastores/0 Connected Secondary/Primary UpToDate/UpToDate
1:datastores/1 Connected Secondary/Primary UpToDate/UpToDate
2:images-stores02/0 Connected Secondary/Primary UpToDate/UpToDate
3:images-stores03/0 Connected Secondary/Primary UpToDate/UpToDate
4:images-storesHS/0 Connected Secondary/Primary UpToDate/UpToDate

 

23 mai 2019 /

Création d’un partage entre un hyperviseur KVM et une de ses machines virtuelles

Activation de samba
systemctl enable smb nmb
systemctl start smb nmb
Virbr0 est le bridge linux créé par libvirt lors de son installation, il faut l'identifier
ip a show dev virbr0
SI on veut modifier l'adresse de virbr0
virsh net-edit default
On crée le partage et le compte utilisateur pour s'y connecter
mkdir /partage_vm
useradd -m -d /partage_vm partage
chown -R partage /partage_vm
chmod g+w /partage_vm
smbpasswd -a partage
On declare le partage dans le ficher /etc/samba/smb.conf
[global]
       workgroup = WorkGroup
       netbios name = Host
       server string = serveur %h (Samba %partagevm)
       # On souhaite n'autoriser l'accès que via certaines interfaces réseau
       bind interfaces only = Yes
       interfaces = 127.0.0.1, 192.168.122.1
       log file = /var/log/samba/log.%m
       max log size = 100

[partage_vm]
       path = /partage_vm/
       public = no
       browsable = yes
       valid users = partage
       guest ok = no
       writable = yes
       printable = no
       hide files = /lost+found/
       hide unreadable = yes
       # on force les permissions
       create mask = 777
       force create mode = 777
       security mask = 777
       force security mode = 777
On redemarre samba et on ouvre les ports samba
systemctl restart nmb.service smb.service 
firewall-cmd --add-service=samba --permanent --add-source=192.168.122.1/24
Test du serveur depuis l'hyperviseur
smbclient //192.168.122.1/partage_vm -U partage
Si SELinux est actif dans un dossier specifique
semanage fcontext -a -t samba_share_t '/partage_vm(/.*)?'
restorecon -R /partage_vm
Si SELinux est dans /home
setsebool -P samba_enable_home_dirs on
Pour vérifier le contexte de SELinux
ls -Z /partage_vm
-rw-rw-r--. partage partage unconfined_u:object_r:samba_share_t:s0 truc.txt

Sur la VM, le dossier est accessible à l’adresse \\ip_de_virbr0\partage_vm