Publié dans GNU/Linux, Linux, Serveurs, ubuntu

Ajouter une machine Ubuntu(GNU/Linux) dans un domain Active Directory (LDAP)


Les systèmes d’exploitation GNU/Linux  n’ont pas la cote en entreprise c’est un fait,tu as beau essayé  de les défendre les gens (la majorité des DSI) préférerons utiliser  le système Windows et d’après le peu d’expérience que j’ai eu je pense que cette manque de considération est du a une désinformation. Ils te dirons toujours que Linux c’est compliqué et l’argument qui revient souvent est le manque de support en cas de problème.En entreprise on cherche toujours quelqu’un a indexer en cas de problème et malheureusement c’est pas tres viril d’indexer une communauté de bénévoles qui offrent un peu de leur temps libre.

Si jamais vous arrivez à convaincre  vos collègues sur les avantages d’avoir une ou des machines GNU/Linux l’authentification unique ou Single Sing-on en anglais ne doit pas être un frein.

Dans mon scénario on a un contrôleur de domaine avec Active Directory et on veut ajouter des machines Ubuntu dans le domaine et bénéficier des avantages de active directory .

Il existe plusieurs méthodes pour ajouter une machine Ubuntu dans AD mais sur ce tutoriel nous avons choisi de faire avec  le logiciel SSSD.Let’s setup.

Pré-requis :

  • Avoir un serveur Active Directory fonctionnel
  • Installer ubuntu 16.04
  • S’assurer que votre controller de domaine est votre  premier resolver et le mettre dans /etc/resolv.conf
  • Dans ce tuto le domaine sera base.corp et notre serveur serverdc.base.corp

Installation des logiciels

sudo apt install samba sssd krb5-user ntp ntpdate

Configuration de NTP

la premiere étape consiste à synchroniser le serveur AD avec la machine cliente.C’est important pour la bonne marche de Keberos qui présente un dysfonctionnement s’il le serveur et la machine on un décalage de plus de 5 minutes.

sudo service ntp stop
sudo ntpdate -s serverdc.base.corp
sudo service ntp start

Configuration de /etc/hosts & /etc/resolv.conf

/etc/hosts

192.168.1.20 serverdc server.base.corp

/etc/resolv.conf

nameserver 192.168.1.20
domains base.corp
dns-search base.corp

Configuration de Keberos

[libdefaults]
	default_realm = BASE.CORP
[realms]
	BASE.CORP = {
		kdc = serverdc
		admin_server=serverdc
		default_domain=BASE.CORP
	}
[domain_realm]
	.base.corp=BASE.CORP
	 base.corp = BASE.CORP

Toujours mettre en majuscule le domaine

Configuration de SSSD

Le fichier sssd.conf n’existe pas par défaut il faut donc le créer et le mettre dans /etc/sssd.


sudo touch /etc/sssd/sssd.conf
sudo chown root:root /etc/sssd/sssd.conf
sudo chmod 600 /etc/sssd/sssd.conf

Ensuite y mettre les éléments suivants.

[sssd]
services = nss, pam
config_file_version = 2
domains = BASE.CORP

[domain/BASE.CORP]
id_provider = ad
override_homedir = /home/%d/%u
access_provider = simple
simple_allow_users =  admin@snsp.corp,users@snsp.corp
simple_allow_groups = linux-admin,linux-users

Les deux dernières lignes permettent de filtrer la connexion des utilisateurs donc ici seul les 2 utilisateurs appartenant aux groupes lister pourront s’authentifier.Au cas contraire tous les utilisateurs du domaine pourront le faire.

Configuration de Samba

Editer le fichier /etc/samba/smb.conf et modifier la configuration de Workgroup

# Change this to the workgroup/NT-domain name your Samba server will part of
  # workgroup = WORKGROUP
workgroup = BASE
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = BASE.CORP
security = ads

Relancer les services

sudo service smbd restart
sudo service nmbd restart
sudo service sssd restart
sudo service ntp restart

Ajouter la machine dans le domain

Il faut s’assurer qu’on a un compte qui peut ajouter dans des machines dans le domaine.le mot de passe du compte vous sera demander.

kinit adadmin

Si tout se passe bien on ajouter la machine avec cette commande

sudo net ads join -k

Si vous avez l’erreur suivant « Failed to join domain: failed to lookup DC info for domain ‘BASE.CORP’ over rpc: An internal error occurred. »
Essayer avec la commande suivante.

sudo net ads join -U admin

Maintenant aller regarder dans votre interface d’ajout de machine dans Active Directory vous y verrez la machine.

Vous pouvez maintenant utiliser ssh ou vous connecter directement dans l’interface de login de votre machine

par ssh

 ssh base\\admin@ipdevotremachine
#ou
ssh base@ipdevotremachine

let’s enjoy.

Publié dans Python

Lister les nouveaux fichiers et supprimer les anciens dans un repertoire avec python


Si vous sauvegardez des fichiers logs  dans un répertoire vous aurez peut être envi un jour de faire le ménage  en supprimant les anciens fichiers et garder les nouveaux.Je suis plus ou moins dans le même contexte et j’ai écrit un script en python qui fait mon bonheur.Si jamais ça peut vous être utile temps mieux :-).

# Supprimer les anciens fichiers .dat et garder les n plus récents
import os
path = '/Users/elwan7/fichier_dat/'
nombre_fichier_recent = 5

os.chdir(path)
fichiers = sorted(os.listdir(os.getcwd()), key=os.path.getmtime)
fichiers_dat = []
for element in fichiers:
    if element.endswith('.dat'):
        fichiers_dat.append(element)

liste_nouveau = fichiers_dat[-nombre_fichier_recent:]
file_to_delete = fichiers_dat
for r in liste_nouveau:
    file_to_delete.remove(r)
if file_to_delete:
    for i in file_to_delete:
        os.remove("{}".format(path + '/' + i))