Last active
September 8, 2017 05:56
-
-
Save renier/54c854394dd853df9b080cbe834d0911 to your computer and use it in GitHub Desktop.
Harden Ubuntu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
apt-get update | |
apt-get upgrade -y | |
apt-get autoremove -y | |
apt-get autoclean -y | |
apt-get install ufw -y | |
apt-get install denyhosts -y | |
# Configure firewall | |
ufw default deny incoming | |
ufw default allow outgoing | |
ufw allow ssh | |
ufw --force enable | |
# Harden SSH | |
sed -i -e '/^PermitRootLogin/d' /etc/ssh/sshd_config | |
sed -i -e '/^ChallengeResponseAuthentication/d' /etc/ssh/sshd_config | |
sed -i -e '/^PasswordAuthentication/d' /etc/ssh/sshd_config | |
sed -i -e '/^UsePAM/d' /etc/ssh/sshd_config | |
echo 'PermitRootLogin without-password' >> /etc/ssh/sshd_config | |
echo 'DebianBanner no' >> /etc/ssh/sshd_config | |
echo 'ChallengeResponseAuthentication no' >> /etc/ssh/sshd_config | |
echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config | |
echo 'UsePAM no' >> /etc/ssh/sshd_config | |
# Disable insecure algos | |
echo 'MACs hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha2-256,hmac-sha2-512' >> /etc/ssh/sshd_config | |
echo 'Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,arcfour' >> /etc/ssh/sshd_config | |
service ssh restart | |
# Optionally you can go even further | |
#Port 512 | |
#PermitRootLogin no | |
#AllowUsers renier | |
#ufw deny ssh && ufw allow 512 | |
# Harden against TCP attacks | |
printf " | |
# Ignore ICMP broadcast requests | |
net.ipv4.icmp_echo_ignore_broadcasts = 1 | |
# Disable source packet routing | |
net.ipv4.conf.all.accept_source_route = 0 | |
net.ipv6.conf.all.accept_source_route = 0 | |
net.ipv4.conf.default.accept_source_route = 0 | |
net.ipv6.conf.default.accept_source_route = 0 | |
# Ignore send redirects | |
net.ipv4.conf.all.send_redirects = 0 | |
net.ipv4.conf.default.send_redirects = 0 | |
# Block SYN attacks | |
net.ipv4.tcp_max_syn_backlog = 2048 | |
net.ipv4.tcp_synack_retries = 2 | |
net.ipv4.tcp_syn_retries = 5 | |
# Log Martians | |
net.ipv4.conf.all.log_martians = 1 | |
net.ipv4.icmp_ignore_bogus_error_responses = 1 | |
# Ignore ICMP redirects | |
net.ipv4.conf.all.accept_redirects = 0 | |
net.ipv6.conf.all.accept_redirects = 0 | |
net.ipv4.conf.default.accept_redirects = 0 | |
net.ipv6.conf.default.accept_redirects = 0 | |
# Ignore Directed pings | |
net.ipv4.icmp_echo_ignore_all = 1 | |
" >> /etc/sysctl.d/10-network-security.conf | |
service procps start |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment