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
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.
- 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.
- 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ủ.
- 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.
- Thông báo cho người dùng về các lỗ hổng liên quan đến hệ thống.
- Thông báo cho người dùng về các máy chủ bị ảnh hưởng
- 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.
- 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
All rights reserved