Bài viết này là một phần của loạt Net-SNMP:

  • Hướng dẫn cho người mới bắt đầu cài đặt, sử dụng và cấu hình Net-SNMP - Phần 1
  • Hướng dẫn cho người mới bắt đầu cài đặt, sử dụng và cấu hình Net-SNMP - Phần 2

Trong phần đầu của loạt bài này, chúng tôi đã thảo luận các bước bạn cần thực hiện để tải xuống, cài đặt và chạy công cụ Net-SNMP.

Trong phần này, chúng tôi sẽ tập trung vào khía cạnh cấu hình, giải thích cách bạn có thể cấu hình tác nhân Net-SNMP, cũng như thiết lập xác thực và mã hóa cho các thông điệp được truyền giữa nó và máy khách.

Định cấu hình tác nhân Net-SNMP - snmpd

Giả sử rằng gói Net-SNMP được cài đặt trên hệ thống của bạn và được thiết lập và chạy, hãy chạy lệnh snmpwalk sau đây:

 snmpwalk -v2c -c hệ thống cục bộ công cộng 

Trên hệ thống của tôi, đầu ra sau được tạo ra:

 SNMPv2-MIB :: sysDescr.0 = STRING: Linux himanshu-desktop 3.13.0-32-generic # 57-Ubuntu SMP Thứ ba 15 03:51:12 UTC 2014 i686 SNMPv2-MIB :: sysObjectID.0 = OID: NET -SNMP-MIB :: netSnmpAgentOIDs.10 DISMAN-EVENT-MIB :: sysUpTimeInstance = Timeticks: (6481067) 18: 00: 10.67 SNMPv2-MIB :: sysContact.0 = STRING: Tôi  SNMPv2-MIB :: sysName.0 = STRING: himanshu-desktop SNMPv2-MIB :: sysLocation.0 = STRING: Ngồi trên thanh của vịnh SNMPv2-MIB :: sysServices.0 = INTEGER: 72 SNMPv2-MIB :: sysORLastChange .0 = Timeticks: (22) 0: 00: 00.22 ... ... ... 

Nếu bạn quan sát, đầu ra này chứa các giá trị tương ứng với các biến hệ thống cụ thể có trong cây "MIB.

Bây giờ, giả sử bạn muốn tinh chỉnh thông tin như “sysLocation” và “sysContact”. Điều này bạn có thể làm bằng cách chỉnh sửa các giá trị tương ứng trong /etc/snmp/snmpd.conf, một tệp mà bạn có thể sử dụng để định cấu hình tác nhân Net-SNMP (“snmpd”).

Như bạn có thể thấy trong ảnh chụp màn hình ở trên, tệp chứa nhiều mục nhập, một số trong đó được cố tình nhận xét và cần được kích hoạt rõ ràng. Trong tập tin này, tôi đã thay đổi giá trị của tham số “sysLocation” từ “Ngồi trên Dock of the Bay” thành “Datacenter, Row 2, Rack 1.”

Để thay đổi có hiệu lực, chỉ cần khởi động lại trình nền Net-SNMP bằng lệnh sau đây:

 /etc/init.d/snmpd restart 

và sau đó chạy lệnh snmpwalk một lần nữa:

 $ snmpwalk -v2c -c hệ thống cục bộ công cộng SNMPv2-MIB :: sysDescr.0 = STRING: Linux himanshu-desktop 3.13.0-32-generic # 57-Ubuntu SMP Thứ ba 15 15:51:12 UTC 2014 i686 SNMPv2-MIB :: sysObjectID.0 = OID: NET-SNMP-MIB :: netSnmpAgentOIDs.10 DISMAN-EVENT-MIB :: sysUpTimeInstance = Timeticks: (470) 0: 00: 04.70 SNMPv2-MIB :: sysContact.0 = STRING: Tôi  ; SNMPv2-MIB :: sysName.0 = STRING: himanshu-desktop SNMPv2-MIB :: sysLocation.0 = STRING: Trung tâm dữ liệu, Hàng 2, Giá 1 SNMPv2-MIB :: sysServices.0 = INTEGER: 72 SNMPv2-MIB :: sysORLastChange .0 = Timeticks: (0) 0: 00: 00.00 

Vì vậy, như bạn có thể thấy, giá trị của tham số "sysLocation" đã được thay đổi thành công. Tương tự, bạn có thể tinh chỉnh giá trị của các tham số khác có trong tệp này, cũng như thêm các tham số chưa có.

Lưu ý : Bạn cũng có thể sử dụng tiện ích snmpconf của Net-SNMP để tạo và sửa đổi các tệp cấu hình SNMP. Để biết thêm về lệnh này, hãy đọc Manpage của nó tại đây.

Thiết lập xác thực và mã hóa

Các tiện ích máy khách Net-SNMP như snmpget, snmpwalk, và nhiều hơn nữa, cũng như daemon (snmpd) hỗ trợ tất cả ba phiên bản của giao thức SNMP: v1, v2c và v3. Trong khi hai hỗ trợ đầu tiên chỉ xác thực, v3 cũng hỗ trợ mã hóa. Vì vậy, trong phần này, chúng ta sẽ thảo luận về cách thiết lập SNMPv3.

Bước đầu tiên, dừng dịch vụ daemon snmpd bằng cách sử dụng lệnh sau:

 /etc/init.d/snmpd stop 

sau đó mở tập tin /var/lib/snmp/snmpd.conf và thêm dòng sau vào cuối:

 createUser USERNAME SHA "AUTHENTICATION-PASSWORD" AES "ENCRYPTION-PASSWORD" 

Lệnh createUser tạo ra một người dùng cụ thể SNMPv3 với mục đích xác thực và mã hóa các thông điệp SNMPV3.

Trong câu lệnh trên, thay thế “AUTHENTICATION-PASSWORD” và “ENCRYPTION-PASSWORD” bằng mật khẩu thực mà bạn muốn giữ lại. Ngoài ra, cần lưu ý rằng nếu bạn không đề cập đến “ENCRYPTION-PASSWORD”, Net-SNMP sẽ sử dụng “AUTHENTICATION-PASSWORD” làm “ENCRYPTION-PASSWORD”.

Bây giờ, mở etc/snmp/snmpd.conf và thêm dòng sau vào cuối:

 rouser USERNAME priv 

Dòng này đảm bảo rằng người dùng chúng tôi đã tạo trước đó có quyền chỉ đọc và chỉ có thể truy cập bằng cách sử dụng AuthPriv, chế độ Net-SNMP cho phép giao tiếp với xác thực, cũng như bảo mật. Nếu bạn muốn người dùng có quyền ghi cũng vậy, chỉ cần sử dụng rwuser (thay vì rouser ) trong trường hợp đó.

Bây giờ, hãy khởi động lại dịch vụ daemon Net-SNMP bằng cách sử dụng lệnh sau đây:

 /etc/init.d/snmpd bắt đầu 

và sau đó chạy lệnh sau để kiểm tra SNMPV3:

 snmpwalk -v 3 -l authPriv -a sha -A [QUYỀN-MẬT KHẨU] -x AES -X [ENCRYPTION-PASSWORD] -u [USERNAME] hệ thống cục bộ 

Nếu SNMPV3 được thiết lập thành công, đầu ra phải giống như được liệt kê ở đầu bài viết này.

Ghi chú :
1. Đảm bảo thay thế [AUTHENTICATION-PASSWORD], [ENCRYPTION-PASSWORD] và [USERNAME] bằng các giá trị thích hợp.

2. Xác thực SHA và hỗ trợ mã hóa DES / AES chỉ khả dụng nếu bạn đã cài đặt OpenSSL hoặc nếu bạn đã biên dịch bằng --with-openssl=internal .

Phần kết luận

Net-SNMP cung cấp rất nhiều tùy chọn cấu hình, và những gì chúng tôi đã thảo luận ở đây chỉ là những điều cơ bản, mặc dù nó là đủ để giúp bạn bắt đầu. Để biết thêm thông tin, hãy xem Manpage của snmpd.conf.