Bonjour, J'essaye de mettre au point un petit script en perl pour pouvoir modifier quelques regles de mon firewall sans être connecté en root
Quand ppp se connecte, il place l'adresse IP que me donne mon provider dans /var/www/serveur/ip.conf, qui a les droits : -rwxr--r-- 1 root www-data 14 aoû 30 07:48 /var/www/serveur/ip.conf par la ligne suivante dans /etc/ppp/ip-up : echo -n $4 > /var/www/serveur/ip.conf J'ai ensuite créé un script firewall.pl avec les droits -rwsr-x--- qui appartient a root et au groupe firewall, afin que tout utilisateur du groupe firewall puisse l'executer Pour appliquer certaines regles, j'ai besoin de connaitre mon adresse IP externe, celle qui se trouve dans /var/www/serveur/ip.conf Voici ce que contient mon script firewall.pl : #! /usr/bin/perl $ENV{'PATH'} = '/bin:/usr/bin:/sbin'; delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'}; my $ip = ""; my $l = ""; open(DESCR,"/var/www/serveur/ip.conf"); while (defined(my $l=<DESCR>)) {$ip.= $l;} close(DESCR); #print($ip); my $iptables = '/sbin/iptables'; # La il y a des regles qui ne font que des choses classiques # c'est ici que ca se complique : # J'ai une 'insecure dependency in system' a la ligne ci dessous. Cela # provient de la variable $ip car si je la remplace par sa valeur, je # n'ai plus de pb. system($iptables." -t nat -A PREROUTING -i ppp+ -p tcp -d ".$ip." --dport 4661 -j DNAT --to 192.168.1.1:4661"); system($iptables." -t nat -A PREROUTING -i ppp+ -p tcp -d ".$ip." --dport 4662 -j DNAT --to 192.168.1.1:4662"); system($iptables." -t nat -A PREROUTING -i ppp+ -p udp -d ".$ip." --dport 4665 -j DNAT --to 192.168.1.1:4665"); system($iptables." -A FORWARD -i ppp+ -o eth0 -p tcp -d 192.168.1.1 --dport 4661 -j ACCEPT"); system($iptables." -A FORWARD -i ppp+ -o eth0 -p tcp -d 192.168.1.1 --dport 4662 -j ACCEPT"); system($iptables." -A FORWARD -i ppp+ -o eth0 -p udp -d 192.168.1.1 --dport 4665 -j ACCEPT"); Comment faire pour ne plus avoir ce probleme lié a l'execution en setuid root ? J'ai cherché un option pour forcer perl, mais je n'ai pas trouvé ... Merci d'avance pour votre aide -- Grégoire CACHET http://www.audacy.fr