{"id":17867,"date":"2026-09-02T16:42:24","date_gmt":"2026-09-02T16:42:24","guid":{"rendered":"https:\/\/greenwebpage.com\/community\/?p=17867"},"modified":"2026-09-02T16:42:27","modified_gmt":"2026-09-02T16:42:27","slug":"initial-server-setup-after-installing-almalinux-10-user-firewall-hostname","status":"publish","type":"post","link":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/","title":{"rendered":"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\n  After installing AlmaLinux 10, there are a few basic settings to take care of before you start using the server. The first steps are creating a regular user with sudo access, setting a proper hostname, and configuring the firewall with the services you actually need. In this guide, we\u2019ll go through these initial server setup steps and get your AlmaLinux 10 system ready for everyday use.\n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Table of Content<\/strong>\n<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#Why-You-Need-to-Complete-Initial-Server-Setup-Before-You-Install-Anything-Else\">Why You Need to Complete Initial Server Setup Before You Install Anything Else<\/a><\/li>\n\n\n\n<li><a href=\"#How-to-Perform-Initial-Server-Setup-After-Installing-AlmaLinux-10\">How to Perform Initial Server Setup After Installing AlmaLinux 10<\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"#Step-1:-Log-In-and-Update-the-System\">Step 1: Log In and Update the System<\/a><\/li>\n\n\n\n<li><a href=\"#Step-2:-Set-the-Hostname\">Step 2: Set the Hostname<\/a><\/li>\n\n\n\n<li><a href=\"#Step-3:-Set-the-System-Timezone\">Step 3: Set the System Timezone<\/a><\/li>\n\n\n\n<li><a href=\"#Step-4:-Create-a-New-Sudo-User\">Step 4: Create a New Sudo User<\/a><\/li>\n\n\n\n<li><a href=\"#Step-5:-Set-Up-SSH-Key-Based-Authentication\">Step 5: Set Up SSH Key-Based Authentication<\/a><\/li>\n\n\n\n<li><a href=\"#Step-6:-Harden-the-SSH-Configuration\">Step 6: Harden the SSH Configuration<\/a><\/li>\n\n\n\n<li><a href=\"#Step-7:-Configure-Firewalld\">Step 7: Configure Firewalld<\/a><\/li>\n\n\n\n<li><a href=\"#Step-8:-Verify-SELinux-Is-Enforcing\">Step 8: Verify SELinux Is Enforcing<\/a><\/li>\n\n\n\n<li><a href=\"#Step-9:-Enable-Automatic-Security-Updates-(Optional-but-Recommended)\">Step 9: Enable Automatic Security Updates (Optional but Recommended)<\/a><\/li>\n\n\n\n<li><a href=\"#Step-10:-Install-Essential-Tools\">Step 10: Install Essential Tools<\/a><\/li>\n\n\n\n<li><a href=\"#Step-11:-Set-Up-Basic-Fail2ban-Protection-(Optional)\">Step 11: Set Up Basic Fail2ban Protection (Optional)<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"#Recommendation-As-An-Expert\">Recommendation As An Expert<\/a><\/li>\n\n\n\n<li><a href=\"#Frequently-Asked-Questions\">Frequently Asked Questions<\/a><br>  <\/li>\n<\/ul>\n\n\n\n<h2 id=\"Why-You-Need-to-Complete-Initial-Server-Setup-Before-You-Install-Anything-Else\" class=\"wp-block-heading\"><a id=\"post-17867-_oilvhzuzpoq1\"><\/a><strong>Why You Need to Complete Initial Server Setup Before You Install Anything Else<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Skipping initial setup and jumping straight to installing your application stack is one of the most common mistakes on a fresh server. A server running as root with default settings and an unconfigured firewall is exposed the moment it has a public IP address; automated bots scan the internet constantly for exactly this kind of misconfiguration. Spending 15\u201320 minutes on proper initial setup now prevents a much longer incident response conversation later.\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-17867-_wozisau33xts\"><\/a><strong>Prerequisites<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A <a href=\"https:\/\/greenwebpage.com\/community\/how-to-install-almalinux-10-on-vmware-workstation\/\">fresh AlmaLinux 10 installation<\/a> with root or initial sudo access  <\/li>\n\n\n\n<li> Your server&#8217;s IP address (find it with ip addr show if you don&#8217;t already have it)<\/li>\n\n\n\n<li>SSH access, either through your provider&#8217;s console or a terminal<br>  <\/li>\n<\/ul>\n\n\n\n<h2 id=\"How-to-Perform-Initial-Server-Setup-After-Installing-AlmaLinux-10\" class=\"wp-block-heading\"><a id=\"post-17867-_l1ah1dn3yr4x\"><\/a><strong>How to Perform Initial Server Setup After Installing AlmaLinux 10<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\n  To perform initial server setup on AlmaLinux 10, create a sudo user, configure firewalld to secure open ports, and update your system packages. Next, set a custom hostname using hostnamectl and strengthen SSH access by disabling root login and enforcing key authentication.\n<\/p>\n\n\n\n<h3 id=\"Step-1:-Log-In-and-Update-the-System\" class=\"wp-block-heading\"><a id=\"post-17867-_30p2z2pnr2us\"><\/a><strong>Step 1: Log In and Update the System<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/greenwebpage.com\/community\/how-to-connect-to-your-almalinux-10-server-using-ssh\/\">Connect to your server in AlmaLinux 10<\/a> for the first time, either via your hosting provider&#8217;s console or SSH:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  ssh root@your-server-ip\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Before anything else, make sure you&#8217;re working with fully current packages and security patches:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo dnf update\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1054\" height=\"585\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-1.png\" alt=\"update packages\" class=\"wp-image-17868\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-1.png 1054w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-1-300x167.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-1-1024x568.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-1-768x426.png 768w\" sizes=\"(max-width: 1054px) 100vw, 1054px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\n  This can take a few minutes on a fresh install. Reboot afterward if a kernel update was included:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  reboot\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1057\" height=\"157\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-2.png\" alt=\"reboot the system\" class=\"wp-image-17869\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-2.png 1057w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-2-300x45.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-2-1024x152.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-2-768x114.png 768w\" sizes=\"(max-width: 1057px) 100vw, 1057px\" \/><\/figure>\n\n\n\n<h3 id=\"Step-2:-Set-the-Hostname\" class=\"wp-block-heading\"><a id=\"post-17867-_l7mjk2o94l10\"><\/a><strong>Step 2: Set the Hostname<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">AlmaLinux 10 installs often ship with a generic or provider-assigned hostname (like localhost.localdomain). Setting a proper hostname matters for log clarity, cluster\/inventory management, and any monitoring tooling you&#8217;ll add later.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo hostnamectl set-hostname your-server-name\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"1052\" height=\"129\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-3.png\" alt=\"set hostname\" class=\"wp-image-17870\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-3.png 1052w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-3-300x37.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-3-1024x126.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-3-768x94.png 768w\" sizes=\"(max-width: 1052px) 100vw, 1052px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Verify it applied correctly:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  hostnamectl\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1061\" height=\"480\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-4.png\" alt=\"verifying hostname changed or not\" class=\"wp-image-17871\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-4.png 1061w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-4-300x136.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-4-1024x463.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-4-768x347.png 768w\" sizes=\"(max-width: 1061px) 100vw, 1061px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\n  If your server needs to resolve its own hostname locally (common for mail servers or certain application stacks), add an entry to \/etc\/hosts:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo tee -a \/etc\/hosts &lt;&lt;EOF\n<\/p><p>\n  127.0.0.1 alma10\n<\/p><p>\n  EOF\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1059\" height=\"187\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-5.png\" alt=\"\" class=\"wp-image-17872\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-5.png 1059w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-5-300x53.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-5-1024x181.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-5-768x136.png 768w\" sizes=\"(max-width: 1059px) 100vw, 1059px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note<\/strong>: After setting the hostname, you can apply the changes through the \u201cnewgrp\u201d command.\n<\/p>\n\n\n\n<h3 id=\"Step-3:-Set-the-System-Timezone\" class=\"wp-block-heading\"><a id=\"post-17867-_z4d59socnmtn\"><\/a><strong>Step 3: Set the System Timezone<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Accurate timestamps matter for logs, cron jobs, and SSL certificate validation. <a href=\"https:\/\/greenwebpage.com\/community\/how-to-set-timezone-on-debian-12\/\">Check your current timezone<\/a>:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  timedatectl\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1055\" height=\"321\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-6.png\" alt=\"checking timezone\" class=\"wp-image-17873\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-6.png 1055w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-6-300x91.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-6-1024x312.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-6-768x234.png 768w\" sizes=\"(max-width: 1055px) 100vw, 1055px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  List available time zones and set the correct one:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  timedatectl list-timezones | grep America\n<\/p><p>\n  sudo timedatectl set-timezone America\/New_York\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1051\" height=\"482\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-7.png\" alt=\"list timezones\" class=\"wp-image-17874\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-7.png 1051w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-7-300x138.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-7-1024x470.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-7-768x352.png 768w\" sizes=\"(max-width: 1051px) 100vw, 1051px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Confirm time synchronization is active (AlmaLinux 10 uses chronyd by default):\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo systemctl status chronyd\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1061\" height=\"581\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-8.png\" alt=\"confirm time synchronization\" class=\"wp-image-17875\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-8.png 1061w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-8-300x164.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-8-1024x561.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-8-768x421.png 768w\" sizes=\"(max-width: 1061px) 100vw, 1061px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 id=\"Step-4:-Create-a-New-Sudo-User\" class=\"wp-block-heading\"><a id=\"post-17867-_5ccd1hpjucoe\"><\/a><strong>Step 4: Create a New Sudo User<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Working directly as root for daily administration is a bad habit that increases the blast radius of any mistake or compromised session. Create a new sudo user or dedicated administrative user instead:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo adduser adminuser\n<\/p><p>\n  sudo passwd adminuser\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"327\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-9.png\" alt=\"create new user\" class=\"wp-image-17876\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-9.png 1060w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-9-300x93.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-9-1024x316.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-9-768x237.png 768w\" sizes=\"(max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Add the new user to the wheel group, which grants sudo privileges on AlmaLinux by default:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo usermod -aG wheel adminuser\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1058\" height=\"117\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-10.png\" alt=\"add new user to sudo group\" class=\"wp-image-17877\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-10.png 1058w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-10-300x33.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-10-1024x113.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-10-768x85.png 768w\" sizes=\"(max-width: 1058px) 100vw, 1058px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Verify the user has sudo access before logging out of your root session:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  su &#8211; adminuser\n<\/p><p>\n  sudo whoami\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1057\" height=\"601\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-11.png\" alt=\"login with sudo user\" class=\"wp-image-17878\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-11.png 1057w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-11-300x171.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-11-1024x582.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-11-768x437.png 768w\" sizes=\"(max-width: 1057px) 100vw, 1057px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  This should return root without error, confirming sudo is working correctly before you rely on it.\n<\/p>\n\n\n\n<h2 id=\"Step-5:-Set-Up-SSH-Key-Based-Authentication\" class=\"wp-block-heading\"><a id=\"post-17867-_suhvrde41po7\"><\/a><strong>Step 5: Set Up SSH Key-Based Authentication<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Password authentication over SSH is a common brute-force target. Set up key-based login for your new user before disabling passwords entirely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  On your <strong>local machine<\/strong>, generate a key pair if you don&#8217;t already have one:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  ssh-keygen -t ed25519 -C &#8220;your_email@example.com&#8221;\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"772\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-12.png\" alt=\"generate ssh key pair\" class=\"wp-image-17879\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-12.png 1060w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-12-300x218.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-12-1024x746.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-12-768x559.png 768w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-12-160x117.png 160w\" sizes=\"(max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Copy the public key to your server:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  ssh-copy-id adminuser@your-server-ip\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1021\" height=\"386\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-13.png\" alt=\"copy the key to server\" class=\"wp-image-17880\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-13.png 1021w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-13-300x113.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-13-768x290.png 768w\" sizes=\"(max-width: 1021px) 100vw, 1021px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Test that key-based login works:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  ssh adminuser@your-server-ip\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1011\" height=\"210\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-14.png\" alt=\"test ssh login\" class=\"wp-image-17881\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-14.png 1011w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-14-300x62.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-14-768x160.png 768w\" sizes=\"(max-width: 1011px) 100vw, 1011px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Let\u2019s confirm from the web console.\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1099\" height=\"740\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-15.png\" alt=\"\" class=\"wp-image-17882\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-15.png 1099w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-15-300x202.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-15-1024x689.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-15-768x517.png 768w\" sizes=\"(max-width: 1099px) 100vw, 1099px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 id=\"Step-6:-Harden-the-SSH-Configuration\" class=\"wp-block-heading\"><a id=\"post-17867-_z4u28y6bwwoi\"><\/a><strong>Step 6: Harden the SSH Configuration<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once key-based login for your new user is confirmed working, tighten SSH access on the server:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo nano \/etc\/ssh\/sshd_config\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Set the following:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  PermitRootLogin no\n<\/p><p>\n  PasswordAuthentication no\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"749\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-16.png\" alt=\"tighten or harden ssh server\" class=\"wp-image-17883\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-16.png 1060w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-16-300x212.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-16-1024x724.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-16-768x543.png 768w\" sizes=\"(max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  AlmaLinux 10 disables root SSH login by default, but it&#8217;s worth confirming explicitly rather than assuming a fresh image was configured the way you expect. Restart SSH to apply changes:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo systemctl restart sshd\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1017\" height=\"455\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-17.png\" alt=\"restart ssh service\" class=\"wp-image-17884\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-17.png 1017w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-17-300x134.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-17-768x344.png 768w\" sizes=\"(max-width: 1017px) 100vw, 1017px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> Keep your current session open while testing in a new terminal window, so you&#8217;re not locked out if something&#8217;s misconfigured.\n<\/p>\n\n\n\n<h3 id=\"Step-7:-Configure-Firewalld\" class=\"wp-block-heading\"><a id=\"post-17867-_g0qw05aksgvr\"><\/a><strong>Step 7: Configure Firewalld<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  AlmaLinux 10 ships with firewalld active by default, but it needs to be configured for what your server will actually <a href=\"https:\/\/greenwebpage.com\/community\/how-to-set-up-a-basic-firewall-on-almalinux-10-using-firewalld\/\">run; a firewall<\/a> with no rules configured for your services isn&#8217;t protecting the things that matter.\n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Check current status and rules:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo systemctl status firewalld\n<\/p><p>\n  sudo firewall-cmd &#8211;list-all\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1055\" height=\"707\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-18.png\" alt=\"check firewall status\" class=\"wp-image-17885\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-18.png 1055w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-18-300x201.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-18-1024x686.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-18-768x515.png 768w\" sizes=\"(max-width: 1055px) 100vw, 1055px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Allow SSH explicitly (if not already permitted):\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo firewall-cmd &#8211;permanent &#8211;add-service=ssh\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1061\" height=\"168\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-19.png\" alt=\"enable ssh service\" class=\"wp-image-17886\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-19.png 1061w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-19-300x48.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-19-1024x162.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-19-768x122.png 768w\" sizes=\"(max-width: 1061px) 100vw, 1061px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Add rules for any other services your server will run, for example, a web server:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo firewall-cmd &#8211;permanent &#8211;add-service=http\n<\/p><p>\n  sudo firewall-cmd &#8211;permanent &#8211;add-service=https\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1058\" height=\"270\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-20.png\" alt=\"enable http and https service\" class=\"wp-image-17887\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-20.png 1058w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-20-300x77.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-20-1024x261.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-20-768x196.png 768w\" sizes=\"(max-width: 1058px) 100vw, 1058px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Apply the changes:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo firewall-cmd &#8211;reload\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1058\" height=\"139\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-21.png\" alt=\"apply firewall changes\" class=\"wp-image-17888\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-21.png 1058w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-21-300x39.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-21-1024x135.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-21-768x101.png 768w\" sizes=\"(max-width: 1058px) 100vw, 1058px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Confirm the final rule set:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo firewall-cmd &#8211;list-all\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1060\" height=\"676\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-22.png\" alt=\"verify new firewall added rules\" class=\"wp-image-17889\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-22.png 1060w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-22-300x191.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-22-1024x653.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-22-768x490.png 768w\" sizes=\"(max-width: 1060px) 100vw, 1060px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Review this list carefully; every open service here is a reachable entry point, so nothing should be present that you can&#8217;t account for.\n<\/p>\n\n\n\n<h3 id=\"Step-8:-Verify-SELinux-Is-Enforcing\" class=\"wp-block-heading\"><a id=\"post-17867-_twn356lwk8g5\"><\/a><strong>Step 8: Verify SELinux Is Enforcing<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">SELinux is enabled and enforcing by default on AlmaLinux 10, adding a mandatory access control layer beyond standard file permissions. Confirm it&#8217;s active rather than assuming:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sestatus\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1053\" height=\"419\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-23.png\" alt=\"check selinux status\" class=\"wp-image-17890\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-23.png 1053w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-23-300x119.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-23-1024x407.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-23-768x306.png 768w\" sizes=\"(max-width: 1053px) 100vw, 1053px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  You want to see Current mode: enforcing. If it shows permissive or disabled, something was changed from the default, worth investigating rather than leaving as-is on a production server.\n<\/p>\n\n\n\n<h3 id=\"Step-9:-Enable-Automatic-Security-Updates-(Optional-but-Recommended)\" class=\"wp-block-heading\"><a id=\"post-17867-_uj7lrv25495l\"><\/a><strong>Step 9: Enable Automatic Security Updates (Optional but Recommended)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Manually remembering to patch a server doesn&#8217;t scale, and unpatched vulnerabilities get exploited quickly once disclosed. Automate at least security-only updates:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo dnf install dnf-automatic -y\n<\/p><p>\n  sudo sed -i &#8216;s\/^apply_updates =.*\/apply_updates = yes\/&#8217; \/etc\/dnf\/automatic.conf\n<\/p><p>\n  sudo sed -i &#8216;s\/^upgrade_type =.*\/upgrade_type = security\/&#8217; \/etc\/dnf\/automatic.conf\n<\/p><p>\n  sudo systemctl enable &#8211;now dnf-automatic.timer\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1065\" height=\"478\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-24.png\" alt=\"enable automatic security updates\" class=\"wp-image-17891\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-24.png 1065w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-24-300x135.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-24-1024x460.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-24-768x345.png 768w\" sizes=\"(max-width: 1065px) 100vw, 1065px\" \/><\/figure>\n\n\n\n<h3 id=\"Step-10:-Install-Essential-Tools\" class=\"wp-block-heading\"><a id=\"post-17867-_t4wmhkvp101\"><\/a><strong>Step 10: Install Essential Tools<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  A minimal AlmaLinux 10 install lacks some basics most admins want available immediately:\n<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo dnf install -y vim wget curl git tar unzip htop\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1062\" height=\"678\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-25.png\" alt=\"install essential tools like vim, wget, curl, git, and tar\" class=\"wp-image-17892\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-25.png 1062w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-25-300x192.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-25-1024x654.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-25-768x490.png 768w\" sizes=\"(max-width: 1062px) 100vw, 1062px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 id=\"Step-11:-Set-Up-Basic-Fail2ban-Protection-(Optional)\" class=\"wp-block-heading\"><a id=\"post-17867-_298hja4ktz7\"><\/a><strong>Step 11: Set Up Basic Fail2ban Protection (Optional)<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For an extra layer of brute-force protection beyond disabled password auth, install fail2ban:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><p>\n  sudo dnf install epel-release -y\n<\/p><p>\n  sudo dnf install fail2ban -y\n<\/p><p>\n  sudo systemctl enable &#8211;now fail2ban\n<\/p><\/th><\/tr><\/thead><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1061\" height=\"676\" src=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-26.png\" alt=\"install fail2ban\" class=\"wp-image-17893\" srcset=\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-26.png 1061w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-26-300x191.png 300w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-26-1024x652.png 1024w, https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/word-image-17867-26-768x489.png 768w\" sizes=\"(max-width: 1061px) 100vw, 1061px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 id=\"Recommendation-As-An-Expert\" class=\"wp-block-heading\"><a id=\"post-17867-_edk1sm1fa3sy\"><\/a><strong>Recommendation As An Expert<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Initial server setup on AlmaLinux 10 comes down to a short, repeatable sequence: update the system, set a proper hostname and timezone, create a sudo user instead of relying on root, lock down SSH with key-based authentication, configure the firewall for exactly what you&#8217;re running, and confirm SELinux and automatic updates are active.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\n  None of these steps take more than a couple of minutes individually, but skipping any of them is how servers end up compromised through avoidable misconfiguration rather than a sophisticated attack. Run through this checklist on every new AlmaLinux 10 server before deploying anything else; it&#8217;s the foundation everything you build afterward depends on.\n<\/p>\n\n\n\n<h2 id=\"Frequently-Asked-Questions\" class=\"wp-block-heading\"><a id=\"post-17867-_ctpbr14pvhhy\"><\/a><strong>Frequently Asked Questions<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-17867-_93bchewq2aol\"><\/a><strong>1. What should I do first after installing AlmaLinux 10?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Update the system with dnf update -y, then create a dedicated sudo user rather than continuing to work as root. These two steps form the foundation that everything else in the initial setup builds on, and skipping them is the most common early mistake on a fresh server.\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-17867-_pdwtci6syomh\"><\/a><strong>2. How do I change the hostname permanently on AlmaLinux 10?<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Use sudo hostnamectl set-hostname your-server-name, which updates the hostname immediately and persists it across reboots. On cloud servers, also check \/etc\/cloud\/cloud.cfg for preserve_hostname: false, since cloud-init can silently reset a custom hostname on the next boot otherwise.\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-17867-_kbk9ufhq7kdx\"><\/a><strong>3. Is firewalld enabled by default on AlmaLinux 10? <\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Yes, firewalld runs by default with a basic ruleset, but it isn&#8217;t automatically configured for whatever services you plan to run. You still need to explicitly allow services like HTTP, HTTPS, or custom application ports with firewall-cmd &#8211;add-service before those services will be reachable.\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-17867-_t79kki3az69b\"><\/a><strong>4. How do I add a new user with sudo privileges on AlmaLinux 10? <\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  Create the user with sudo adduser username, set a password with sudo passwd username, then add them to the wheel group using sudo usermod -aG wheel username; membership in wheel is what grants sudo access by default on AlmaLinux.\n<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a id=\"post-17867-_l425e1vq06qh\"><\/a><strong>5. Should I disable SELinux during the initial server setup? <\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\n  No. SELinux ships enabled and enforcing by default on AlmaLinux 10 for a reason, and disabling it removes a significant security layer rather than fixing whatever problem prompted the idea. \n<\/p>\n\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>After installing AlmaLinux 10, there are a few basic settings to take care of before you start using the server. The first steps are creating a regular user with sudo access, setting a proper hostname, and configuring the firewall with the services you actually need. In this guide, we\u2019ll go through these initial server setup [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":17907,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[1024,322,1082,266,424,753],"class_list":["post-17867","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-almalinux-10","tag-firewalld","tag-selinux","tag-ssh","tag-timedatectl","tag-useradd"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname) - Greenwebpage Community<\/title>\n<meta name=\"description\" content=\"In this guide, we\u2019ll go through these initial server setup steps and get your AlmaLinux 10 system ready for everyday use.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname) - Greenwebpage Community\" \/>\n<meta property=\"og:description\" content=\"In this guide, we\u2019ll go through these initial server setup steps and get your AlmaLinux 10 system ready for everyday use.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/\" \/>\n<meta property=\"og:site_name\" content=\"Greenwebpage Community\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-02T16:42:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-02T16:42:27+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1020\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Karim Buzdar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Karim Buzdar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/\"},\"author\":{\"name\":\"Karim Buzdar\",\"@id\":\"https:\/\/greenwebpage.com\/community\/#\/schema\/person\/467c100c1d017bc081473ee0440680c8\"},\"headline\":\"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname)\",\"datePublished\":\"2026-09-02T16:42:24+00:00\",\"dateModified\":\"2026-09-02T16:42:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/\"},\"wordCount\":1500,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/#organization\"},\"image\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg\",\"keywords\":[\"AlmaLinux 10\",\"Firewalld\",\"SELinux\",\"SSH\",\"timedatectl\",\"useradd\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/\",\"url\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/\",\"name\":\"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname) - Greenwebpage Community\",\"isPartOf\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg\",\"datePublished\":\"2026-09-02T16:42:24+00:00\",\"dateModified\":\"2026-09-02T16:42:27+00:00\",\"description\":\"In this guide, we\u2019ll go through these initial server setup steps and get your AlmaLinux 10 system ready for everyday use.\",\"breadcrumb\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#primaryimage\",\"url\":\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg\",\"contentUrl\":\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg\",\"width\":1020,\"height\":600,\"caption\":\"intial server setup after installing almalinux 10\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/greenwebpage.com\/community\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/greenwebpage.com\/community\/#website\",\"url\":\"https:\/\/greenwebpage.com\/community\/\",\"name\":\"Greenwebpage Community\",\"description\":\"Get online in three steps with our wide range of web hosting solutions. Choose from professional business to enterprise options designed to meet your needs.\",\"publisher\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/greenwebpage.com\/community\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/greenwebpage.com\/community\/#organization\",\"name\":\"Greenwebpage Community\",\"url\":\"https:\/\/greenwebpage.com\/community\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/greenwebpage.com\/community\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2023\/10\/cropped-logomic.png\",\"contentUrl\":\"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2023\/10\/cropped-logomic.png\",\"width\":512,\"height\":512,\"caption\":\"Greenwebpage Community\"},\"image\":{\"@id\":\"https:\/\/greenwebpage.com\/community\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/greenwebpage.com\/community\/#\/schema\/person\/467c100c1d017bc081473ee0440680c8\",\"name\":\"Karim Buzdar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/greenwebpage.com\/community\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0628fcbcddd9bc5486245d2cf4a904dbcdeac9ad6c3098f49237094e9d513d0c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0628fcbcddd9bc5486245d2cf4a904dbcdeac9ad6c3098f49237094e9d513d0c?s=96&d=mm&r=g\",\"caption\":\"Karim Buzdar\"},\"sameAs\":[\"https:\/\/greenwebpage.com\"],\"url\":\"https:\/\/greenwebpage.com\/community\/author\/karim\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname) - Greenwebpage Community","description":"In this guide, we\u2019ll go through these initial server setup steps and get your AlmaLinux 10 system ready for everyday use.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/","og_locale":"en_US","og_type":"article","og_title":"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname) - Greenwebpage Community","og_description":"In this guide, we\u2019ll go through these initial server setup steps and get your AlmaLinux 10 system ready for everyday use.","og_url":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/","og_site_name":"Greenwebpage Community","article_published_time":"2026-09-02T16:42:24+00:00","article_modified_time":"2026-09-02T16:42:27+00:00","og_image":[{"width":1020,"height":600,"url":"http:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg","type":"image\/jpeg"}],"author":"Karim Buzdar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Karim Buzdar","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#article","isPartOf":{"@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/"},"author":{"name":"Karim Buzdar","@id":"https:\/\/greenwebpage.com\/community\/#\/schema\/person\/467c100c1d017bc081473ee0440680c8"},"headline":"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname)","datePublished":"2026-09-02T16:42:24+00:00","dateModified":"2026-09-02T16:42:27+00:00","mainEntityOfPage":{"@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/"},"wordCount":1500,"commentCount":0,"publisher":{"@id":"https:\/\/greenwebpage.com\/community\/#organization"},"image":{"@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#primaryimage"},"thumbnailUrl":"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg","keywords":["AlmaLinux 10","Firewalld","SELinux","SSH","timedatectl","useradd"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/","url":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/","name":"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname) - Greenwebpage Community","isPartOf":{"@id":"https:\/\/greenwebpage.com\/community\/#website"},"primaryImageOfPage":{"@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#primaryimage"},"image":{"@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#primaryimage"},"thumbnailUrl":"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg","datePublished":"2026-09-02T16:42:24+00:00","dateModified":"2026-09-02T16:42:27+00:00","description":"In this guide, we\u2019ll go through these initial server setup steps and get your AlmaLinux 10 system ready for everyday use.","breadcrumb":{"@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#primaryimage","url":"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg","contentUrl":"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2026\/09\/intial-server-setup-after-installing-almalinux-10.jpg","width":1020,"height":600,"caption":"intial server setup after installing almalinux 10"},{"@type":"BreadcrumbList","@id":"https:\/\/greenwebpage.com\/community\/initial-server-setup-after-installing-almalinux-10-user-firewall-hostname\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/greenwebpage.com\/community\/"},{"@type":"ListItem","position":2,"name":"Initial Server Setup After Installing AlmaLinux 10 (User, Firewall, Hostname)"}]},{"@type":"WebSite","@id":"https:\/\/greenwebpage.com\/community\/#website","url":"https:\/\/greenwebpage.com\/community\/","name":"Greenwebpage Community","description":"Get online in three steps with our wide range of web hosting solutions. Choose from professional business to enterprise options designed to meet your needs.","publisher":{"@id":"https:\/\/greenwebpage.com\/community\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/greenwebpage.com\/community\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/greenwebpage.com\/community\/#organization","name":"Greenwebpage Community","url":"https:\/\/greenwebpage.com\/community\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/greenwebpage.com\/community\/#\/schema\/logo\/image\/","url":"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2023\/10\/cropped-logomic.png","contentUrl":"https:\/\/greenwebpage.com\/community\/wp-content\/uploads\/2023\/10\/cropped-logomic.png","width":512,"height":512,"caption":"Greenwebpage Community"},"image":{"@id":"https:\/\/greenwebpage.com\/community\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/greenwebpage.com\/community\/#\/schema\/person\/467c100c1d017bc081473ee0440680c8","name":"Karim Buzdar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/greenwebpage.com\/community\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0628fcbcddd9bc5486245d2cf4a904dbcdeac9ad6c3098f49237094e9d513d0c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0628fcbcddd9bc5486245d2cf4a904dbcdeac9ad6c3098f49237094e9d513d0c?s=96&d=mm&r=g","caption":"Karim Buzdar"},"sameAs":["https:\/\/greenwebpage.com"],"url":"https:\/\/greenwebpage.com\/community\/author\/karim\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/posts\/17867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/comments?post=17867"}],"version-history":[{"count":13,"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/posts\/17867\/revisions"}],"predecessor-version":[{"id":17906,"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/posts\/17867\/revisions\/17906"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/media\/17907"}],"wp:attachment":[{"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/media?parent=17867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/categories?post=17867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/greenwebpage.com\/community\/wp-json\/wp\/v2\/tags?post=17867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}