After you start any instance with public access, automated scripts will find you almost immediately and start conducting all sorts of scans and probing. There is no real way to completely stop this. You can confirm this is happening by looking at the log files of any public instance you create. However, we don’t need to make it easy for them. A standard scan will usually check for known standardized ports associated with known services. For example, SSH by default runs on port 22 and is the first port any script will check for an SSH service. Now, if we configure SSH service to run on port 61613, the scan script will need to make a broad port sweep to find our SSH service. This is extremely taxing in terms of bandwidth for the attacker, and generally scripts will not check for these ports. That is why it is very important for us to change the port at which SSH operates from 22 to something that is not standardized, making it much more difficult for any one script to find our SSH service.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Open `/etc/ssh/sshd_config`, Uncomment the `Port` Variable, and Change the Value from 22 to 61613
Note: Use a local terminal app with ssh support for this lab. The Instant Terminal can not be used for this specific lab.
Open configuration file:
sudo vim /etc/ssh/sshd_config
Change the value of
Port
:Port 61613
Save and close:
ESC :wq ENTER
- Open Port 61613 with firewalld
Open the port with firewalld:
sudo firewall-cmd --permanent --add-port=61613/tcp
- Reload to apply the rules:
sudo firewall-cmd --reload
- Configure SELinux to Allow Connections on Port 61613 for SSH
sudo semanage port -a -t ssh_port_t -p tcp 61613
- Restart SSH, Log Out and Back in on Port 61613, and Close Port 22 with firewalld
Restart SSH:
sudo systemctl restart sshd
Log out:
exit
Log in on port 61613:
ssh cloud_user@<Server_IP_Address> -p 61613
Close port 22 with firewalld:
sudo firewall-cmd --permanent --remove-port=22/tcp
sudo firewall-cmd --reload