Post

Before I do anything on Linux, I do these first...

After setting up my Linux servers, there are a few things I do before I use them for their intended purpose.This ranges from security, to tools, to config.Join me as we set up our first Linux server in this tutorial and walk through setting it up proper (and maybe some bonus items sprinkled in).

📺 Watch Video

Update

1
2
3
sudo apt-get update

sudo apt-get upgrade

Reconfigure unattended-upgrades

1
sudo dpkg-reconfigure --priority=low unattended-upgrades

Verify unattended upgrades configuration file in your text editor of choice

1
/etc/apt/apt.conf.d/20auto-upgrades

To disable automatic reboots by the automatic upgrades configuration edit the following file:

1
/etc/apt/apt.conf.d/50unattended-upgrades

and uncomment the following line by removing the leading slashes:

1
//Unattended-Upgrade::Automatic-Reboot "false";

Account

add user

1
sudo adduser someuser

add to sudoers

1
sudo usermod -aG sudo someuser

SSH Server

install

1
sudo apt-get install openssh-server

copy key from client to server

1
ssh-copy-id [email protected]

switch to key based auth

1
sudo nano /etc/ssh/sshd_config

Add these attributes

1
2
PasswordAuthentication no
ChallengeResponseAuthentication no

Networking

static IP

sudo nano /etc/netplan/01-netcfg.yaml

1
2
3
4
5
6
7
8
9
10
11
network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
     dhcp4: no
     addresses:
        - 192.168.0.222/24
     gateway4: 192.168.0.1
     nameservers:
       addresses: [192.168.0.4]

Install oh-my-zsh

1
2
3
4
5
sudo apt-get update
sudo apt-get install zsh
sudo apt-get install powerline fonts-powerline

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Fix LVM

1
sudo lvm
1
lvscan

You should see your logical volumes

1
2
3
lvm> lvscan
  ACTIVE            '/dev/vgubuntu-server/root' [<168.54 GiB] inherit
  ACTIVE            '/dev/vgubuntu-server/swap_1' [980.00 MiB] inherit

resize the logical volume group, usually the first one in the list but check to be sure!

1
lvextend -l +100%FREE /dev/vgubuntu-server/root

You should see:

1
2
  Size of logical volume vgubuntu-server/root changed from <138.54 GiB (35466 extents) to <168.54 GiB (43146 extents).
  Logical volume vgubuntu-server/root successfully resized
1
exit

resize the file system

1
sudo resize2fs /dev/vgubuntu-server/root

Check to see file system size

1
df -h

You should see:

1
2
3
4
5
6
7
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              1.6G  3.9M  1.6G   1% /run
/dev/mapper/vgubuntu--server-root  166G   89G   70G  56% /
tmpfs                              7.9G     0  7.9G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda1                          511M  4.0K  511M   1% /boot/efi
tmpfs                              1.6G     0  1.6G   0% /run/user/1000

You should see:

1
2
3
4
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/vgubuntu-server/root is mounted on /; on-line resizing required
old_desc_blocks = 18, new_desc_blocks = 22
The filesystem on /dev/vgubuntu-server/root is now 44181504 (4k) blocks long.

hostname

1
sudo hostnamectl set-hostname
1
sudo nano /etc/hosts

Time Zone

Check time zone:

1
timedatectl

Change time zone:

1
sudo timedatectl set-timezone

You can also use if you want a menu.

1
sudo dpkg-reconfigure tzdata 

NTP Time

1
sudo nano /etc/systemd/timesyncd.conf
1
NTP=192.168.0.4
1
sudo timedatectl set-ntp off
1
sudo timedatectl set-ntp on

install kvm agent

1
sudo apt-get install qemu-guest-agent

firewall

1
sudo  ufw default deny incoming
1
sudo ufw default allow outgoing
1
sudo ufw allow ssh
1
sudo ufw enable

fail2ban

1
sudo apt-get install fail2ban
1
sudo cp /etc/fail2ban/fail2ban.{conf,local}
1
sudo cp /etc/fail2ban/jail.{conf,local}
1
sudo nano /etc/fail2ban/jail.local
1
backend = systemd

check status

1
sudo fail2ban-client status
1
sudo fail2ban-client status sshd

⚙️ See all the hardware I recommend at https://l.technotim.live/gear

🚀 Don’t forget to check out the 🚀Launchpad repo with all of the quick start source files

This post is licensed under CC BY 4.0 by the author.