Commit ff6f7fff authored by Vincent Le gallic's avatar Vincent Le gallic

Un peu de ménage

parent 3f2a2d25
#compdef cranspasswords
_fichiers () {
compadd "$@" - $(cranspasswords --list)
}
_arguments -C -s \
'--re-encrypt-all[rechiffre tous les fichiers]:Fichiers:_fichiers' \
'--edit[edite un fichier chiffre]:Fichiers:_fichiers' \
'--remove[suppression d''un fichier chiffre]:Fichiers:_fichiers' \
'--view[voir un fichier chiffre]:Fichiers:_fichiers' \
'--list[liste des fichiers chiffres]' \
'*::Fichiers:_fichiers'
#! /bin/bash
###############################################################################
# Plus utilis ! Cf https://wiki.crans.org/CransTechnique/CransPasswords
# cranspasswords : Outil de (d)chiffrage de mots de passe
###############################################################################
#
# Copyright (C) 2006 Etienne Chov
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
###############################################################################
# variables gnrales
SRV=vert.adm.crans.org
REP=/root
TMP=`if which tempfile &> /dev/null; then tempfile -m 600; else mktemp; fi`
#trap "rm -f ${TMP} ${TMP}.asc" EXIT
##############################################################################
# parsage des arguments
if [[ -z "$1" ]] ; then
ACTION="--view"
CHOIX=""
elif echo $1 | grep -q '^--' ; then
ACTION=$1
CHOIX=$2
else
ACTION='--view'
CHOIX=$1
fi
##############################################################################
# fonctions utiles
function liste () {
# donne la liste des mot de passe
echo -e "\033[1;34mListe des mot de passe disponibles :\033[1;0m" >&2
ssh ${SRV} "ls ${REP} | grep -e '.asc$' | sed 's/\.asc$//g' | sed 's/^/ /g'" 2> /dev/null
}
function choix () {
# choix du fichier
if [[ -z "$CHOIX" ]] ; then
liste
echo
echo -e -n "\033[1;34mChoix : \033[1;0m"
read CHOIX
else
echo -e "\033[1;34mChoix :\033[1;0m $CHOIX"
fi
echo
}
function dechiffre () {
# rcupre le mot de passe $CHOIX, le dchiffre et le colle dans $TMP
# ${TMP} sera vide si les pass n'existe pas
echo -e "\033[1;34mConnection ${SRV}\033[1;0m"
ssh ${SRV} -t "sudo -p 'Mot de passe sudo : ' echo -n" 2> /dev/null
echo
echo -e "\033[1;34mRcupration du fichier et dchifrage\033[1;0m"
ssh ${SRV} "sudo cat ${REP}/$CHOIX.asc" | gpg --decrypt > ${TMP}
echo
}
function chiffre () {
# chiffre les fichier $TMP et les colle dans le fichier $CHOIX
echo -e "\033[1;34mChiffrage et envoi sur ${SRV}\033[1;0m"
if [[ ! -s ${TMP} ]] ; then
echo -e "\033[1;31mFichier vide, abandon...\033[1;0m"
return
fi
full_rec=(
051ADBC8 # maioli@crans.org
0BF3708E # xavier.lagorce@crans.org
2127F85A # jdimino@dptinfo.ens-cachan.fr
41C2B76B # samir@crans.org
49881AD3 # Stephane.Glondu@crans.org
5BEC9A2F # olivier.iffrig@crans.org
66475AAF # nicolas.dandrimont@crans.org
6E1C820B # daniel.stan@crans.org
7D980513 # parret-freaud@crans.org
8E96ACDA # adg@crans.org
A8A4F83E # bruot@crans.org
AF087A52 # blockelet@crans.org
E0DCF376 # olivier.huber@crans.org
F2530FCE # pierre.chambart@crans.org
)
count=${#full_rec[@]}
RECIPIENTS=$(index=0; while [ "$index" -lt "$count" ]; do echo -n "-r "; echo -n 0x${full_rec[$index]}; echo -n " "; ((index++)); done)
yes | gpg --armor --encrypt ${RECIPIENTS} ${TMP}
# 3603EFD9 alexandre@alexandre-bos.fr
# 4EF9E1D1 xavier.pessoles@crans.org
# 6D1DF0FA pauget@crans.org
# 81DDB065 gregoire.detrez@crans.org
# 98E76332 etienne.chove@crans.org
# BD156CC4 dubost@crans.org
# C5C4ACC0 vincent.thomas@crans.org
# D6ADFD5A carlos@crans.org
# F22A794E Vincent.Bernat@crans.org
# FBFA4781 Nicolas.Stransky@crans.org
[[ "$#" == "0" ]] && ssh ${SRV} "sudo sh -c \"cat > ${REP}/${CHOIX}.asc\"" < ${TMP}.asc || echo -e "\033[1;31mErreur, abandon...\033[1;0m"
}
function droits () {
# modifie les droits du fichier chiffr
echo -e "\033[1;34mChangement des droits sur le fichier\033[1;0m"
ssh ${SRV} "sudo chmod 600 ${REP}/${CHOIX}.asc"
}
function edite () {
# dite le fichier temporaire
$EDITOR ${TMP}
}
function voir () {
# affiche le contenu du fichier temporaire
echo -e "\033[1;34mAffichage du fichier\033[1;0m"
less ${TMP}
}
function supprime () {
# supprime un fichier
echo -e "\033[1;34mSuppression du fichier chiffr : \033[1;0m${CHOIX}"
CONFIRM="Oui, je suis certain."
echo -n "Tapez \"$CONFIRM\" : "
read CONFIRM2
echo
if [[ "${CONFIRM}" == "${CONFIRM2}" ]] ; then
echo -e "\033[1;34mConnexion ${SRV}\033[1;0m"
ssh ${SRV} -t "sudo -p 'Mot de passe sudo : ' echo -n" 2> /dev/null
echo
echo -e "\033[1;34mSuppression du fichier\033[1;0m"
ssh ${SRV} "sudo rm -f ${REP}/$CHOIX.asc 2> /dev/null"
echo -e "\033[1;32mFichier supprim...\033[1;0m"
else
echo -e "\033[1;31mAbandon...\033[1;0m"
fi
}
##############################################################################
if [[ "$ACTION" == "--re-encrypt-all" ]] ; then
for CHOIX in `liste 2> /dev/null` ; do
echo -e "\033[1;33mTraitement de : \033[1;0m${CHOIX}"
echo
dechiffre
chiffre
droits
rm -f ${TMP} ${TMP}.asc
echo
done
elif [[ "$ACTION" == "--edit" ]] ; then
choix
dechiffre
edite
chiffre
droits
elif [[ "$ACTION" == "--remove" ]] ; then
choix
supprime
elif [[ "$ACTION" == "--view" ]] ; then
choix
dechiffre
voir
elif [[ "$ACTION" == "--list" ]] ; then
liste 2> /dev/null | cut -b 5-
else
echo "Usage : cranspasswords [--re-encrypt-all|--edit|--remove|--view|--list] [FICHIER]"
fi
#! /bin/sh
# Petit script a executer sur ultra-adsl si on veut pouvoir consulter
# les mails sur freebox.crans.org, en cas de panne de renater
# Par Alexandre Bos, avec l'aide patiente de Stephane et Vince
# Licence GPLv3 ou ulterieure
# A utiliser ponctuellement, n'oubliez pas de desactiver
# le routage et de vider le firewall quand vous n'en avez
# plus besoin
# D'abord on désactive le routage
echo 0 >> /proc/sys/net/ipv4/ip_forward
# Par defaut, le routage est interdit
iptables -P FORWARD DROP
# On vide le firewall
iptables -F
iptables -t nat -F
iptables -t mangle -F
# Le routage de paquets est autorise si c'est bien ce que l'on veut
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 138.231.136.3 -i eth0 -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 138.231.136.3 -i eth0 -p tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 993 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 993 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 138.231.136.3 -i eth0 -p tcp --sport 993 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -j REJECT
# On NATe le port 80 vers rouge
iptables -t nat -A PREROUTING -d 82.225.39.54 -p tcp --dport 80 -j DNAT --to-destination 138.231.136.3
iptables -t nat -A POSTROUTING -d 138.231.136.3 -j SNAT --to-source 138.231.136.9
# On NATe le port 443 vers rouge
iptables -t nat -A PREROUTING -d 82.225.39.54 -p tcp --dport 443 -j DNAT --to-destination 138.231.136.3
iptables -t nat -A POSTROUTING -d 138.231.136.3 -j SNAT --to-source 138.231.136.9
# On NATe le port 993 vers rouge
iptables -t nat -A PREROUTING -d 82.225.39.54 -p tcp --dport 993 -j DNAT --to-destination 138.231.136.3
iptables -t nat -A POSTROUTING -d 138.231.136.3 -j SNAT --to-source 138.231.136.9
# On active le routage
echo 1 >> /proc/sys/net/ipv4/ip_forward
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment