IPsec : ajout d'un mode d'emploi.
authorProgfou <jean-christophe.andre@auf.org>
Tue, 13 Sep 2011 03:33:48 +0000 (10:33 +0700)
committerProgfou <jean-christophe.andre@auf.org>
Tue, 13 Sep 2011 03:33:48 +0000 (10:33 +0700)
sysadmin/pipsecd2ipsectools
sysadmin/sysadmin-check-version-arch [deleted file]
sysadmin/upgrade.sh [deleted file]

index 4ad48eb..83461c6 100755 (executable)
@@ -5,10 +5,44 @@
 # Licence : GNU General Public License, version 3
 # Auteur : Progfou <jean-christophe.andre@auf.org>
 # 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 (executable)
index d24fe76..0000000
+++ /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 <jean-christophe.andre@auf.org>
-# 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 (executable)
index 7671f5f..0000000
+++ /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 <jean-christophe.andre@auf.org>
-# 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 >/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*"