[Ossec – Part 2] Cài đặt và triển khai mô hình Ossec Server-Agent

30/12/2020

Ở phần trước, chúng ta đã cùng nhau tìm hiểu sơ qua về Ossec – một HIDS mạnh mẽ.

Phần này, tôi sẽ giúp bạn cài đặt và triển khai Ossec với mô hình Server-Agent

Mục Lục

  1. Mô hình
  2. Cài đặt
  3. Kết nối Server-Agent
  4. Tổng kết

I. Mô hình

  • Ta sử dụng mô hình Server-Agent:

Với:

  • Server:
    OS : CentOS 7 IP : 10.10.34.111/24
  • Agent:
    OS : CentOS 7 IP : 10.10.34.112/24

II. Cài đặt

1. Ossec Server

B1: Cài đặt các pacakage hỗ trợ trước khi cài đặt ossec

yum install -y epel-release zlib-devel pcre2-devel make gcc mysql-devel postgresql-devel sqlite-devel 

sqlite-devel : Với version 3.0 thì cần package này để sử dụng tính năng SQLite

B2: Cài đặt ossec-server

yum install -y wget 

Thêm repo AtomiCorp:

wget -q -O - https://updates.atomicorp.com/installers/atomic | sh 

Cài đặt Ossec-server

yum install ossec-hids ossec-hids-server 

2. Ossec Agent

B1: Cài đặt các pacakage hỗ trợ trước khi cài đặt ossec

yum install -y epel-release zlib-devel pcre2-devel make gcc mysql-devel postgresql-devel sqlite-devel 

sqlite-devel : Với version 3.0 thì cần package này để sử dụng tính năng SQLite

B2: Cài đặt ossec agent

yum install -y wget 

Thêm repo AtomiCorp:

wget -q -O - https://updates.atomicorp.com/installers/atomic | sh 

Cài đặt Ossec-agent

yum install ossec-hids ossec-hids-agent 

III. Kết nối Server-Agent

Để kết nối Agent đến Server ta có thể sử dụng manage_agents (1 executable file cung cấp interface giúp dễ dàng thực hiện xử lý khóa xác thực cho các Ossec Agent)

Các bước tiến hành:

  • Chạy manage_agents trên Ossec Server
    • Add Agent mới
    • Extract key cho Agent đó
  • Chạy manage_agents trên Ossec Agent
    • Import key đã Extract từ Server
  • Restart tiến trình quản lý Ossec (Trên Server)
  • Start Agent mới

1. manage_agents trên OSSEC server

manage_agents trên OSSEC server cũng cấp giao diện giúp :

  • Add 1 Ossec Agent vào Server
  • Extract key cho Agent đó để có thể được add vào Server
  • Remove 1 Agent từ Server
  • List ra tất cả Agent có thể được add vào Server

B1: Chạy manage_agents

Chú ý: manage_agents nên được chạy ở quyền root

/var/ossec/bin/manage_agents 

Giao diện có dạng:

**************************************** * OSSEC HIDS v2.5-SNP-100809 Agent manager.     * * The following options are available: * ****************************************    (A)dd an agent (A).    (E)xtract key for an agent (E).    (L)ist already added agents (L).    (R)emove an agent (R).    (Q)uit. Choose your action: A,E,L,R or Q: 

B2: Add 1 agent mới

Choose your action: A,E,L,R or Q: A 
  • B2.1: Đặt tên cho Agent mới
- Adding a new agent (use 'q' to return to the main menu). Please provide the following:  * A name for the new agent: agent_34_0 
  • B2.2: Chỉ định IP cho Agent
    • Có thể là single IP – Nhưng nó phải là duy nhất.
    • Hoặc sử dụng 1 dải IP hoặc any : nếu IP của Agent có thể thay đổi thường xuyên.
    • Việc trùng lặp IP sẽ gây ra nhiều vấn đề
* The IP Address of the new agent: 10.10.34.0/24 
  • B2.3: Đặt ID cho Agent
    • manage_agents sẽ gợi ý ID phù hợp, bắt đầu từ 001 với Agent đầu tiên.
    • 000 là cho Server.
* An ID for the new agent[002]: 1033  Agent information: ID:1033  Name:agent_34_0 IP Address:10.10.34.0/24  Confirm adding it?(y/n): y  Agent added

Kết quả

B3 : Extract key cho Agent đã tạo

  • Sau khi add 1 agent, cần tạo key cho agent đó.
  • Key này cần được copy tới agent

NOTE

  • Nhớ mở port để Server có thể giao tiếp với Agent
    firewall-cmd --permanent --add-port=1514/udp
    firewall-cmd --reload

2. manage_agents trên OSSEC Agent

Việc add Agent trên Server là chưa đủ, muốn connect Server và Agent thì cần Import key Server đã tạo cho Agent vào chính máy Agent

B1: Chạy file manage_agents

/var/ossec/bin/manage_agents 
  • Chọn “I” và thực hiện import key đã được extract từ Server

B2: Config IP server mà agent sẽ connect

CHÚ Ý: Có thể ở bước này sẽ xảy ra lỗi

manage_agents: ERROR: Cannot unlink /queue/rids/sender: No such file or directory 

Cách fix:

cd /var/ossec/queue/rids/  cp 001 sender 

(Thay 001 bằng file sẽ xuất hiện trong rids của bạn. Như tôi thì là 1033).

Sau đó Import Key lại bình thường

B3: Để thay đổi có hiệu lực

  • Restart server
    /var/ossec/bin/ossec-control restart
  • Start Agent (Nếu đã start rồi thì ta restart)
    /var/ossec/bin/ossec-control restart

    NOTE : Có thể bạn sẽ gặp thông báo lỗi config ở file /var/ossec/etc/shared/agent.conf

    Cụ thể lỗi dạng :
    Duplicated directory given: '/etc'...
    Lỗi này do trùng lặp config với file config chính của Ossec Agent.

    Cách fix:
    cd /var/ossec/etc/shared/
    cp agent.conf agent.conf.bk
    rm -rf agent.conf

    Sau khi tạo backup và xóa file này đi rồi thì restart lại.

Check kết quả

IV. Tổng kết

Như vậy tôi đã giới thiệu cho bạn cách để kết nối 1 Agent đến Server

Tức là đặt Agent đó dưới sự kiểm soát,bảo vệ của Ossec HIDS Server.

Tuy nhiên, hầu như tất cả config đều là mặc định, chúng ta sẽ không chỉ dừng lại ở đây. Có khá nhiều bài toán đặt ra:

  • Nếu có rất nhiều Agent thì sao. Chẳng lẽ ta phải lặp đi lặp lại từng đó thao tác với mỗi Agent ?
  • Làm sao bạn có thể nhận cảnh báo qua mail mà không cần vào trực tiếp file log cảnh báo của Ossec Server để xem ?
  • Quá nhiều cảnh báo bắn về email thì phải làm sao ?. . .

Những bài toán đó, chúng ta sẽ lần lượt giải quyết khi đi tới tìm hiểu nhưng thành phần cốt lõi tạo nên Ossec.

Cảm ơn bạn đã xem hết bài viết của tôi.

Chúc bạn thành công!!!

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

CentOS 8 Package Management with dnf Package Manager

DNF is simply the next generation package manager (after YUM) for RPM based Linux distributions such as CentOS, RHEL, Fedora...
29/12/2020

Hướng dẫn sử dụng Wireshark cơ bản

Wireshark là một chương trình phần mềm phân tích giao thức mạng nguồn mở do Gerald Combs khởi xướng...
30/12/2020

Sử dụng Wireshark để phân tích gói tin trong hệ thống mạng

Ở bài trước, mình đã hướng dẫn cách sử dụng Wireshark cơ bản để capture các gói tin, lọc ra...
30/12/2020