2013-03-21 22 views
7

Tôi muốn xây dựng cổng internet/cổng bị khóa cổng js. Vì vậy, tôi có thể cho phép người dùng 'cấp phép' địa chỉ mac hoặc địa chỉ ip của mình nếu địa chỉ mac không thể sử dụng cho các điểm nóng wifiCổng internet cổng/cổng bị khóa của nút JS như được sử dụng trong các điểm truy cập WiFi công cộng

Vì vậy, điều tôi lưu ý là nút có thể có máy chủ dhcp và địa chỉ IP của nó là cửa ngõ. Vì vậy, nếu người dùng tải một trang trên trình duyệt web, nó sẽ cho họ một màn hình xác thực và sau đó họ có thể đăng nhập và sau đó gateway có thể định tuyến các gói của nó một cách chính xác.

Làm cách nào tôi có thể thực hiện bước ủy quyền với node.js để nếu họ không đăng nhập, hãy trình bày trang đăng nhập & nếu họ định tuyến gói đúng cách?

+2

Tôi sẽ sử dụng ứng dụng Node.js của bạn để quản lý khách hàng và giao diện web, nhưng sử dụng khả năng định tuyến của hệ thống của bạn. Dự án tuyệt vời. Tôi hy vọng có một giải pháp tốt cho việc này. – Brad

+0

Cảm ơn !. Tôi đã nghĩ đến việc sử dụng iptables để định tuyến và thay đổi quy tắc bằng nút nhưng tôi không chắc chắn cách chuyển hướng lưu lượng truy cập đến cổng bị khóa khi người dùng không có phiên – Akshat

+0

Một phương pháp là trả lời các truy vấn DNS với IP của cổng bị khóa của bạn. Đây là vấn đề mặc dù, như là khách hàng thường sẽ có một số mục DNS đã được lưu trữ. Ngoài ra, các máy khách có phần mềm độc hại thường chuyển hướng một số truy vấn DNS đến máy chủ cục bộ hoặc máy chủ DNS nước ngoài. Cuối cùng, máy khách có thể cấu hình máy chủ DNS của chính họ. Những gì bạn cần làm là chuyển hướng rõ ràng tất cả lưu lượng TCP trên cổng 80 đến máy chủ của bạn. Tôi không biết làm thế nào để làm điều đó. – Brad

Trả lời

3

Bạn cần vài phần để đặt cùng nhau.

# 1: http proxy - Nếu bạn có thể chạy máy chủ DHCP và gán địa chỉ IP, thì bạn có thể chạy và http proxy để nắm bắt tất cả lưu lượng truy cập internet.

# 2: Sau đó, bạn sẽ cần phải thêm logic xác thực vào proxy này, có thể kiểm tra cookie, gói ma thuật, mã thông báo hoặc nội dung xác minh quyền truy cập và cho phép chúng thông qua hoặc chuyển hướng đến trang đăng nhập.

node-http-proxy là một máy chủ proxy http nút rất phổ biến và linh hoạt mà bạn có thể dễ dàng add your own logic.

node-http-auth-proxy là một dự án như vậy với một example về cách xử lý xác thực được xây dựng trong.

Có một proxy cũng cho phép bạn tạo danh sách trắng/danh sách đen các trang web/IP, một cái gì đó bạn có thể muốn làm dựa trên đối tượng mục tiêu của bạn.

Các vấn đề liên quan