Pour les scripts : c'est ici

Salut,

Et la mer qu’est démontée, vous la remontez quand ? Au meme moment que vous réactiverez le Wiki :smiley:

Bonjour, un script pour supprimer temporairement des fichiers, dernier rempart avant le
rm -rf fatidique et tellement humain :confused:
Pour peu qu’il fonctionne, et qu’on prenne l’habitude de ne plus utiliser rm
(on peut même imaginer d’invalider la commande rm sauf pour le panier …), ça peut le faire :
1/ Créer un fichier dans un répertoire de scripts (ex: /.scripts/remove).
2/ Coller ce contenu dedans :

#!/bin/bash

# suppression temporaires des fichiers et répertoires dans un repertoire Panier.
PANIER=/home/$USER/Panier                      # la corbeille
# On la crée si nécessaire
if [ -e "$PANIER" ]; then
	if [ -f "$PANIER" ]; then
    echo "Un fichier nommé panier est déjà présent, supprimez ou renommez le"
    echo "ou modifier le nom du repertoire Panier dans la variable ci-dessus."
  fi
else
  mkdir $PANIER
  chmod 770 $PANIER                             # user à tout les droits dessus
fi

# on détermine un mode détaillé des actions
declare -i MODE=1
[ "$1" == '-v' ] && { 
  MODE=0
  shift
}
[ $MODE -eq 0 ] && echo "Les fichiers spécifiés vont être déplacés dans $PANIER"

# on teste les arguments passés
case $# in
  0)
    echo "Usage: remove [-v :verbose] fichier:"
    echo "Spécifiez un fichier ou un repertoire à supprimer"
    exit 1 ;;
  *)
    for fic in $*; do                           # simple boucle sur les fichiers
      [ ! -e $fic ] && {
        echo "Argument invalide <$fic> ignoré"
        continue                                # ignore les noms de fichiers incorrects
      }
      if [ -e "$PANIER/$fic" ]; then            # vérifie que la corbeille ne contient pas $fic
        read -s -p "Il existe déjà un fichier $fic dans le panier, écraser (y/N): " resp
        case $resp in
          y | Y | o | O)
            echo
            # on doit déplacer le fichier de même nom, qu'on renomme (?)
            mv $PANIER/$fic $PANIER/$fic-bak
            mv $fic $PANIER                     # si éffacement confirmé, on déplace
            if [ $? -eq 0 ]; then
              [ $MODE -eq 0 ] && echo "Suppression de $fic"
            fi ;;
          *) echo ;;                            # ou bien ne fait rien
        esac 
      else
        mv $fic $PANIER                         # on déplace $fic dans la corbeille
        if [ $? -eq 0 ]; then
          [ $MODE -eq 0 ] && echo "Suppression de $fic"
        fi
      fi
    done ;;
esac

3/ Attribuer les permissions nécessaires :

# chown root:root /.scripts/remove
# chmod 755 /.scripts/remove

rendu exécutable pour tout utilisateur.
4/ linker se fichier dans le bin d’un utilisateur ayant droit :

# ln -s /.scripts/remove /home/$USER/bin/remove

Ici, si vous linkez en root, remplacez $USER par le nom réel de l’user (en dur).

2 questions :

  • un if else ne serait il pas mieux qu’un case?

  • il créerais pas un répertoire panier à chaque fois qu’on l’appel?

Q1: en terme d’execution, un case est pareil à un if ... then ... elseif ... then ... elseif ... fi, mais pour traiter tous les cas (comme par exemple y | Y | o | O) c’est plus compact à ecrire avec un case.
Q2: non: il teste au debut si le panier existe et ne fait rien si c’est le cas.

Bonjour,
Oui … (ou c’est affaire de style). En relisant, je mettrai plutôt ligne 9:

echo "ou modifier le nom du repertoire Panier dans la variable Panier dans `basename $0`."

Voici un petit script pour gérer les utilisateurs virtuels avec Pure-FTPd:

#!/bin/bash 
#
################################################################################
# Configuration :
# adaptez cette ligne selon votre installation
PASSWDFILE=/etc/pure-ftpd/pureftpd.passwd
# adaptez selon les parametres que vous avez choisis pour votre serveur (laissez
# les guillemets)
PUREFTPCONF="/usr/sbin/pure-ftpd -A -b -c10 -B -C2 -D -E -fftp -H -I5 -lpuredb:/etc/pure-ftpd/pureftpd.pdb -L10000:3 -m4 -p10000:10400 -s -U133:022 -u1000 -Oclf:/var/log/transfers.log -k95 -Y0 &"
# Adaptez selon l'UID de l'utilisateur ftpuser et le GID du groupe ftpgroup
# sur votre Linux
NUMIDDEFTPUSER=1002
NUMIDDEFTPGROUP=1002
# répertoire chrooté des users créés
PATHACCES=/var/www/
#Fin de la configuration
################################################################################

CHOIX=0
clear

echo -e "\n\t\t\t***********************\n\t\t\t* Gestion de Pure-FTP *\n\t\t\t***********************\n"

while [ $CHOIX != 9 ]; do

echo -e "\t\t\tChoix possibles:\n\t\t1: Ajouter un utilisateur virtuel.\n\t\t2: Effacer un utilisateur virtuel.\n\t\t3: Voir les droits d'un utilisateur.\n\t\t4: Lister les utilisateurs.\n\t\t5: Changer le passwd d'un utilisateur.\n\t\t6: Voir les connections actives du serveur.\n\t\t7: Démarrer le serveur.\n\t\t8: Tuer le serveur.\n\t\t9: Quitter.\n\nTapez l'entier correspondant a votre choix:"
read CHOIX
echo ""

case $CHOIX in
        1)
                echo "Entrez le login à ajouter: "
                read NICK
		if [ "$NICK" = "" ];then
			echo -e "Erreur, veuillez indiquer un login!\n"
		else
                	if [ $NICK = root ];then
                	        echo -e "Erreur, veuillez indiquer un login différent de root!\n"
                	else
				if grep $NICK $PASSWDFILE > /dev/null
				then
					echo -e "$NICK a déjà un compte\n"
				else
					pure-pw useradd $NICK -u $NUMIDDEFTPUSER -g $NUMIDDEFTPGROUP -d $PATHACCES
                	        	echo -e "Utilisateur virtuel $NICK ajouté!\n"
					pure-pw mkdb
				fi
			fi
		fi
          ;;
        2)
                echo "Entrez le login à effacer: "
                read NICK
		if [ "$NICK" = "" ];then
                        echo -e "Erreur, veuillez indiquer un login!\n"
                else
			if grep $NICK $PASSWDFILE > /dev/null
			then
		          	pure-pw userdel $NICK
				echo -e "Utilisateur virtuel $NICK supprimé!\n"
				pure-pw mkdb
			else
				echo -e "L'utilisateur $NICK n'existe pas!\n"
			fi
		fi
          ;;
	3)
                echo "Entrez le login dont vous voulez vérifier les droits: "
                read NICK
		if [ "$NICK" = "" ];then
                        echo -e "Erreur, veuillez indiquer un login!\n"
                else
	                if grep $NICK $PASSWDFILE > /dev/null
			then
	                        pure-pw show $NICK
	                else
	                        echo -e "L'utilisateur $NICK n'existe pas!\n"
	                fi
		fi
          ;;
	4)
		echo -e "\tLogin\t\t|  UID\t|  GID\t| path"
                echo -e "\t----------------+-------+-------+-----------------------"
                awk 'BEGIN { FS=":" } NF==0{next} {print "	"$1 "		\| " $3 "	\| " $4 "	\| " $6}' $PASSWDFILE
		echo ""
          ;;
	5)
                echo "Entrez le login dont le passwd doit changer: "
                read NICK
		if [ "$NICK" = "" ];then
                        echo -e "Erreur, veuillez indiquer un login!\n"
                else
	                if grep $NICK $PASSWDFILE > /dev/null
			then
				pure-pw passwd $NICK
				echo -e "Le passwd de $NICK est changé!\n"
				pure-pw mkdb
	                else
	                        echo -e "L'utilisateur $NICK n'existe pas!\n"
	                fi
		fi
          ;;
	6)
                pure-ftpwho -v
          ;;
	7)
		eval $PUREFTPCONF
                echo -e "Serveur FTP\t\t\t[ON]\n"
          ;;
	8)
                for VAR in "`ps -A | grep pure-ftpd`"; do
                        if  [ pure-ftpd = "`echo $VAR | gawk -F" " '{print $4}'`" ]; then
                        VAR=`echo "$VAR" | gawk -F" " '{print $1}'`
                        kill -9 $VAR
                        fi
                done;
                echo -e "Serveur FTP\t\t\t[OFF]\n"
          ;;
	9)
		clear
                echo -e "\n\n\n\t\tA bientôt!\n"
		sleep 2
		clear
		exit
          ;;
	*)
		echo -e "Votre choix n'est pas valide!"
		CHOIX=0
	  ;;
esac

echo "Press <Enter>"
read UNUSED
clear

done

Bonsoir,
un script pour installer java sur notre debian (tester sur etch/sid) :

[SITE NO LONGER AVAILABLE]
https://jcodejava.com/index.php?id_page=10
menus: bash -> javanoob-installer-1.0

[SITE NO LONGER AVAILABLE]

C’est plus un script orienté noob de base :wink: qu’autre chose, m’enfin j’me suis bien “amusé”.
ps: merci de commenter ici pour du bref, ou bugs et suggestions, améliorations, mise à jours --> en message sur ma MP.

un petit script pour les parents qui en on marre de discutailler avec leurs enfants accros de amsn et de leur dire d’aller faire leurs devoirs :wink:

On renomme l’exécutable amsn, chez certains /usr/share/amsn/amsn en /usr/share/amsn/amsn-real

# mv /usr/share/amsn/amsn /usr/share/amsn/amsn-real

On crée un fichier de remplacement qu’on rend exécutable pour tous :

# touch /usr/share/amsn/amsn && chmod a+rx /usr/share/amsn/amsn

On y colle ce code (nano /usr/share/amsn/amsn):

#!/bin/bash

if [ $EUID -ne 1000 ]; then
  declare -i delay
  declare -a lun_mar_jeu=( 18:30:00 19:30:00 )
  declare -a mer_ven=( 18:30:00 21:00:00 )
  declare -a we=( 11:00:00 12:30:00 19:00:00 21:00:00 )
  declare h_min=
  declare h_max=

  declare DATE_CUR="$(date)"
  declare JOUR_CUR="$(echo "$DATE_CUR" | awk '{print $1}')"
  declare HEURE_CUR="$(echo "$DATE_CUR" | awk '{print $5}')"

  check_time() {


    tab=( $(echo "$1") )

    while [ ${#tab[@]} -ne 0 ]; do
      h_min=${tab[0]}
      h_max=${tab[1]}
      if ((echo "$h_min" && echo $HEURE_CUR) | sort -c &> /dev/null); then
        if ((echo "$HEURE_CUR" && echo $h_max) | sort -c &> /dev/null); then
          # calcul du délai
          # calcul des heures:
          declare -i hm=$(echo $h_max | gawk -F':' '{print $1}')
          declare -i hc=$(echo $HEURE_CUR | gawk -F':' '{print $1}')
          delay=$hm-$hc
          delay=$delay*3600
          # calcul des minutes:
          hm=$(echo $h_max | gawk -F':' '{print $2}')
          hc=$(echo $HEURE_CUR | gawk -F':' '{print $2}')
          delay+=$(( $hm-$hc ))*60
          return 0
        fi
      fi
      unset tab[0]
      unset tab[1]
      tab=( $(echo ${tab[@]}) )
    done
    return 1
  }

  case $JOUR_CUR in
    lundi|mardi|jeudi)
      if ! check_time ${lun_mar_jeu[@]}; then
        DISPLAY=:0.0 xmessage -center "C'est pas le moment, et les devoirs !?
horaires possibles: ${lun_mar_jeu[@]}"
        exit 1
      fi ;;
    mercredi|vendredi)
      if ! check_time ${mer_ven[@]}; then
        DISPLAY=:0.0 xmessage -center "C'est pas le moment, et les devoirs !?
horaires possibles: ${mer_ven[@]}"
        exit 1
      fi ;;
    samedi|dimanche)
      if ! check_time "$(echo ${we[@]})"; then
        DISPLAY=:0.0 xmessage -center "C'est pas le moment, et les devoirs !?
horaires possibles: ${we[@]}"
        exit 1
      fi ;;
  esac

  /usr/share/amsn/amsn-real &
  sleep $delay
  DISPLAY=:0.0 xmessage -center "Fermeture de amsn dans 30 secondes !" &
  sleep 30
  killall wish
else /usr/share/amsn/amsn-real &
fi

exit 0

Et voilà, seul vous :smiling_imp: (EUID=1000 normalement) est autorisé quelque soit l’horaire et le jour.

Edit: j’ai rajouter des lignes pour killer amsn quand c’est plus l’heure :smiling_imp:

nooon y’a des limites lol.

Et est ce que le PV arrive automatiquement dans la boite au lettre des gosses ? :laughing:

arf c’est vide.

mais la fonction recherche sert bien aussi sur les forum phpbb

perso les wiki j’aime pas trop, je prefer les fofo, mais bon, sa reste pratique quand meme.

Tu kill amsn mais tu ne le rend pas inaccessible.

  1. Modifier les droits sur l’execution de amsn (le vrai) pour que seul un certains groupe ai le droit).
  2. Le script doit appartenir à ce même groupe et le bit set-gui.
    (et là le gamin il es vénere :laughing: )

Non mais là, le but est plus de rappeler qu’il y a des heures pour tchater, et des heures pour faire ses devoirs, que d’interdire complétement amsn.
Ceci dit, je n’ai pas vraiment pu faire un jeu de tests (pas sûr que le killall wish soit la commande adéquate en cas où le gamin est déjà en tchat sur plusieurs fenêtres ou onglets mais bon …).

Je sais pas si j’ai bien fait de poster ici vu que ce script concerne iptables.
crée par moi meme, rien que ça :laughing:
je l’ai tester et je doit dire que sa marche bien.
il est optimisable, personalisable.

scripte N1


#!/bin/sh
#
# 	Il est important de comprendre ce script et de l'adapter!
# 	Les programes: apt-get install screen
# 	Le but est de fermer les port des qu'une applications est détectée grâce a netstat
# 	On peux egalment forcer l'ouverture d'un port ce qui devient focement un risques
# 	Je considère qu'une application autorisée , en prend la résponsabiliter
# 	Je ne gere pas le suivit de connection par application, a vous de l'ajouter
#	de meme que d'autre option comme l'icpm!! 
# 	Un répertoire temporaire (vide  est conseillier)
# 	exemple mkdir/home/tnt/volatile
# 	pour le demarrer vous devez utiliser /etc/init.d/firewall 
# 	les 2 script ce place dans /etc/init.d
# 	Ajuster les droits sur ce répertoire a vôtre convenance ( man chmod )
# 	Les erreurs sont velontairement non masquée!
# 	Ce script consome du CPU et de la ram d'environ 2 a 10 mb!
#	vous pouvez eviter la charge en ram en
#	Placean les fichiers temporaires sur le disques 
#	En principe dans /var/log ou dans /tmp

PATH=/usr/eth0cal/sbin:/usr/eth0cal/bin:/sbin:/bin:/usr/sbin:/usr/bin:/sbin/iptables
#Fichier temporaire pour les appelles netstats
File="/home/tnt/volatile/ipnetstat_auto"
#fichier de port fermer, ajouter ici les port dont vous voulez forcer l'ouverture des port
PortClose="/home/tnt/volatile/ipnetstatclose"
#Fichier des programes autoriser a crée par vous meme
ProgAuto="/etc/netstat_auto_iptables.conf"
#Repertoire qui ser aux montage d'un volume en ram
ddvol="/home/tnt/volatile"
#Contien le PID  en cour 
PID="/home/tnt/volatile/pid"
#fichier permettant facilment de savoir si un port est fermer
pathlog="/home/tnt/volatile/close.log"
# votre interface reseaux
ETH="eth1"
# augmenter ici la valeur permet aux pc peux puissant de moin ramer, evidament 
# si le temps est très grand une application peux avoire le temps d'ouvrire un port!
pause="0.1"
pause2="0.1"
DAEMON="Firewall 0.2"
NAME="Firewall"
ID=$$
DESC="Firwall 0.2"
# vous pouvez desactiver le log en mettant sure OFF
LOG="ON"
# restriction sure le volume monter soiyer prudant si vous autoriser les executables
# cela represente uns faille
Restricted="0755"
set -m

case "$1" in
  start)
echo "pid :" $$

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
echo "montage du disque virtuel"
mount -t tmpfs -o size=10m,nr_inodes=10k,mode=$Restricted tmpfs "$ddvol"

echo "$$" > "$PID"
#on veux autoriser (forcer) certin port
echo "21" >> $PortClose
echo "22" >> $PortClose
echo "25" >> $PortClose
echo "80" >> $PortClose
echo "110" >> $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
#==============================================
# on autorise tout ce qui est en 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
soft=""
nobakslach=""
Prog=""
	soft=`echo $line | cut -d/ -f2`
	nobakslach=`echo $line | grep /`
	Prog=`grep "$soft" $ProgAuto`
# -z = longueur nulle et -n de longueur non nulle
	if [ ! -n "$Prog"  ] ;then

#		echo "le programe autoriser $Prog a le port $step"
#	else
			StepPort=""
			StepPort=`grep -w "$step" $PortClose`
 
			if [ ! -n "$StepPort" ] ;then
				if [ -n "$nobakslach" ] ;then
					echo "le programe $soft est interdi le port N° $step va etre fermer!"
					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
					if [ "$LOG" = "ON" ] ;then
						echo "$soft >=======> $step" >> $pathlog
					fi
				fi
			fi
	fi
	fi
fi
sleep $pause2
done < $File 
sleep $pause
done
	;;
  stop)
PID="/home/tnt/volatile/pid"
ddvol="/home/tnt/volatile"
kill -n 9 $(cat $PID) 2>/dev/null
echo "Demontage du volume"
sleep 2
umount -t tmpfs "$ddvol"
echo "Demontage terminer"
echo "Mise a zero des regles d'iptables"
#
# 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 "$DAEMON est terminer"
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Ne pas utiliser /etc/init.d/iptable_auto {start} OR news {start}=stop " $DAEMON >&2
	echo "Usage /etc/init.d/firewall stop && (OR) /etc/init.d/firewall start"
	exit 1
	;;
esac

exit 0

scripte N2

#!/bin/sh
case "$1" in
  start)
echo "démarrage du par feux"
screen -dm /etc/init.d/iptable_auto start
	;;
  stop)
/etc/init.d/iptable_auto stop
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: /etc/init.d/firewall {start ¦ stop}" $DAEMON >&2
	exit 1
	;;
esac

exit 0

si vous avez des idée ou si vous trouver des bug n’hésiter pas :slightly_smiling:
heu svp pas de critique sure mon français :blush:

sa intéresse personne ou c’est vraiment un bricolage du dimanche mon histoire ?

Je ne maitrise pas bien netfilter, mais je me pose juste la question sur ces trois commandes :

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Tu laisse tout passer par défaut?

oui puisque dès qu’une application est détectée le port est fermer droit derrière, donc l’application peut passer un court moment, mai c’est presque instantanée sauf si tu augmentes les valeur [pause], qui soulage le cpu et donc sa mai plus de temps pour scanner.
il est pas rare, a ce que j’ai pus constater que le port le plus fréquemment utiliser est celui du port 80
par pas mal d’application.
Ce port est casi toujours ouver,
Avec le script si tu forces pas ce port a être ouvert, si une application est pas permise sa lui cloue le bec meme sure le port 80 du coup aux moment ou tu veux surfer actualise une page ben hop sa passe plus.
il suffi d’aller voire le log on prend les mesures si il faut, ensuite un stop start et hop sa roule
voila ce que j’ai permis chez moi pour le moment.

weechat-curse
firefox-bin
ntop
evolution
http
ssh
wish
underware
poker-interfac

Attention http est utiliser par pas mal de soft genre amsn !

l’idéal sa serai de compléter firestarter pour qu’il le fasse mai je sai pas si sa serai plus performant.

ben fait un essai avec :slightly_smiling:

Alors…
Sincèrement ?

C’est une belle usine à gaz (oulala que de code superflu) programmée comme un cochon (des boucles while true !) et totalement inutile (ça sent le nid à faille à plein nez, et va t’en filtrer ce qui se lance par inetd ou qui tourne sous wine par exemple).
MAIS
La méthode de récupèration de l’appli du port est super interessante et peut être utile ailleurs.
L’utilisation du screen est ingènieuse, même si il existe des moyens beaucoup plus fiables de démoniser.

Moralité: C’est du vrai beau boulot d’apprentissage et de prise en main des objets du systême et du shell, mais maintenant, il faut AMA de la vraie formation pour faire des choses propres et partageables avec d’autres.

Ah, à propos des autres, j’ai cru remarquer que tu avais fait des efforts sur la structuration de tes phrases pour qu’elles ressemblent à des phrases françaises, avec des virgules en bonus, je te remercie, et ça serait super reposant si on arrivait aussi à une forme des mots qui ressemble à des mots francais, de manière à comprendre plus de 50% de ce que tu dis. :wink:
Pareil: ça devrait venir avec l’entrainement.

Voili Voilou.

Bonsoir,

Je vois un peu d’iptables par là et vu le titre du trhread, je me suis dit que c’était l’endroit pour vous faire partager mon script de firewall.

Etant donné qu’il y a plusieurs fichiers, une archive est plus facile :

http://smhteam.info/upload_wiki/scripts/thfw-0.1.0.tar.gz

La machine sur laquelle tourne ce script est derrière un routeur et partage différentes ressources à un réseau privé.

Normalement, il est pourvu de commentaires :smiley:

Si vous voyez des améliorations à faire, n’hésitez pas à m’en faire part. Pour les bugs aussi !

Merci pour la critique constructive :wink:
Il est vrai que je débute sous linux

Pour ce qui est de la boucle true c’est vrai que c’est pas très propre mai j’ai pas trouver comment faire autrement.

Pour ce qui est de wine, virtualbox, inetd. Il faut déjà que ceux ci soie autoriser a sortir. Si ceci est permis, je considère que c’est une boite de pandore et on peux y faire tout ce qu’on veux. Et filtrer le contenu d’une application en interne c’est plutôt le rôle d’un anti-virus.

thialme

Intéressant ces scripts, je regarderai en détail quand j’aurai plus de temps

bon voila un petit bout de script pour stopper une application qui fait trop chauffer le cpu ! je men ser sur mon portable.

#!/bin/sh
if test `sensors |grep °C |cut -b 15-16` -ge  70 ;then
killall -u boinc -s STOP
sleep 350
killall -u boinc -s CONT
fi
exit 0

Evidemment il s’agis du paquet libsensors3 et lm-sensors