Cách thực hiện kiểm tra bảo mật với Lynis trên Ubuntu 16.04
Lynis là một ứng dụng kiểm tra bảo mật open-souce dựa trên server có thể đánh giá cấu hình và tư thế bảo mật của Linux và các hệ điều hành giống UNIX khác.Trong hướng dẫn này, bạn sẽ cài đặt Lynis và sử dụng nó để thực hiện kiểm tra bảo mật server Ubuntu 16.04 của bạn . Sau đó, bạn sẽ khám phá kết quả của một cuộc kiểm tra mẫu và cấu hình Lynis để bỏ qua các bài kiểm tra không liên quan đến nhu cầu của bạn.
Lynis sẽ không tự động thực hiện bất kỳ quá trình củng cố hệ thống nào. nhưng nó sẽ đưa ra những gợi ý chỉ cho bạn cách bạn có thể tự mình hoàn thiện hệ thống. Do đó, sẽ rất hữu ích nếu bạn có kiến thức cơ bản về bảo mật hệ thống Linux. Bạn cũng nên làm quen với các dịch vụ đang chạy trên máy mà bạn định kiểm tra, chẳng hạn như web server , database và các dịch vụ khác mà Lynis có thể quét theo mặc định. Điều này sẽ giúp bạn xác định các kết quả mà bạn có thể bỏ qua một cách an toàn.
Lưu ý : Việc thực hiện kiểm tra bảo mật cần có thời gian và sự kiên nhẫn. Bạn có thể cần dành thời gian đọc toàn bộ bài viết một lần trước khi cài đặt Lynis và sử dụng nó để kiểm tra server của bạn.
Yêu cầu
Để hoàn thành bài viết này, bạn cần:
- Một server Ubuntu 16.04, được cấu hình với user không phải root có quyền sudo và firewall , như trong hướng dẫn Cài đặt server ban đầu với Ubuntu 16.04 .
Bước 1 - Cài đặt Lynis trên server của bạn
Có một số cách để cài đặt Lynis. Bạn có thể biên dịch nó từ nguồn, download và sao chép file binary vào một vị trí thích hợp trên hệ thống hoặc bạn có thể cài đặt nó bằng trình quản lý gói. Sử dụng trình quản lý gói là cách dễ dàng để cài đặt Lynis và cập nhật nó, vì vậy đó là phương pháp ta sẽ sử dụng.
Tuy nhiên, trên Ubuntu 16.04, version có sẵn từ repository không phải là version mới nhất. Để có quyền truy cập vào các tính năng mới nhất, ta sẽ cài đặt Lynis từ repository chính thức của dự án.
Kho phần mềm của Lynis sử dụng giao thức HTTPS, vì vậy ta cần đảm bảo hỗ trợ HTTPS cho trình quản lý gói đã được cài đặt. Sử dụng lệnh sau để kiểm tra:
- dpkg -s apt-transport-https | grep -i status
Nếu nó được cài đặt, kết quả của lệnh đó phải là:
OutputStatus: install ok installed
Nếu kết quả cho biết nó chưa được cài đặt, hãy cài đặt nó bằng sudo apt-get install apt-transport-https
Với dependencies duy nhất hiện đã được cài đặt, ta sẽ cài đặt Lynis. Để bắt đầu quá trình đó, hãy thêm khóa của repository :
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F
Bạn sẽ thấy kết quả sau, cho biết khóa đã được thêm thành công:
OutputExecuting: /tmp/tmp.AnVzwb6Mq8/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F gpg: requesting key 91CA5D5F from hkp server keyserver.ubuntu.com gpg: key 91CA5D5F: public key "CISOfy Software (signed software packages) <software@cisofy.com>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
Sau đó, thêm repository Lynis vào danh sách các repository có sẵn cho trình quản lý gói:
- sudo add-apt-repository "deb [arch=amd64] https://packages.cisofy.com/community/lynis/deb/ xenial main"
Để cung cấp các gói trong repositories lưu trữ mới được thêm vào hệ thống, hãy cập nhật database gói:
- sudo apt-get update
Cuối cùng, cài đặt Lynis:
- sudo apt-get install lynis
Sau khi cài đặt xong, bạn sẽ có quyền truy cập vào lệnh lynis
và các lệnh con của nó. Tiếp theo hãy xem cách sử dụng Lynis.
Bước 2 - Thực hiện kiểm tra
Sau khi cài đặt hoàn tất, bây giờ bạn có thể sử dụng Lynis để thực hiện kiểm tra bảo mật hệ thống của bạn . Hãy bắt đầu bằng cách xem danh sách các hành động bạn có thể thực hiện với Lynis. Thực hiện lệnh sau:
- lynis show commands
Bạn sẽ thấy kết quả sau:
Output Commands: lynis audit lynis configure lynis show lynis update lynis upload-only
Kiểm tra Lynis có thể thực hiện được bằng cách sử dụng các cấu hình, giống như các file cấu hình có cài đặt kiểm soát cách Lynis thực hiện kiểm tra. Xem cài đặt cho cấu hình mặc định:
- lynis show settings
Bạn sẽ thấy kết quả như sau:
Output# Colored screen output colors=1 # Compressed uploads compressed-uploads=0 # Use non-zero exit code if one or more warnings were found error-on-warnings=0 ... # Upload server (ip or hostname) upload-server=[not configured] # Data upload after scanning upload=no # Verbose output verbose=0 # Add --brief to hide descriptions, --configured-only to show configured items only, or --nocolors to remove colors
Bạn nên xác minh xem có version mới hay không trước khi thực hiện kiểm tra. Bằng cách này, bạn sẽ nhận được các đề xuất và thông tin cập nhật nhất. Đưa ra lệnh sau để kiểm tra các bản cập nhật:
- lynis update info
Kết quả kết quả phải giống như sau , điều này cho thấy rằng version Lynis là version mới nhất:
Output == Lynis == Version : 2.4.8 Status : Up-to-date Release date : 2017-03-29 Update location : https://cisofy.com/lynis/ 2007-2017, CISOfy - https://cisofy.com/lynis/
Ngoài ra, bạn có thể nhập lynis update check
, lynis update check
này tạo ra kết quả một dòng sau:
Outputstatus=up-to-date
Nếu version yêu cầu cập nhật, hãy sử dụng trình quản lý gói của bạn để thực hiện cập nhật.
Để chạy kiểm tra hệ thống của bạn, hãy sử dụng lệnh lynis audit system
. Bạn có thể chạy Lynis ở chế độ quyền và không quyền (pentest). Trong chế độ thứ hai, một số thử nghiệm yêu cầu quyền root sẽ bị bỏ qua. Do đó, bạn nên chạy kiểm tra của bạn ở chế độ quyền với sudo
. Thực thi lệnh này để thực hiện kiểm tra đầu tiên của bạn:
- sudo lynis audit system
Sau khi xác thực, Lynis sẽ chạy các bài kiểm tra của nó và truyền kết quả đến màn hình của bạn. Một cuộc kiểm tra Lynis thường mất một phút hoặc ít hơn.
Khi Lynis thực hiện một cuộc kiểm tra, nó sẽ trải qua một số bài kiểm tra, được chia thành các loại. Sau mỗi lần kiểm tra, kết quả kiểm tra, thông tin gỡ lỗi và đề xuất cải thiện hệ thống được ghi vào kết quả tiêu chuẩn (màn hình). Thông tin chi tiết hơn được ghi vào /var/log/lynis.log
, trong khi dữ liệu báo cáo được lưu vào /var/log/lynis-report.dat
. Dữ liệu báo cáo chứa thông tin chung về server và bản thân ứng dụng, vì vậy file bạn cần chú ý là file log . Tệp log được xóa (ghi đè) trên mỗi lần kiểm tra, vì vậy kết quả từ lần kiểm tra trước đó sẽ không được lưu.
Khi quá trình kiểm tra hoàn tất, bạn sẽ xem xét kết quả, cảnh báo và đề xuất, sau đó triển khai bất kỳ đề xuất nào có liên quan.
Hãy xem kết quả kiểm tra Lynis được thực hiện trên máy được sử dụng để viết hướng dẫn này. Kết quả bạn thấy trong quá trình kiểm tra của bạn có thể khác, nhưng bạn vẫn có thể theo dõi.
Phần quan trọng đầu tiên của kết quả kiểm toán Lynis hoàn toàn là thông tin. Nó cho bạn biết kết quả của mọi bài kiểm tra, được group theo danh mục. Thông tin có dạng từ khóa, như KHÔNG , ĐIỂM YẾU , XONG , TÌM HIỂU , NOT_FOUND , OK và WARNING .
Output[+] Boot and services ------------------------------------ - Service Manager [ systemd ] - Checking UEFI boot [ DISABLED ] - Checking presence GRUB [ OK ] - Checking presence GRUB2 [ FOUND ] - Checking for password protection [ WARNING ] .. [+] File systems ------------------------------------ - Checking mount points - Checking /home mount point [ SUGGESTION ] - Checking /tmp mount point [ SUGGESTION ] - Checking /var mount point [ OK ] - Query swap partitions (fstab) [ NONE ] - Testing swap partitions [ OK ] - Testing /proc mount (hidepid) [ SUGGESTION ] - Checking for old files in /tmp [ OK ] - Checking /tmp sticky bit [ OK ] - ACL support root file system [ ENABLED ] - Mount options of / [ OK ] - Checking Locate database [ FOUND ] - Disable kernel support of some filesystems - Discovered kernel modules: udf ... [+] Hardening ------------------------------------ - Installed compiler(s) [ FOUND ] - Installed malware scanner [ NOT FOUND ] - Installed malware scanner [ NOT FOUND ] ... [+] Printers and Spools ------------------------------------ - Checking cups daemon [ NOT FOUND ] - Checking lp daemon [ NOT RUNNING ]
Mặc dù Lynis thực hiện hơn 200 thử nghiệm ngay lập tức, nhưng không phải tất cả đều cần thiết cho server của bạn. Làm thế nào bạn có thể biết xét nghiệm nào là cần thiết và xét nghiệm nào không? Đó là nơi một số kiến thức về những gì nên hoặc không nên chạy trên server phát huy tác dụng. Ví dụ: nếu bạn kiểm tra phần kết quả của một cuộc kiểm tra Lynis thông thường, bạn sẽ tìm thấy hai bài kiểm tra trong danh mục Máy in và Spools :
Output[+] Printers and Spools ------------------------------------ - Checking cups daemon [ NOT FOUND ] - Checking lp daemon [ NOT RUNNING ]
Bạn có thực sự đang chạy một server in trên server Ubuntu 16.04 không? Trừ khi bạn đang chạy một server in dựa trên cloud , bạn không cần Lynis chạy thử nghiệm đó mọi lúc.
Mặc dù đó là một ví dụ hoàn hảo về một bài kiểm tra mà bạn có thể bỏ qua, nhưng những bài kiểm tra khác lại không quá rõ ràng. Lấy phần kết quả từng phần này, ví dụ:
Output[+] Insecure services ------------------------------------ - Checking inetd status [ NOT ACTIVE ]
Kết quả này cho biết inetd
không hoạt động, nhưng điều đó được mong đợi trên server Ubuntu 16.04, vì Ubuntu đã thay thế inetd
bằng systemd
. Biết được điều đó, bạn có thể gắn thẻ kiểm tra đó là kiểm tra mà Lynis không nên thực hiện như một phần của kiểm tra trên server của bạn.
Khi bạn xem xét từng kết quả của bài kiểm tra, bạn sẽ thấy một danh sách khá tốt các bài kiểm tra thừa. Với danh sách đó trong tay, bạn có thể tùy chỉnh Lynis để bỏ qua chúng trong các lần kiểm tra trong tương lai. Bạn sẽ học cách hoàn thành việc đó trong Bước 5.
Trong các phần tiếp theo, ta sẽ đi qua các phần khác nhau của kết quả kiểm tra Lynis để bạn hiểu rõ hơn về cách kiểm tra đúng hệ thống của bạn với Lynis. Trước tiên, hãy xem cách đối phó với những cảnh báo do Lynis đưa ra.
Bước 3 - Khắc phục cảnh báo kiểm tra Lynis
Đầu ra kiểm tra Lynis không phải lúc nào cũng có phần cảnh báo, nhưng khi có phần này, bạn sẽ biết cách khắc phục (các) vấn đề được nêu ra sau khi đọc phần này.
Cảnh báo được liệt kê sau phần kết quả. Mỗi cảnh báo bắt đầu bằng chính văn bản cảnh báo, với kiểm tra đã tạo ra cảnh báo trên cùng một dòng trong ngoặc. Dòng tiếp theo sẽ chứa một giải pháp được đề xuất, nếu một giải pháp tồn tại. Dòng cuối cùng là URL kiểm soát bảo mật nơi bạn có thể tìm thấy một số hướng dẫn về cảnh báo. Thật không may, URL không phải lúc nào cũng đưa ra lời giải thích, vì vậy bạn có thể cần thực hiện thêm một số nghiên cứu.
Kết quả sau đến từ phần cảnh báo của kiểm tra Lynis được thực hiện trên server được sử dụng cho bài viết này. Hãy xem qua từng cảnh báo và xem cách giải quyết hoặc khắc phục nó:
OutputWarnings (3): ---------------------------- ! Version of Lynis is very old and should be updated [LYNIS] https://cisofy.com/controls/LYNIS/ ! Reboot of system is most likely needed [KRNL-5830] - Solution : reboot https://cisofy.com/controls/KRNL-5830/ ! Found one or more vulnerable packages. [PKGS-7392] https://cisofy.com/controls/PKGS-7392/
Cảnh báo đầu tiên nói rằng Lynis cần được cập nhật. Điều đó cũng nghĩa là cuộc kiểm tra này đã sử dụng version Lynis, vì vậy kết quả có thể không đầy đủ. Điều này có thể tránh được nếu ta thực hiện kiểm tra version cơ bản trước khi chạy kết quả, như trong Bước 3. Cách sửa lỗi này rất dễ dàng: cập nhật Lynis.
Cảnh báo thứ hai cho biết server cần được khởi động lại. Đó có thể là do bản cập nhật hệ thống liên quan đến nâng cấp kernel đã được thực hiện gần đây. Giải pháp ở đây là khởi động lại hệ thống.
Khi nghi ngờ về bất kỳ cảnh báo nào hoặc chỉ về bất kỳ kết quả kiểm tra nào, bạn có thể lấy thêm thông tin về kiểm tra bằng cách truy vấn Lynis để biết id kiểm tra. Lệnh để thực hiện có dạng sau:
- sudo lynis show details test-id
Vì vậy, đối với cảnh báo thứ hai, có id kiểm tra KRNL-5830 , ta có thể chạy lệnh này:
- sudo lynis show details KRNL-5830
Đầu ra cho bài kiểm tra cụ thể đó sau. Điều này cung cấp cho bạn ý tưởng về quá trình Lynis thực hiện cho mỗi bài kiểm tra mà nó thực hiện. Từ kết quả này, Lynis thậm chí còn cung cấp thông tin cụ thể về mặt hàng đã dẫn đến cảnh báo:
Output2017-03-21 01:50:03 Performing test ID KRNL-5830 (Checking if system is running on the latest installed kernel) 2017-03-21 01:50:04 Test: Checking presence /var/run/reboot-required.pkgs 2017-03-21 01:50:04 Result: file /var/run/reboot-required.pkgs exists 2017-03-21 01:50:04 Result: reboot is needed, related to 5 packages 2017-03-21 01:50:04 Package: 5 2017-03-21 01:50:04 Result: /boot exists, performing more tests from here 2017-03-21 01:50:04 Result: /boot/vmlinuz not on disk, trying to find /boot/vmlinuz* 2017-03-21 01:50:04 Result: using 4.4.0.64 as my kernel version (stripped) 2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-64-generic 2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-65-generic 2017-03-21 01:50:04 Result: found /boot/vmlinuz-4.4.0-66-generic 2017-03-21 01:50:04 Action: checking relevant kernels 2017-03-21 01:50:04 Output: 4.4.0.64 4.4.0.65 4.4.0.66 2017-03-21 01:50:04 Result: Found 4.4.0.64 (= our kernel) 2017-03-21 01:50:04 Result: found a kernel (4.4.0.65) later than running one (4.4.0.64) 2017-03-21 01:50:04 Result: Found 4.4.0.65 2017-03-21 01:50:04 Result: found a kernel (4.4.0.66) later than running one (4.4.0.64) 2017-03-21 01:50:04 Result: Found 4.4.0.66 2017-03-21 01:50:04 Warning: Reboot of system is most likely needed [test:KRNL-5830] [details:] [solution:text:reboot] 2017-03-21 01:50:04 Hardening: assigned partial number of hardening points (0 of 5). Currently having 7 points (out of 14) 2017-03-21 01:50:04 Checking permissions of /usr/share/lynis/include/tests_memory_processes 2017-03-21 01:50:04 File permissions are OK 2017-03-21 01:50:04 ===---------------------------------------------------------------===
Đối với cảnh báo thứ ba, PKGS-7392 , về các gói dễ bị tấn công, ta sẽ chạy lệnh này:
- sudo lynis show details PKGS-7392
Kết quả cung cấp cho ta thêm thông tin về các gói cần được cập nhật:
Output2017-03-21 01:39:53 Performing test ID PKGS-7392 (Check for Debian/Ubuntu security updates) 2017-03-21 01:39:53 Action: updating repository with apt-get 2017-03-21 01:40:03 Result: apt-get finished 2017-03-21 01:40:03 Test: Checking if /usr/lib/update-notifier/apt-check exists 2017-03-21 01:40:03 Result: found /usr/lib/update-notifier/apt-check 2017-03-21 01:40:03 Test: checking if any of the updates contain security updates 2017-03-21 01:40:04 Result: found 7 security updates via apt-check 2017-03-21 01:40:04 Hardening: assigned partial number of hardening points (0 of 25). Currently having 96 points (out of 149) 2017-03-21 01:40:05 Result: found vulnerable package(s) via apt-get (-security channel) 2017-03-21 01:40:05 Found vulnerable package: libc-bin 2017-03-21 01:40:05 Found vulnerable package: libc-dev-bin 2017-03-21 01:40:05 Found vulnerable package: libc6 2017-03-21 01:40:05 Found vulnerable package: libc6-dev 2017-03-21 01:40:05 Found vulnerable package: libfreetype6 2017-03-21 01:40:05 Found vulnerable package: locales 2017-03-21 01:40:05 Found vulnerable package: multiarch-support 2017-03-21 01:40:05 Warning: Found one or more vulnerable packages. [test:PKGS-7392] [details:-] [solution:-] 2017-03-21 01:40:05 Suggestion: Update your system with apt-get update, apt-get upgrade, apt-get dist-upgrade and/or unattended-upgrades [test:PKGS-7392] [details:-] [solution:-] 2017-03-21 01:40:05 ===---------------------------------------------------------------===
Giải pháp cho việc này là cập nhật database gói và cập nhật hệ thống.
Sau khi khắc phục mục dẫn đến cảnh báo, bạn nên chạy lại kiểm tra. Các cuộc đánh giá tiếp theo sẽ không có cảnh báo tương tự, mặc dù các cảnh báo mới có thể xuất hiện. Trong trường hợp đó, hãy lặp lại quy trình được hiển thị trong bước này và sửa các cảnh báo.
Đến đây bạn đã biết cách đọc và sửa các cảnh báo do Lynis tạo ra, hãy xem cách triển khai các đề xuất mà Lynis đưa ra.
Bước 4 - Thực hiện Đề xuất Kiểm tra Lynis
Sau phần cảnh báo, bạn sẽ thấy một loạt đề xuất, nếu được triển khai, có thể làm cho server của bạn ít bị tấn công và phần mềm độc hại hơn. Trong bước này, bạn sẽ học cách triển khai một số đề xuất do Lynis tạo ra sau khi kiểm tra server Ubuntu 16.04 thử nghiệm. Quy trình để thực hiện việc này giống với các bước trong phần trước.
Một đề xuất cụ thể bắt đầu với chính đề xuất đó, sau đó là ID thử nghiệm. Sau đó, tùy thuộc vào thử nghiệm, dòng tiếp theo sẽ cho bạn biết chính xác những thay đổi cần thực hiện trong file cấu hình của dịch vụ bị ảnh hưởng. Dòng cuối cùng là URL kiểm soát bảo mật nơi bạn có thể tìm thêm thông tin về chủ đề này.
Ví dụ: đây là một phần gợi ý từ cuộc kiểm tra Lynis, hiển thị các đề xuất liên quan đến dịch vụ SSH:
OutputSuggestions (36): ---------------------------- * Consider hardening SSH configuration [SSH-7408] - Details : ClientAliveCountMax (3 --> 2) https://cisofy.com/controls/SSH-7408/ * Consider hardening SSH configuration [SSH-7408] - Details : PermitRootLogin (YES --> NO) https://cisofy.com/controls/SSH-7408/ * Consider hardening SSH configuration [SSH-7408] - Details : Port (22 --> ) https://cisofy.com/controls/SSH-7408/ * Consider hardening SSH configuration [SSH-7408] - Details : TCPKeepAlive (YES --> NO) https://cisofy.com/controls/SSH-7408/ * Consider hardening SSH configuration [SSH-7408] - Details : UsePrivilegeSeparation (YES --> SANDBOX) https://cisofy.com/controls/SSH-7408/ ...
Tùy thuộc vào môi trường của bạn, tất cả các đề xuất này đều an toàn để thực hiện. Tuy nhiên, để đưa ra quyết định đó, bạn phải biết ý nghĩa của mỗi chỉ thị. Bởi vì những điều này liên quan đến server SSH, tất cả các thay đổi phải được thực hiện trong file cấu hình daemons SSH, /etc/ssh/sshd_config
. Nếu bạn có nghi ngờ nào về bất kỳ đề xuất nào liên quan đến SSH do Lynis đưa ra, hãy tra cứu chỉ thị với man sshd_config
. Thông tin đó cũng có sẵn trực tuyến .
Một trong những đề xuất yêu cầu thay đổi cổng SSH mặc định từ 22
. Nếu bạn thực hiện thay đổi đó và bạn đã cấu hình firewall , hãy đảm bảo chèn luật để truy cập SSH thông qua cổng mới đó.
Cũng như phần cảnh báo, bạn có thể nhận thêm thông tin chi tiết về một đề xuất bằng cách truy vấn Lynis cho id thử nghiệm bằng cách sử dụng sudo lynis show details test-id
.
Các đề xuất khác yêu cầu bạn cài đặt phần mềm bổ sung trên server của bạn . Lấy ví dụ này:
Output* Harden the system by installing at least one malware scanner, to perform periodic file system scans [HRDN-7230] - Solution : Install a tool like rkhunter, chkrootkit, OSSEC https://cisofy.com/controls/HRDN-7230/
Đề xuất là cài đặt rkhunter
, chkrootkit
hoặc OSSEC để đáp ứng kiểm tra độ cứng (HRDN-7230). OSSEC là một hệ thống phát hiện xâm nhập dựa trên server có thể tạo và gửi cảnh báo. Đó là một ứng dụng bảo mật rất tốt sẽ giúp thực hiện một số thử nghiệm do Lynis thực hiện. Bạn có thể tìm hiểu thêm về công cụ này trong các hướng dẫn DigitalOcean này . Tuy nhiên, chỉ cài đặt OSSEC không làm cho bài kiểm tra cụ thể này vượt qua. Việc cài đặt chkrootkit
cuối cùng cũng hoàn thành. Đây là một trường hợp khác mà đôi khi bạn sẽ phải nghiên cứu thêm ngoài những gì Lynis gợi ý.
Hãy xem một ví dụ khác. Đây là một đề xuất được hiển thị là kết quả của một bài kiểm tra tính toàn vẹn của file .
Output* Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350] https://cisofy.com/controls/FINT-4350/
Đề xuất được đưa ra trong URL kiểm soát bảo mật không đề cập đến chương trình OSSEC được đề cập trong đề xuất trước đó, nhưng việc cài đặt nó là đủ để vượt qua bài kiểm tra trong lần đánh giá tiếp theo. Đó là bởi vì OSSEC là một công cụ giám sát tính toàn vẹn của file khá tốt.
Bạn có thể bỏ qua một số gợi ý không áp dụng cho mình. Đây là một ví dụ:
Output* To decrease the impact of a full /home file system, place /home on a separated partition [FILE-6310] https://cisofy.com/controls/FILE-6310/ * To decrease the impact of a full /tmp file system, place /tmp on a separated partition [FILE-6310] https://cisofy.com/controls/FILE-6310/
Trước đây, các hệ thống file Linux cốt lõi như /home
, /tmp
, /var
và /usr
được gắn trên một phân vùng riêng biệt để giảm thiểu tác động lên toàn bộ server khi chúng hết dung lượng đĩa. Đây không phải là điều bạn sẽ thấy thường xuyên, đặc biệt là trên các server cloud . Các hệ thống file này bây giờ chỉ được mount như một folder trên cùng một phân vùng root . Nhưng nếu bạn thực hiện kiểm tra Lynis trên một hệ thống như vậy, bạn sẽ nhận được một vài đề xuất giống như những đề xuất được hiển thị trong kết quả trước đó. Trừ khi bạn đang ở vị trí để triển khai các đề xuất, có thể bạn cần bỏ qua chúng và cấu hình Lynis để thử nghiệm đã tạo ra chúng không được thực hiện trong các lần kiểm tra trong tương lai.
Thực hiện kiểm tra bảo mật bằng Lynis không chỉ đơn thuần là sửa lỗi cảnh báo và triển khai các đề xuất; nó cũng liên quan đến việc xác định các thử nghiệm thừa. Trong bước tiếp theo, bạn sẽ học cách tùy chỉnh cấu hình mặc định để bỏ qua các bài kiểm tra như vậy.
Bước 5 - Tùy chỉnh Kiểm tra Bảo mật Lynis
Trong phần này, bạn sẽ học cách tùy chỉnh Lynis để nó chỉ chạy những thử nghiệm cần thiết cho server của bạn. Cấu hình chi phối cách kiểm tra chạy, được xác định trong các file có phần mở rộng .prf
trong folder /etc/lynis
. Cấu hình mặc định được đặt tên phù hợp là default.prf
. Bạn không trực tiếp chỉnh sửa profile mặc định đó. Thay vào đó, bạn thêm bất kỳ thay đổi nào bạn muốn vào file custom.prf
trong cùng folder với định nghĩa cấu hình.
Tạo một file mới có tên /etc/lynis/custom.prf
bằng editor của bạn:
- sudo nano /etc/lynis/custom.prf
Hãy sử dụng file này để yêu cầu Lynis bỏ qua một số bài kiểm tra. Dưới đây là các bài kiểm tra ta muốn bỏ qua:
- FILE-6310 : Được sử dụng để kiểm tra sự phân tách của các phân vùng.
- HTTP-6622 : Được sử dụng để kiểm tra cài đặt web server Nginx.
- HTTP-6702 : Được sử dụng để kiểm tra cài đặt web server Apache. Thử nghiệm này và thử nghiệm Nginx ở trên được thực hiện theo mặc định. Vì vậy, nếu bạn đã cài đặt Nginx mà không phải Apache, bạn cần bỏ qua kiểm tra Apache.
- PRNT-2307 và PRNT-2308 : Được sử dụng để kiểm tra server in.
- TOOL-5002 : Sử dụng để kiểm tra các công cụ tự động hóa như Puppet và Salt. Nếu bạn không cần các công cụ như vậy trên server của bạn , bạn có thể bỏ qua bài kiểm tra này.
- SSH-7408: tcpkeepalive : Một số thử nghiệm Lynis có thể được group lại dưới một ID thử nghiệm duy nhất. Nếu có một thử nghiệm trong id thử nghiệm đó mà bạn muốn bỏ qua, thì đây là cách chỉ định nó.
Để bỏ qua một bài kiểm tra, bạn chuyển chỉ thị bỏ qua kiểm tra ID kiểm tra mà bạn muốn bỏ qua, một ID trên mỗi dòng. Thêm mã sau vào file của bạn:
# Lines starting with "#" are comments # Skip a test (one per line) # This will ignore separation of partitions test skip-test=FILE-6310 # Is Nginx installed? skip-test=HTTP-6622 # Is Apache installed? skip-test=HTTP-6702 # Skip checking print-related services skip-test=PRNT-2307 skip-test=PRNT-2308 # If a test id includes more than one test use this form to ignore a particular test skip-test=SSH-7408:tcpkeepalive
Lưu và đóng file .
Lần tiếp theo khi bạn thực hiện kiểm tra, Lynis sẽ bỏ qua các kiểm tra trùng với ID kiểm tra mà bạn đã cấu hình trong profile tùy chỉnh. Các thử nghiệm sẽ được bỏ qua trong phần kết quả của kết quả đánh giá, cũng như phần gợi ý.
Tệp /etc/lynis/custom.prf
cũng cho phép bạn sửa đổi cài đặt nào trong profile . Để làm điều đó, hãy sao chép cài đặt từ /etc/lynis/default.prf
vào /etc/lynis/custom.prf
và sửa đổi ở đó. Bạn sẽ hiếm khi cần sửa đổi các cài đặt này, vì vậy hãy tập trung nỗ lực vào việc tìm kiếm các bài kiểm tra mà bạn có thể bỏ qua.
Tiếp theo, hãy xem cái mà Lynis gọi là chỉ số củng cố .
Bước 6 - Diễn giải Chỉ số Củng cố
Trong phần dưới của mọi kết quả kiểm tra Lynis, ngay bên dưới phần đề xuất, bạn sẽ tìm thấy một phần giống như sau:
OutputLynis security scan details: Hardening index : 64 [############ ] Tests performed : 206 Plugins enabled : 0
Kết quả này cho bạn biết có bao nhiêu bài kiểm tra đã được thực hiện, cùng với một chỉ số cứng , một con số mà Lynis cung cấp để cho bạn biết server của bạn an toàn đến mức nào. Con số này là duy nhất của Lynis. Chỉ số cứng sẽ thay đổi liên quan đến các cảnh báo mà bạn sửa chữa và các đề xuất mà bạn triển khai. Kết quả này cho thấy hệ thống có chỉ số cứng là 64 là từ lần kiểm tra Lynis đầu tiên trên server Ubuntu 16.04 mới.
Sau khi sửa các cảnh báo và thực hiện hầu hết các đề xuất, một cuộc kiểm tra mới đã đưa ra kết quả sau. Bạn có thể thấy rằng chỉ số cứng cao hơn một chút:
OutputLynis security scan details: Hardening index : 86 [################# ] Tests performed : 205 Plugins enabled : 0
Chỉ số cứng không phải là một đánh giá chính xác về mức độ an toàn của một server mà chỉ đơn thuần là một thước đo về mức độ an toàn của server được cấu hình (hoặc được tăng cường) dựa trên các bài kiểm tra do Lynis thực hiện. Và như bạn đã thấy, chỉ số càng cao càng tốt. Mục tiêu của kiểm tra bảo mật Lynis không chỉ là để có được chỉ số cứng cao mà còn để khắc phục các cảnh báo và đề xuất mà nó tạo ra.
Kết luận
Trong hướng dẫn này, bạn đã cài đặt Lynis, sử dụng nó để thực hiện kiểm tra bảo mật của server Ubuntu 16.04, khám phá cách khắc phục các cảnh báo và đề xuất mà nó tạo ra cũng như cách tùy chỉnh các kiểm tra mà Lynis thực hiện.
Sẽ mất thêm một chút thời gian và công sức, nhưng nó đáng được đầu tư để làm cho máy của bạn an toàn hơn và Lynis làm cho quá trình đó dễ dàng hơn nhiều.
Để biết thêm thông tin về Lynis, hãy xem Bắt đầu với Lynis trong tài liệu chính thức. Lynis là một dự án open-souce , vì vậy nếu bạn muốn đóng góp, hãy truy cập trang GitHub của dự án.
Các tin liên quan
Cách giám sát bảo mật hệ thống của bạn với osquery trên Ubuntu 16.042017-02-15
Cách cài đặt và cấu hình thông báo bảo mật OSSEC trên Ubuntu 14.04
2014-12-23
Cách sử dụng OpenVAS để kiểm tra tính bảo mật của hệ thống từ xa trên Ubuntu 12.04
2014-01-27