Tôi đang chạy Apache 2.4 trên Debian Bullseye trên mạng LAN phía sau bộ định tuyến DSL có địa chỉ IPv4 và IPv6 động. Máy chủ web của tôi hoạt động như một điểm cuối TLS và phục vụ nhiều trang khác nhau. Một số trang này phải có thể truy cập được trên internet rộng rãi, trong khi các trang khác chỉ có sẵn trên mạng LAN cục bộ của tôi. Truy cập từ internet hoạt động, nhưng tôi đang vật lộn với việc làm cho các trang chỉ có mạng LAN hoạt động. Tôi có những điều sau đây trong cấu hình Apache của mình:
<Location /localonlystuff>
Require local
Require ip 192.168.0.0/24
</Location>
Điều này cho phép truy cập từ máy chủ cục bộ (OK), từ tất cả các máy chủ trên phân đoạn mạng LAN của tôi bằng IPv4 (mạng riêng 192.168.0.0/24) và từ chối mọi truy cập từ internet. Tuy nhiên, nó không cho phép truy cập từ các máy chủ trong phân đoạn mạng LAN của tôi bằng IPv6. Vì không có phạm vi IPv6 nào được phép ở đây, Apache từ chối họ truy cập.
Về lý thuyết, tôi chỉ có thể thêm Yêu cầu ip 1234:5678:9012:3456::/64
vào tập tin hiển thị ở trên. Tuy nhiên, phạm vi IPv6 của tôi được ISP chỉ định động và thay đổi sau mỗi 24 giờ, do đó, một mục nhập tĩnh sẽ không chính xác trong thời gian dài. Tôi đã xem xét cho phép fe80::
, nhưng độ phân giải DNS trên mạng của tôi trỏ đến các tiền tố do ISP cung cấp, chứ không phải các địa chỉ liên kết cục bộ.
Tôi đã đọc tài liệu về mod_authz_host và xem phần trên Yêu cầu máy chủ
. Điều này có thể sẽ đạt được những gì tôi muốn (Bộ định tuyến của tôi thiết lập một miền cục bộ với tra cứu ngược), nhưng tôi e rằng phương pháp này sẽ phải chịu những thứ như đầu độc DNS Cache hoặc tấn công giả mạo, cho phép người ngoài vào mạng của tôi. Tôi muốn một giải pháp cục bộ cho máy chủ của mình, nơi tôi nói tương đương với Yêu cầu giao diện lan0
để cho phép tất cả khách hàng trên phạm vi mạng được định cấu hình trên lan0
tại thời điểm yêu cầu - tương tự như cách bạn có thể khiến Apache lắng nghe tất cả các địa chỉ IP trên một giao diện nhất định. Tuy nhiên, tôi chưa tìm thấy bất kỳ tài liệu nào cho mục đích này.
Có cách nào để đạt được chức năng này (chỉ cho phép các máy chủ lưu trữ từ mạng IPv6 cục bộ), có lẽ bằng các phương tiện khác ngoài mod_authn_host?
Tôi cũng sẵn sàng nhận các đề xuất khác ngoài việc dựa vào xác thực. Tôi có thể loay hoay với cấu hình Apache của mình, nhưng tôi khó có thể thực hiện bất kỳ thay đổi cấu hình nào đối với bộ định tuyến của mình. Ngoài ra, vui lòng cân nhắc rằng tôi chỉ có một SSL virutal_host duy nhất đang chạy chứng chỉ Let's Encrypt.