Làm cứng là quá trình giảm lỗ hổng và bảo vệ hệ thống khỏi các điểm tấn công có thể xảy ra. Giảm lỗ hổng bao gồm việc loại bỏ các dịch vụ không cần thiết, tên người dùng và thông tin đăng nhập và vô hiệu hóa các cổng không cần thiết. Trong bài viết này, chúng tôi sẽ giới thiệu cho các bạn cách làm thế nào để có thể làm cứng máy chủ Ubuntu.

Yêu cầu

Ubuntu 14.04 LTS máy chủ với Open SSH được cài đặt.

Bắt đầu: Cập nhật hệ thống

Việc cập nhật hệ thống là cần thiết sau khi cài đặt bất kỳ hệ điều hành nào. Điều này sẽ làm giảm các lỗ hổng đã biết trong hệ thống của bạn.

Đối với Ubuntu 14.04 chạy như sau:

 sudo apt-get cập nhật sudo apt-get nâng cấp sudo apt-get autoremove sudo apt-get autoclean 

Bật cập nhật bảo mật tự động

Việc bật cập nhật tự động có thể rất quan trọng để bảo vệ máy chủ của bạn. Để cài đặt "nâng cấp không giám sát", hãy chạy

 sudo apt-get cài đặt không cần giám sát-nâng cấp 

Để kích hoạt nó, hãy chạy lệnh sau:

 sudo dpkg-reconfigure -plow không giám sát-nâng cấp 

Thao tác này sẽ tạo tệp “/etc/apt/apt.conf.d/20auto-upgrades” được hiển thị bên dưới.

 APT :: Định kỳ :: Cập nhật-Gói-Danh sách "1"; APT :: Định kỳ :: Không giám sát - Nâng cấp "1"; 

Tạo “người dùng bóng” với quyền hạn sudo

Sử dụng "người dùng bóng tối" thay vì tài khoản gốc là cần thiết vì lý do bảo mật. Bạn có thể tạo người dùng sẽ không dễ dàng cho người dùng khác đoán. Trong hướng dẫn này, chúng tôi sẽ sử dụng “maketech111” làm tên người dùng.

Để tạo một người dùng, hãy chạy lệnh sau:

 sudo useradd -d / nhà / maketech111 -s / bin / bash -m maketech111 

Để cung cấp cho người dùng quyền truy cập sudo, hãy chạy lệnh sau:

 sudo usermod -a -G sudo maketech111 

Để đặt mật khẩu, hãy chạy lệnh sau:

 sudo passwd maketech111 

Lưu ý: đảm bảo mật khẩu của bạn dài ít nhất tám ký tự và chứa kết hợp phức tạp các số, chữ cái và dấu chấm câu.

Để xóa lời nhắc mật khẩu cho sudo, hãy chỉnh sửa tệp sudoers.

 sudo nano / etc / sudoers 

Thêm / chỉnh sửa như được mô tả bên dưới.

 maketech111 ALL = (TẤT CẢ) NOPASSWD: TẤT CẢ 

Lưu file và thoát.

Tắt tài khoản gốc

Vô hiệu hóa tài khoản gốc là cần thiết vì lý do bảo mật.

Để vô hiệu hóa tài khoản gốc, sử dụng lệnh sau:

 sudo passwd -l root 

Nếu bạn cần kích hoạt lại tài khoản, hãy chạy lệnh sau:

 sudo passwd -u root 

Thêm phân vùng SWAP

Một số máy chủ Ubuntu không được cấu hình bằng SWAP. SWAP được sử dụng khi tổng dung lượng bộ nhớ vật lý (RAM) đầy.

Để kiểm tra không gian SWAP, hãy chạy lệnh sau:

 sudo swapon -s 

Nếu không có tệp SWAP, bạn sẽ nhận được kết quả sau.

 Loại tên tệp Kích thước Mức độ ưu tiên đã sử dụng 

Để tạo tệp SWAP 4 GB, bạn sẽ cần sử dụng lệnh “dd”.

 sudo dd nếu = / dev / zero = / swapfile bs = 4M count = 1000 

Để thiết lập tệp SWAP, hãy chạy lệnh sau:

 sudo mkswap / swapfile 

Để kích hoạt tệp hoán đổi, hãy chạy

 sudo swapon / swapfile sudo swapon -s 

Điều này sẽ xuất như sau:

 Tên tệp Loại Kích thước Tệp ưu tiên / tệp hoán đổi được sử dụng 4096000 0 -1 

Để kích hoạt nó vĩnh viễn, hãy chỉnh sửa tệp "/ etc / fstab".

 sudo nano / etc / fstab 

Thêm dòng sau:

 / swapfile swap hoán đổi mặc định 0 0 

Cải thiện hiệu suất SWAP

Đặt giá trị swappiness thích hợp để cải thiện hiệu suất tổng thể của hệ thống.

Bạn có thể thực hiện điều này bằng lệnh sau:

 sudo echo 0 >> / proc / sys / vm / swappiness sudo echo vm.swappiness = 0 >> /etc/sysctl.conf 

Khởi động lại hệ thống để kiểm tra xem SWAP có được kích hoạt đúng cách hay không.

Tắt IPv6

Bạn nên tắt IPv6 vì nó gây ra sự cố với kết nối Internet chậm.

Để tắt IPv6, hãy chỉnh sửa tập tin “/etc/sysctl.conf”.

 sudo nano /etc/sysctl.conf 

Chỉnh sửa như được mô tả bên dưới:

 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 

Để tải lại cấu hình, hãy chạy

 sudo sysctl -p 

Tắt IRQBALANCE

IRQBALANCE được sử dụng để phân phối phần cứng ngắt trên nhiều CPU để tăng hiệu năng hệ thống. Bạn nên vô hiệu hóa IRQBALANCE để tránh bị gián đoạn phần cứng trong chủ đề của mình.

Để tắt IRQBALANCE, hãy chỉnh sửa "/ etc / default / irqbalance"

 sudo nano / etc / default / irqbalance 

và thay đổi giá trị ENABLED thành 0:

 ENABLED = 0 

Khắc phục lỗi OpenSSL heartbleed

Heartbleed là một lỗ hổng nghiêm trọng trong OpenSSL. Nó cho phép một người dùng từ xa để rò rỉ bộ nhớ trong lên đến 64k khối. Tin tặc sau đó có thể truy xuất các khóa riêng tư để giải mã bất kỳ dữ liệu nào như tên người dùng và mật khẩu của người dùng.

Lỗi heartbleed đã được tìm thấy trong OpenSSL 1.0.1 và có mặt trong các phiên bản sau:

  • 1.0.1
  • 1.0.1a
  • 1.0.1b
  • 1.0.1c
  • 1.0.1 ngày
  • 1.0.1e
  • 1.0.1f

Để kiểm tra phiên bản OpenSSL trong hệ thống của bạn, hãy chạy các lệnh sau:

 sudo openssl phiên bản -v sudo openssl phiên bản -b 

Điều này sẽ xuất ra một cái gì đó như sau:

 OpenSSL 1.0.1 ngày 10 tháng 3 năm 2012 được xây dựng vào: Thứ Tư ngày 2 tháng 1 18:45:51 UTC 2015 

Nếu ngày cũ hơn “Mon Apr 7 20:33:29 UTC 2014” và phiên bản là “1.0.1” thì hệ thống của bạn sẽ dễ bị lỗi Heartbleed.

Để khắc phục lỗi này, hãy cập nhật OpenSSL lên phiên bản mới nhất và chạy

 sudo apt-get cập nhật sudo apt-get nâng cấp openssl libssl-dev sudo apt-cache chính sách openssl libssl-dev 

Bây giờ hãy kiểm tra phiên bản và chạy

 sudo openssl phiên bản -b 

Điều này sẽ xuất ra một cái gì đó như sau:

 được xây dựng vào: Thứ Hai ngày 7 tháng 4 20:31:55 UTC 2014 

Bảo mật Console, bộ nhớ chia sẻ, / tmp và / var / tmp

Bảo đảm giao diện điều khiển

Theo mặc định, rất nhiều thiết bị đầu cuối được kích hoạt trong hệ thống của bạn. Bạn chỉ có thể cho phép một thiết bị đầu cuối và vô hiệu hóa các thiết bị đầu cuối khác.

Để chỉ cho phép “tty1” và vô hiệu hóa các thiết bị đầu cuối khác, hãy chỉnh sửa tệp “/ etc / securetty”.

 sudo nano / etc / securetty 

Thêm / Chỉnh sửa các dòng sau:

 tty1 # tty2 # tty3 # tty4 # v.v ... 

Để bảo mật tệp "/ etc / securetty", hãy thay đổi quyền của tệp và chạy các lệnh sau:

 sudo chown root: root / etc / securetty sudo chmod 0600 / etc / securetty 

Bộ nhớ được chia sẻ an toàn

Bất kỳ người dùng nào cũng có thể sử dụng bộ nhớ dùng chung để tấn công vào một dịch vụ đang chạy, như apache hoặc httpd. Theo mặc định, bộ nhớ dùng chung được gắn đọc / ghi với quyền thực thi.

Để làm cho nó an toàn hơn, hãy chỉnh sửa tệp "/ etc / fstab".

 sudo nano / etc / fstab 

Thêm dòng sau:

 tmpfs / run / shm tmpfs ro, noexec, nosuid 0 0 

Để thực hiện các thay đổi mà không cần khởi động lại, bạn có thể chạy

 sudo mount -a 

Bảo mật / tmp và / var / tmp

Các thư mục tạm thời như / tmp, / var / tmp và / dev / shm mở cửa cho kẻ tấn công để cung cấp không gian để chạy các tập lệnh và các tệp thực thi độc hại.

Thư mục Secure / tmp

Tạo một tệp hệ thống tệp 1GB cho phân vùng / tmp.

 sudo dd nếu = / dev / zero = / usr / tmpDSK bs = 1024 đếm = 1024000 sudo mkfs.ext4 / usr / tmpDSK 

Tạo bản sao lưu của thư mục hiện tại / tmp:

 sudo cp -avr / tmp / tmpbackup 

Gắn kết phân vùng mới / tmp và đặt quyền phù hợp.

 sudo mount -t tmpfs -o vòng lặp, noexec, nosuid, rw / usr / tmpDSK / tmp sudo chmod 1777 / tmp 

Sao chép dữ liệu từ thư mục sao lưu và xóa thư mục sao lưu.

 sudo cp -avr / tmpbackup / * / tmp / sudo rm -rf / tmpbackup 

Đặt / tmp trong fbtab.

 sudo nano / etc / fstab 

Thêm dòng sau:

 / usr / tmpDSK / tmp tmpfs vòng lặp, nosuid, noexec, rw 0 0 

Kiểm tra mục nhập fstab của bạn.

 sudo mount -a 

Bảo mật / var / tmp:

Một số phần mềm sử dụng thư mục này làm thư mục tạm thời, vì vậy chúng tôi cũng nên bảo mật thư mục này.

Để bảo mật / var / tmp, tạo một liên kết tượng trưng làm cho / var / tmp trỏ tới / tmp.

 sudo mv / var / tmp / var / tmpold sudo ln -s / tmp / var / tmp sudo cp -avr / var / tmpold / * / tmp / 

Đặt giới hạn bảo mật và tắt các dịch vụ không mong muốn

Đặt giới hạn bảo mật

Để bảo vệ hệ thống của bạn khỏi các cuộc tấn công bằng bom ngã ba, bạn nên thiết lập giới hạn quy trình cho người dùng của mình.

Để thiết lập, chỉnh sửa tập tin “/etc/security/limits.conf”,

 sudo nano /etc/security/limits.conf 

và chỉnh sửa dòng sau:

 user1 hard nproc 100 @ group1 cứng nproc 20 

Điều này sẽ ngăn người dùng của một nhóm cụ thể có tối đa hai mươi quy trình và tối đa hóa số lượng quy trình từ một trăm thành người dùng1.

Tắt các dịch vụ không cần thiết

Rất nhiều dịch vụ trong Ubuntu có bộ nhớ và không gian đĩa mà bạn có thể cần phải sử dụng. Việc vô hiệu hóa hoặc xóa các dịch vụ không cần thiết có thể cải thiện hiệu năng hệ thống tổng thể.

Để tìm ra dịch vụ nào hiện đang chạy, hãy chạy lệnh sau:

 sudo initctl list | grep running 

Bạn có thể tắt nó bằng cách chạy lệnh này.

 sudo update-rc.d -f service_name loại bỏ sudo apt-get purge service_name 

Sửa lỗ hổng Shellshock Bash:

Lỗ hổng Shellshock cho phép tin tặc gán các biến môi trường Bash và truy cập trái phép vào hệ thống. Lỗ hổng này rất dễ khai thác.

Để kiểm tra lỗ hổng hệ thống, hãy chạy lệnh sau:

 sudo env i = '() {:;}; echo Hệ thống của bạn là Bash bash -c "dễ bị tổn thương" Bash kiểm tra lỗ hổng Bash " 

Nếu bạn thấy kết quả dưới đây, điều đó có nghĩa là hệ thống của bạn dễ bị tổn thương.

 Hệ thống của bạn là Bash dễ bị tổn thương kiểm tra lỗ hổng Bash 

Để khắc phục lỗ hổng này, hãy chạy lệnh sau:

 sudo apt-get update; sudo apt-get cài đặt - bash nâng cấp 

Nếu bạn chạy lại lệnh, bạn sẽ thấy:

 bash: warning: VAR: bỏ qua hàm bash định nghĩa hàm: lỗi định nghĩa hàm import cho kiểm tra lỗ hổng Bash của `VAR ' 

Phần kết luận:

Ở đây chúng tôi đã giải thích những điều cơ bản mà bạn có thể làm để làm cứng Ubuntu. Bây giờ bạn đã có đủ hiểu biết về các thực hành bảo mật cơ bản mà bạn có thể thực hiện trên máy chủ Ubuntu của mình. Tôi hy vọng bài đăng này sẽ hữu ích cho bạn.

Tham khảo : Hướng dẫn làm cứng Ubuntu