NuFW - Le pare-feu authentifiant

NuFW ajoute la notion d’utilisateurs aux règles de filtrage. Le projet s’appuie sur Netfilter, la couche pare-feu du noyau Linux, et constitue un système de gestion d’identité au niveau des couches réseaux.

NuFW peut :!!!!

  • - Authentifier toutes les connexions qui passent à travers votre passerelle ou simplement un sous-ensemble déterminé (utilisation d’iptables pour sélectionner les connexions à authentifier).
  • - Réaliser du routage, de la qualité de service, des statistiques basés sur les utilisateurs et non plus simplement sur les IPs.
  • - Filtrer les paquets avec des critères tels que l’application ou l’OS utilisés par les utilisateurs.
  • - Être à la base d’une solution simple et sécurisée d’authentification unique.



Nuface est une interface web de gestion pour pare-feu netfilter et NuFW.

# Préparation de l'outil APT

echo "ajout et paramétrage des dépôts inl"
echo "deb http://packages.inl.fr/ stable/" >>/etc/apt/sources.list
 
wget 'http://packages.inl.fr/public_key.asc'
cat public_key.asc | apt-key add -
apt-get update

# Installation de nuface et NuFw, Nuauth

Voici un script en Bash que j'ai creer affin de remplir cette tache:

# nufw et nuauth
apt-get install --assume-yes nufw nuauth nuauth-log-mysql
 
#Dépendance nuface2
apt-get install --assume-yes apache2 iproute php5 libapache2-mod-php5 python gettext python-ipy python-ldap  python-lxml  slapd  python-psyco
#Nuface2
apt-get install --assume-yes nuface 
 
echo -n "retourner sur le menu? "
read retour
 
if [ "$retour" = "O" ]; then
sh menu.sh
fi
exit

# Configuration de NuFw

echo "copie des certifica"
cp /etc/nufw/certs/nufw-* /etc/nufw/
 
echo "ajout des lignes dans iptables"
# iptables -A OUTPUT -o lo -p tcp --dport 22 -m state --state NEW --syn -j NFQUEUE ;
# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ;
 
echo "lancement du service nufw"
modprobe nfnetlink ;
modprobe nfnetlink_queue ;
 
echo "modification des droit sur la clé prive"
chmod 400 /etc/nufw/certs/nuauth-key.pem
 
echo " copie du nuauth.conf"
cp nuauth.conf /etc/nufw/
echo "lancement"
/etc/init.d/nufw restart;
/etc/init.d/nuauth restart ;
 
 
echo -n "retourner sur le menu? "
read retour
 
if [ "$retour" = "O" ]; then
sh menu.sh
fi
exit

Configuration de Nuface#


pour le bon fonctionnement de nuface les regles entrer par l'interface sont stocker dans une base LDAP il faut donc un schéma ldif.

dn: dc=btsig,dc=fr
objectClass: top
objectClass: dcObject
objectClass: organization
o: btsig.fr
dc: btsig
 
dn: cn=admin,dc=btsig,dc=fr
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {crypt}
 
dn: ou=Users,dc=btsig,dc=fr
objectClass: organizationalUnit
ou: Users
 
dn: ou=acls,dc=btsig,dc=fr
objectClass: organizationalUnit
ou: acls
 
dn: uid=nufw,ou=Users,dc=btsig,dc=fr
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
gidNumber: 0
uid: nufw
givenName: nufw
initials: N
sn: deamond
displayName: nufw
homeDirectory: /root
uidNumber: 29633
cn: nufw
userPassword: {CRYPT}$1$3WyZS8Yw$WSfd4g7.n.K9YQvr/u0Je/
 
dn: uid=nuauth,ou=Users,dc=btsig,dc=fr
objectClass: posixAccount
objectClass: top
objectClass: inetOrgPerson
gidNumber: 0
givenName: nuauth
initials: N
sn: deamond
displayName: nuauth
uid: nuauth
homeDirectory: /root
uidNumber: 27729
cn: nuauth
userPassword: {CRYPT}$1$7P9Iu2nP$QhO6M5v7T7rSi2WinWWBN0
echo "configuration apache et ssl"
rm /etc/apache2/sites-enabled/*
ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/ssl.conf ;
ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/ssl.load
echo "Listen 443" >> /etc/apache2/ports.conf 
echo "generation de la clef "
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem ;
chmod 600 /etc/apache2/apache.pem ;
mkdir /etc/apache2/ssl
cp /etc/apache2/apache.pem /etc/apache2/ssl/apache.pem
cp nuface /etc/apache2/sites-available/ ;
ln -s /etc/apache2/sites-available/nuface /etc/apache2/sites-enabled/nuface ;
echo "creation de l'utilisateur habiliter a se connecter a nuface"
echo -n " entrer le nom de l'utilisateur"
read user
echo -n "entrer son mot de pass"
read pass
htpasswd -cmb /etc/apache2/apache_users $user $pass 
htpasswd -cmb /etc/apache2/ssl/apache_users $user $pass 
/etc/init.d/apache2 restart ;
echo "generation du desc.xml"
rm /var/lib/nuface/desc.xml
gendesc -o /var/lib/nuface/desc.xml
cp acls.schema /etc/ldap/schema
cp slapd.conf /etc/ldap
/etc/init.d/slapd stop
 
# ajout du schema ldif dans la base  vous devez posséder le fichier dans le même répertoire !
 
 slapadd < base.ldif
/etc/init.d/slapd start
echo "sldap est configurer"
 
echo "ajout des lignes dans sudo"
 
echo	"Cmnd_Alias NETWORK_SCRIPTS = /etc/init.d/init-firewall" >>/etc/sudoers
echo	'Defaults:www-data !authenticate' >>/etc/sudoers
echo	"www-data "$(hostname)"=NETWORK_SCRIPTS " >>/etc/sudoers
 
 
echo -n "retourner sur le menu? "
read retour
 
if [ "$retour" = "O" ]; then
sh menu.sh
fi
exit


J'ai aussi creer un menu pour lancer plus facilement les scripts.

clear
 
echo "###############################################################"
echo "# MENU #"
echo "###############################################################"
echo ""
echo "1) configuration de l'outil apt "
echo "2) installation des dependances et logiciel "
echo "3) configuration nufw "
echo "4) configuration nuface "
echo "5) configuration de nulog"
echo "6) génération du desc.xml"
echo "7) Quitter "
echo
echo -n "Votre Choix : "
 
read choix
 
case $choix in
"1") sh ajout-ligne-apt.sh ;;
"2") sh install.sh ;;
"3")  sh conf-nufw.sh ;;
"4")  sh conf-nuface.sh ;;
"5") sh conf-nulog.sh ;;
"6") sh desc.sh ;;
"7") clear && echo "Au revoir" && exit ;;
*) echo "Veuillez saisir un chiffre entre 1 et 5" && read var && sh menu.sh ;;
esac

Les fichiers présent ci-dessous doivent être mis dans le même dossier que les scripts ! pour que ceux-ci puissent les copier !