Richard Bruno
navigation
Home
admin









PacketFence 4.5.0
October 18th, 2016

Tables des matières


Installation sur une debian wheezy
Notes
Configuration de FreeRADIUS
Commandes diverses
Docs
Portail captif
Divers

Installation sur une debian wheezy



Installation du réseau

Chargement du module 8021q pour la prise en charge des vlan :

modprobe 8021q



Chargement au boot via /etc/rc.local

Installation du paquet vlan :

apt-get install vlan



Configuration du fichier /etc/network/interfaces

auto eth0.101
allow-hotplug eth0.101
iface eth0.101 inet static
address 192.168....
netmask 255.255.255.0
gateway 192.168....



Source : https://wiki.debian.org/fr/NetworkConfiguration#Configuration_manuelle

Installation du paquet "packetfence"

Modification du fichier /etc/apt/sources.list. On ajoute cette ligne :

deb http://inverse.ca/downloads/PacketFence/debian wheezy wheezy



Récupération d'une clé et installation :

gpg --keyserver keyserver.ubuntu.com --recv 19CDA6A9810273C4
gpg --export --armor 19CDA6A9810273C4 | apt-key add -



Source : http://wiki.diderot.org/index.php/PacketFence_sous_Debian_7

Packetfence lui même :

apt-get install packetfence




Notes



Le protocole 8021.X

"En pratique, le contrôle d’accès 802.1X fonctionne sur un port physique qui autorise ou non l’accès au niveau de la couche 2 (du modèle OSI)
à un périphérique branché sur ce port. Mais lorsque l’accès n’est pas encore accordé, le système à authentifier et l’authentificateur doivent tout de même communiquer ensemble. Comment est-ce possible? Concrètement, le port physique est divisé en deux ports virtuels dont un
sera dédié à l’accès réseau standard, tel que le port physique l’assure normalement. Ce port est contrôlé, il peut être «fermé» ou «ouvert» à la communication. Le deuxième port virtuel se dédie uniquement aux trames 802.1x et il garantit donc la communication avec le serveur d’authentification. Ce modèle est valable qu’importe le support physique (fibre, wifi, câble)."

Source : https://doc.rero.ch/record/31225/files/TDIG_68.pdf

"Pour réaliser l'authentification, le protocole 802.1X s'appuie sur EAP (Extensible Authentication Protocol), lequel supporte de nombreuses méthodes d'authentification. Sur le site, nous en supportons deux :

EAP-TTLS : authentification qui impose un certificat électronique côté serveur et un "login/mot de passe" côté utilisateur (le certificat du serveur pour créer un tunnel dans lequel transitera le mot de passe).
Cette méthode standard est essentiellement utilisée par Linux et MAC.
PEAP : authentification developpée par Microsoft et Cisco, et donc nativement supportée par Windows. Elle travaille de la même façon que EAP-TTLS, mais brouille le mot de passe avant de l'envoyer dans le tunnel ( détail ) "

Source : http://cric.grenoble.cnrs.fr/Administrateurs/Documentations/authentification/

Infos complémentaires :

EAP-MD5 : simple, vulnérable, vieux
EAP-TLS : certificat coté client obligatoire
EAP-FAST : cisco
EAP-TTLS : assez standard. Certificat coté serveur signé par un CA
PEAPv0/EAP-MSCHAPv2 : permet authentification bout en bout sur un AD

Clients :

Windows
- EAP-TLS : depuis windows 2000 SP4
- PEAPv0/EAP-MSCHAPv2
Mac OS X
- EAP-TLS (10.3)
- EAP-FAST (10.4)
- PEAPv0/EAP-MSCHAPv2
Linux
- wpa_supplicant (EAP-TLS, PEAPv0/EAP-MSCHAPv2...)

Source : http://fr.slideshare.net/hackfest/hackfest2010-802-1xfilairerevesbrises

Exemple d'architecture



Source : http://cric.grenoble.cnrs.fr/Administrateurs/Documentations/authentification/

pfmon

"The pfmon tool is a command line performance monitoring tool using the
perfmon interface to access to hardware performance counters of certain
processors."
http://manpages.ubuntu.com/manpages/hardy/man1/pfmon.1.html


inline enforcement vs vlan enforcement

You now need to choose the enforcement type.

"Inline" means that all traffic flows through the PacketFence box. This works with dumb network switches, but obviously the PacketFence box becomes both a bottleneck and a point of failure.
"VLAN" means that PacketFence will control each switch port to drop it into the appropriate VLAN. When users have authenticated, they are put into a data VLAN which will give them direct access to the Internet. This mode requires fully managed edge switches.

Source : https://nsrc.org/workshops/2014/nsrc-ucu-nkumba-dea/raw-attachment/wiki/Agenda/ex-packetfence-install.htm



MAB

One access control technique that Cisco provides is called MAC Authentication Bypass (MAB).

http://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/identity-based-networking-services/config_guide_c17-663759.html#wp9000104

Cisco 2960

"Les 2960 implémentent les fonctionnalités 802.1X comme les 2950 mais ont une fonctionnalité supplémentaire, appelée chez Cisco « MAC-Authentication-Bypass ». Cette fonctionnalité permet de configurer un port en 802.1X et dans le cas où aucun client 802.1X n'est présent sur le système d'extrémité (imprimante) le commutateur utilise l'adresse MAC vue sur le port comme nom d'utilisateur et comme mot de passe dans le processus 802.1X. Ceci permet une identification à l'aide de l'adresse MAC ce qui nécessite (comme pour le VMPS) d'avoir un serveur sur lequel sont référencées les associations adresse MAC/ VLAN."

http://blogperso.univ-rennes1.fr/pierre-antoine.angelini/public/JRES2009/Rapport-Nac.odt



Configuration de FreeRADIUS



Sources

http://fr.slideshare.net/hackfest/hackfest2010-802-1xfilairerevesbrises
http://www.packetfence.org/downloads/PacketFence/doc/PacketFence_Administration_Guide-4.5.0.pdf

Config générale

Modification du compte pf. On lui met le bash comme shell. On pourra facilement lancer le serveur freeradius en mode debug

/usr/sbin/freeradius -d /usr/local/pf/raddb/ -X




Configuration du secret
Les switches vont être configurés pour interroger le serveur radius lorsqu'une nouvelle machine tente de se connecter.
Le serveur radius indiquera en retour le vlan assigné à la machine.
La communication switch-FreeRadius dépend d'un secret partagé par les deux éléments :
sur FreeRADIUS :

more conf/switches.conf
[...]
radiusSecret=monbeausecret
[...]



sur le switch (ici un cisco) :

conf t
radius-server host 192.168.1.2 auth-port 1812 acct-port 1813 timeout 2 key monbeausecret



Il n'est pas nécessaire de configurer le fichier raddb/clients.conf :
Depuis la version 4.1.0, les clients peuvent être dynamiquement ajoutés :
"To enable this feature make a symlink in /usr/local/pf/raddb/site-enabled directory:

ln -s ../sites-available/dynamic-clients dynamic-clients

"
C'est le comportement par défaut de la 4.5.0.
Source : http://www.packetfence.org/downloads/PacketFence/doc/PacketFence_Administration_Guide-4.5.0.pdf

Configuration samba + winbind

Installation des paquets

apt-get install samba winbind krb5-config smbclient



Modification de krb5.conf

[libdefaults]
default_realm = MONDOMAINE

# The following krb5.conf variables are only for MIT Kerberos.
krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true


[realms]
MONDOMAINE = {
kdc = monserveur
admin_server = monserveur
}
[domain_realm]
.mondomaine = monserveur.MONDOMAINE

[login]
krb4_convert = true
krb4_get_tickets = false



Modification de smb.conf

[global]
workgroup = MONDOMAINE
server string = %h server
wins support = no
unix extensions = no
# follow symlinks = yes

# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no
load printers = no
printcap name = /dev/null
disable spoolss = yes
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
syslog = 2
panic action = /usr/share/samba/panic-action %d
preferred master = no

security = ads
realm = mondomaine
encrypt passwords = true
obey pam restrictions = yes

winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
winbind refresh tickets = yes

nt acl support = yes

dos charset = CP850
unix charset = UTF-8
display charset = UTF-8



Joindre le domaine

net ads join -U <identifiant admin du domaine>



Tests

getent passwd



ntlm_auth --username user1
password:
NT_STATUS_OK: Success (0x0)



radtest -t mschap -x user1 mypasswd localhost:18120 12 testing123
Sending Access-Request of id 219 to 127.0.0.1 port 18120
User-Name = "user1"
NAS-IP-Address = 192.168.10.23
NAS-Port = 12
Message-Authenticator = 0x00000000000000000000000000000000
MS-CHAP-Challenge = 0x00b79d37f3e6
MS-CHAP-Response = 0x0001000000000000000000000000000000000000000000000000b1a358849de0085f90fd81ff4888
rad_recv: Access-Accept packet from host 127.0.0.1 port 18120, id=219, length=20



A noter que dans cette dernière commande on interroge directement le serveur radius. "testing123" correspond au secret de test.
cf clients.conf :

[...]
client localhost {
ipaddr = 127.0.0.1
secret = testing123
[...]



Connexion en 802.1X des machines

Rappel : EAP-TTLS : authentification qui impose un certificat électronique côté serveur. Il n'y a pas consultation de l'AD dans ce cas.

Modification du fichier conf/radiusd/eap.conf
Le client va proposer un certificat signé par une autorité de certification. Le serveur FreeRadius doit connaitre cette autorité de certification :

CA_file = [...].pem



Sur le client, on pose un certificat et c'est tt !

Connexion en 802.1X des personnes

Le serveur FreeRADIUS aura besoin d'interroger l'AD. Cette interrogation va se faire via winbind et son socket (/var/run/samba/winbindd_privileged). Il faut autoriser le serveur FreeRADIUS (et l'utilisateur, pf, qui le fait tourner) a effectuer cette interrogation :

usermod -a -G winbindd_priv pf



Configurer Windows : Il faut démarrer le service de Configuration automatique de réseau câblé (cf http://windows.microsoft.com/fr-fr/windows/enable-802-1x-authentication#1TC=windows-7).
Il faut ensuite activer l'authentification 802.1X, choisir l'authentification PEAP, valider le certificat du serveur (et donc avoir au préalable intégrer notre CA).
La méthode d'authentification est mschapv2.

Configurer Linux (network anager) :

root@netmasterpo-04:~# cat /etc/NetworkManager/system-connections/test 802.1X
[802-3-ethernet]
duplex=full

[connection]
id=test 802.1X
uuid=cc0e6527-e4c1-45a0-b67d-12dsd1s2d1sd973
type=802-3-ethernet
autoconnect=false

[ipv6]
method=auto

[802-1x]
eap=peap;
identity=bruno
anonymous-identity=bruno
ca-cert=/home/bruno/certs/myCA.pem
phase2-auth=mschapv2
password-flags=1

[ipv4]
method=auto




Commandes diverses



Obtenir l'IP d'une machine dont on connait l'adresse MAC

Node > lookup

et saisir l'adresse MAC

ou

Status > Report > Active

et filtre sur l'adresse MAC

Redémarrer un service

Exemple de relance du service iptables :

root@pf:/usr/local/pf/bin# ./pfcmd service iptables restart
service|command
iptables|stop
Checking configuration sanity...
iptables|start
root@pf:/usr/local/pf/bin#



Radius in debug

/usr/sbin/freeradius -d /usr/local/pf/raddb/ -X





Docs



http://www.packetfence.org/downloads/PacketFence/doc/PacketFence_Administration_Guide-4.5.0.pdf

Portail captif



could not bind to address

Lors du lancement du portail captif, j'ai ce message :

./pfcmd service httpd.portal start
service|command
memcached|already started
httpd.admin|already started
Checking configuration sanity...
(99)Ne peut attribuer l'adresse demandée: make_sock: could not bind to address 192.168.23.10:80
no listening sockets available, shutting down
Unable to open logs
httpd.portal|not started



Solution : j'ai revu les fichiers conf/pf.conf et conf/network.conf. Dans les réseaux isolation et registration, les plages DHCP empiétaient sur les adresses données à packetfence dans ces VLAN.

No role specified or found for pid


Authentification

1/ Utilisateurs > Sources : on définit comme source d'authentification notre AD
2/ Principale > Profiles de portail : au profile par défaut, on associe la source ci-dessus
3/ Utilisateurs > Rôles : on crée un rôle
4/ Utilisateurs > Sources > Notre AD > Ajouter une règle
On peut définir le rôle à donner aux personnes qui se connectent
On peut définir la durée de connection
On peut définir une condition : if memberof...
5/ Réseau > Commutateurs > Mon commut > onglet Rôles > Rôle par vlan ID : on définit dans quel VLAN atterrit l'utilisateur une fois authentifié

Divers



snmpd

Dans les logs, on trouve bcp de lignes comme suit :

Oct 30 16:42:28 packetfence2 snmpd[5796]: error on subcontainer 'ia_addr' insert (-1)



A priori, ca n'est pas grave.

Une solution : modifier le niveau de log de snmpd en modifiant les options de snmpd : Lsd devient LSwd :

root@pf# cat /etc/default/snmpd
# This file controls the activity of snmpd and snmptrapd

# Don't load any MIBs by default.
# You might comment this lines once you have the MIBs downloaded.
export MIBS=

# snmpd control (yes means start daemon).
SNMPDRUN=yes

# snmpd options (use syslog, close stdin/out/err).
#SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'
SNMPDOPTS='-LSwd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'



Source : http://serverfault.com/questions/310640/reduce-snmpd-logging-verbosity

Gestion des Rôles

Packetfence propose la notion de rôles.

Définition des rôles : Configuration > Utilisateurs > Rôles

Association Noeud - rôle : Une fois de rôle défini, il est possible d'associer un rôle à une machine (un noeud)

Association Switch - rôle : Les rôles sont ensuite utilisés dans la config des switchs pour indiquer vers quel vlan basculer.





Dernières modifs
Réseau (June 21st, 2021)
PacketFence 4.5.0 (October 18th, 2016)
Cisco (October 18th, 2016)
Connexion VPN sous MAC (October 18th, 2016)
DELL 5424 (October 18th, 2016)
DELL 6224 (October 18th, 2016)
DELL MXL (October 18th, 2016)

Contact
Pour m'envoyer un mail,
Pour me laisser un commentaire :
richard.brunooo
chez
gmail.com


powered by kure, modified by Bruno