Đăng nhập kết nối với chương trình


9

Bên cạnh việc sử dụng iptables để đăng nhập các kết nối đến ..

Có cách nào để ghi nhật ký các kết nối được thiết lập vào một dịch vụ mà bạn không có nguồn (giả sử dịch vụ không tự đăng nhập những thứ như thế này)? Những gì tôi muốn làm là thu thập một số thông tin dựa trên việc ai đang kết nối để có thể nói những điều như thời gian nào trong ngày dịch vụ được sử dụng nhiều nhất, nơi trên thế giới cơ sở người dùng chính, v.v.

Tôi biết rằng tôi có thể sử dụng netstatvà chỉ nối nó với một tập lệnh cron, nhưng điều đó có thể không chính xác, vì tập lệnh chỉ có thể chạy thường xuyên trong một phút.

Đây là những gì tôi đang nghĩ ngay bây giờ:

  • Viết chương trình liên tục thăm dò ý kiến netstat, tìm kiếm các kết nối đã được thiết lập không xuất hiện trong cuộc thăm dò trước đó. Ý tưởng này có vẻ như lãng phí thời gian cpu như vậy, vì có thể không có kết nối mới ..
  • Viết chương trình trình bao bọc chấp nhận các kết nối gửi đến trên bất kỳ cổng nào mà dịch vụ chạy trên đó, nhưng sau đó tôi sẽ không biết làm thế nào để chuyển kết nối đó đến dịch vụ thực.

Chỉnh sửa: Chỉ xảy ra với tôi rằng câu hỏi này có thể tốt hơn cho stackoverflow, mặc dù tôi không chắc chắn. Xin lỗi nếu đây là nơi sai.


Tại sao bạn loại trừ việc sử dụng iptables? Ứng dụng của chúng tôi đang nghe trên cổng nào?
dùng9517

Chủ yếu là vì tôi muốn có quyền kiểm soát nhiều hơn đối với việc đăng nhập. Lý tưởng nhất là tôi muốn có thể xử lý việc ghi nhật ký theo cách tôi muốn mỗi khi phát hiện ra kết nối mới. Bất kỳ cổng. Không có một ứng dụng cụ thể duy nhất nào tôi sẽ sử dụng ứng dụng này, đó là lý do tại sao tôi không hỏi làm thế nào để đăng nhập bất cứ thứ gì sâu như tên người dùng hoặc một cái gì đó như thế.
Zac

Bạn chỉ có thể sử dụng iptables để đăng nhập các kết nối mới đến bất kỳ cổng nào. Tôi làm điều đó, trên một vài hộp. Vì vậy, tôi nhắc lại câu hỏi tuyệt vời của Iain: tại sao bạn loại trừ việc sử dụng iptables?
MadHatter

Bạn có thể đặt proxy trước ứng dụng không? Nó chỉ cần là một thứ rất đơn giản để nhận các yêu cầu, ghi lại chúng và chuyển chúng đi. Bạn có thể chuyển tiếp tín hiệu đến proxy, sau đó chuyển tiếp đến ứng dụng trên cổng ban đầu.
John Gardeniers

Câu trả lời:


4

Do đó, bạn có thể đăng nhập các kết nối mới với iptables

iptables -I INPUT -m state --state NEW -j LOG --log-level 1 --log-prefix "New Connection "

Điều này sẽ thêm một thông báo như thế này cho một cấu hình ssh mới

Ngày 6 tháng 10 10:58:23 centos kernel: Kết nối mới IN = eth0 OUT = MAC = 00: 0c: 29: 5b: a5: ea: 00: 0c: 29: 2d: 94: a0: 08: 00 SRC = 192.168. 1,72 DST = 192.168.254.187 LEN = 52 TOS = 0x00 PREC = 0x00 TTL = 126 ID = 15498 DF PROTO = TCP SPT = 59221 DPT = 22 WINDOW = 8192 RES = 0x00 SYN URGP = 0

hoặc thích điều này cho một kết nối http mới

Ngày 6 tháng 10 11:03:56 centos kernel: Kết nối mới IN = eth0 OUT = MAC = 00: 0c: 29: 5b: a5: ea: 00: 0c: 29: d2: 2c: 38: 08: 00 SRC = 192.168. 254.188 DST = 192.168.254.187 LEN = 60 TOS = 0x10 PREC = 0x00 TTL = 64 ID = 10345 DF PROTO = TCP SPT = 52488 DPT = 80 WINDOW = 14600 RES = 0x00 SYN URGP = 0

và như vậy cho mỗi kết nối mới với hệ thống của bạn. Nó sẽ được ghi vào bất cứ nơi nào syslog của bạn được cấu hình để gửi tin nhắn kern.warning.


Sau khi làm nhiều hơn tìm kiếm xung quanh, cách này dường như là đặt cược tốt nhất của tôi. Tôi sẽ chỉ kết hợp điều này với rsyslog để đăng nhập vào một tệp riêng biệt. Cảm ơn bạn rất nhiều vì câu trả lời thông tin của bạn Iain!
Zac

0

bạn có thể sử dụng audd và vào cuối ngày, tính toán một số thống kê dựa trên các logline đó. Hoặc bạn cũng có thể đi đến một giải pháp snmp nhưng có lẽ bạn đã viết mib của riêng bạn


0

Làm thế nào về tcpdump hoặc wireshark?


Hãy mở rộng câu trả lời của bạn thêm một chút. Có lẽ gợi ý cho người dùng cách tcpdump và wireshark sẽ có lợi cho những nỗ lực khắc phục sự cố.
Magellan

hướng dẫn sử dụng tcpdump với điều đó bạn có thể đăng nhập các gói đầy đủ. Bạn cũng có thể chụp các gói với tcpdump và sau đó phân tích chúng trong wireshark tcpdump -i <interface> -s 65535 -w <some-file>Ngoài ra, bạn sẽ phải chấm dứt việc chụp với ^ C khi bạn tin rằng bạn đã bắt đủ các gói.
Guntis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.