Hop Docs
User Docs
Developer Docs
Developer Docs
  • Welcome
  • JavaScript SDK
    • Welcome
    • Getting started
    • API Reference
  • API
    • API Endpoints
  • Hop Node
    • Running a Hop Bonder
      • Bonder Requirements
      • Choosing a Platform
        • EC2 Setup
      • Securing your Server
        • Add SSH 2FA
      • Installing the Bonder
        • Installing the Bonder with Docker (recommended)
      • Configuring the Bonder
        • Keystore
          • Keystore AWS Parameter Store (recommended)
          • Keystore Local Passphrase
        • Configuration
      • Testing the Bonder
      • Running the Bonder
        • Staking
        • Starting the Bonder
      • Next Steps
    • Bonder Options
      • CLI Commands
      • Keystore Options
      • AWS KMS Signer
      • Monitoring
        • Docker CloudWatch Logs
        • Prometheus
      • Running Docker Container Options
      • Contract State
    • Resources and Best Practices
      • Securing Cloud Instance
      • Additional Security & Node Best Practices
      • Additional questions
  • Subgraphs
    • Welcome
    • Entities
    • Queries
    • Subgraph Info
  • Smart Contracts
    • Welcome
    • Integration
    • Contract Addresses
  • Fees
    • Fee Calculation
  • RPC
    • RPC Endpoints
  • Other
    • Assets
    • On the web
    • FAQ
Powered by GitBook
On this page
Edit on GitHub
  1. Hop Node
  2. Running a Hop Bonder

Securing your Server

Things you can do to secure your server running the Bonder

Please note that this guide is written for Ubuntu 24.04. It also applies to all of the currently maintained Ubuntu releases.

Securing your Server

These are a number of things you can do to secure an Ubuntu server.

These are examples and it's recommended that do your own research to know what's best for your own server.

Update your system

Keep the system up-to-date with the latest patches

sudo apt update -y && sudo apt full-upgrade -y
sudo apt autoremove -y && sudo apt autoclean

Set up user configs

Disable the root user account and set a password for your account

sudo passwd -l root # While this is redundant when using Ubuntu, it is good practice to explicitly ensure that the account is disabled
sudo passwd ubuntu

Harden SSH config

Edit SSH configuration

sudo vim /etc/ssh/sshd_config

In sshd_config file, update the values below or ensure that they are already set to these values.

PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
KbdInteractiveAuthentication no # In versions prior to Ubuntu 22.04, this is called `ChallengeResponseAuthentication`
X11Forwarding no

At the bottom of the file, add a new line to allow only your user to access the server.

AllowUsers ubuntu

Verify changes and reload service

sudo systemctl restart ssh

Install fail2ban

Installing fail2ban will block out anyone who fails to repeatedly log in

sudo apt install fail2ban -y

Create a local configuration file

sudo vim /etc/fail2ban/jail.local

Add the following config

[sshd]
enabled = true
port = <22 or your random port number>
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Restart services and show status

sudo service fail2ban restart
sudo service fail2ban status

Firewall

All incoming connections can be disallowed. Only outgoing connections need to be allowed.

sudo ufw default deny incoming
sudo ufw allow 22 comment "Allow SSH"
sudo ufw enable

Reset the server

The base configuration is now set up and enabled. Restart the server now to complete the update and upgrade of packages and associated config.

sudo reboot

Add SSH 2FA

Check out the link below

Last updated 5 months ago

For example, if using

Add SSH 2FA
UFW