#!/bin/bash

# description : Installs ProFTP and sets up STFP on port 2222

# Install proftpd and proftpd-mod-crypto
echo "Installing and configuring Proftpd"

read -p "Do you wish to continue? (Y/n): " choice

if [[ "$choice" == "Y" ]]; then
    # Proceed with the script
    echo "Continuing..."


 apt update
 apt install -y proftpd proftpd-mod-crypto

echo "Installing Proftpd finished"

echo "Changing ftp to sftp - port 2222..."

# Update /etc/proftpd/proftpd.conf
sed -i 's|^\s*Port 21|#Port 21|' /etc/proftpd/proftpd.conf

echo "Activating the SFTP Modules..."
sed -i 's|^\s*#\?#LoadModule mod_sftp.c|LoadModule mod_sftp.c|' /etc/proftpd/modules.conf
sed -i 's|^\s*#\?#LoadModule mod_sftp_pam.c|LoadModule mod_sftp_pam.c|' /etc/proftpd/modules.conf

#Creating extra Proftpd config files
mkdir -p /etc/proftpd/conf.d

# Addming sftp config
echo '<IfModule mod_sftp.c>

        SFTPEngine on
        Port 2222
        SFTPLog /var/log/proftpd/sftp.log

 #      SFTPAuthMethods password
        SFTPAuthMethods publickey password
        SFTPHostKey /etc/ssh/ssh_host_rsa_key

        DefaultRoot                     ~
        AuthUserFile                    /etc/proftpd/ftpd.passwd
        RequireValidShell               off

        SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u

        # Enable compression
        SFTPCompression delayed

</IfModule>' > /etc/proftpd/conf.d/sftp.conf

echo "Setup Proftpd activation script finished"
echo
echo "Restarting Proftdp"
/bin/systemctl restart proftpd


echo "Checking services"

echo -e "\n\n\n"

echo "###########################################################################"
systemctl -q is-active proftpd.service  && \
echo -e "\033[32m Proftpd is running \033[0m" || \
echo -e "\033[31m Proftpd is not running - please investigate! \033[0m"

lsof -i tcp:2222


else
    # Cancel the script
    echo "Script canceled."
    exit 1
fi

