Merge pull request 'Update bootstrap.sh' (#10) from dev into prod
Reviewed-on: #10
This commit was merged in pull request #10.
This commit is contained in:
82
bootstrap.sh
82
bootstrap.sh
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
### 1. VARIABLES
|
||||
#################. VARIABLES
|
||||
MOTD="/etc/update-motd.d/01-custom"
|
||||
REBOOTBIN="/usr/sbin/reboot"
|
||||
REBOOTBINOLD="/usr/sbin/reboot.old"
|
||||
@@ -10,16 +10,18 @@ REBOOTHANDLER="/root/scripts/reboot_handler.sh"
|
||||
CRONTABTMP="/tmp/crontab.root.tmp"
|
||||
HOSTNAME=$(hostname)
|
||||
KEYFILE="/root/.ssh/$HOSTNAME"
|
||||
MOTD_TEMP="/etc/update-motd/02-temp"
|
||||
TEMP_SCRIPT="/root/firstlogin.sh"
|
||||
TEMP_SCRIPT_WRAPPER="root/firstloginwrapper.sh"
|
||||
TEMP_SCRIPT_CLEANER="root/firstlogincleaner.sh"
|
||||
|
||||
|
||||
## 2. ALIASES
|
||||
#################. ALIASES
|
||||
echo "alias ll='ls -l --color=auto'" >> ~/.bashrc
|
||||
echo "alias l='ls -lAh --color=auto'" >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
|
||||
|
||||
## 3. UPDATE & ESSENTIALS
|
||||
#################. UPDATE & ESSENTIALS
|
||||
apt update && apt -o Dpkg::Options::="--force-confold" upgrade -y
|
||||
apt install -y vim inxi fastfetch htop ncdu net-tools
|
||||
|
||||
@@ -56,29 +58,27 @@ fi
|
||||
EOF
|
||||
chmod +x $MOTD
|
||||
|
||||
### 4. Création du script first-login
|
||||
|
||||
cat << 'EOF' > $MOTD_TEMP
|
||||
|
||||
#################. Création du script first-login
|
||||
cat << 'EOF' > $TEMP_SCRIPT
|
||||
#!/bin/bash
|
||||
RED='\033[0;31m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
HOSTNAME=$(hostname)
|
||||
KEYFILE="/root/.ssh/$HOSTNAME"
|
||||
|
||||
echo
|
||||
echo -e "${BLUE}===============================${NC}"
|
||||
echo -e "${BLUE} Clé privée SSH à conserver !${NC}"
|
||||
echo -e "${BLUE}===============================${NC}"
|
||||
echo "==============================="
|
||||
echo " Clé privée SSH à conserver !"
|
||||
echo "==============================="
|
||||
echo
|
||||
cat "${KEYFILE}"
|
||||
|
||||
# Affichage dans TON shell
|
||||
cat "$KEYFILE"
|
||||
|
||||
echo
|
||||
echo "${BLUE}===============================${NC}"
|
||||
echo "==============================="
|
||||
|
||||
# Suppression de la clé privée
|
||||
rm -f "${KEYFILE}"
|
||||
rm -f "$KEYFILE"
|
||||
|
||||
# Durcissement SSH
|
||||
sed -i 's/^#\?PubkeyAuthentication.*/PubkeyAuthentication yes/' /etc/ssh/sshd_config
|
||||
@@ -87,11 +87,49 @@ sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/ssh
|
||||
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
|
||||
|
||||
systemctl restart sshd
|
||||
rm -fr $MOTD_TEMP
|
||||
EOF
|
||||
chmod +x $MOTD_TEMP
|
||||
|
||||
### 5. Hardening binaries
|
||||
# Nettoyage différé
|
||||
nohup /root/first-login-cleaner.sh >/dev/null 2>&1 &
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x $TEMP_SCRIPT
|
||||
|
||||
|
||||
|
||||
cat << 'EOF' > $TEMP_SCRIPT_WRAPPER
|
||||
#!/bin/bash
|
||||
|
||||
if [ -f /root/first-login.sh ]; then
|
||||
/root/first-login.sh
|
||||
fi
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x $TEMP_SCRIPT_WRAPPER
|
||||
|
||||
|
||||
cat << 'EOF' > $TEMP_SCRIPT_CLEANER
|
||||
#!/bin/bash
|
||||
|
||||
# Attendre la fin du login
|
||||
sleep 10
|
||||
|
||||
# Supprimer la ligne PAM
|
||||
sed -i '/first-login-wrapper.sh/d' /etc/pam.d/sshd
|
||||
|
||||
# Supprimer les scripts
|
||||
rm -f /root/first-login.sh
|
||||
rm -f /root/first-login-wrapper.sh
|
||||
rm -f /root/first-login-cleaner.sh
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x $TEMP_SCRIPT_CLEANER
|
||||
|
||||
echo "auth optional pam_exec.so stdout /root/first-login-wrapper.sh" >> /etc/pam.d/sshd
|
||||
|
||||
|
||||
#################. Hardening binaries
|
||||
# REBOOT WRAPPER
|
||||
mv $REBOOTBIN $REBOOTBINOLD
|
||||
cat << 'EOF' > $REBOOTBIN
|
||||
@@ -112,7 +150,7 @@ EOF
|
||||
chmod +x $SHUTBIN
|
||||
|
||||
|
||||
### 6. REBOOT HANDLER
|
||||
#################. REBOOT HANDLER
|
||||
mkdir -p $SCRIPTSDIR
|
||||
cat << 'EOF' > $REBOOTHANDLER
|
||||
#!/bin/bash
|
||||
|
||||
Reference in New Issue
Block a user