Điểm:1

Làm cách nào để phân giải tên máy chủ từ xa thông qua DNS khi sử dụng Nginx và ModSecurity?

lá cờ br

Câu hỏi mod_security với OWASP CRS: Quy tắc tùy chỉnh để đưa googlebot vào danh sách trắng cung cấp quy tắc sau làm câu trả lời để xác minh tên máy chủ của khách hàng:

SecRule REMOTE_HOST â@rx google(bot|)\.com$â âid:50000,nolog,allowâ

Quy tắc này được sử dụng trên ModSecurity với Apache và yêu cầu chỉ thị Tra cứu tên máy chủ Bật cấu hình trên Apache. Các SỔ TAY BẢO MẬT nói:

MÁY CHỦ TỪ XA
Nếu chỉ thị Apache HostnameLookups được đặt thành Bật, thì biến này sẽ giữ tên máy chủ từ xa được phân giải thông qua DNS. Nếu lệnh được đặt thành Tắt, biến này sẽ giữ IP từ xa địa chỉ (giống như REMOTE_ADDR). Sử dụng có thể cho biến này bao gồm từ chối các máy chủ hoặc khối mạng của máy khách xấu đã biết hoặc ngược lại, cho phép các máy chủ được ủy quyền vào.

Khi sử dụng Nginx làm proxy ngược mà không có Apache, có cách nào để tạo MÁY CHỦ TỪ XA trả lại tên máy chủ được giải quyết thông qua DNS?

Điểm:0
lá cờ cz

Địa chỉ IP từ xa đã có trong biến nginx $remote_addr và biến ModSecurity REMOTE_ADDR. Hướng dẫn tham khảo nói:

REMOTE_ADDR

Biến này giữ địa chỉ IP của máy khách từ xa.

SecRule REMOTE_ADDR "@ipMatch 192.168.1.101" "id:35"

Bạn nên sử dụng REMOTE_ADDR tại đây (và có lẽ người dùng Apache cũng nên như vậy).

Ronaldo avatar
lá cờ br
Cảm ơn, Michael Hampton. Nhưng tôi cần DNS, không phải địa chỉ IP. Tôi đã nhận được địa chỉ IP do thiếu tùy chọn `HostnameLookups` trên Nginx.
Michael Hampton avatar
lá cờ cz
@Ronaldo Tôi cho rằng "DNS" thực sự có nghĩa là _hostname_? Rõ ràng tôi đã bỏ lỡ điều đó chút cuối cùng trong bài viết của bạn bằng cách nào đó. Tôi nghĩ rằng điều này có thể được thực hiện bằng cách tách ra một số Lua để thực hiện tra cứu DNS và thực hiện nó một cách có chọn lọc (bạn không thể tra cứu tên máy chủ theo mọi yêu cầu vì nó sẽ phá hủy hoàn toàn hiệu suất của bạn). Tôi sẽ xem nếu tôi có thể viết một cái gì đó sau này.
Ronaldo avatar
lá cờ br
Tôi rât cảm kich. Nhưng trước khi bạn cố gắng viết một cái gì đó, bạn có thể cho tôi biết liệu có tùy chọn nào tốt hơn để thêm bot google vào danh sách trắng không? Tôi là người mới khi nói đến Nginx và ModSecurity và tôi có thể thiếu một số cấu hình cơ bản. Tôi đã hỏi về việc lấy tên máy chủ vì đó là phương pháp duy nhất tôi có thể tìm thấy trên internet và có vẻ như nó không còn được áp dụng nữa (như bạn đã nói, tra cứu tên máy chủ là một kẻ giết người hiệu suất).
Michael Hampton avatar
lá cờ cz
@Ronaldo Không hẳn. Ngay cả Google cũng không có giải pháp nào tốt hơn trong tài liệu của họ về [xác minh Googlebot](https://developers.google.com/search/docs/advanced/crawling/verifying-googlebot). Việc tra cứu mất thời gian nhưng không cần thực hiện đối với bất kỳ yêu cầu nào không có Googlebot trong chuỗi Tác nhân người dùng. Và tôi không thực sự quan tâm đến việc khiến bot phải chờ đợi.
Ronaldo avatar
lá cờ br
Tôi hiểu rồi. Vì vậy, ý tưởng là kiểm tra xem có Googlebot trong chuỗi Tác nhân người dùng hay không và chỉ sau đó kiểm tra tên máy chủ.
Ronaldo avatar
lá cờ br
Xin chào, Micheal Hampton. Tôi đã học cách bỏ qua quy tắc nếu quy tắc đó không khớp với tiêu chí (nếu Tác nhân người dùng không phải là google), bây giờ tôi cần biết cách lấy tên máy chủ từ IP của yêu cầu. Bạn có thể cho tôi một số manh mối về tập lệnh Lua mà bạn đã đề cập không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.