diff --git a/package_check.sh b/package_check.sh index cbb4ba7..62ff4bc 100755 --- a/package_check.sh +++ b/package_check.sh @@ -134,6 +134,18 @@ USER_TEST=package_checker PASSWORD_TEST=checker_pwd PATH_TEST=/check LXC_NAME=$(cat "$script_dir/sub_scripts/lxc_build.sh" | grep LXC_NAME= | cut -d '=' -f2) +if [ -e "$script_dir/config" ]; then + main_iface=$(cat "$script_dir/config" | grep iface= | cut -d '=' -f2) +else # Si le fichier de config n'existe pas + # Tente de définir l'interface réseau principale + main_iface=$(sudo route | grep default | awk '{print $8;}') # Prend l'interface réseau défini par default + if [ -z $main_iface ]; then + echo -e "\e[91mImpossible de déterminer le nom de l'interface réseau de l'hôte.\e[0m" + exit 1 + fi + # Enregistre le nom de l'interface réseau de l'hôte dans un fichier de config + echo -e "# interface réseau principale de l'hôte\niface=$main_iface\n" > "$script_dir/config" +fi if [ "$no_lxc" -eq 0 ] then diff --git a/sub_scripts/Build_lxc.log b/sub_scripts/Build_lxc.log deleted file mode 100644 index fa62c5e..0000000 --- a/sub_scripts/Build_lxc.log +++ /dev/null @@ -1,17 +0,0 @@ -Pseudo-terminal will not be allocated because stdin is not a terminal. -ssh: connect to host 10.1.4.2 port 22: Connection timed out -> Installation de Yunohost... -> Post install Yunohost -> Ajout du sous domaine de test -> Ajout de l'utilisateur de test - -> Vérification de l'état de Yunohost -> Arrêt de la machine virtualisée -sudo: pas de tty présent et pas de programme askpass spécifié -> Suppression des règles de parefeu -sudo: pas de tty présent et pas de programme askpass spécifié -sudo: pas de tty présent et pas de programme askpass spécifié -sudo: pas de tty présent et pas de programme askpass spécifié -sudo: pas de tty présent et pas de programme askpass spécifié -> Création d'un snapshot -sudo: pas de tty présent et pas de programme askpass spécifié diff --git a/sub_scripts/lxc_build.sh b/sub_scripts/lxc_build.sh index 3b65f0a..0107f14 100755 --- a/sub_scripts/lxc_build.sh +++ b/sub_scripts/lxc_build.sh @@ -10,11 +10,21 @@ DOMAIN=domain.tld YUNO_PWD=admin LXC_NAME=pchecker_lxc +# Tente de définir l'interface réseau principale +main_iface=$(sudo route | grep default | awk '{print $8;}') # Prend l'interface réseau défini par default +if [ -z $main_iface ]; then + echo -e "\e[91mImpossible de déterminer le nom de l'interface réseau de l'hôte.\e[0m" + exit 1 +fi + touch "$script_dir/../pcheck.lock" # Met en place le lock de Package check, le temps de l'installation # Check user echo $(whoami) > "$script_dir/setup_user" +# Enregistre le nom de l'interface réseau de l'hôte dans un fichier de config +echo -e "# interface réseau principale de l'hôte\niface=$main_iface\n" > "$script_dir/../config" + echo -e "\e[1m> Update et install lxc lxctl\e[0m" | tee "$LOG_BUILD_LXC" sudo apt-get update >> "$LOG_BUILD_LXC" 2>&1 sudo apt-get install -y lxc lxctl >> "$LOG_BUILD_LXC" 2>&1 @@ -56,8 +66,8 @@ echo -e "\e[1m> Configuration réseau de la machine virtualisée\e[0m" | tee -a sudo sed -i "s@iface eth0 inet dhcp@iface eth0 inet static\n\taddress $PLAGE_IP.2/24\n\tgateway $PLAGE_IP.1@" /var/lib/lxc/$LXC_NAME/rootfs/etc/network/interfaces >> "$LOG_BUILD_LXC" 2>&1 echo -e "\e[1m> Configure le parefeu\e[0m" | tee -a "$LOG_BUILD_LXC" -sudo iptables -A FORWARD -i lxc-pchecker -o eth0 -j ACCEPT >> "$LOG_BUILD_LXC" 2>&1 -sudo iptables -A FORWARD -i eth0 -o lxc-pchecker -j ACCEPT >> "$LOG_BUILD_LXC" 2>&1 +sudo iptables -A FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT >> "$LOG_BUILD_LXC" 2>&1 +sudo iptables -A FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT >> "$LOG_BUILD_LXC" 2>&1 sudo iptables -t nat -A POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE >> "$LOG_BUILD_LXC" 2>&1 echo -e "\e[1m> Démarrage de la machine\e[0m" | tee -a "$LOG_BUILD_LXC" @@ -128,8 +138,8 @@ echo -e "\e[1m> Arrêt de la machine virtualisée\e[0m" | tee -a "$LOG_BUILD_LXC sudo lxc-stop -n $LXC_NAME >> "$LOG_BUILD_LXC" 2>&1 echo -e "\e[1m> Suppression des règles de parefeu\e[0m" | tee -a "$LOG_BUILD_LXC" -sudo iptables -D FORWARD -i lxc-pchecker -o eth0 -j ACCEPT >> "$LOG_BUILD_LXC" 2>&1 -sudo iptables -D FORWARD -i eth0 -o lxc-pchecker -j ACCEPT >> "$LOG_BUILD_LXC" 2>&1 +sudo iptables -D FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT >> "$LOG_BUILD_LXC" 2>&1 +sudo iptables -D FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT >> "$LOG_BUILD_LXC" 2>&1 sudo iptables -t nat -D POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE >> "$LOG_BUILD_LXC" 2>&1 sudo ifdown --force lxc-pchecker >> "$LOG_BUILD_LXC" 2>&1 diff --git a/sub_scripts/lxc_check.sh b/sub_scripts/lxc_check.sh index 71b7b36..4abaa0a 100755 --- a/sub_scripts/lxc_check.sh +++ b/sub_scripts/lxc_check.sh @@ -9,6 +9,18 @@ if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$( PLAGE_IP=$(cat "$script_dir/lxc_build.sh" | grep PLAGE_IP= | cut -d '"' -f2) ARG_SSH="-t" LXC_NAME=$(cat "$script_dir/lxc_build.sh" | grep LXC_NAME= | cut -d '=' -f2) +if [ -e "$script_dir/../config" ]; then + main_iface=$(cat "$script_dir/../config" | grep iface= | cut -d '=' -f2) +else # Si le fichier de config n'existe pas + # Tente de définir l'interface réseau principale + main_iface=$(sudo route | grep default | awk '{print $8;}') # Prend l'interface réseau défini par default + if [ -z $main_iface ]; then + echo -e "\e[91mImpossible de déterminer le nom de l'interface réseau de l'hôte.\e[0m" + exit 1 + fi + # Enregistre le nom de l'interface réseau de l'hôte dans un fichier de config + echo -e "# interface réseau principale de l'hôte\niface=$main_iface\n" > "$script_dir/../config" +fi STOP_CONTAINER () { echo "Arrêt du conteneur $LXC_NAME" @@ -19,15 +31,15 @@ START_NETWORK () { echo "Initialisation du réseau pour le conteneur." sudo ifup lxc-pchecker --interfaces=/etc/network/interfaces.d/lxc-pchecker # Activation des règles iptables - sudo iptables -A FORWARD -i lxc-pchecker -o eth0 -j ACCEPT - sudo iptables -A FORWARD -i eth0 -o lxc-pchecker -j ACCEPT + sudo iptables -A FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT + sudo iptables -A FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT sudo iptables -t nat -A POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE } STOP_NETWORK () { echo "Arrêt du réseau pour le conteneur." - sudo iptables -D FORWARD -i lxc-pchecker -o eth0 -j ACCEPT > /dev/null 2>&1 - sudo iptables -D FORWARD -i eth0 -o lxc-pchecker -j ACCEPT > /dev/null 2>&1 + sudo iptables -D FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT > /dev/null 2>&1 + sudo iptables -D FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT > /dev/null 2>&1 sudo iptables -t nat -D POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE > /dev/null 2>&1 sudo ifdown --force lxc-pchecker > /dev/null 2>&1 } @@ -245,11 +257,11 @@ do done # Test l'application des règles iptables -sudo iptables -A FORWARD -i lxc-pchecker -o eth0 -j ACCEPT -sudo iptables -A FORWARD -i eth0 -o lxc-pchecker -j ACCEPT +sudo iptables -A FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT +sudo iptables -A FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT sudo iptables -t nat -A POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE -if sudo iptables -C FORWARD -i lxc-pchecker -o eth0 -j ACCEPT && sudo iptables -C FORWARD -i eth0 -o lxc-pchecker -j ACCEPT && sudo iptables -t nat -C POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE +if sudo iptables -C FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT && sudo iptables -C FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT && sudo iptables -t nat -C POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE then echo -e "\e[92mLes règles iptables sont appliquées correctement.\e[0m" else diff --git a/sub_scripts/lxc_launcher.sh b/sub_scripts/lxc_launcher.sh index f36a428..034f302 100755 --- a/sub_scripts/lxc_launcher.sh +++ b/sub_scripts/lxc_launcher.sh @@ -2,6 +2,7 @@ ARG_SSH="-t" PLAGE_IP=$(cat "$script_dir/sub_scripts/lxc_build.sh" | grep PLAGE_IP= | cut -d '"' -f2) +main_iface=$(cat "$script_dir/../config" | grep iface= | cut -d '=' -f2) echo -e "Chargement des fonctions de lxc_launcher.sh" @@ -11,8 +12,8 @@ LXC_INIT () { sudo ifup lxc-pchecker --interfaces=/etc/network/interfaces.d/lxc-pchecker | tee -a "$RESULT" 2>&1 # Activation des règles iptables - sudo iptables -A FORWARD -i lxc-pchecker -o eth0 -j ACCEPT | tee -a "$RESULT" 2>&1 - sudo iptables -A FORWARD -i eth0 -o lxc-pchecker -j ACCEPT | tee -a "$RESULT" 2>&1 + sudo iptables -A FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT | tee -a "$RESULT" 2>&1 + sudo iptables -A FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT | tee -a "$RESULT" 2>&1 sudo iptables -t nat -A POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE | tee -a "$RESULT" 2>&1 if [ "$no_lxc" -eq 0 ]; then @@ -90,13 +91,13 @@ LXC_STOP () { LXC_TURNOFF () { echo "Arrêt du réseau pour le conteneur." # Suppression des règles de parefeu - if sudo iptables -C FORWARD -i lxc-pchecker -o eth0 -j ACCEPT 2> /dev/null + if sudo iptables -C FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT 2> /dev/null then - sudo iptables -D FORWARD -i lxc-pchecker -o eth0 -j ACCEPT >> "$RESULT" 2>&1 + sudo iptables -D FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT >> "$RESULT" 2>&1 fi - if sudo iptables -C FORWARD -i eth0 -o lxc-pchecker -j ACCEPT 2> /dev/null + if sudo iptables -C FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT 2> /dev/null then - sudo iptables -D FORWARD -i eth0 -o lxc-pchecker -j ACCEPT | tee -a "$RESULT" 2>&1 + sudo iptables -D FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT | tee -a "$RESULT" 2>&1 fi if sudo iptables -t nat -C POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE 2> /dev/null then diff --git a/sub_scripts/lxc_upgrade.sh b/sub_scripts/lxc_upgrade.sh index 6f722d2..9f15b3d 100755 --- a/sub_scripts/lxc_upgrade.sh +++ b/sub_scripts/lxc_upgrade.sh @@ -12,6 +12,18 @@ touch "$script_dir/../pcheck.lock" # Met en place le lock de Package check PLAGE_IP=$(cat "$script_dir/lxc_build.sh" | grep PLAGE_IP= | cut -d '"' -f2) LXC_NAME=$(cat "$script_dir/lxc_build.sh" | grep LXC_NAME= | cut -d '=' -f2) +if [ -e "$script_dir/../config" ]; then + main_iface=$(cat "$script_dir/../config" | grep iface= | cut -d '=' -f2) +else # Si le fichier de config n'existe pas + # Tente de définir l'interface réseau principale + main_iface=$(sudo route | grep default | awk '{print $8;}') # Prend l'interface réseau défini par default + if [ -z $main_iface ]; then + echo -e "\e[91mImpossible de déterminer le nom de l'interface réseau de l'hôte.\e[0m" + exit 1 + fi + # Enregistre le nom de l'interface réseau de l'hôte dans un fichier de config + echo -e "# interface réseau principale de l'hôte\niface=$main_iface\n" > "$script_dir/../config" +fi # Check user if [ "$(whoami)" != "$(cat "$script_dir/setup_user")" ] && test -e "$script_dir/setup_user"; then @@ -28,13 +40,13 @@ then fi echo "\e[1m> Configure le parefeu\e[0m" -if ! sudo iptables -D FORWARD -i lxc-pchecker -o eth0 -j ACCEPT 2> /dev/null +if ! sudo iptables -D FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT 2> /dev/null then - sudo iptables -A FORWARD -i lxc-pchecker -o eth0 -j ACCEPT + sudo iptables -A FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT fi -if ! sudo iptables -C FORWARD -i eth0 -o lxc-pchecker -j ACCEPT 2> /dev/null +if ! sudo iptables -C FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT 2> /dev/null then - sudo iptables -A FORWARD -i eth0 -o lxc-pchecker -j ACCEPT + sudo iptables -A FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT fi if ! sudo iptables -t nat -C POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE 2> /dev/null then @@ -70,8 +82,8 @@ echo "\e[1m> Arrêt de la machine virtualisée\e[0m" sudo lxc-stop -n $LXC_NAME echo "\e[1m> Suppression des règles de parefeu\e[0m" -sudo iptables -D FORWARD -i lxc-pchecker -o eth0 -j ACCEPT -sudo iptables -D FORWARD -i eth0 -o lxc-pchecker -j ACCEPT +sudo iptables -D FORWARD -i lxc-pchecker -o $main_iface -j ACCEPT +sudo iptables -D FORWARD -i $main_iface -o lxc-pchecker -j ACCEPT sudo iptables -t nat -D POSTROUTING -s $PLAGE_IP.0/24 -j MASQUERADE sudo ifdown --force lxc-pchecker