Après votre aide très efficace, relative a ce post, je rencontre encore quelques petits problemes avec mon script des iptables.
J’utilise un script, pour un serveur de jeu distant(que j’administre en ssh).
le script s’exécute et fonctionne, néanmoins même si ce dernier semble remplir efficacement son office, j obtiens le message d’erreur suivant :
[1] 3595
sd-xxx:/usr/local/games/quake3# iptables: Invalid argument
iptables: Invalid argument
iptables: Invalid argument
iptables: Invalid argument
iptables: Invalid argument
iptables: Invalid argument
Je lance le dudit script dans un screen [code]screen -dmS nom_de_mon_screen
//puis
screen -r nom_de_mon_screen
//et enfin
sd-3707:/usr/local/games/quake3# ./ports2 xx.xx.xx.xx 27964 40030 40050 3600 &
[/code]
ports2 étant le nom de mon script (mais vous l aviez compris) le script fonctionne donc mais j’obtiens quand même le fameux prompt (iptables: Invalid argument), et tout en étant débutant, j’aime assez les choses “propres”, alors la encore si vous aviez une piste
Pour ce faire je vous joins le script, assez court en l’occurrence :
[code]#!/bin/tcsh
Copyright © 2008 glizda
set ip=$1
set realport=$2
set startport=$3
set stopport=$4
set timeout=$5
set port=$startport
set lastport=0
set iptables=/sbin/iptables
set masters=“q3master.allseeingeye.com master0.excessiveplus.net”
foreach a ( $masters )
$iptables -t nat -A POSTROUTING -p udp --sport $realport -d $a -j ACCEPT
end
$iptables -t nat -A PREROUTING -p udp --dport “$startport”:"$stopport" -m u32 --u32 “0x20&0xFFFFFFFF=0x67657469” -j DROP
$iptables -t nat -A PREROUTING -p udp --dport “$startport”:"$stopport" -m u32 --u32 “0x20&0xFFFFFFFF=0x67657473” -j DROP
$iptables -t nat -A PREROUTING -p udp --dport “$startport”:"$stopport" -m u32 --u32 “0x1c&0xFFFFFFFF=0x70696e67” -j DROP
$iptables -t nat -A PREROUTING -p udp --dport “$startport”:"$stopport" -j DNAT --to-destination “$ip”:"$realport"
while (1)
$iptables -t nat -A POSTROUTING -p udp --sport $realport --dport 27950 -j SNAT --to-source “$ip”:"$port"
$iptables -t nat -I PREROUTING -p udp --dport $port -m u32 --u32 “0x20&0xFFFFFFFF=0x67657469” -j DNAT --to-destination “$ip”:"$realport"
$iptables -t nat -I PREROUTING -p udp --dport $port -m u32 --u32 “0x20&0xFFFFFFFF=0x67657473” -j DNAT --to-destination “$ip”:"$realport"
$iptables -t nat -I PREROUTING -p udp --dport $port -m u32 --u32 “0x1c&0xFFFFFFFF=0x70696e67” -j DNAT --to-destination “$ip”:"$realport"
if ($lastport != 0) then
$iptables -t nat -D PREROUTING -p udp --dport $lastport -m u32 --u32 “0x20&0xFFFFFFFF=0x67657469” -j DNAT --to-destination “$ip”:"$realport"
$iptables -t nat -D PREROUTING -p udp --dport $lastport -m u32 --u32 “0x20&0xFFFFFFFF=0x67657473” -j DNAT --to-destination “$ip”:"$realport"
$iptables -t nat -D PREROUTING -p udp --dport $lastport -m u32 --u32 “0x1c&0xFFFFFFFF=0x70696e67” -j DNAT --to-destination “$ip”:"$realport"
$iptables -t nat -D POSTROUTING -p udp --sport $realport --dport 27950 -j SNAT --to-source “$ip”:"$lastport"
endif
sleep $timeout
@ lastport = $port
if ($port == $stopport) then
@ port = $startport
else
@ port++
endif
end
[/code]
Merci d’avance.