Giới thiệu

Lynis là một ứng dụng kiểm tra bảo mật mã nguồn mở dựa trên máy chủ, có thể đánh giá hồ sơ bảo mật và tư thế 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 của máy chủ Ubuntu 16.04 của bạn. Sau đó, bạn sẽ khám phá kết quả kiểm tra mẫu và định cấu hình Lynis để bỏ qua các 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ỳ hệ thống nào. nhưng nó sẽ đưa ra các gợi ý cho bạn biết cách bạn có thể tự mình làm cứng hệ thống. Như vậy, 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 dự định kiểm tra, chẳng hạn như máy chủ web, cơ sở dữ liệu 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 kết quả bạn có thể bỏ qua một cách an toàn.

chú thích: Thực hiện kiểm toán bảo mật cần có thời gian và kiên nhẫn. Bạn có thể 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 máy chủ của bạn.

Điều kiện tiên quyết

Để hoàn thành bài viết này, bạn sẽ cần:

  • Một máy chủ Ubuntu 16.04, được cấu hình với người dùng không phải root với đặc quyền sudo và tường lửa, như được hiển thị trong Thiết lập máy chủ ban đầu với Ubuntu 16.04 hướng dẫn.

Bước 1 - Cài đặt Lynis trên máy chủ của bạn

Có một số cách để cài đặt Lynis. Bạn có thể biên dịch từ nguồn, tải xuống và sao chép tệp nhị phân sang 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 easist để cài đặt Lynis và giữ nó cập nhật, vì vậy đó là phương pháp chúng ta sẽ sử dụng.

Tuy nhiên, trên Ubuntu 16.04, phiên bản có sẵn từ kho lưu trữ không phải là phiên bản mới nhất. Để có quyền truy cập vào các tính năng mới nhất, chúng tôi sẽ cài đặt Lynis từ kho lưu trữ chính thức của dự án.

Kho lưu trữ phần mềm của Lynis sử dụng giao thức HTTPS, vì vậy chúng tôi cần đảm bảo rằng 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, đầu ra của lệnh đó sẽ là:

OutputStatus: install ok installed

Nếu đầu ra 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 sự phụ thuộc đơn độc bây giờ được cài đặt, chúng tôi sẽ cài đặt Lynis. Để bắt đầu quá trình đó, hãy thêm khóa của kho lưu trữ:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F

Bạn sẽ thấy đầu ra 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 kho lưu trữ Lynis vào danh sách những người 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"

Để thực hiện các gói trong kho lưu trữ mới được bổ sung có sẵn cho hệ thống, hãy cập nhật cơ sở dữ liệu gói:

sudo apt-get update

Cuối cùng, cài đặt Lynis:

sudo apt-get install lynis

Sau khi cài đặt hoàn tất, bạn sẽ có quyền truy cập vào lynis lệnh và các lệnh con của nó. Hãy xem xét cách sử dụng Lynis tiếp theo.

Bước 2 - Thực hiện kiểm toán

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 cho 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ực hiện bằng cách sử dụng các cấu hình, giống như các tệp cấu hình có cài đặt kiểm soát cách Lynis tiến hành kiểm tra. Xem cài đặt cho cấu hình mặc định:

lynis show settings

Bạn sẽ thấy đầu ra 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

Nó luôn luôn là một ý tưởng tốt để xác minh xem một phiên bản mới có sẵn trước khi thực hiện một kiểm toán. 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

Đầu ra phải tương tự như sau, cho thấy phiên bản Lynis là phiên bản 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, tạo ra đầu ra một dòng sau:

Outputstatus=up-to-date

Nếu phiên bản yêu cầu bản 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 lynis audit system chỉ huy. Bạn có thể chạy Lynis ở chế độ đặc quyền và không có đặc quyền (pentest). Trong chế độ thứ hai, một số kiểm tra yêu cầu quyền root bị bỏ qua. Do đó, bạn nên chạy kiểm tra ở chế độ đặc quyền với sudo. Thực hiện lệnh này để thực hiện kiểm toán đầu tiên của bạn:

sudo lynis audit system

Sau khi xác thực, Lynis sẽ chạy thử nghiệm của nó và truyền các kết quả đến màn hình của bạn. Việc kiểm tra Lynis thường mất một phút hoặc ít hơn.

Khi Lynis thực hiện kiểm toán, Lynn thực hiện một số thử nghiệm, được chia thành các danh mục. Sau mỗi lần kiểm tra, kết quả kiểm tra, thông tin gỡ lỗi và các đề xuất để làm cứng hệ thống được ghi vào đầu ra 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ề máy chủ và chính ứng dụng, vì vậy tệp bạn cần chú ý là tệp nhật ký. Tệp nhật ký được thanh lọc (ghi đè) trên mỗi lần kiểm tra, do đó kết quả từ lần đánh giá trước đó không được lưu.

Khi kiểm tra hoàn tất, bạn sẽ xem lại kết quả, cảnh báo và đề xuất, sau đó thực hiện bất kỳ đề xuất nào có liên quan.

Hãy xem xét kết quả của một cuộc kiểm toán 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 kiểm toán của mình 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 thử nghiệm, được nhóm theo danh mục. Thông tin có dạng từ khóa, như KHÔNG AI, YẾU, LÀM XONG, TÌM, KHÔNG TÌM THẤY, đượcCẢNH BÁO.

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 trong hộp, nhưng không phải tất cả đều cần thiết cho máy chủ của bạn. Làm thế nào bạn có thể cho biết những bài kiểm tra nào là cần thiết và những bài thi nào không? Đó là nơi mà một số kiến ​​thức về những gì nên hoặc không nên chạy trên một máy chủ đi vào chơi. Ví dụ: nếu bạn kiểm tra phần kết quả của kiểm toán Lynis điển hình, bạn sẽ tìm thấy hai thử nghiệm theo Máy in và ống cuốn thể loại:

Output[+] Printers and Spools
------------------------------------
 - Checking cups daemon                                      [ NOT FOUND ]
 - Checking lp daemon                                        [ NOT RUNNING ]

Bạn có thực sự đang chạy máy chủ in trên máy chủ Ubuntu 16.04 không? Trừ khi bạn đang chạy một máy chủ in dựa trên đám mây, bạn không cần Lynis chạy thử nghiệm đó mỗi lần.

Trong khi đó là một ví dụ hoàn hảo của một bài kiểm tra bạn có thể bỏ qua, những người khác không rõ ràng như vậy. Lấy phần kết quả một phần này, ví dụ:

Output[+] Insecure services
------------------------------------
  - Checking inetd status                                     [ NOT ACTIVE ]

Đầu ra này nói rằng inetd không hoạt động, nhưng dự kiến ​​trên máy chủ Ubuntu 16.04, vì Ubuntu đã được thay thế inetd với systemd. Biết rằng, bạn có thể gắn thẻ thử nghiệm đó là một thử nghiệm mà Lynis không nên thực hiện như một phần của kiểm toán trên máy chủ của bạn.

Khi bạn xem xét từng kết quả kiểm tra, bạn sẽ tìm 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ể, sau đó, tùy chỉnh Lynis để bỏ qua chúng trong các lần kiểm tra trong tương lai. Bạn sẽ tìm hiểu cách thực hiện điều đó trong Bước 5.

Trong các phần tiếp theo, chúng tôi sẽ xem xét 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 hệ thống của mình với Lynis đúng cách. Hãy xem xét cách xử lý các cảnh báo do Lynis đưa ra trước tiên.

Bước 3 - Sửa cảnh báo kiểm tra Lynis

Đầu ra kiểm toán Lynis không phải lúc nào cũng có phần cảnh báo, nhưng khi thực hiện, 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 với chính văn bản cảnh báo, với thử nghiệm đã tạo ra cảnh báo trên cùng một dòng trong ngoặc đơn. Dòng tiếp theo sẽ chứa một giải pháp được đề xuất, nếu có. 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.

Đầu ra sau đây xuất phát từ phần cảnh báo của kiểm toán Lynis được thực hiện trên máy chủ đượ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:

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 có nghĩa là bản kiểm tra này đã sử dụng phiên bản Lynis, do đó kết quả có thể không hoàn chỉnh. Điều này có thể tránh được nếu chúng tôi đã thực hiện kiểm tra phiên bản cơ bản trước khi chạy kết quả, như được hiển thị trong Bước 3. Việc 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 rằng máy chủ cần được khởi động lại. Đó có thể là do cập nhật hệ thống liên quan đến nâng cấp hạt nhân đượ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ả thử nghiệm nào, bạn có thể nhận thêm thông tin về thử nghiệm bằng cách truy vấn Lynis cho id kiểm tra. Lệnh để thực hiện điều đó có dạng này:

sudo lynis show details test-id

Vì vậy, đối với cảnh báo thứ hai, trong đó có id kiểm tra KRNL-5830, chúng ta có thể chạy lệnh này:

sudo lynis show details KRNL-5830

Đầu ra cho thử nghiệm cụ thể đó sau. Điều này cung cấp cho bạn một ý tưởng về quy trình mà Lynis đi qua cho mỗi bài kiểm tra mà nó thực hiện. Từ đầu ra này, Lynis thậm chí còn cung cấp thông tin cụ thể về mục đã đưa ra 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, đó là về các gói dễ bị tổn thương, chúng tôi sẽ chạy lệnh này:

sudo lynis show details PKGS-7392

Đầu ra cung cấp cho chúng tôi 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 cơ sở dữ liệu gói và cập nhật hệ thống.

Sau khi sửa mục đã dẫn đến cảnh báo, bạn nên chạy lại kiểm tra. Các lần kiểm tra tiếp theo sẽ không có cùng cảnh báo, mặc dù các cảnh báo mới có thể hiển thị. Trong trường hợp đó, lặp lại quá trình được hiển thị trong bước này và sửa các cảnh báo.

Bây giờ 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 thực hiện các đề xuất mà Lynis cung cấp.

Bước 4 - Thực hiện đề xuất kiểm toán Lynis

Sau phần cảnh báo, bạn sẽ thấy một loạt các đề xuất, nếu được triển khai, có thể làm cho máy chủ của bạn kém dễ bị tấn công và phần mềm độc hại. Trong bước này, bạn sẽ tìm hiểu cách triển khai một số đề xuất do Lynis tạo ra sau khi kiểm tra máy chủ thử nghiệm Ubuntu 16.04. Quá trình thực hiện việc này giống với các bước trong phần trước.

Đề xuất cụ thể bắt đầu với chính đề xuất đó, tiếp theo là ID kiểm tra. 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 để thực hiện trong tệp 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ủ đề.

Ở đây, ví dụ, là một phần gợi ý một phần từ một kiểm toán 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 an toàn để thực hiện. Tuy nhiên, để quyết định đó, bạn phải biết ý nghĩa của từng chỉ thị. Bởi vì chúng liên quan đến máy chủ SSH, tất cả các thay đổi phải được thực hiện trong tệp cấu hình SSH daemon,/etc/ssh/sshd_config. Nếu bạn có bất kỳ nghi ngờ nào về bất kỳ đề xuất nào liên quan đến SSH do Lynis đưa ra, hãy tìm chỉ thị bằng man sshd_config. Thông tin đó cũng là có sẵn trên mạng.

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 đã định cấu hình tường lửa, hãy đảm bảo chèn quy tắc để truy cập SSH thông qua cổng mới đó.

Giống như phần cảnh báo, bạn có thể nhận thêm thông tin chi tiết về đề xuất bằng cách truy vấn Lynis cho id kiểm tra 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 máy chủ của bạn. Lấy cái này, ví dụ:

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, chkrootkithoặc OSSEC để đáp ứng một thử nghiệm làm cứng (HRDN-7230). OSSEC là một hệ thống phát hiện xâm nhập dựa trên máy chủ có thể tạo và gửi thông báo. Nó là một ứng dụng bảo mật rất tốt sẽ giúp với một số thử nghiệm được thực hiện bởi Lynis. 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, việc cài đặt OSSEC một mình không gây ra thử nghiệm đặc biệt này. Đang cài đặt chkrootkit cuối cùng cũng vượt qua được. Đâ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 gợi ý được hiển thị như là kết quả của một bài kiểm tra tính toàn vẹn tập tin.

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ó đủ để vượt qua bài kiểm tra trong lần kiểm tra tiếp theo. Đó là bởi vì OSSEC là một công cụ giám sát toàn vẹn tệp khá tốt.

Bạn có thể bỏ qua một số đề xuất không áp dụng cho bạn. Đâ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/

Trong lịch sử, các hệ thống tệp lõi Linux như /home, /tmp, /var/usr được gắn trên một phân vùng riêng biệt để giảm thiểu tác động trên toàn bộ máy chủ khi chúng hết dung lượng đĩa. Đây không phải là thứ bạn thường thấy, đặc biệt là trên các máy chủ đám mây. Các hệ thống tệp này hiện được gắn kết như một thư mục trên cùng một phân vùng gốc. Nhưng nếu bạn thực hiện kiểm toán Lynis trên một hệ thống như vậy, bạn sẽ nhận được một vài gợi ý giống như những gợi ý được hiển thị trong đầu ra trước đó. Trừ khi bạn đang ở trong một vị trí để thực hiện các đề xuất, có thể bạn sẽ muốn bỏ qua chúng và định cấu hình Lynis để thử nghiệm khiến chúng được tạo ra 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 toán bảo mật bằng cách sử dụng Lynis liên quan đến nhiều hơn là chỉ sửa chữa cảnh báo và thực hiện các đề xuất; nó cũng liên quan đến việc xác định các xét nghiệm thừa. Trong bước tiếp theo, bạn sẽ tìm hiểu cách tùy chỉnh cấu hình mặc định để bỏ qua các 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ẽ tìm hiểu cách tùy chỉnh Lynis để nó chỉ chạy những thử nghiệm cần thiết cho máy chủ của bạn. Tiểu sử, chi phối cách hoạt động của các lần kiểm tra được xác định trong các tệp có .prf mở rộng trong /etc/lynis danh mục. Hồ sơ mặc định được đặt tên khéo léo default.prf. Bạn không trực tiếp chỉnh sửa hồ sơ mặc định đó. Thay vào đó, bạn thêm bất kỳ thay đổi nào bạn muốn custom.prf tệp trong cùng thư mục với định nghĩa hồ sơ.

Tạo một tệp mới có tên /etc/lynis/custom.prf sử dụng trình soạn thảo văn bản của bạn:

sudo nano /etc/lynis/custom.prf

Hãy sử dụng tệp này để cho Lynis bỏ qua một số thử nghiệm. Dưới đây là các bài kiểm tra chúng tôi muốn bỏ qua:

  • FILE-6310: Được sử dụng để kiểm tra việc phân tách các phân vùng.
  • HTTP-6622: Được sử dụng để kiểm tra cài đặt máy chủ web Nginx.
  • HTTP-6702: Được sử dụng để kiểm tra cài đặt máy chủ web Apache. Thử nghiệm này và kiểm tra Nginx ở trên được thực hiện theo mặc định. Vì vậy, nếu bạn đã cài đặt Nginx và không phải Apache, bạn sẽ muốn bỏ qua bài kiểm tra Apache.
  • PRNT-2307PRNT-2308: Được sử dụng để kiểm tra máy chủ in.
  • TOOL-5002: Sử dụng để kiểm tra các công cụ tự động hóa như Múa rối và Muối. Nếu bạn không cần các công cụ như vậy trên máy chủ của mình, bạn có thể bỏ qua thử nghiệm này.
  • SSH-7408: tcpkeepalive: Một số kiểm tra Lynis có thể được nhóm lại theo một ID thử nghiệm duy nhất. Nếu có một thử nghiệm trong id kiểm tra mà bạn muốn bỏ qua, đây là cách xác định nó.

Để bỏ qua một bài kiểm tra, bạn vượt qua bỏ qua kiểm tra chỉ thị ID kiểm tra bạn muốn bỏ qua, mỗi ID một dòng. Thêm mã sau vào tệp của bạn:

/etc/lynis/custom.prf

# 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 tập tin.

Lần sau khi bạn thực hiện kiểm tra, Lynis sẽ bỏ qua các thử nghiệm khớp với ID kiểm tra mà bạn đã định cấu hình trong cấu hình tùy chỉnh. Các bài kiểm tra sẽ được bỏ qua từ phần kết quả của kết quả kiểm toán, cũng như phần đề xuất.

Các /etc/lynis/custom.prf tệp cũng cho phép bạn sửa đổi bất kỳ cài đặt nào trong tiểu sử. Để 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 nó ở đó. Bạn 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 của bạn vào việc tìm kiếm các thử nghiệm mà bạn có thể bỏ qua.

Tiếp theo, chúng ta hãy xem những gì Lynis gọi là -chỉ số cứng.

Bước 6 - Giải thích chỉ số cứng

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 trông giống như sau:

OutputLynis security scan details:

  Hardening index : 64 [############        ]
  Tests performed : 206
  Plugins enabled : 0

Đầu ra này cho bạn biết có bao nhiêu thử nghiệm được thực hiện, cùng với một -chỉ số cứng, một số mà Lynis cung cấp để cung cấp cho bạn cảm giác an toàn cho máy chủ của bạn. Con số này là duy nhất đối với Lynis. Chỉ số cứng sẽ thay đổi liên quan đến các cảnh báo mà bạn khắc phục và các đề xuất mà bạn triển khai. Đầu ra này, cho thấy hệ thống có chỉ số cứng 64 là từ lần kiểm tra Lynis đầu tiên trên máy chủ Ubuntu 16.04 mới.

Sau khi sửa chữa các cảnh báo và thực hiện hầu hết các đề xuất, một kiểm toán mới đã đưa ra kết quả sau. Bạn có thể thấy rằng chỉ số làm cứng hơi 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à đánh giá chính xác về độ bảo mật của máy chủ, mà chỉ đơn thuần là thước đo mức độ bảo mật của máy chủ (hoặc cứng) dựa trên các thử nghiệm được thực hiện bởi Lynis. Và như bạn đã thấy, chỉ số càng cao thì càng tốt. Mục tiêu của kiểm toán an ninh Lynis không chỉ để có được một chỉ số cứng cao mà còn phải sửa các cảnh báo và gợi ý mà nó tạo ra.

Phần 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 máy chủ Ubuntu 16.04, đã tìm hiểu cách khắc phục các cảnh báo và đề xuất mà nó tạo ra và cách tùy chỉnh các thử nghiệm mà Lynis thực hiện.

Phải mất thêm một chút thời gian và công sức, nhưng nó đáng để đầ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 mã nguồn mở, vì vậy nếu bạn quan tâm đến việc đóng góp, hãy truy cập vào dự án Trang GitHub.