#!/bin/bash

echo "RUN $(basename "$0") ==="

RED='\033[0;31m'
NC='\033[0m' # No Color

fail_empty(){
if [ -z  "$1" ]
then
    echo "Error : $2"
    exit 1
else
    echo "Ok : $1"
fi
}
fail_not_empty(){
if [ ! -z  "$1" ]
then
    echo "Error : $2 '$1'"
    exit 1
else
    echo "Ok : $3"
fi
}

echo "Automated checks"
Passwd=$(grep "^PasswordAuthentication no" /etc/ssh/sshd_config)
fail_empty "$Passwd" "SSh password allowed"
systemctl restart ssh
real_users=$(egrep "/bin/[^/]*sh" /etc/passwd | grep -v root)
echo "The following users can login via ssh $real_users"
user_name=`echo $real_users | awk -F':' '{print $1}'`
if [[ $user_name -eq "dockerweb" ]]; then
    uid=`id -u dockerweb`
    if [[ $uid -eq 1000 ]]; then
        echo "Dockerweb have good uid (1000)"
    else
        echo -e "${RED}Dockerweb dont have good uid, expected 1000${NC}"
    fi
fi
read -p "hit enter"
apache_default=$(find /etc/apache2/sites-enabled -iname "*default*")
fail_not_empty "$apache_default" "Please disable apache default sites" "Apache default sites are disabled"
apache2ctl graceful
read -p "hit enter"
echo "Manual check : fail2ban"
systemctl status fail2ban
fail2ban-client status
read -p "hit enter"
echo "Manual check : ufw"
ufw status verbose
read -p "hit enter"
echo "Manual check : clamav"
systemctl status clamav-daemon clamav-freshclam
read -p "hit enter"
echo "Manual check cron root"
crontab -u root -l
read -p "hit enter"
echo "Manual check cron www-data"
crontab -u www-data -l
read -p "hit enter"
echo "Manual check home perms"
ls -lstrh --color=auto /home
read -p "hit enter"