From 0e7493e8e1ff5334e0e8780e36c282f54427d853 Mon Sep 17 00:00:00 2001 From: Progfou Date: Tue, 13 Sep 2011 10:33:48 +0700 Subject: [PATCH] IPsec : ajout d'un mode d'emploi. --- sysadmin/pipsecd2ipsectools | 39 ++++++++- sysadmin/sysadmin-check-version-arch | 144 ---------------------------------- sysadmin/upgrade.sh | 36 --------- 3 files changed, 37 insertions(+), 182 deletions(-) delete mode 100755 sysadmin/sysadmin-check-version-arch delete mode 100755 sysadmin/upgrade.sh diff --git a/sysadmin/pipsecd2ipsectools b/sysadmin/pipsecd2ipsectools index 4ad48eb..83461c6 100755 --- a/sysadmin/pipsecd2ipsectools +++ b/sysadmin/pipsecd2ipsectools @@ -5,10 +5,44 @@ # Licence : GNU General Public License, version 3 # Auteur : Progfou # Création : 2011-02-15 -# Mise à jour : 2011-02-16 +# Mise à jour : 2011-09-13 +# +# Mode d'emploi : +# - changer les adresses IP ci-dessous en prenant soin de spécifier un réseau +# de CIDR /20 pour se préparer au futur RPV v2 LOCALGW="210.245.61.206" LOCALIP="10.230.0.254" LOCALNET="10.230.0.0/20" +# - lancer ce script, sous root, dans le serveur où est installé pipsecd et +# sauver le résultat dans un fichier, par exemple : +# # pipsecd2ipsectools > /root/ipsec-tools.conf +# - vérifier le résultat obtenu avec votre RTR ou un autre collègue ayant +# déjà fait la migration +# - vérifier la configuration des règles de pare-feu pour s'assurer de NE PAS +# faire de NAT en sortie vers 10.0.0.0/8, par exemple : +# # iptables -t nat -I POSTROUTING -d 10.0.0.0/8 -j RETURN +# - ajouter les routes statiques recommandées en commentaire dans le résultat +# du lancement du script, soit dans /etc/network/interface, par exemple : +# up ip route replace 10.36.0.0/20 via 118.70.0.243 dev ppp0 src 10.230.0.254 +# soit dynamiquement au lancement d'une interface PPP, par exemple dans un +# fichier /etc/ppp/ip-up.d/0000iproute tel que suit : +# #!/bin/sh +# IP="/sbin/ip" +# for net in `awk '/^spdadd .* out /{print $3}' /etc/ipsec-tools.conf` ; do +# $IP route replace "$net" via $PPP_REMOTE dev $PPP_IFACE src 10.230.0.254 +# done +# $IP route replace default via $PPP_REMOTE dev $PPP_IFACE src 210.245.61.206 +# - convenir avec un des admins du RPV (Jean Christophe André ou Moussa Nombré) +# du moment de la bascule de pipsecd vers ipsec-tools +# - stopper le service pipsecd et purger le paquet pipsecd devenu inutile : +# # /etc/init.d/pipsecd stop +# # aptitude purge pipsecd +# - installer le paquet ipsec-tools et la configuration IPsec natif, par exemple : +# # aptitude install ipsec-tools +# # cat /root/ipsec-tools.conf >> /etc/ipsec-tools.conf +# # service setkey restart +# - demander le redémarrage du Netopia correspondant à Montréal +# - tester que tout fonctionne bien, depuis le pare-feu et depuis un poste client cat << __EOF__ @@ -31,7 +65,7 @@ awk ' REMOTENET=$5; split(REMOTENET,N,"\.") REMOTEMASK=$7; split(REMOTEMASK,M,"\.") REMOTENET=N[1]"."N[2]"."N[3]".0" # incorrect mais plus simple pour le moment - REMOTECIDR=32-log(256^4-(M[1]*256^3+M[2]*256^2+M[3]*256+M[4]))/log(2) + REMOTECIDR=20 # 32-log(256^4-(M[1]*256^3+M[2]*256^2+M[3]*256+M[4]))/log(2) printf("remotenet %s %s\n", IF, REMOTENET"/"REMOTECIDR) } ' /etc/pipsecd/startup @@ -75,3 +109,4 @@ sed -e '/^[^#]/s/ *= */=/g' /etc/pipsecd/pipsecd.conf if (EMPTYLINE!=1) { print ""; EMPTYLINE=1 } } ' +exit 0 diff --git a/sysadmin/sysadmin-check-version-arch b/sysadmin/sysadmin-check-version-arch deleted file mode 100755 index d24fe76..0000000 --- a/sysadmin/sysadmin-check-version-arch +++ /dev/null @@ -1,144 +0,0 @@ -#!/bin/sh -# sysadmin-check-version-arch - vérifie la version et l'architecture système -# Copyright ©2011 Agence universitaire de la Francophonie -# http://www.auf.org/ -# Licence : GNU General Public License, version 3 -# Auteur : Progfou -# Création : 2011-04-26 -# Mise à jour : 2011-08-23 - -EXPECTED_DEBIAN_VERSION="6.0.2" -ACCEPTED_DEBIAN_VERSION="5.0.8" -if grep -q '^flags.* lm ' /proc/cpuinfo ; then - EXPECTED_DEBIAN_ARCH="x86_64" - ACCEPTED_DEBIAN_ARCH="i686" -else - EXPECTED_DEBIAN_ARCH="i686" - ACCEPTED_DEBIAN_ARCH="i686" -fi - -EXPECTED_UBUNTU_VERSION="10.04" -ACCEPTED_UBUNTU_VERSION="10.04" -if dpkg -l ubuntu-desktop >/dev/null 2>&1 ; then - EXPECTED_UBUNTU_ARCH="i686" - ACCEPTED_UBUNTU_ARCH="i686" -else # serveur sous Ubuntu - EXPECTED_UBUNTU_ARCH="${EXPECTED_DEBIAN_ARCH}" - ACCEPTED_UBUNTU_ARCH="${ACCEPTED_DEBIAN_ARCH}" -fi - -color_name_to_code() { - case "$1" in - black) printf "0" ;; - red) printf "1" ;; - green) printf "2" ;; - yellow) printf "3" ;; - blue) printf "4" ;; - magenta) printf "5" ;; - cyan) printf "6" ;; - white) printf "7" ;; - *) printf "" ;; - esac -} - -colorize() { - # syntax: colorize [bright] [bg color_name] color_name text - ansi_seq="" - if [ "$1" = "bright" ] ; then - shift ; ansi_seq="${ansi_seq}1;" - fi - if [ "$1" = "bg" ] ; then - shift ; bg="`color_name_to_code "$1"`" ; shift - if [ "${bg}" != "" ] ; then - ansi_seq="${ansi_seq}4${bg};" - fi - fi - fg="`color_name_to_code "$1"`" ; shift - if [ "${fg}" != "" ] ; then - ansi_seq="${ansi_seq}3${fg}" - fi - text="$@" - if [ "${ansi_seq}" != "" ] ; then - text="\033[${ansi_seq}m${text}\033[m" - fi - printf "${text}" -} - -display_host() { - name="$1" ; dist="$2" ; version="$3" ; arch="$4" ; note="$5" - goals="" - if [ "${dist}" = "Ubuntu" ] ; then - expected_version="${EXPECTED_UBUNTU_VERSION}" - accepted_version="${ACCEPTED_UBUNTU_VERSION}" - expected_arch="${EXPECTED_UBUNTU_ARCH}" - accepted_arch="${ACCEPTED_UBUNTU_ARCH}" - elif [ "${dist}" = "Debian" ] ; then - expected_version="${EXPECTED_DEBIAN_VERSION}" - accepted_version="${ACCEPTED_DEBIAN_VERSION}" - expected_arch="${EXPECTED_DEBIAN_ARCH}" - accepted_arch="${ACCEPTED_DEBIAN_ARCH}" - else - dist="`colorize bright red "${dist}"`" - goals="${goals} Debian" - fi - if [ "${version}" = "${expected_version}" ] ; then - version="`colorize bright green "${version}"`" - else - goals="${goals} ${expected_version}" - if [ "${version}" != "${accepted_version}" ] ; then - version="`colorize bright red "${version}"`" - fi - fi - if [ "${arch}" = "${expected_arch}" ] ; then - arch="`colorize bright green "${arch}"`" - else - goals="${goals} ${expected_arch}" - if [ "${arch}" != "${accepted_arch}" ] ; then - arch="`colorize bright red "${arch}"`" - fi - fi - if [ "${note}" = "voip" ] ; then - if [ "${version}" = "${accepted_version}" ] ; then - version="`colorize bright green "${version}"`" - fi - goals="" - note='ne pas migrer vers Squeeze !' - fi - if expr match "${note}" '.*!' >/dev/null ; then - note="`colorize bright red "${note}"`" - fi - if [ "${goals}" != "" ] ; then - goals="`colorize bright blue "${goals}"`" - note="${note} (but :${goals})" - fi - printf "%-25s: %s %s (%s) %s\n" "${name}" "${dist}" "${version}" "${arch}" "${note}" -} - -display_host "host" "`lsb_release -si`" "`lsb_release -sr`" "`uname -m`" -if test -x /usr/sbin/vzctl -then - IDS="`vzlist -H -o ctid`" - if [ -n "${IDS}" ] ; then - for id in ${IDS} - do - note="" - name="`sed -n '/^NAME=/s/^.*="\?\([^"]*\)"\?.*$/\1/p' /etc/vz/conf/${id}.conf`" - if [ -z "${name}" ] ; then - name="`sed -n '/^HOSTNAME=/s/^.*="\?\([^"]*\)"\?.*$/\1/p' /etc/vz/conf/${id}.conf`" - fi - dist="`vzctl exec ${id} lsb_release -si 2>/dev/null`" - if [ -n "${dist}" ] ; then - version="`vzctl exec ${id} lsb_release -sr 2>/dev/null`" - else - dist="------" - version="-----" - note='paquet lsb-release manquant !' - fi - arch="`vzctl exec ${id} uname -m`" - if [ -x "/var/lib/vz/private/${id}/usr/sbin/asterisk" ] ; then - note="voip" - fi - display_host "CT ${id} (${name})" "${dist}" "${version}" "${arch}" "${note}" - done - fi -fi diff --git a/sysadmin/upgrade.sh b/sysadmin/upgrade.sh deleted file mode 100755 index 7671f5f..0000000 --- a/sysadmin/upgrade.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# upgrade.sh - outil de mise à jour de serveur, avec support OpenVZ -# Copyright ©2010-2011 Agence universitaire de la Francophonie -# http://www.auf.org/ -# Licence : GNU General Public License, version 3 -# Auteur : Progfou -# Création : 2010-01-26 -# Mise à jour : 2011-03-06 -export LANG= -CONFDIRS="/etc" -IPT="iptables" -IP6T="ip6tables" -IF="`route -n | awk '/^0.0.0.0/{print $(NF);exit}'`" -$IPT -I OUTPUT -o "$IF" -m owner --uid-owner 0 -p tcp --dport 80 -j ACCEPT -$IP6T -I OUTPUT -o "$IF" -m owner --uid-owner 0 -p tcp --dport 80 -j ACCEPT -aptitude update -aptitude safe-upgrade -aptitude clean -$IP6T -D OUTPUT -o "$IF" -m owner --uid-owner 0 -p tcp --dport 80 -j ACCEPT -$IPT -D OUTPUT -o "$IF" -m owner --uid-owner 0 -p tcp --dport 80 -j ACCEPT -if test -x /usr/sbin/vzctl -then - $IPT -I FORWARD -o "$IF" -p tcp --dport 80 -j ACCEPT - $IP6T -I FORWARD -o "$IF" -p tcp --dport 80 -j ACCEPT - for id in `vzlist -H -o ctid` - do - #vzctl exec $id rm -v -f /var/lib/apt/lists/partial/* - vzctl exec $id aptitude update - vzctl exec $id aptitude safe-upgrade /dev/tty - vzctl exec $id aptitude clean - done - $IP6T -D FORWARD -o "$IF" -p tcp --dport 80 -j ACCEPT - $IPT -D FORWARD -o "$IF" -p tcp --dport 80 -j ACCEPT - CONFDIRS="$CONFDIRS "/vz/private/*/etc -fi -find $CONFDIRS -name "*.dpkg*" -o -name "*.ucf*" -- 1.7.10.4