Votre navigateur est obsolète. Téléchargez un navigateur moderne, par exemple FireFox.
Léa-Linux : Forum
Le forum de Léa abrite des discussions autour des Logiciels libres.
Syndication
  • RSS ForumForum complet
  • RSS Forum - DéveloppementForum - Développement
  • RSS Forum - Développement - 323913Cette discussion

Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Important : quand vous posez une question, n'oubliez pas de nous donner les indications suffisantes pour que nous puissions répondre. En effet, la divination n'est pas le fort du Linuxien averti. Pour une meilleure compréhension, le bon usage de la grammaire et de l'orthographe est fortement encouragé. En particulier, le langage SMS est à éviter absolument. En cas d'abus, il pourra être censuré sans autre forme de procès.
Les messages dont le contenu est illégal (incitant à la haine - raciale ou autre, diffamant), ou dont le contenu est sans rapport avec le sujet du forum, ou qui sont parfaitement stupides ou hors sujet seront supprimés sans pitié. Il pourra même être fait appel au fournisseur d'accès du coupable pour faire cesser ses agissements.
» Index du forum » Développement » script schell (sh) pour iptables
Aller à la discussion: PrécédentSuivante
Action: Nouveau sujetChercherS'authentifier
script schell (sh) pour iptables
Avatar
Auteur: panthere noire (IP enregistrée)
Date: le 30 mai 2007 à 04:09

hello
Je me suis bricoller un petit script qui ferme automatiquement les programe qui pointe leur nez ,grace a iptables et netstat.
Sa marche assez bien bien que perfectible, car pour le moment je le teste.

Je voudrai le lancer comme demon aux demarrage du pc ou simplente en tapant /etc/init.d/nomduprog
mai comme celui ci tourne en boucle il ne rend pas la main aux terminal & console et quand je veux l'areter ben sa tourne toujours image : fache
donc si quelqu'un a une idée je suis preneur :)

Note: si vous avez un pc de puissance faible augmenter la valeur de pause et de pause2 image : jaybee

voici le code

#!/bin/sh
PATH=/usr/eth0cal/sbin:/usr/eth0cal/bin:/sbin:/bin:/usr/sbin:/usr/bin:/sbin/iptables
ssh="ssh"
File="/tmp/ipnetstat_auto"
PortClose="/tmp/ipnetstatclose"
ProgAuto="/etc/netstat_auto_iptables.conf"
ETH="eth1"
pause="0.5"
pause2="1"
DAEMON=/etc/init.d/iptable_auto
NAME=Firewall
ID=$$
DESC="Firwall 0.1"
BreakON="ON"
set -m

case "$1" in
  start)
if [ -e $ProgAuto ] ;then
	echo "Configuration trouvée Démarrage"
else
	echo "Fichier de configuration $ProgAuto non trouver. Ce fichier contien les programes autoriser par iptables!" 
	echo "Fin du programe"
	exit 
fi
rm "$File"
rm "$PortClose"
echo "Configuration des règles de base"
#Mise a zero des regle (par précaution)
#
# On remet la police par défaut à ACCEPT
#
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#
# On remet les polices par défaut pour la table NAT
#
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#
# On vide (flush) toutes les règles existantes
#
iptables -F
iptables -t nat -F

#
# Et enfin, on efface toutes les chaînes qui ne
# sont pas à defaut dans la table filter et nat

iptables -X
iptables -t nat -X
#==============================================
#local
iptables -A INPUT -i $ETH -s 192.168.1.0/24 -j ACCEPT
#loopack
iptables -A INPUT -i lo -j ACCEPT
#iptables -t filter -A INPUT -i $ETH -m limit --limit 24/h --limit-burst 1 -p all -j ULOG --ulog-prefix="USER INPUT Final"
#==============================================
#==============================================
#le loopack
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o $ETH -d 192.168.1.0/24 -j ACCEPT
#iptables -t filter -A OUTPUT -o $ETH -m limit --limit 24/h --limit-burst 1 -p all -j ULOG --ulog-prefix="USER OUTPUT Final"
#===============================================
while true
do
netstat -laputen > $File
while read line
do
#echo $line|cut -d: -f2 | cut -b1-6

n1=`echo $line | cut -d: -f2 | cut -b1-1`
n2=`echo $line | cut -d: -f2 | cut -b2-2`
n3=`echo $line | cut -d: -f2 | cut -b3-3`
n4=`echo $line | cut -d: -f2 | cut -b4-4`
n5=`echo $line | cut -d: -f2 | cut -b5-5`
n6=`echo $line | cut -d: -f2 | cut -b6-6`
step=""
if [ -n "$n1" ] ;then
num=$((`expr match "$n1" '[[:digit:]]'`))
	if [ $num -eq 1  ] ;then
	step=$step$n1
		num=$((`expr match "$n2" '[[:digit:]]'`))
		if [ $num -eq 1  ] ;then
		step=$step$n2
			num=$((`expr match "$n3" '[[:digit:]]'`))
			if [ $num -eq 1  ] ;then
			step=$step$n3
				num=$((`expr match "$n4" '[[:digit:]]'`))
				if [ $num -eq 1  ] ;then
				step=$step$n4
					num=$((`expr match "$n5" '[[:digit:]]'`))
					if [ $num -eq 1  ] ;then
					step=$step$n5
						num=$((`expr match "$n6" '[[:digit:]]'`))
						if [ $num -eq 1  ] ;then
						step=$step$n6
						fi
					fi
				fi
			fi
		fi

	Prog=`grep "$step" $ProgAuto`
	if [ "$Prog" = "$ProgAuto" ] ;then
		echo "le programe autoriser $Prog a le port $step"
	else
		if [ -e $PortClose ] ;then
			StepPort=`grep "$step" $PortClose`
#			echo " stepgrep  $StepPort"
			if [ ! -n "$StepPort" ] ;then
#				echo "port deja fermer"
#			else
#				echo "port en cour de fermeture"
			iptables -A OUTPUT -o $ETH -p tcp --dport $step -j DROP
			iptables -A OUTPUT -o $ETH -p tcp --sport $step -j DROP
			iptables -A INPUT -i $ETH -p tcp --dport $step -j DROP
			iptables -A INPUT -i $ETH -p tcp --sport $step -j DROP
			iptables -A OUTPUT -o $ETH -p udp --dport $step -j DROP
			iptables -A OUTPUT -o $ETH -p udp --sport $step -j DROP
			iptables -A INPUT -i $ETH -p udp --dport $step -j DROP
			iptables -A INPUT -i $ETH -p udp --sport $step -j DROP
				echo $step >> $PortClose
				
			fi
		else
#			echo "port en cour de fermeture $step"
			iptables -A OUTPUT -o $ETH -p tcp --dport $step -j DROP
			iptables -A OUTPUT -o $ETH -p tcp --sport $step -j DROP
			iptables -A INPUT -i $ETH -p tcp --dport $step -j DROP
			iptables -A INPUT -i $ETH -p tcp --sport $step -j DROP
			iptables -A OUTPUT -o $ETH -p udp --dport $step -j DROP
			iptables -A OUTPUT -o $ETH -p udp --sport $step -j DROP
			iptables -A INPUT -i $ETH -p udp --dport $step -j DROP
			iptables -A INPUT -i $ETH -p udp --sport $step -j DROP

			echo $step >> $PortClose
		fi
	fi

	fi
fi
sleep $pause2
done < $File 
sleep $pause

if [ "$BreakON" = "OFF" ] ;then
break 0
break 1
break 2
fi

done
echo "Firewall stoped"
	;;
  stop)
#sortie de la boucle principale
BreakON="OFF"
#Mise a zero des regle (par précaution)
#
# On remet la police par défaut à ACCEPT
#
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#
# On remet les polices par défaut pour la table NAT
#
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#
# On vide (flush) toutes les règles existantes
#
iptables -F
iptables -t nat -F

#
# Et enfin, on efface toutes les chaînes qui ne
# sont pas à defaut dans la table filter et nat

iptables -X
iptables -t nat -X
#==============================================

	echo "$NAME."

	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: /etc/init.d/iptable_auto {start|stop} " $DAEMON >&2
	exit 1
	;;
esac

exit 0


voila :)


net install--> sid 2.6.24 dist i386
kde 3.5.9
noyaux 2.6.25
asus p5n32-e sli plus
Sata 2 dd 320 go ext3
nvidia 8800gtx 768 ddr3

Re: script schell (sh) pour iptables
Avatar
Auteur: oudoubah (IP enregistrée)
Date: le 30 mai 2007 à 16:21

Tu peux rajouter du code dans 3 parties :

Au début:
RUN_LOCK=/var/run/kill_them_all


start :
PID=$$
if [ -e $RUN_LOCK ] ; then
   echo "Le démon tourne déjà"
   exit 1
else
   echo "Lancement du démon"
   echo $PID > $RUN_LOCK
fi


stop:
if [ -e $RUN_LOCK ] ; then
   echo "Arrêt du démon"
   kill -TERM $(cat $RUN_LOCK)
   rm -f $RUN_LOCK
else
   echo "Le démon ne tourne pas"
fi


Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Re: script schell (sh) pour iptables
Avatar
Auteur: panthere noire (IP enregistrée)
Date: le 31 mai 2007 à 17:01

Merci :))

net install--> sid 2.6.24 dist i386
kde 3.5.9
noyaux 2.6.25
asus p5n32-e sli plus
Sata 2 dd 320 go ext3
nvidia 8800gtx 768 ddr3



Nom du forum : (antispam) - (en développement:saisir un texte pour le message, rempli cette zone automatiquement)
Votre nom: 
Votre email: 
Sujet: 

 
Ce forum est boosté par Phorum.