+2

Thiết lập bảo mật cơ bản cho máy chủ Linux

Lời nói đầu

Bảo mật máy chủ đôi khi không cần phải quá phức tạp. triết lý an ninh của tôi rất đơn giản: áp dụng nguyên tắc cơ bản sẽ bảo vệ bạn khỏi các cuộc tấn công quen thuộc nhất, vẫn giữ quản trị đủ hiệu quả mà bạn sẽ không cần phát triển giải pháp an ninh cao cấp. Nếu bạn bỏ thêm một chút thời gian trên một cách khôn ngoan trong lần thiết lập đầu tiên, tôi tin rằng bạn có thể làm điều đó.

Bất kỳ sysadmin dày dạn có thể nói với bạn rằng khi công ty phát triển điều đó đồng nghĩa với việc phải thêm nhiều server và developer, việc quản trị người dùng chắc chắn sẽ trở thành một gánh nặng.

các máy chủ của chúng tôi được cấu hình với hai tài khoản: root và deplop. User deploy có quyền sudo với mật khẩu phức tạp và đây là tài khoản mà depveloper đăng nhập vào. Developer đăng nhập bằng ssh public key của họ, không phải mật khẩu, vì vậy người quản trị đơn giản là giữ authorized_keys này được update key của deverloper. Đăng nhập root qua ssh bị vô hiệu hóa, và user deploy chỉ có thể đăng nhập từ IP của văn phòng.

Nhược điểm của phương pháp của chúng tôi là nếu một file authorized_keys hỏng hoặc cấp quyền chưa đầy đủ, tôi cần phải đăng nhập vào thiết bị đầu cuối từ xa để sửa. Nhưng nếu bạn thật cẩn thận, bạn sẽ tránh được những rủi ro này.

Bắt đầu nào !!!

Ở đây tôi sử dụng Ubuntu, nếu bạn sử dụng một phiên bản khác của Linux, các lệnh của bạn có thể thay đổi.

passwd

Thay đổi mật khẩu root đủ dài và có độ phức tạp cao. Bạn sẽ không cần phải nhớ nó, chỉ cần lưu trữ nó ở một nơi an toàn - mật khẩu này sẽ chỉ cần thiết nếu bạn mất khả năng để đăng nhập trên ssh hoặc mất mật khẩu

sudo apt-get update

sudo apt-get upgrade

Bắt đầu với 2 câu lệnh trên.

Cài đặt Fail2ban

apt-get install fail2ban

Fail2ban là một daemon giám sát đăng nhập vào máy chủ và block những IP lạ nếu đăng nhập không thành công quá nhiều lần.

Bây giờ, chúng ta hãy thiết lập người dùng đăng nhập của bạn.

useradd deploy

mkdir /home/deploy

mkdir /home/deploy/.ssh

chmod 700 /home/deploy/.ssh

Require public key authentication

Việc sử dụng mật khẩu để đăng nhập có lẽ đã quá lạc hậu. Bạn chỉ cần copy public key tới tài khoản người dùng mà bạn muốn.

vim /home/deploy/.ssh/authorized_keys

Thêm nội dung của id_rsa.pub trên máy tính client của bạn và bất kỳ public key khác mà bạn muốn truy cập vào máy chủ này đến tập tin này.

chmod 400 /home/deploy/.ssh/authorized_keys

chown deploy:deploy /home/deploy -R

Kiểm tra viên mới & Enable Sudo

Bây giờ kiểm tra tài khoản mới của bạn đăng nhập vào máy chủ mới của bạn với người user deploy .Nếu bạn đang thành công, chuyển về root hoạt động và thiết lập một mật khẩu sudo cho người dùng đăng nhập của bạn.

passwd deploy

Thiết lập một mật khẩu phức tạp - bạn có thể lưu trữ nó ở một nơi an toàn hoặc làm cho nó một cái gì đó đáng nhớ với đội bóng. Đây là mật khẩu bạn sẽ sử dụng để sudo.

visudo

Comment (#) tất cả người sử dụng / dòng cấp nhóm hiện có và thêm:

root    ALL=(ALL) ALL

deploy  ALL=(ALL) ALL

Phía trên là grant sudo cho người sử dụng deploy khi nhập đúng password.

Lock Down SSH

Cấu hình ssh không đăng nhập bằng password và ssh vơi các IP cụ thể:

vim /etc/ssh/sshd_config

Thêm những dòng này vào tập tin, chèn địa chỉ ip từ nơi bạn sẽ kết nối:

PermitRootLogin no

PasswordAuthentication no

AllowUsers deploy@(your-ip) deploy@(another-ip-if-any)

Restart ssh:

service ssh restart

Thiết lập một Firewall

Không có máy chủ an toàn là hoàn toàn không firewall. Ubuntu cung cấp ufw, mà làm cho quản lý tường lửa dễ dàng. Chạy:

ufw allow from {your-ip} to any port 22

ufw allow 80

ufw allow 443

ufw enable

Điều này thiết lập firewall ở mức cơ bản và cấu hình máy chủ để chấp nhận lưu lượng trên cổng 80 và 443. Bạn có thể muốn thêm nhiều cổng tùy thuộc vào những service của bạn là sẽ làm.

Kích hoạt tính năng tự động cập nhật bảo mật

Thói quen của tôi trong nhưng năm qua, tôi đã nhận được các bản cập nhật qua apt-get update / upgrade, nhưng với một tá máy chủ, tôi thấy rằng các máy chủ tôi đăng nhập vào không thường xuyên và các server này chưa được update. Đặc biệt là với các máy cân bằng tải, điều quan trọng là tất cả đều được cập nhật đầy đủ. Cập nhật bảo mật tự động, và hơn nữa đó là những lỗ hổng bảo mật chưa được vá.

apt-get install unattended-upgrades

vim /etc/apt/apt.conf.d/10periodic

Update file trên giống như bên dưới

APT::Periodic::Update-Package-Lists "1";

APT::Periodic::Download-Upgradeable-Packages "1";

APT::Periodic::AutocleanInterval "7";

APT::Periodic::Unattended-Upgrade "1";

Chỉnh sửa thêm tập tin sau :

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

Cập nhật các tập tin để trông giống như dưới đây.

Unattended-Upgrade::Allowed-Origins {

        "Ubuntu lucid-security";

//      "Ubuntu lucid-updates";

};

Cài đặt logwatch

Logwatch là một daemon theo dõi các bản ghi và email cho bạn. Điều này rất hữu ích cho việc theo dõi và phát hiện xâm nhập. Nếu ai đó để truy cập vào máy chủ của bạn, các bản ghi được gửi qua email cho bạn sẽ rất hữu ích trong việc xác định những gì đã xảy ra và khi máy chủ của bạn có thể đã bị xâm nhập

apt-get install logwatch

vim /etc/cron.daily/00logwatch

thêm dòng sau đây

/usr/sbin/logwatch --output mail --mailto [email của bạn] --detail high

All Done!

Tôi nghĩ rằng chúng ta an toàn ở một mức nào đó. Chỉ vài phút, chúng ta đã thiết lập một mức độ an ninh cần đẩy lùi hầu hết các cuộc tấn công. Vào cuối ngày, nó hầu như luôn luôn lỗi người dùng gây ra đột nhập, do đó hãy chắc chắn rằng bạn giữ những mật khẩu dài và an toàn!Tôi rất muốn nghe phản hồi của bạn về phương pháp này! Hãy thảo luận về chúng nhé.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí