SSH Hardening คู่มือรักษาความปลอดภัย Server 2025 Security

SSH Hardening คู่มือรักษาความปลอดภัย Server 2025

📅 1997-11-11 | โดย อ.บอม กิตติทัศน์ เจริญพนาสิทธิ์ — SiamCafe.net Since 1997

📑 สารบัญ

ทำไม SSH ถูกโจมตี

SSH port 22 เป็นเป้าหมายอันดับ 1 ของ brute force attack server ใหม่ที่เปิด port 22 จะถูก scan ภายใน 15 นาที และถูก brute force ภายใน 1 ชั่วโมง ถ้าใช้ password ง่ายๆ จะถูกเจาะภายในไม่กี่ชั่วโมง

Step 1: เปลี่ยน SSH Port

# แก้ไข /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config

# เปลี่ยนจาก:
# Port 22
# เป็น:
Port 2222  # เลือกเลขอื่นก็ได้ (1024-65535)

# Restart SSH
sudo systemctl restart sshd

# ทดสอบ (เปิด terminal ใหม่ก่อนปิดอันเก่า!)
ssh -p 2222 user@server-ip

🎬 วิดีโอแนะนำ

ดูวิดีโอเพิ่มเติมเกี่ยวกับSSH Hardening คู่มือรักษาความปลอดภัย Ser:

Step 2: ใช้ SSH Key Authentication

# สร้าง SSH key บนเครื่อง client
ssh-keygen -t ed25519 -C "your-email@example.com"
# หรือ RSA 4096 bit
ssh-keygen -t rsa -b 4096

# Copy key ไป server
ssh-copy-id -p 2222 user@server-ip

# ทดสอบ login ด้วย key (ไม่ต้องใส่ password)
ssh -p 2222 user@server-ip

# ปิด password authentication (ทำหลังจากทดสอบ key แล้ว!)
sudo nano /etc/ssh/sshd_config
# PasswordAuthentication no
# PubkeyAuthentication yes
sudo systemctl restart sshd

Step 3: ปิด Root Login

# /etc/ssh/sshd_config
PermitRootLogin no

# ใช้ sudo แทน
# สร้าง user ใหม่ที่มีสิทธิ์ sudo
sudo adduser admin
sudo usermod -aG sudo admin

# Copy SSH key ไปให้ user ใหม่
sudo mkdir -p /home/admin/.ssh
sudo cp ~/.ssh/authorized_keys /home/admin/.ssh/
sudo chown -R admin:admin /home/admin/.ssh

Step 4: ติดตั้ง Fail2Ban

# ติดตั้ง
sudo apt install fail2ban -y

# Config
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

# [sshd]
# enabled = true
# port = 2222
# filter = sshd
# logpath = /var/log/auth.log
# maxretry = 3
# bantime = 3600
# findtime = 600

sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

# ดู status
sudo fail2ban-client status sshd
# จะเห็น IP ที่ถูก ban

Advanced Hardening

# /etc/ssh/sshd_config — Advanced settings

# จำกัด user ที่ login ได้
AllowUsers admin deployer

# จำกัด IP ที่เข้าได้ (ถ้า IP คงที่)
# ใช้ firewall แทน
sudo ufw allow from 203.0.113.0/24 to any port 2222

# ปิด X11 Forwarding
X11Forwarding no

# ตั้ง timeout
ClientAliveInterval 300
ClientAliveCountMax 2

# ใช้ protocol 2 เท่านั้น
Protocol 2

# จำกัด authentication attempts
MaxAuthTries 3

# ปิด empty passwords
PermitEmptyPasswords no

Checklist ความปลอดภัย SSH

SSH Hardening เป็นสิ่งแรกที่ต้องทำหลังจากได้ server ใหม่ ใช้เวลาไม่ถึง 30 นาที แต่ป้องกันการโจมตีได้ 99%

💡 แนะนำ: SiamCafe.net ชุมชน IT

💡 แนะนำ: CafeFX Panel

❓ FAQ

เปลี่ยน port แล้วยังถูก scan อยู่ไหม?

ลดลง 99% bot ส่วนใหญ่ scan แค่ port 22 แต่ attacker ที่ตั้งใจจะ scan ทุก port ได้ ดังนั้นต้องใช้ร่วมกับ key auth + Fail2Ban

ลืม SSH key ทำยังไง?

ถ้าปิด password auth แล้วลืม key จะเข้า server ไม่ได้ ต้องใช้ console access จาก hosting provider แนะนำเก็บ backup key ไว้ที่ปลอดภัย

Fail2Ban กับ CSF เลือกอะไร?

Fail2Ban เรียบง่าย เหมาะกับ SSH protection CSF (ConfigServer Firewall) ครบกว่า มี UI เหมาะกับ shared hosting ใช้ตัวใดตัวหนึ่งก็พอ