Étiquette : SELinux

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

 

19 octobre 2016 /

Voici méthode qui consiste à démarrer non pas init comme premier processus, mais un shell.

Tout d’abord, au démarrage, quand le menu de grub apparaît (appuyez sur echap si il n’apparaît pas), sélectionnez la ligne de boot sur lequel le système démarre habituellement:

screenshot_centos7-0_starmate_2016-10-15_191840

On va maintenant modifier la ligne de démarrage du système en appuyant sur la touche « e« :

screenshot_centos7-0_starmate_2016-10-15_192623

Sur la ligne commençant par « linux16 /vmlinux….. », nous allons ajouter à la fin « init=/bin/sh » et supprimer « rhgb quiet » :

screenshot_centos7-0_starmate_2016-10-15_194047

On valide les paramètres et on boot en appuyant sur les touches « Ctrl-x » ou bien avec la touche F10.

On arrive très vite dans un shell simple sans mot de passe et avec les droits root:

screenshot_centos7-0_starmate_2016-10-15_193200

On va tout d’abord charger la politique SELinux existante avec cette commande (le -i correspond à « initial policy load ») :

/usr/sbin/load_policy -i

Ensuite, on va remonter « / » en lecture-écriture car il est monté en lecture seule :

mount -o remount,rw /

On peut maintenant passer à la modification du mot de passe root :

passwd root

On ré-étiquette le système (SELinux) pour le prochain redémarrage :

touch /.autorelabel

Il ne reste plus qu’a redémarrer votre CentOS7/RedHat7 pour avoir vous connecter avec le nouveau mot de passe:

exec /sbin/init

1 juillet 2016 /

Lors de l’exécution de la commande « setenforce 1 », vous pouvez recevoir en retour ce message:

setenforce 1

setenforce: SELinux is disabled

Cette erreur « setenforce: SELinux est désactivé » apparaît parce que vous avez désactivé définitivement SELinux sur votre serveur.

Cela peut ce vérifier via cette commande:

sestatus

setenforce command has no effect if you have selinux disabled permanently in the main configuration file.

Pour activer SELinux, éditez le fichier /etc/sysconfig/selinux :

vi /etc/sysconfig/selinux

Et définissez le paramètre SELinux sur la valeur « enforcing »:

SELINUX=enforcing
SELINUXTYPE=targeted

Si le fichier n’existe pas, créer le!

2 mai 2016 /

Voici un petit mémo qui montre comment changer le répertoire de données MySQL par défaut, puis à régler SELinux pour qu’il tienne compte des changements.

Arrêt du serveur MySQL:

service mysqld stop

Création d’un nouveau répertoire de données:

mkdir /nouveau/repertoire/mysql
chown mysql:mysql /nouveau/repertoire/mysql

Déplacer la base de données d’origine:

mv /var/lib/mysql/* /nouveau/repertoire/mysql

Modification du fichier de configuration MySQL:

vi /etc/mysql/my.cnf

Et on y change cette ligne:

datadir = /var/lib/mysql

devient:

datadir = /nouveau/repertoire/mysql

ainsi que celle la:

socket = /var/lib/mysql/mysql.sock

qui devient:

socket = /nouveau/repertoire/mysql/mysql.sock

Mappage du contexte SELinux pour le répertoire /nouveau/repertoire/mysql/ , avec la commande semanage:

semanage fcontext -a -t mysqld_db_t "/nouveau/repertoire/mysql(/.*)?"

Application du contexte pour une prise en compte par le système à chaud:

restorecon -Rv /nouveau/repertoire/mysql/

Démarrage du serveur MySQL:

service mysqld start

Vérification de l’accès et de la connectivité:

mysql -u root -p

mysql> show databases;

Si cela fonctionne, vous avez changé le répertoire par défaut de MySQL avec une prise en compte par SELinux avec succès.

Par contre si vous obtenez un message de ce genre:

ERROR 2002 (HY000): Impossible de se connecter au serveur MySQL local par socket '/var/lib/mysql/mysql.sock'

Il faudra ajouter cela à votre fichier /etc/my.cnf :

[client]
socket = /srv/mysql/mysql.sock

Et dernière chose, pour éviter la connexion via le socket:

mysql -u root -p --protocol tcp

25 février 2016 /

MongoDB (de l’anglais humongous qui peut être traduit par « énorme ») est un système de gestion de base de données orientée documents, répartissable sur un nombre quelconque d’ordinateurs (cluster) et ne nécessitant pas de schéma prédéfini des données.
Il est écrit en C++. Le serveur et les outils sont distribués sous licence AGPL, les pilotes sous licence Apache et la documentation sous licence Creative Commons2.
Il fait partie de la mouvance NoSQL.

Pour installer MongoDB, il faut tout d’abord renseigner le repository:

vi /etc/yum.repos.d/mongodb-enterprise.repo

Et on y met ce texte:
[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/stable/$basearch/
gpgcheck=0
enabled=1

Il nous faut maintenant remettre à jour la liste des paquets:

yum update

On peut maintenant installer MongoDB (et ses dépendances):

yum install -y mongodb-enterprise

Pour un bon fonctionnement penser a désactiver Selinux:

vi /etc/selinux/config

et mettre le paramètre SELinux sur disabled ou permissive:

SELINUX=disabled

ou

SELINUX=permissive

Sinon vous pouvez activer le port MongoDB (27017 sur SELinux):

semanage port -a -t mongod_port_t -p tcp 27017

On ajoute et on active le service:

chkconfig mongod on
chkconfig --list mongod

Test du service :

service mongod start
service mongod stop

Changement de l’adresse en écoute par Mongo:

vi /etc/mongod.conf

Par défaut, Mongo n’écoute que localhost, pour modifier cela, il faudra commenter la ligne suivante :

bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.

Comme cela :

#bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.

Puis on relance le serveur mongo:

service mongod stop
service mongod start

Suite au attaque Ransomware sur les base MongoDB, il est recommandé de bloquer le port 27017 sur votre pare-feu ou de configurer MongoDB pour un accès en localhost (127.0.0.1) via /etc/mongodb.conf.