Catégorie : Linux

25 avril 2016 /

[pastacode lang= »bash » manual= »yum%20-y%20install%20openssh-server » message= »Installation de Openssh » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »mkdir%20%2Fchroot_sftp » message= »Création du répertoire qui va accueillir le Chroot » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »ssh%20-V » message= »On s’assure d’avoir une version supérieur à la 4.9″ highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »chown%20root%3Aroot%20%2Fchroot_sftp » message= »On s’assure que root:root est propriétaire » highlight= » » provider= »manual »/]

Le répertoire chrooté doit impérativement appartenir à root (login:groupe).
Pour un autre utilisateur voir l’option « bind » de la commande mount.

[pastacode lang= »bash » manual= »addgroup%20sftpusers » message= »Création du groupe sftpusers » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »vi%20%2Fetc%2Fssh%2Fsshd_config » message= »Configuration d’Openssh » highlight= » » provider= »manual »/]

Il faut préciser ici, que l’on utilise le serveur sftp interne à OpenSSH.
Nous activons également le chroot sur le répertoire /chroot_sftp pour tous les utilisateurs du groupe sftpusers et nous interdisons, par mesure de sécurité, la redirection X11 ainsi que le tunnel TCP.

On commence par commenter et modifie le paramètre « Subsystem »:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Puis on met ça juste à la fin du fichier :

 Match Group sftpusers
ChrootDirectory /chroot_sftp
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no

Le partie « Match » doit absolument se trouver à la fin du fichier comme on peut le voir dans le man de sshd_config.

Dans le paramètre « ChrootDirectory » on peut rajouter %u pour un répertoire portant le nom de l’utilisateur, ou simplement %h pour le répertoire /home de l’utilisateur

Match
Introduces a conditional block. If all of the criteria on the Match line are satisfied, the keywords on the following lines override those set in the global section of the config file, until either another Match line or the end of the file.

[pastacode lang= »bash » manual= »useradd%C2%A0%20–gid%20sftpusers%20–groups%20sftpusers%20-m%20–shell%20%2Fbin%2Ffalse%20-d%20%2Fchroot_sftp%20sftp1″ message= »Création du compte client sftp1″ highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »mkdir%20%2Fchroot_sftp%2Fsftp1%0Achown%20sftp1%3Asftp1%20%2Fchroot_sftp%2Fsftp1%0Achmod%20700%20%2Fchroot_sftp%2Fsftp1″ message= »Création de son répertoire de travail sftp » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »%2Fetc%2Finit.d%2Fssh%20restart » message= »On relance ssh » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »systemctl%20restart%20sshd.service » message= »ou » highlight= » » provider= »manual »/]

[pastacode lang= »bash » manual= »sftp%20sftp1%40localhost » message= »Test de bon fonctionnement » highlight= » » provider= »manual »/]

 

13 avril 2016 /

Pour un programme /usr/local/bin/test.sh, on va créer un fichier test.service dans le répertoire de configuration de Systemd, /etc/systemd/system/ :

vi /etc/systemd/system/test.service

Et on y mets ça:

[Unit]
Description=Mon service test
After=tlp-init.service

[Service]
Type=oneshot
RemainAfterExit=no
User=starmate

ExecStart=/usr/local/bin/test.sh

[Install]
WantedBy=multi-user.target

On démarre le service:

systemctl start test.service

Puis on l’active au démarrage :

systemctl enable test.service

11 avril 2016 /

Pour le modifier de façon pérenne, il suffit de rajouter son chemin ici, à la suite (« : » comme séparateur):

vi /etc/environment

4 avril 2016 /

Pensez à déclarer le serveur dés le début dans l’AD pour éviter de patienter durant la réplication!

Avec pour domaine starmate.fr, en contrôleur primaire DC001 (192.168.2.10) et en contrôleur secondaire DC002 (192.168.2.11).

1 – Prérequis

Synchroniser l’heure avec l’adresse ip du contrôleur de domaine (ici DC001):

ntpdate 192.168.2.10

Installation de Samba, Winbind et Kerberos:

yum install samba samba-winbind samba-winbind-clients krb5-workstation krb5-libs oddjob-mkhomedir oddjob

2 – Configuration

Configuration de Kerberos:

vi /etc/krb5.conf

Et on y mets uniquement ça:

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = FR.STARMATE.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
FR.STARMATE.LOCAL = {
kdc = DC001
kdc = DC002
admin_server = DC001.fr.starmate.local
admin_server = DC002.fr.starmate.local
default_domain = FR.STARMATE.LOCAL
}

[domain_realm]
.fr.starmate.local = FR.STARMATE.LOCAL
fr.starmate.local = FR.STARMATE.LOCAL
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

On peut tester nos paramètres avec un compte administrateur du domaine (ici admindevops):

kinit admindevops

Configuration de Samba:

vi /etc/samba/smb.conf

Et on y mets uniquement ça (à adapter suivant votre configuration):

[global]
workgroup = STARMATE-FR
interfaces = 127.0.0.1 eth0
bind interfaces only = true
security = ads
passdb backend = tdbsam
template shell = /bin/bash
template homedir = /home/%D/%U
realm = FR.STARMATE.LOCAL
password server = DC001.fr.starmate.local, DC002.fr.starmate.local
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind refresh tickets = yes
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
printing = cups
printcap name = cups
load printers = no

3 – Jonction au domaine

Toujours avec notre compte administrateur (ici admindevops) sur le domaine, on va maintenant rejoindre le domaine avec notre serveur:

net join -U admindevops

Pour vérifier que l’on a bien rejoint le domaine:

net ads testjoin

N.B : la jonction au domaine n’est pas instantanée et peut durer quelques minutes.

4 – Authentification avec l’AD

Configuration de Winbind:

authconfig --enablewinbind --enablemd5 --enableshadow --enablewinbindauth --enablelocauthorize --enablemkhomedir --update

On modifie la configuration de PAM:

vi /etc/pam.d/system-auth

Et on y mets uniquement ça (à adapter suivant votre configuration):

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_winbind.so krb5_auth krb5_ccache_type=FILE use_first_pass
auth        required      pam_deny.so
account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so
account     required      pam_permit.so
password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     required      pam_mkhomedir.so skel=/etc/skel umask=0077
#session     required      pam_oddjob_mkhomedir.so skel=/etc/skel umask=0077     => Decommentez si votre serveur est un RHEL7 ou Centos 6-7

Activation des services:

service smb start
service winbind start
service oddjobd start

Afficher la liste des groupes d’Active Directory :

sudo wbinfo -g

Afficher la liste des utilisateurs d’Active Directory :

sudo wbinfo -u

Création du répertoire d’accueil des ~/home et activation du démarrage de winbind, samba et oddjob:

mkdir /home/STARMATE-FR
chcon --reference=/home /home/STARMATE-FR
chkconfig smb on
chkconfig winbind on
chkconfig oddjobd on

Vous devriez maintenant pouvoir vous connecter avec un compte du domaine AD 2012.

5 – Limitation d’accès

Pour filtrer les utilisateurs qui se connecte sur le serveur par groupe,  il faut modifier le fichier /etc/security/pam_winbind.conf et ajouter les groupes désirés (ici le groupe « groupe_des_admins »):

vi /etc/security/pam_winbind.conf

Puis on ajoute/modifie le paramètre suivant:

require_membership_of = groupe_des_admins

Pour déclarer plusieurs groupes, il faut faire une séparation avec une virgule.

Puis, si on veut donner le droit à la commande sudo à ce groupe:

visudo

et on y ajoute cette ligne:

%groupe_des_admins ALL=(ALL) ALL

 

30 mars 2016 /

Voici une petite procédure rapide pour installer la dernière version stable de Jenkins

Prérequis => Avoir JDK Oracle d’installé

Création du dépôt pour Red Hat/Centos:

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Création du dépôt pour Debian/Ubuntu:

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb https://pkg.jenkins.io/debian-stable binary/" >> /etc/apt/sources.list

Installation de la dernière version stable Red Hat/Centos:

yum update
yum install -y jenkins

Installation de la dernière version stable Debian/Ubuntu:

apt-get update
apt-get install -y jenkins

On active et démarre le service Red Hat/Centos:

chkconfig jenkins on
service jenkins start

On active et démarre le service Debian/Ubuntu:

systemctl enable jenkins
systemctl start jenkins

Fichier contenant le mot de passe provisoire de Jenkins:

cat /var/lib/jenkins/secrets/initialAdminPassword

Fichier de configuration de Jenkins:

vi /etc/sysconfig/jenkins
ou
vi /etc/default/jenkins

Fichier de log de Jenkins:

tail -f /var/log/jenkins/jenkins.log

Fichier de configuration de l’authentification Jenkins:

vi /var/lib/jenkins/config.xml