Archive pour la catégorie ‘Linux’

openvpn

Mercredi 22 août 2012

Execllent tutorial ici :
http://blog.nicolargo.com/2010/10/installation-dun-serveur-openvpn-sous-debianubuntu.html

Cependant, il s’est avéré qu’une fois le vpn mis en place, impossible notamment de rejoIndre les partages samba autrement que par les ip.
Pour pouvoir utiliser les noms netbios et dns du réseau, Il suffit d’installer dnsmasq (sans rien devoir changer à la configuration par défaut), de renseigner le fichiers hosts du serveur en rajoutant :
adresse_ip_interne_du_serveur nom_du_serveur
10.8.0.1 nom_du_serveur

et dans server.conf :
push "dhcp-option DNS 10.8.0.1"
avant les deux autres DNS

Si on a dans notre configuration samba :
wins support=yes

On peut également rajouter :
push "dhcp-option WINS 10.8.0.1"

Postfix pour un serveur Internet

Mercredi 30 novembre 2011

IL s’agit ici de configurer (sécuriser) Posfix pour un serveur internet susceptible d’envoyer des mails… Mias qui n’étant pas MX n’a pas en recevoir. Il pourra cependant &galement en envoyer en local (ne serait ce que pour les messages de l’administrateur).

Après avoir choisi dans l’assistant comme type d’installation : Site Internet, on va devoir aller modifier à la main le fichier principal de configuration de Postfix.

Dans /etc/postfix/main.cf, il suffit de changer,

inet_interfaces = all

Par

inet_interfaces = 127.0.0.1

et de rajouter la ligne :

smtpd_client_restrictions = permit_inet_interfaces

PDC Samba LDAP

Samedi 22 août 2009

Les demandes sont de plus en plus nombreuses sur Samba couplé à LDAP. C’est suite à une formation que j’ai donnée sur le sujet que je mets ce petit mémo en ligne (inspiré de plusieurs didacticiels sur le net).

Ce tutoriel a été réalisé sur Ubuntu 8.04 LTS avec le compte root activé :
sudo passwd root

A l’installation slapd cherche un nom de domaine, donc pensez à vérifier avant l’installation à l’aide de la commande hostname -f que vous avez bien un nom de domaine complet ou sinon, editez le fichier hosts en conséquences :
par exemple :
127.0.0.1 localhost
192.168.0.1 hôte.domaine.extension hôte

Ensuite vous pouvez procéder à l’installation
apt-get install slapd db4.2-util ldap-utils
et choisir le mot de passe de l’administrateur à l’invite

Si vous n’avez pas le ficher samba-doc d’installé, il vous le faut pour récupérer le schema samba
apt-get install samba-doc

Nous allons maintenant copier le shema dans le sous-répertoire des sxhemas de ldap :
zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

Et générer un mot de passe crypté (en root) :
slappasswd

copiez le résultat et ouvrez votre fichier de configuration du serveur openladap /etc/ldap/slapd.conf
Décommentez la ligne rootdn et mémorisez la …
et copiez en dessous le résultat de slapasswd
rootdn "cn=admin,dc=domaine,dc=extension"
rootpw {SSHA}mot de passe crypté

Il nous faut maintenant inclure notre shema à la suite des autres schemas et pour cela rajouter à la suite des autres la ligne :
include /etc/ldap/schema/samba.schema

Il nous faut maintenant relancer notre serveur :
/etc/init.d/slapd restart

Nous pouvons maintenant y effectuer une recherche :
ldapsearch -x -b "dc=mondomaine,dc=extension"
Nous devons y trouver deux entrées :
dc=mondomaine,dc=extension
cn=admin

Si vous n’avez pas encore installé samba, il est temps de la faire :
apt-get install samba smbclient smbfs
et d’installer par la même occasion les smbldap-tools
apt-get install smbldap-tools

Voici un smb.conf minimal :
[global]
workgroup = votre domaine (sans l’extension)
wins support = yes
winbind use default domain =yes
domain master = yes
local master = yes
preferred master = yes
domain logons = yes
os level = 65

passdb backend = ldapsam:ldap://127.0.0.1/
obey pam restrictions = yes
encrypt passwords = true

ldap admin dn = cn=admin,dc=votre domaine,dc=extension
ldap suffix = dc=votre domaine,dc=extension
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Machines
add machine script = /usr/sbin/smbldap-useradd -w "%u"

logon path = \\%L\profiles\%U\%m
logon script = logon.bat
logon drive = H:
logon home = \\%L\%U\winprofile\%m

[netlogon]
path = /var/lib/samba/netlogon
writable = no
browseable = no

[profiles]
path = /var/lib/samba/profiles
browseable =no
writable =yes
create mask = 0600
directory mask = 0700


[homes]
browseable= no
read only = no

Il nous faut maintenant indiquer le mot de passe de l’admin de l’annuaire LDAP à Samba :
smbpasswd -w votremotdepasse
et redémarrer samba :
/etc/init.d/samba restart

Copions maintenant les exemples des smbldap-tools à leur emplacement prévu :
zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf

Il faut ensuite les modifier d’après les données de notre smb.conf et de notre slapd.conf…

Configuration de /etc/smbldap-tools/smbldap_bind.conf
Indiquer le nom et le mot de passe de l’administrateur ldap.
Dans ce fichier, le mot de passe est indiqué en clair. Il faut donc changer les droits de celui-ci par mesure de sécurité :
chmod 600 /etc/smbldap-tools/smbldap_bind.conf

Piour configurer le ficher /etc/smbldap-tools/smbldap.conf
il nous faut d’abord récupérer le SID du serveur samba avec la commande :
net getlocalsid
piour l’y copier à la ligne concernée.
Puis faire les modifications qui s’imposent.. Attention à ce que les lignes usersdn, coputersdn et groupsdn correspondent aux suffixes de votre smb.conf ! Vous pouvez commenter les lignes relatives aux certificats si vous n’en n’avez pas ainsi que la partie “SAMBA Configuration” si vous avez défini vos profils, logon path dans votre smb.conf .

On pourra ensuite initialiser l’annuaire avec la commande :
smbldap-populate

Il nous faut maintenant changer le mode d’authentification sur le serveur linux en modifiant le fichier /etc/nsswith.conf et les fichiers de /etc/pam.d/.

Après avoir téléchargé les paquets indispensables :
apt-get install libpam-ldap libnss-ldap
IL nous faut répondre à quelques questions :
LDAP server Uniform Resource Identifier: ldap://127.0.0.1
Ensuite y mettre nos informations et laisser les autres choix par défaut.

Nous allons maintenant nous servir d’un script automatique :
auth-client-config -a -p lac_ldap
qui se chargera également, entre autres, de créer un répertoire Home à chaque utilisateur de notre annuaire LDAP lorsqu’il se connectera pour la première fois sur notre machine.

Et voilà, notre configuration est terminée.

Nous pouvons vérifier que root se connecte bien aux partages samba :
smbclient -L localhost -U root

Il nous suffira ensuite de télécharger LAM, une interface web à LDAP :
apt-get install ldap-account-manager
De se connecter au http://hôte/lam (login : lam, password : lam)
et de configurer les profils conforméménet à nos suffixes pour pouvoir lister, ajouter, modifier les groupes et utilisateurs de notre annuaire LDAP.

Et de vérifier après l’ajout d’utilisateurs qu’ils soient bien pris en compte :
getent passwd
getent group

N.B. Il n’est pas nécessaire d’ajouter les machines qui seront automatiquement rajoutées au domaine par la commande add machine script de votre smb.conf à la première demande d’authentification sur le domaine par root…

NetFilter

Dimanche 22 février 2009

Ayant du formater mon serveur (Ubuntu Server 8.04 LTS), voici un mémo de mes règles iptables sous forme d’un script init… Elles devraient faire partie d’un mémo plus concis sur la mise en place d’une passerelle sous Linux.. un jour, peut-être…

#!/bin/sh
# iptables

case “$1″ in
’start’)
############règles iptables #####################
iptables -t filter -F
iptables -t nat -F
############# Premiere methode #################

## Par default
#iptables -P INPUT DROP
#iptables -P FORWARD DROP
#iptables -P OUTPUT ACCEPT

## Autoriser loopback
#iptables -A INPUT -i lo -j ACCEPT

## Regles fondamentales pour dhcp, dns, routage et ssh : administration
##dhcp
#iptables -A INPUT -i eth0 -p udp –dport 67:68 –sport 67:68 -j ACCEPT
##bind
#iptables -A INPUT -p udp –sport 1024: –dport 53 -j ACCEPT
#iptables -A INPUT -p udp –sport 53 –dport 1024: -j ACCEPT
##routage
#iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
#iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
#iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE #table nat
##ssh
#iptables -A INPUT -p tcp –dport 22 -j ACCEPT

## Autres services :
# Certains services (samba…) devraient logiquement n’etre
# accessibles que du réseau interne ( -i eth0) mais sont
#également accessible du réseau externe qui dans ce cas
#précis est un réseau privé derrière une neuf box…

##www
#iptables -A INPUT -p tcp –dport 80 -j ACCEPT
##ftp
#iptables -A INPUT -p tcp –dport 21 -j ACCEPT
#iptables -A INPUT -p tcp –dport 20 ! –syn -j ACCEPT #ftp-data
#iptables -A INPUT -p tcp –dport 1024: -j ACCEPT #ftp-passif
##smtp
#iptables -A INPUT -p tcp –dport 25 -j ACCEPT
##imap
#iptables -A INPUT -p tcp –dport 143 -j ACCEPT
#iptables -A INPUT -p udp –dport 143 -j ACCEPT
##samba
#iptables -A INPUT -p tcp –dport 135 -j ACCEPT
#iptables -A INPUT -p udp –dport 135 -j ACCEPT
#iptables -A INPUT -p tcp –dport 137:139 -j ACCEPT
#iptables -A INPUT -p udp –dport 137:139 -j ACCEPT
#iptables -A INPUT -p tcp –dport 445 -j ACCEPT
#iptables -A INPUT -p udp –dport 445 -j ACCEPT
##cups
#iptables -A INPUT -p tcp –dport 631 -j ACCEPT
##ldap
#iptables -A INPUT -p tcp –dport 389 -j ACCEPT
#iptables -A INPUT -p udp –dport 389 -j ACCEPT

############ Deuxième methode ###################

iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state –state NEW -p udp –sport 1024: –dport 53 -j ACCEPT #bind
iptables -A INPUT -m state –state NEW -p udp –sport 1024: –dport 67 -j ACCEPT #dhcp
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 22 -j ACCEPT #ssh
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 80 -j ACCEPT #www
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 4080 -j ACCEPT #mldonkey
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 26180 -j ACCEPT #mediacenter
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 443 -j ACCEPT #https

iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 21 -j ACCEPT #ftp
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 25 -j ACCEPT #smtp
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 143 -j ACCEPT #imap
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 631 -j ACCEPT #cups
iptables -A INPUT -m state –state NEW -p udp –sport 1024: –dport 631 -j ACCEPT #cups
iptables -A INPUT -m state –state NEW -p tcp –sport 1024: –dport 389 -j ACCEPT #ldap

iptables -A OUTPUT -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state –state NEW -s 192.168.0.0/24 -j ACCEPT

#iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE #ip dynamique
iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to-source 192.168.1.2 #ip statique

# Samba

# EPMAP => définit toutes les RPC !
iptables -A INPUT -m state –state NEW -p TCP –dport 135 -j ACCEPT
iptables -A INPUT -m state –state NEW -p UDP –dport 135 -j ACCEPT

# NetBios-NS
iptables -A INPUT -m state –state NEW -p TCP –dport 137 -j ACCEPT
iptables -A INPUT -m state –state NEW -p UDP –dport 137 -j ACCEPT

# NetBios-DGM => exploration du réseau (basé sur SMB browser service)
iptables -A INPUT -m state –state NEW -p UDP –dport 138 -j ACCEPT

# NetBios-SSN => partage fichiers, imprimantes par Microsoft
iptables -A INPUT -m state –state NEW -p TCP –dport 139 -j ACCEPT

# SMB/IP => partage fichiers, imprimantes par SaMBa
iptables -A INPUT -m state –state NEW -p TCP –dport 445 -j ACCEPT
iptables -A INPUT -m state –state NEW -p UDP –dport 445 -j ACCEPT

######## Chargement des modules nécessaires########
modprobe ip_nat_ftp
modprobe ip_conntrack
#echo 1 > /proc/sys/net/ipv4/ip_forward # inutile ici car décommenté dans /etc/sysctl.conf

######Exemple de DNAT##########
#iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j DNAT –to-destination 192.168.0.19:80
#iptables -A FORWARD -i eth1 -d 192.168.0.19 -p tcp –dport 80 -j ACCEPT
#iptables -A FORWARD -o eth1 -s 192.168.0.19 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT

############################################

;;
’stop’)
iptables -t filter -F
iptables -t nat -F
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
;;
*)
echo “Usage: $0 { start | stop }”
;;
esac
exit 0

Réseau Windows (client Samba) avec XFCE

Mardi 30 décembre 2008

Xfce est un environnement de Bureau moins restricitif que KDE et Gnome laissant plus de marges pour choisir les applications par défaut. En contre partie, certaines fonctionnalités ne sont pas implémentées d’origine comme par exemple le voisinage réseau en environnement Windows. Nous allons voir comment y remédier.
Nous allons pour cela utiliser le package fuse-smb et ses dépendances (ou fusesmb suivant votre distribution)…

Une fois le package installé, il nous faut charger le module fuse (en root) :

#modprobe fuse

Et ensuite pour le lancer au démarrage, le rajouter à /etc/modules ou suivre la documentation de votre distribution…
Nous allons maintenant créer un dossier qui recevra notre voisinage réseau et lui donner les bonnes permissions, par exemple dans le cas d’un utilisateur “user” :
$mkdir /home/user/smb
$chown user:fuse /home/user/smb

Ensuite, il nous faut rajouter l’utilisateur au groupe fuse (en root)
#usermod -aG fuse user

Pour lancer le montage des répertoires distants, il nous suffit maintenant de lancer la commande :
$fusesmb /home/user/smb
Cela va notamment créer un répertoire caché .smb dans votre répertoire personnel. Si vous avez besoin d’une identification sur votre réseau, il vous faudra éditer le fichier .smb/fusesmb.conf et y rajouter ces lignes :

[global]
username= votre nom d’utilisateur
password= votre mot de passe

Et voilà, la première étape de configuration de fusesmb est finie… Vous devriez voir votre voisinage réseau dans votre dossier smb.

Ce qu’il nous faut maintenant, c’est automatiser tout ça.
Nous n’allons pas lancer le montage du réseau à chaque ouverture de session mais profiter des actions personnalisées de Thunar (le gestionnaire de fichiers d’XFCE)…
Dans Thunar, aller dans le menu Editer->Configurer les actions personnalisées.
Nous allons rajouter une action:
Nom : Monter
Description : point de montage smb (par exemple)
Commande : fusesmb %F

Et pour l’onglet Conditions d’apparition :
Modèle de fichier : smb (ou le nom de votre répertoire)
et cocher la case répertoire

On pourra de la même façon rajouter une deuxième action pour démonter le répertoire avec la commande :
fusermount -u %F

Et voilà, il nous suffira maintenant de cliquer du droit sur notre répertoire smb (ou à l’intérieur) et de choisir la commande correspondante pour le monter ou le démonter à loisir…
On pourra même créer dans ce répertoire un petit fichier Readme.txt pour expliquer la démarche à suivre… Dans ce cas, il faudra rajouter l’option nonempty à la commande personnalisée :
fusesmb %F -o nonempty

Cette procédure a été utilisée sur un UMPC Acer Aspire One… qui vient avec la distribution Linpus Light basée sur Fedora et Xfce. Elle m’a été inspirée par Zenwalk qui automatise tout ça par défaut !

SME derrière une *Box

Dimanche 14 décembre 2008

Plusieurs théories s’affrontent sur l’utilisation d’une SME derrière une Box…

Nous nous occuperons ici des modes “serveur uniquement” et “serveur et passerelle” de SME… Et même si les deux possibilités sont prévues et qu’elles sont rappelées ici, elles n’offrent pas pour autant le même niveau de sécurité.

Premier cas : Box en mode routeur (sans possibilité de DMZ)
Deux possibilités de NAT sur la Box :
- redirection des seuls ports utiles (http, smtp,…) vers SME en mode “serveur uniquement” (pas de firewall, une seule interface réseau active) avec le LAN sur la box (Samba, etc…) et donc protégé uniquement par elle.
- redirection de tous les ports vers SME en mode “serveur et passerelle” (interface externe en ip fixe sur le réseau interne de la Box) avec un LAN (DHCP, Samba) sécurisé sur sa deuxième interface et un LAN sur son ip externe, donc moins sécurisé mais sans accès à Samba.
Cela revient à peu près à la DMZ proposée par certaines Boxes (redirection de tous les ports et protocoles vers une adresse IP du LAN) si la Box est VPN pass-through (GRE)… Dans le cas contraire, pour le VPN, on ne pourra pas utiliser le VPN PPPT d’origine et on devra utiliser la contrib sme-openVPN.

Deuxième cas : Box en mode routeur avec DMZ.
La logique qui prévaut ici est bien sûr de mettre la SME en mode “serveur et passerelle” sur la DMZ avec là aussi, les deux mêmes possibilités de LAN : Samba sécurisé sur la deuxième interface de SME et/ou un réseau directement sur la box mais sans Samba.

Troisième cas : Box en mode Bridge.
SME en mode “serveur et passerelle” (interface externe en PPPOE ou DHCP) + LAN sur deuxième interface SME (Samba, etc…).

Voilà, et donc pour résumer :
Pourquoi se passer des fonctions de firewall de SME Server ???