Protect your vps!
Everyone connected to the internet is a target for hackers.
The Most Incredible Cyber Attack Statistics of 2021 Find out the number of cyber attacks happening every day around the world.
Worldwide, 30,000 websites are hacked every day.
64% of companies worldwide have experienced at least one form of cyber attack.
20 million records compromised in March 2021.
In 2020, ransomware cases increased by 150%.
Email accounts for approximately 94% of all malware.
Every 39 seconds, a new attack occurs somewhere on the network.
On average, approximately 24,000 malicious mobile applications are blocked on the Internet every day.
Therefore, network security protection is very important!
Start protection work
This article takes Debian as an example, the operation of Ubuntu is similar, and the CentOS system will be different, please search for relevant content by yourself. (It is strongly recommended that you use Ubuntu or Debian system)
SSH protection
In fact, many vps are regarded as broilers because the ssh login password has been cracked, especially the root user has been cracked by violence and installed a backdoor program, and the whole chick has become a compelling puppet chicken (broiler)
Change ssh port
vim /etc/ssh/sshd_config
Then change the port
field, which is to change the ssh port. After the changes are saved, use systemctl sshd restart
to restart the ssh service
Change ssh password
Very simple, use the psswd
command to change the password.
Note: Password is not visible when entered!
Create a new normal user
- Create a new user
adduseradmin
You can create a new user, and you will be asked to enter the password twice and some information. The information other than the password can be entered all the way to end. If necessary, you can understand the information and set it by yourself.
- Install sudo
After creating a new ordinary user, we need to use sudo to allow ordinary users to obtain root privileges
apt install sudo #Debain does not have it by default, Ubuntu itself should have been installed
- Make sudo settings
visudo
Use ctrl+K O
to save, press Enter, then ctrl + K Q
, you can save and exit!
Look for the User Privilege Specification
field, and add a new line:
admin ALL=(ALL) NOPASSWD: ALL
#admin is the username
Setting “NOPASSWD” allows the admin user to use root privileges without entering an additional password. If you are required to enter a password when using root privileges, you can change it to sadmin ALL=(ALL:ALL) ALL
- Disable root login
Forbid root to log in to vps through ssh, which can greatly avoid the situation that vps becomes a bot. At the same time, it can also be used by switching to the root user through the su
command after logging in through other users ssh
Edit the ssh configuration file:
vim /etc/ssh/sshd_config
#If you log in as a normal user, you need to use sudo
Change the PermitRootLogin
field to no
Then save and exit, restart the ssh service sudo systemctl sshd restart
After that, when using root for ssh login, the vps will directly deny access, and has been asking for a password
Ufw firewall
Install
Install ufw firewall (based on iptable), Debian needs to be installed manually, Ubuntu already comes with it by default
apt install ufw
Basic configuration
Set basic defaults
ufw default deny incoming
ufw default allow outgoing
Allow ssh connections
ufw allow ssh
Allow http and https connections
ufw allow http
ufw allow https
Start ufw
ufw enable
Manage firewall rules
View firewall status
ufw status
ufw status numbered
delete rule
ufw delete 5
add rules
Allow port 81, ufw rules are more complicated
ufw allow 81
Overload configuration
ufw reload
Ban ping
Directly edit the rule of ufw, you can also edit the rules of iptable
vim /etc/ufw/before.rules
Find the # ok icmp codes for INPUT
area, and change ACCEPT
in echo-request -j ACCEPT
in the last line to DROP
No brute force cracking
Use file2ban to ban bruteforcing
Install file2ban
apt install fail2ban
copy configuration file
cd /etc/fail2ban # Enter the fail2ban directory
cp fail2ban.conf fail2ban.local # backup
edit configuration file
vim fail2ban.conf
[sshd]
enable = true
port = 22 #port
filter=sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = -1
service management
service fail2ban restart #restart
fail2ban-client status #View status
fail2ban-client status sshd #View detailed status of sshd
Unban ip
fail2ban-client set sshd unbanip 192.0.0.1 #Unban the specified IP