Security
SSH port 22 เป็นเป้าหมายอันดับ 1 ของ brute force attack server ใหม่ที่เปิด port 22 จะถูก scan ภายใน 15 นาที และถูก brute force ภายใน 1 ชั่วโมง ถ้าใช้ password ง่ายๆ จะถูกเจาะภายในไม่กี่ชั่วโมง
# แก้ไข /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:
# สร้าง 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
# /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
# ติดตั้ง 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
# /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
SSH Hardening เป็นสิ่งแรกที่ต้องทำหลังจากได้ server ใหม่ ใช้เวลาไม่ถึง 30 นาที แต่ป้องกันการโจมตีได้ 99%
💡 แนะนำ: SiamCafe.net ชุมชน IT
💡 แนะนำ: CafeFX Panel
ลดลง 99% bot ส่วนใหญ่ scan แค่ port 22 แต่ attacker ที่ตั้งใจจะ scan ทุก port ได้ ดังนั้นต้องใช้ร่วมกับ key auth + Fail2Ban
ถ้าปิด password auth แล้วลืม key จะเข้า server ไม่ได้ ต้องใช้ console access จาก hosting provider แนะนำเก็บ backup key ไว้ที่ปลอดภัย
Fail2Ban เรียบง่าย เหมาะกับ SSH protection CSF (ConfigServer Firewall) ครบกว่า มี UI เหมาะกับ shared hosting ใช้ตัวใดตัวหนึ่งก็พอ