====== Hardening Debian Server ====== [[https://www.youtube.com/watch?v=t8LS3F5Iu8Y]] ===== Creating and import ssh key ===== ssh-keygen -t ed25519 -f /your-key-location/your-key-filename -C "your-key-comment" cat a.pub | ssh user@host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys" // or simply using command ssh-copy-id // ssh-copy-id -i /your-key-location/your-key-filename user@host ===== Edit ssh config ===== # nano /etc/ssh/sshd_config PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication no # systemctl restart ssh # systemctl restart sshd ===== Creating basic iptables firewall ===== # touch /etc/firewall # nano /etc/firewall /usr/sbin/iptables -F /usr/sbin/iptables -F -t nat /usr/sbin/iptables -F -t mangle /usr/sbin/ip6tables -F /usr/sbin/ip6tables -X /usr/sbin/ip6tables -F -t mangle /usr/sbin/ip6tables -X -t mangle /usr/sbin/ip6tables -P INPUT DROP /usr/sbin/ip6tables -P OUTPUT DROP /usr/sbin/ip6tables -P FORWARD DROP /usr/sbin/ip6tables -A INPUT -i lo -j ACCEPT /usr/sbin/ip6tables -A OUTPUT -o lo -j ACCEPT for ip in insert_your_ips_here; do /usr/sbin/iptables -A INPUT -p tcp -s $ip --dport 22 -j ACCEPT done /usr/sbin/iptables -A INPUT -p tcp --dport 22 -j REJECT ===== Adding firewall script to autostart ===== # nano /etc/systemd/system/firewall.service [Unit] Description=firewall After=network.target [Service] RemainAfterExit=yes ExecStart=/etc/firewall start ExecStop=/etc/firewall stop [Install] WantedBy=multi-user.target # systemctl enable firewall # systemctl start firewall