djezzyman Posté(e) le 18 février 2011 Share Posté(e) le 18 février 2011 (modifié) Bonjour à tous, Je ne connaissait pas ufw et gufw et j'ai donc souvent été surpris par l'absence d'un outil de configuration du pare-feu sous Ubuntu. Etant habitué à Fedora je me suis décidé à porter le programme system-config-firewall qui me parait vraiment très utile et simple vers le Debian Packaging System (ça fait mal à la tête !). Le programme est donc divisé en trois paquets comme sous Fedora: system-config-firewall-base (qui contient les fonctionnalités principales, la configuration et les scripts init.d) system-config-firewall-tui ( qui continent l'interface utilisateur en mode console (ncurse) ) system-config-firewall (qui continent l'interface utilisateur en mode graphique) Ces paquets dépendent des paquets suivant: python-slip python-slip-dbus Ces paquets permettent le passage en mode privilégié (root) gràce à policykit-1. J'ai posté les paquets sur launchpad.net, configurez le repo comme suit pour une installation très rapide: sudo add-apt-repository ppa:ubuntu-contribs/contribs Comme vous le voyez, j'ai donc créé un PPA (Personal Package Archive) et il s'appelle contribs. Voici le lien vers le PPA. Pour installer ensuite system-config-firewall, tapez simplement sudo apt-get update sudo apt-get install system-config-firewall Vous aurez alors un raccourci pare-feu dans le menu Système/Administration de Gnome. Fichiers de configuration: /etc/default/iptables : règles IPV4 du pare-feu (dans le format reconnu par iptables-save et iptables-restore), utilisé par le script /etc/init.d/iptables. /etc/default/ip6tables : règles IPV6 du pare-feu (dans le format par ip6tables-save et ip6tables-restore), utilisé par le script /etc/init.d/ip6tables. /etc/default/iptables-config : paramètres gouvernant le comportement des scripts init.d chargeant et déchargeant les règles du pare-feu au démarrage et à l'arrêt de la machine. Ne les éditez pas à moins que vous ne sachiez ce que vous faites. /etc/default/system-config-firewall : configuration du pare-feu chargée par l'interface utilisateur. L'utilitaire /usr/sbin/lokkit est un programme en ligne de commande qui permet aussi de configurer le pare-feu. Il faut être root pour l'utiliser (sudo). Si vous utilisez lokkit il changera le contenu de ce fichier ! Attention donc aux interactions avec l'interface graphique. Exemple de configuration du parefeu: Par défaut le pare-feu bloque tout le trafic entrant, c'est ce qui est recommandé. Supposons que vous ayez un ordinateur connecté à internet via l'interface eth0 disons et un réseau privé contenant un ou plusieurs ordinateurs connecté à votre machine via l'interface eth1. Pour que les ordinateurs de votre réseau privé accèdent à l'internet via votre ordinateur, adoptez la configuration suivante: Dans le panneau de gauche cliquez sur Translation d'adresse : l'interface eth0 devrait être listée sinon ajoutez là en cliquant à droite sur le bouton Ajouter. Veillez ensuite à cocher la case eth0. Dans le panneau de gauche cliquez sur Interfaces de confiance : l'interface eth1 devrait être listée sinon ajoutez là en cliquant à droite sur le bouton Ajouter. Veillez ensuite à cocher la case eth1. Cela autorisera tout le trafic entre votre machine et votre réseau privé (c'est normal). Il ne vous reste plus qu'à cliquer sur Appliquer dans la barre d'outils. Votre ordinateur est maintenant configuré comme une passerelle entre votre réseau privé et l'internet. Vous pouvez aussi ouvrir des ports, rediriger des ports de votre machine vers d'autres ports d'une autre machine ... etc Si vous souhaitez désinstaller le programme, tapez simplement: sudo apt-get remove system-config-firewall-base puis la cas échéant: sudo apt-get autoremove La configuration sera préservée au cas ou vous souhaiteriez le réinstaller, sinon si vous souhaitez tout supprimer: sudo apt-get purge system-config-firewall-base puis la cas échéant: sudo apt-get autoremove Bonne continuation. Modifié le 24 février 2011 par djezzyman 2 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djezzyman Posté(e) le 18 février 2011 Auteur Share Posté(e) le 18 février 2011 (modifié) J'ai fait une petite erreur pardon. D'abord après avoir exécuté la commande: sudo add-apt-repository ppa:ubuntu-contribs/contribs Il faut exécuter la commande: sudo apt-get update pour mettre à jour la liste des paquets connus. De plus, j'ai posté une version 0.2.13-2 des paquets python-slip, python-slip-dbus, python-slip-gtk pour régler un problème avec un fichier de la documentation (un fichier du dossier example). J'ai mis à jour le fichier changelog mais j'ai oublié de mettre à jour les dépendances dans le fameux control file. Du coup les dépendances étaient impossible à satisfaire. C'est réglé maintenant. La version installée est la version 0.2.13-3 pour python-slip, python-slip-dbus, python-slip-gtk, ce dernier n'étant pas installé avec system-config-firewall. Donc les commandes: sudo apt-get update sudo apt-get install system-config-firewall fonctionnent parfaitement maintenant. Mes plus plates excuses ! Modifié le 18 février 2011 par djezzyman Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djezzyman Posté(e) le 19 février 2011 Auteur Share Posté(e) le 19 février 2011 (modifié) J'ai posté une nouvelle version de system-config-firewall avec le support upstart pour l'initialisation. C'est la règle je pense sous Ubuntu où on préconise d'éviter le recours à sysv-rc et de préférer upstart. Je me suis inspiré du projet ufw pour cela. Il y avait un bug aussi dans le script maintainer system-config-firewall-tui.prerm (utilisé par dpkg) du paquet system-config-firewall-tui. Celui-ci s'occupe du nettoyage des fichiers compilés par python. En fait le script nettoyait les fichiers du paquet system-config-firewall-base au lieu de ceux de system-config-firewall-tui. Je pense maintenant à fusionner tous ces paquets en un seul car la gestion des scripts post et pré installation est rendue plutôt complexe. Les fichiers: /etc/init.d/iptables /etc/init.d/ip6tables sont déplacés vers: /usr/lib/iptables/iptables /usr/lib/iptables/ip6tables La politique du pare-feu est chargée par upstart avec le fichier de configuration suivant: /etc/init/iptables-init.conf Pour afficher les règles en cours, taper: sudo /usr/lib/iptables/iptables status sudo /usr/lib/iptables/ip6tables status Bonne continuation. Modifié le 20 février 2011 par djezzyman Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djezzyman Posté(e) le 21 février 2011 Auteur Share Posté(e) le 21 février 2011 Décidément le passage de sys-rc à upstart a été douloureux. J'ai fait l'erreur de fusionner les services iptables et ip6tables en un seul service iptables-init. Mais cela a pour conséquence de faire échouer le logiciel car à chaque application des changements, le logiciel stop le service pour chaque version du protocole IP (ipv4 et ipv6). Au deuxième arrêt upstart renvoie un code d'erreur car on lui demande de stopper un service déjà stoppé. Même chose pour le démarrage des services. Il a donc fallu revenir à une configuration à deux services et c'est bien mieux. Il est à noter que la résolution des problèmes est rendue plus complexe lorsque l'on lance le logiciel sans droit privilégié. Car alors l'élévation de privilèges est assurée par policykit et les taches se font en arrière plan sans aucun message d'erreur disponible car policykit interdit l'accès à l'interface graphique. Pour résoudre les problèmes, il faut lancer le logiciel avec les droits root (sudo ou gksudo) car alors le recours à policykit est annulé et les messages d'erreurs apparaissent. J'ai ajouté deux fichiers de configurations upstart (dossier /etc/init): iptables-init-config.conf et ip6tables-init-config.conf Ils permettent d'activer et de désactiver les services iptables et ip6tables. L'activation se fait avec les commandes: initctl emit config-iptables-init FW_ACTION=enable initctl emit config-ip6tables-init FW_ACTION=enable La désactivation se fait avec les commandes: initctl emit config-iptables-init FW_ACTION=disable initctl emit config-ip6tables-init FW_ACTION=disable C'est un exemple d'implémentation upstart des commandes suivantes utilisées dans les distributions de Redhat: chkconfig service on chkconfig service off upstart est vraiment très intéressant. Bonne continuation. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djezzyman Posté(e) le 24 février 2011 Auteur Share Posté(e) le 24 février 2011 (modifié) Les paquets python-slip mis à jour étaient endommagés, je ne m'en suis pas rendu compte. Heureusement les tout premiers paquets python-slip,python-slip-dbus et python-slip-gtk étaient parfaitement fonctionnels. Les mises à jour ne concernent pas les fonctionnalités propres des paquets mais un fichier livré avec la documentation. De plus le fichier de control des paquets mis à jour contenait des variables d'environnement obsolètes (utilisées par debhelper). Cela avait pour effet de rendre les paquets construits impropres à l'installation car les dépendances étaient impossibles à satisfaire. C'est réglé maintenant. Les installation et mise à jour fonctionnent. Au pire des cas voici comment obtenir une ré-installation correcte: Commencer par sauver la configuration du pare-feu, il suffit pour cela de sauvegarder les fichiers: /etc/default/iptables /etc/default/ip6tables /etc/default/iptables-config /etc/default/system-config-firewall On le fait avec le petit script suivant (sans privilège super-utilisateur on doit pouvoir lire dans /etc/default/): #!/bin/sh SCF_FILES="" for file in iptables ip6tables iptables-config system-config-firewall; do [ -f /etc/default/$file ] && SCF_FILES="/etc/default/$file $SCF_FILES" done if [ -n "$SCF_FILES" ]; then if tar cf - $SCF_FILES | gzip -c > ~/scf-backup.tar.gz ; then echo " * La configuration a été sauvegardée dans l'archive ~/scf-backup.tar.gz" else echo " * La configuration a échoué. Désolé" rm -f ~/scf-backup.tar.gz fi else echo " * Pas de configuration à sauvegarder" fi Après exécution (avec succès !) de ce script, le répertoire utilisateur contient l'archive scf-backup.tar.gz contenant la configuration. Vérifier la présence de l'archive avec les commandes: ls -l ~/scf-backup.tar.gz tar ztf ~/scf-backup.tar.gz Ensuite pour purger l'installation, on exécute la commande: sudo apt-get purge python-slip Si une erreur est renvoyée, il faut purger chaque paquet en veillant à respecter l'ordre des dépendances qui est le suivant: sudo apt-get purge system-config-firewall sudo apt-get purge system-config-firewall-tui sudo apt-get purge system-config-firewall-base sudo apt-get purge python-slip-dbus sudo apt-get purge python-slip pour réinstaller l'utilitaire, taper sudo apt-get install system-config-firewall Restaurer ensuite la configuration sauvegardée avec la commande: sudo tar -C / -zxvf ~/scf-backup.tar.gz Il suffit enfin de redémarrer les services: sudo restart iptables sudo restart ip6tables Pardon pour tous ces cafouillages, mais le monde Debian est nouveau pour moi. Bonne continuation. Modifié le 24 février 2011 par djezzyman 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
djezzyman Posté(e) le 2 mars 2011 Auteur Share Posté(e) le 2 mars 2011 (modifié) Vous devez mettre à jour votre configuration apt car le PPA ubuntu-contribs/contribs a été supprimé par erreur. Il est remplacé par le PPA ubuntu-contribs/contrib (juste un s en moins à la fin). Si le fichier suivant existe: /etc/apt/sources.list.d/ubuntu-contribs-contribs-maverick.list et que son contenu se limite aux deux seules lignes: deb http://ppa.launchpad.net/ubuntu-contribs/contribs/ubuntu maverick main deb-src http://ppa.launchpad.net/ubuntu-contribs/contribs/ubuntu maverick main alors supprimez le ou commentez les lignes au dessus en plaçant un # en début de ligne. Si vous utilisez Ubuntu, exécutez la commande : add-apt-repository ppa:ubuntu-contribs/contrib Tapez ensuite: sudo apt-get update sudo apt-get upgrade J'ai décidé de supprimer tout support upstart et de revenir aux scripts sysv-rc car upstart n'est pas utilisé dans la distribution Debian Squeeze. Ainsi le logiciel pare-feu est disponible pour les système Ubuntu et Debian. Désolé pour ce nouveau désordre mais j'ai supprimé le PPA principal à la place d'un PPA temporaire. Il est impossible de recréer ce PPA. Pour installer ce repo sous debian: Commencer par créer, s'il n'existe pas, le fichier: /etc/apt/sources.list.d/ubuntu-contrib.list Puis y ajouter les deux lignes: deb http://ppa.launchpad.net/ubuntu-contribs/contrib/ubuntu maverick main deb-src http://ppa.launchpad.net/ubuntu-contribs/contrib/ubuntu maverick main Enfin il faut ajouter la clé du repo qui sert à vérifier la signature des paquets. Exécuter la commande: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4965156C Puis installer le logiciel avec les commandes: sudo apt-get update sudo apt-get install system-config-firewall Bonne continuation. Modifié le 2 mars 2011 par djezzyman Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.