- vừa được xem lúc

Bài 9 : Cài đặt vuls (vulnerability scanner) quét các lỗ hổng và các phần miềm dịch vụ của các máy chủ trong cụm microk8s

0 0 30

Người đăng: DUY TRAN

Theo Viblo Asia

Một ngày đẹp trời, tự nhiên máy chủ bị hack và chúng ta bị đuổi vì làm mất dữ liệu, hoặc hệ thống sập vì mấy bạn hacker, để phòng chống và ngăn ngừa thì chúng ta cần biết máy chủ của bạn có đang bị lỗ hổng, hay cần cập nhật bản vá lỗi gì không

Các khái niệm

  • Đối với một quản trị viên hệ thống, phải thực hiện phân tích lỗ hổng bảo mật và cập nhật phần mềm hàng ngày có thể là một gánh nặng. Để tránh thời gian chết trong môi trường sản xuất, thông thường các quản trị viên hệ thống chọn không sử dụng tùy chọn cập nhật tự động được cung cấp bởi trình quản lý gói của họ và thay vào đó thực hiện cập nhật thủ công. Điều này dẫn đến các vấn đề sau đây.
  1. Quản trị viên hệ thống cần liên tục theo dõi NVD (National Vulnerability Database - Cơ sở dữ liệu về lỗ hổng quốc gia) hoặc các cơ sở dữ liệu tương tự để tìm các lỗ hổng mới.
  2. Quản trị viên hệ thống có thể không giám sát được tất cả phần mềm nếu có một số lượng lớn các gói được cài đặt trên máy chủ.
  3. Thật tốn kém khi thực hiện phân tích để xác định các máy chủ bị ảnh hưởng bởi các lỗ hổng mới. Khả năng nhìn ra một hoặc hai máy chủ trong quá trình phân tích là có.
  • Vuls (vulnerability scanner) là một công cụ được tạo ra để giải quyết các vấn đề được liệt kê ở trên. Nó có các đặc điểm sau đây.
    1. Thông báo cho người dùng về các lỗ hổng liên quan đến hệ thống.
    2. Thông báo cho người dùng về các máy chủ bị ảnh hưởng
    3. Phát hiện lỗ hổng được thực hiện tự động để ngăn chặn bất kỳ sự giám sát nào.
    4. Báo cáo được tạo thường xuyên bằng CRON hoặc các phương pháp khác để quản lý lỗ hổng

Các tính năng chính

  • Vuls cung cấp một cách tự động hóa lỗ hổng cho các gói Linux
  • Vuls có thể được cài đặt trên tất cả các phân phối dựa trên Linux chẳng hạn: - Linux, Ubuntu, Debian, FreeBSD, Centos, Solaris, v.v.
  • Vuls có khả năng quét nhiều hệ thống tại một thời điểm bằng cách sử dụng giao thức SSH và gửi báo cáo qua Slack hoặc Email.
  • Vuls sử dụng ba chế độ quét nhanh, gốc nhanh và sâu bạn có thể chọn theo tình huống hoặc theo yêu cầu của bạn.
  • Scan results can be Viewed by using TUI (Terminal user interface) and GUI (Graphical user interface).
  • Khi tạo báo cáo, Vuls ưu tiên các lỗ hổng mức độ nghiêm trọng cao bằng cách sử dụng hệ thống xếp hạng được thiết lập từ cơ sở dữ liệu.

Hướng dẫn

Danh sách các máy chủ

IP Hostname vCPU RAM DISK
127.0.0.1 Host 8 core 32G SSD 500G
192.168.56.2 microk8s-master-1 1 core 2G 50G
192.168.56.3 microk8s-master-2 1 core 2G 50G
192.168.56.4 microk8s-master-3 1 core 2G 50G
192.168.56.5 microk8s-worker-1 1 core 2G 50G
192.168.56.6 microk8s-worker-2 1 core 2G 50G
192.168.56.7 microk8s-worker-3 1 core 2G 50G
192.168.56.8 microk8s-worker-4 1 core 2G 50G

Sơ đồ cài đặt

Cài đặt

Cài bằng vulsctl trên host

Bước 1: Kéo code install về bằng lệnh

git clone https://github.com/vulsio/vulsctl

Bước 2: Chạy lệnh cài đặt

sudo bash vulsctl/install-host/install.sh 

Bước 3: Tìm nạp tất cả cơ sở dữ liệu

cd vulsctl/install-host/
sh update-all.sh 

Chổ này chạy hơi lâu các bạn vui lòng đợi nhé

Bước 4: coppy config.toml.localscan -> config.toml

cd ..
cp config.toml.localscan config.toml

Bước 5: Scan test local

vuls scan

Tạo report

vuls report

Khởi động lại máy

sudo reboot

sau đó ta dùng lệnh vuls tui để xem máy có lỗi hổng bảo mật gì không

vuls tui

Như vậy máy chủ host đang không có vấn đề về các lỗ hổng của hệ điều hành

Cài đặt Web UI (VulsRepo)

Bước 1: git clone

cd $HOME && git clone https://github.com/ishiDACo/vulsrepo.git

Bước 2. Thay đổi cài đặt của vulsrepo-server

mkdir /opt/vuls/
mkdir /opt/vuls/results cd $HOME/vulsrepo/server
cp vulsrepo-config.toml.sample vulsrepo-config.toml
vi vulsrepo-config.toml
[Server]
rootPath = "/root/vulsrepo"
resultsPath = "/opt/vuls/results"
serverPort = "5111"

Bước 3. Bắt đầu máy chủ vulsrepo

Chạy vulsrepo bằng lệnh

./vulsrepo-server

Bây giờ ta vào trình duyệt để test http://127.0.0.1:5111

Như vậy ta đã thành công cài vulsrepo

Bước 4: Luôn kích hoạt vulsrepo-server

Sao chép tập tin khởi động. Thay đổi nội dung theo môi trường.

sudo cp $HOME/vulsrepo/server/scripts/vulsrepo.service /lib/systemd/system/vulsrepo.service
sudo vi /lib/systemd/system/vulsrepo.service

Đặt để bắt đầu tự động

sudo systemctl enable vulsrepo

Bắt đầu máy chủ vulsrepo

systemctl daemon-reload
sudo systemctl start vulsrepo

Kiểm tra trạng thái vulsrepo

sudo systemctl status vulsrepo

Chế độ quét từ xa

Bước 1. Khởi chạy Ubuntu Linux mới

  • Khởi chạy một thiết bị đầu cuối mới và SSH đến Máy chủ từ xa.
  • Để thêm Khóa máy chủ của máy chủ từ xa vào $HOME/.ssh/known_hosts, bạn cần đăng nhập vào máy chủ từ xa thông qua SSH trước khi quét.

Bước 2. Cho phép SSH từ máy chủ Host

Tạo ssh bằng lệnh

ssh-keygen -t rsa

view ssh key bằng lệnh

cat ~/.ssh/id_rsa.pub 

Lấy ssh key public ở đây

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCWwkMB/jFQgxUnpt9oamS9YUBrP15i6Z9eVn6oeu4y9PN5QUm9KQWFfr+8TFJikEpXgnAzI789t17/Os8qA/dOLoGGSZ9JutgU93KPgoCRIpSEBfQdDE5+jNJsWJMqgEpDFep5+h4JZzkwjzWEiCUWc04MJsBlh/GdyfUPdoTGGZ/SYEi4t8KBAT4ZvFfJyVStJhS1mYZLxh2BgjDRFM8glJAPfCOJpiMWg+D/oYocU261nu3QJJI1dr34KLeNXW4Iy6wHViIDC0iNSl7ZrvmN/Un1E78y7+hOjm5LYxQ026oRfNaMdlWBfEGoB9txjI2DwHF9ja7u5Np+DikPs/rYCY28HsUv7+ztqCgqylp2F2840TP21TmBIOqLbR76ISYiHOOyNqtw9EHqjkXGomD61zlEHrZegLUrpgd3Gcx3xGTVGlOH0znmQj+Y643r/+J/FthFpd5GUFka46DBWkItHgIny2kPY99hNOm3Zlz+77ze50YGsPwDnW44uv7HUm0= root@jenkins-server

Bước 3: ở các máy cần scan, ở đây là các máy microk8s-master-01, microk8s-master-02, microk8s-master-03, microk8s-worker-01, microk8s-worker-02, microk8s-worker-03, microk8s-worker-04, microk8s-worker-05

Thực hiện các lệnh sau ở tất cả máy chủ cần scan

mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys

Dán ssh key public vào ~/.ssh/authorized_keys

Và ngoài ra, xác nhận rằng các khóa máy chủ của các máy chủ đích quét đã được đăng ký trong các host đã biết của máy Host

ssh ubuntu@192.168.56.2 -i ~/.ssh/id_rsa
ssh ubuntu@192.168.56.3 -i ~/.ssh/id_rsa
ssh ubuntu@192.168.56.4 -i ~/.ssh/id_rsa
ssh ubuntu@192.168.56.5 -i ~/.ssh/id_rsa
ssh ubuntu@192.168.56.6 -i ~/.ssh/id_rsa
ssh ubuntu@192.168.56.7 -i ~/.ssh/id_rsa

Tiếp theo cập nhật file config.toml

nano config.toml
[servers] [servers.localhost]
host = "127.0.0.1"
port = "local"
scanMode = ["fast"] [servers.microk8s-master-01]
host = "192.168.56.2"
port = "22"
user = "ubuntu"
scanMode = ["fast-root"]
keyPath = "/root/.ssh/id_rsa" [servers.microk8s-master-02]
host = "192.168.56.3"
port = "22"
user = "ubuntu"
scanMode = ["fast-root"]
keyPath = "/root/.ssh/id_rsa" [servers.microk8s-master-03]
host = "192.168.56.4"
port = "22"
user = "ubuntu"
scanMode = ["fast-root"]
keyPath = "/root/.ssh/id_rsa" [servers.microk8s-worker-01]
host = "192.168.56.5"
port = "22"
user = "ubuntu"
scanMode = ["fast-root"]
keyPath = "/root/.ssh/id_rsa" [servers.microk8s-worker-02]
host = "192.168.56.6"
port = "22"
user = "ubuntu"
scanMode = ["fast-root"]
keyPath = "/root/.ssh/id_rsa" [servers.microk8s-worker-03]
host = "192.168.56.7"
port = "22"
user = "ubuntu"
scanMode = ["fast-root"]
keyPath = "/root/.ssh/id_rsa" [servers.microk8s-worker-04]
host = "192.168.56.8"
port = "22"
user = "ubuntu"
scanMode = ["fast-root"]
keyPath = "/root/.ssh/id_rsa"

sau đó ta sử dụng lệnh vuls scan để scan

vuls scan

Như vậy ta đã cài đạt thành công quyets các máy chủ từ xa

Chúng ta vào giao diện web để xem các lỗ hổng

Đang cập nhật

Quét docker image

Quét các lỗ hổng của các gói không phải hệ điều hành

Quét cổng bằng máy quét cổng ngoài

Bình luận

Bài viết tương tự

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 1- Lịch sử)

1. Vì sao nên sử dụng. . .

0 0 104

- vừa được xem lúc

Docker: Chưa biết gì đến biết dùng (Phần 2 - Dockerfile)

1. Mở đầu.

0 0 67

- vừa được xem lúc

Cách Tạo Và Sử Dụng Bash Script Cơ Bản Trong Ubuntu

Bash scripting là một phần cực kỳ mạnh mẽ và hữu ích của phát triển và quản trị hệ thống. Lần đâu tiên làm việc với nó có thể gây cho bạn cảm giác sợ hải và phức tạp, mình hy vọng hướng dẫn này sẽ giúp có những hiểu biết cơ bản về bash script để không bị bở ngở khi làm việc với nó.

0 0 62

- vừa được xem lúc

Các command trên ubuntu (chiếm 80%) - phần 5

Hello 500 ae, sau 4 số trong seri này mình thấy có vẻ ae có hứng thú đọc chủ đề này ghê. Hi vọng những gì mình tìm hiểu được sẽ giúp ích được cho nhiều bạn hơn.

0 0 51

- vừa được xem lúc

Các command trên ubuntu (chiếm 80%) - phần 4

Sau một kì nghỉ tết trong thời buổi đại dịch vừa qua. Không còn những buổi dong chơi đi chúc tết nữa. Ở nhà ra số tiếp theo cho anh em đây. Dưới đây sẽ là 2 command được sử dụng nhiều nhất khi sử dụng file.

0 0 52

- vừa được xem lúc

Tài khoản người sử dụng và phân quyền truy cập tệp trên Ubuntu (P1)

Hôm nay, mình sẽ giới thiệu cho mọi người về Tài khoản người sử dụng (NSD) và phân quyền truy cập trên Ubuntu. Bài viết này được chia thành hai phần: phần một nói về tài khoản người sử dụng và phần hai nói về quyền truy cập trên Ubuntu.

0 0 43