HackCert
Intermediate 10 min read May 25, 2026

Linux Hardening: সার্ভার সিকিউরিটি বাড়াতে লিনাক্স অপারেটিং সিস্টেমের বেস্ট প্র্যাকটিস!

Linux Hardening হলো একটি Default ইনস্টলেশনকে প্রোডাকশন-গ্রেড সুরক্ষিত সিস্টেমে রূপান্তরের পদ্ধতিগত প্রক্রিয়া।

Abdullah Al Mamun
Security Engineer
share
Linux Hardening: সার্ভার সিকিউরিটি বাড়াতে লিনাক্স অপারেটিং সিস্টেমের বেস্ট প্র্যাকটিস!
Overview

একটি Default Linux ইনস্টলেশন সাধারণত সুবিধা ও সহজলভ্যতার দিকে ঝোঁক রাখে, নিরাপত্তার দিকে নয়। অনেক অপ্রয়োজনীয় Service চালু থাকে, পোর্ট খোলা থাকে, এবং ডিফল্ট কনফিগারেশন আক্রমণকারীদের জন্য বিভিন্ন সুযোগ তৈরি করে। সাইবার নিরাপত্তা ভাষায় Linux Hardening হলো একটি সিস্টেমের Attack Surface কমিয়ে এবং প্রতিটি সম্ভাব্য আক্রমণ ভেক্টরকে শক্তিশালী করে তোলার পদ্ধতিগত প্রক্রিয়া। এটি একবারের কাজ নয়, বরং একটি Continuous Improvement Cycle।

এই বিস্তারিত গাইডে আমরা Linux Hardening-এর প্রতিটি স্তর নিয়ে আলোচনা করব - Kernel-level Hardening থেকে শুরু করে User Account, Network Service, File System, Logging, এবং Mandatory Access Control। CIS Benchmark এবং DISA STIG-এর মতো শিল্প-মান্যতাপ্রাপ্ত নির্দেশিকা অনুসরণ করে কীভাবে একটি Production-grade Linux সার্ভার তৈরি করতে হয় সেই পথ দেখানো হবে।

Hardening-এর মৌলিক দর্শন

Linux Hardening-এর কেন্দ্রীয় দর্শন তিনটি - Defense in Depth, Least Privilege, এবং Minimal Attack Surface। Defense in Depth মানে একাধিক স্তরে সুরক্ষা স্থাপন করা যাতে একটি স্তর ভেঙে গেলেও অন্যগুলো কাজ করে। Least Privilege মানে প্রতিটি ব্যবহারকারী, প্রসেস, এবং সার্ভিসকে শুধুমাত্র তার কাজের জন্য প্রয়োজনীয় ন্যূনতম অনুমতি দেওয়া। Minimal Attack Surface মানে অপ্রয়োজনীয় সবকিছু (Software, Service, Port) সরিয়ে ফেলা।

CIS (Center for Internet Security) Benchmark হলো Linux Hardening-এর জন্য সবচেয়ে বেশি ব্যবহৃত নির্দেশিকা। এটি Level 1 (কম restrictive, সাধারণ ব্যবহারের জন্য) এবং Level 2 (অধিক restrictive, উচ্চ-নিরাপত্তা পরিবেশের জন্য) এই দুটি স্তরে নিয়ম প্রদান করে। DISA STIG (Security Technical Implementation Guides) US Department of Defense-এর জন্য আরও কঠোর নির্দেশিকা।

Initial System Hardening

একটি নতুন Linux সিস্টেমে প্রথমেই সমস্ত প্যাকেজ আপডেট করতে হবে এবং Automatic Security Updates সক্ষম করতে হবে। Ubuntu/Debian-এ:

sudo apt update && sudo apt upgrade -y
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

RHEL/CentOS-এ dnf-automatic প্যাকেজ ইনস্টল করে স্বয়ংক্রিয় আপডেট সেট করা যায়। তবে Production পরিবেশে অটোমেটিক Reboot এড়ানো উচিত যেন Maintenance Window-এ Restart করা যায়।

অপ্রয়োজনীয় Package অপসারণ করতে হবে। dpkg --get-selections বা rpm -qa দিয়ে ইনস্টলড Package দেখে যেগুলো প্রয়োজন নেই সেগুলো সরিয়ে ফেলতে হবে। GUI Package (X.Org, Desktop Environment) সার্ভারে অপ্রয়োজনীয় - এগুলো সরালে Attack Surface অনেক কমে।

User Account এবং Authentication Hardening

ব্যবহারকারী অ্যাকাউন্ট Hardening-এর সবচেয়ে গুরুত্বপূর্ণ ধাপগুলোর মধ্যে একটি। Password Policy কঠোর করতে /etc/security/pwquality.conf ফাইলে নিম্নলিখিত সেটিংস যোগ করা যায়:

minlen = 14
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
maxrepeat = 3

এটি Minimum 14 অক্ষরের পাসওয়ার্ড দাবি করে, যেখানে অন্তত একটি Digit, Uppercase, Lowercase, এবং Special Character থাকতে হবে। /etc/login.defs ফাইলে Password Aging Policy সেট করা যায় - PASS_MAX_DAYS 90, PASS_MIN_DAYS 7, এবং PASS_WARN_AGE 14

Account Lockout Policy-এর জন্য pam_faillock ব্যবহার করা হয়, যা পরপর কয়েকবার ব্যর্থ লগইন প্রচেষ্টার পর অ্যাকাউন্ট লক করে দেয়। /etc/pam.d/system-auth এবং /etc/pam.d/password-auth ফাইলে কনফিগার করতে হয়।

Root লগইন SSH-এর মাধ্যমে কখনোই অনুমতি দেওয়া উচিত নয়। /etc/ssh/sshd_config-এ PermitRootLogin no সেট করতে হবে। বরং একটি সাধারণ ব্যবহারকারী তৈরি করে তাকে sudo Privilege দেওয়া উত্তম।

SSH Hardening

SSH সাধারণত Linux সার্ভারের প্রবেশদ্বার, তাই এর Hardening অত্যন্ত গুরুত্বপূর্ণ। /etc/ssh/sshd_config ফাইলে নিম্নলিখিত সেটিংস প্রস্তাবিত:

Protocol 2
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no
PermitEmptyPasswords no
X11Forwarding no
AllowAgentForwarding no
AllowTcpForwarding no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 0
Banner /etc/issue.net
AllowUsers admin

Key-based Authentication-ই একমাত্র Authentication পদ্ধতি হওয়া উচিত। ED25519 বা RSA 4096-bit Key ব্যবহার করতে হবে। দুর্বল Cipher এবং MAC algorithm নিষিদ্ধ করতে হবে - শুধু আধুনিক Cipher যেমন [email protected], [email protected] ব্যবহার করতে হবে।

Fail2Ban ইনস্টল করে SSH-এ Brute-force আক্রমণ স্বয়ংক্রিয়ভাবে Block করা যায়। এটি লগ মনিটর করে এবং নির্দিষ্ট সংখ্যক ব্যর্থ প্রচেষ্টার পর IP-কে নির্দিষ্ট সময়ের জন্য Block করে।

Kernel এবং sysctl Hardening

Linux Kernel-এ অনেক Parameter আছে যা sysctl কমান্ড দিয়ে নিয়ন্ত্রণ করা যায়। /etc/sysctl.d/99-hardening.conf ফাইলে নিম্নলিখিত নিয়ম যোগ করা প্রস্তাবিত:

# Network Hardening
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_timestamps = 0

# Memory Protection
kernel.randomize_va_space = 2
kernel.kptr_restrict = 2
kernel.dmesg_restrict = 1
kernel.yama.ptrace_scope = 2

# File System
fs.suid_dumpable = 0
fs.protected_hardlinks = 1
fs.protected_symlinks = 1

এই সেটিংসগুলো SYN flood প্রতিরোধ, IP Spoofing প্রতিরোধ, ASLR সক্ষমকরণ, এবং Kernel Pointer Leak প্রতিরোধ করে। sysctl -p /etc/sysctl.d/99-hardening.conf দিয়ে সেটিংস লোড করতে হয়।

Filesystem Hardening

/etc/fstab ফাইলে Mount Option কাস্টমাইজ করে Filesystem-level Hardening করা যায়। /tmp, /var/tmp, এবং /home partition-এ noexec, nosuid, এবং nodev option যোগ করতে হবে:

/dev/sda2 /tmp ext4 defaults,nodev,nosuid,noexec 0 2
/dev/sda3 /home ext4 defaults,nodev,nosuid 0 2

noexec মানে এই Partition থেকে কোনো Binary Execute করা যাবে না, যা প্রায়শই আক্রমণকারীদের Malicious Payload চালানোর জায়গা। nosuid মানে SUID/SGID bit কাজ করবে না, যা Privilege Escalation প্রতিরোধ করে। nodev মানে Device File তৈরি করা যাবে না।

SUID/SGID Binary নিয়মিত Audit করতে হবে। find / -perm -4000 -type f 2>/dev/null দিয়ে সমস্ত SUID Binary খুঁজে বের করে অপ্রয়োজনীয়গুলো থেকে SUID bit সরাতে হবে।

Service এবং Network Hardening

systemctl list-unit-files --state=enabled দিয়ে সমস্ত সক্রিয় সার্ভিস দেখতে হবে। অপ্রয়োজনীয় সার্ভিস (যেমন CUPS, Avahi, Bluetooth সার্ভার পরিবেশে) Disable করতে হবে:

sudo systemctl disable --now cups.service
sudo systemctl mask cups.service

mask ব্যবহার করলে সার্ভিস স্থায়ীভাবে Disable হয় এবং Manual ভাবেও শুরু করা যায় না।

Firewall কনফিগারেশন অপরিহার্য। ufw (Ubuntu) বা firewalld (RHEL) দিয়ে শুধু প্রয়োজনীয় পোর্ট খোলা রাখতে হবে। Default Policy হবে সমস্ত Inbound বন্ধ এবং Outbound অনুমোদিত:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp comment 'SSH'
sudo ufw allow 443/tcp comment 'HTTPS'
sudo ufw enable

iptables বা nftables ব্যবহার করে আরও Granular Firewall Rule তৈরি করা যায়।

Mandatory Access Control: SELinux এবং AppArmor

Discretionary Access Control (DAC) যেমন File Permission, Mandatory Access Control (MAC) তার চেয়ে কঠোর - এমনকি root user-ও MAC Policy-র বাইরে কাজ করতে পারে না। RHEL/CentOS/Fedora-তে SELinux এবং Ubuntu/SUSE-তে AppArmor ডিফল্টভাবে আসে।

SELinux-এর Mode তিনটি - Enforcing, Permissive, এবং Disabled। Production সার্ভারে অবশ্যই Enforcing mode-এ রাখতে হবে। getenforce দিয়ে বর্তমান Mode দেখা যায় এবং setenforce 1 দিয়ে Enforcing করা যায়। /etc/selinux/config ফাইলে স্থায়ী সেটিংস থাকে।

SELinux Denial Log /var/log/audit/audit.log-এ লেখা হয়। ausearch -m AVC -ts recent দিয়ে সাম্প্রতিক Denial দেখা যায়। audit2allow টুল দিয়ে Custom Policy তৈরি করা যায় যখন একটি বৈধ Application Block হচ্ছে।

AppArmor Profile-ভিত্তিক কাজ করে। aa-status দিয়ে সক্রিয় Profile দেখা যায়। প্রতিটি Critical Application যেমন Nginx, MySQL-এর জন্য Profile থাকা উচিত।

Logging এবং Audit

Comprehensive Logging Hardening-এর অপরিহার্য অংশ। rsyslog বা systemd-journald কনফিগার করে সমস্ত গুরুত্বপূর্ণ ইভেন্ট লগ করতে হবে। Centralized Logging-এর জন্য লগগুলো একটি Remote SIEM সার্ভারে পাঠাতে হবে।

auditd ইনস্টল করে Critical File এবং System Call মনিটর করতে হবে। /etc/audit/rules.d/audit.rules ফাইলে নিয়ম:

-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k privilege
-w /var/log/auth.log -p wa -k login_attempts
-a always,exit -F arch=b64 -S execve -k command_execution

লগ Rotation এবং Integrity রক্ষা করতে logrotate এবং journald-এর Forward Secure Sealing (FSS) ব্যবহার করা যায়। লগ Tampering শনাক্ত করতে AIDE বা Tripwire দিয়ে File Integrity Monitoring সেটআপ করতে হবে।

Automation এবং Compliance Tools

Manual Hardening সময়সাপেক্ষ এবং Error-prone। Automation টুল ব্যবহার করে দ্রুত এবং Consistent Hardening করা যায়। OpenSCAP হলো একটি ওপেন সোর্স টুল যা CIS/STIG Benchmark অনুযায়ী সিস্টেম স্ক্যান এবং Remediate করতে পারে:

sudo oscap xccdf eval --profile cis_level1_server \
  --results results.xml \
  /usr/share/xml/scap/ssg/content/ssg-ubuntu2004-ds.xml

Ansible-এর জন্য DevSec Hardening Framework এবং MindPointGroup-এর RHEL7-CIS Role জনপ্রিয়। Lynis একটি জনপ্রিয় Audit টুল যা সিস্টেম স্ক্যান করে Hardening সুপারিশ প্রদান করে।

sudo lynis audit system --quick

কনফিগারেশন Drift প্রতিরোধে Chef Inspec বা Terraform Sentinel ব্যবহার করা যায়।

প্রতিরোধ ও প্রতিকার

Linux Hardening একটি Continuous প্রক্রিয়া, একবারের কাজ নয়। নিয়মিত Vulnerability Scan চালাতে হবে - OpenVAS, Nessus, বা Nuclei দিয়ে। CVE Database নিয়মিত পর্যালোচনা করে আপনার সিস্টেমে চলমান সফটওয়্যারে নতুন দুর্বলতা আছে কিনা যাচাই করতে হবে।

Backup Strategy অপরিহার্য - 3-2-1 নিয়ম অনুসরণ করুন (৩টি কপি, ২ ভিন্ন মিডিয়ায়, ১টি অফসাইটে)। Encrypted Backup ব্যবহার করতে হবে এবং নিয়মিত Restore Test চালাতে হবে।

Incident Response Playbook প্রস্তুত রাখতে হবে যাতে কোনো সমস্যা হলে দ্রুত পদক্ষেপ নেওয়া যায়। কর্মীদের Security Awareness Training নিয়মিত প্রদান করতে হবে।

Key Takeaways

Linux Hardening একটি বহুমুখী এবং চলমান প্রক্রিয়া যা একটি Default ইনস্টলেশনকে একটি শক্তিশালী, Production-grade সার্ভারে রূপান্তর করে। User Authentication, SSH, Kernel Parameter, Filesystem, Service, Firewall, MAC, এবং Logging - প্রতিটি স্তরে যত্নশীল কনফিগারেশন প্রয়োজন। CIS Benchmark, DISA STIG, এবং OpenSCAP-এর মতো শিল্প-মান্যতাপ্রাপ্ত নির্দেশিকা এবং টুল ব্যবহার করে Consistent Hardening অর্জন সম্ভব। মনে রাখবেন, একটি সিস্টেম কখনোই ১০০ শতাংশ নিরাপদ নয়, কিন্তু সঠিক Hardening করলে আক্রমণকারীর জন্য কাজ অনেক কঠিন হয়ে যায় এবং Detection-এর সম্ভাবনা অনেক বাড়ে।

আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ Linux Hardening MCQ Quiz-টি দিন!

Related articles

back to all articles