NuFw
Par admin le dimanche, décembre 7 2008, 12:49 - Linux - Lien permanent
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 !