Tôi có một số quy tắc iptables
chuyển hướng yêu cầu cổng 80 lên máy chủ ứng dụng của chúng tôi (GlassFish) tại cổng 8080 (và cả các cổng SSL nữa nhưng tôi đã bỏ chúng ra để đơn giản) .iptables chuyển hướng 80 đến 8080 nhưng chặn truy cập công cộng 8080
Trong khi những gì chúng tôi có hoạt động tốt (và cá nhân tôi không có vấn đề với nó) cổng 8080 cũng mở cửa cho thế giới bên ngoài nếu ai đó muốn chỉ định nó trong url. Nó đã được bắt buộc rằng cổng 8080 nên được đóng cửa từ truy cập từ thế giới bên ngoài và chỉ 80 được mở.
Tôi không muốn thay đổi người nghe trên máy chủ ứng dụng (như sử dụng cổng 80 điều này dường như cần quyền cao cho người dùng đang chạy máy chủ ứng dụng) và người nghe trên cổng 8080 cần biết IP nguồn gói tin khi ứng dụng kiểm tra các yêu cầu tới ứng dụng (nghĩa là chúng ta không thể thay đổi địa chỉ IP nguồn thành địa chỉ cục bộ).
Cấu hình iptables
hiện tại ở bên dưới. Có ai biết nếu có một cách để chặn 8080 từ internet công cộng trong khi giữ lại IP nguồn trong các gói chuyển hướng đến từ cổng 80?
Rất cám ơn trước.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# allow establishment of connections initialised by my outgoing packets
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# accept anything on localhost
iptables -A INPUT -i lo -j ACCEPT
################################################################
#individual ports tcp
################################################################
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
#drop everything else
iptables -A INPUT -j DROP
################################################################
#Redirection Rules
################################################################
# redirection rules (allowing forwarding from localhost)
iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080
# redirection http
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
bạn có xem xét chặn cổng 8080 và chuyển tiếp trên proxy proxy httpd không? –
Cảm ơn bạn đã đề xuất. Không có apache hoặc mod_proxy có sẵn trên máy chủ này hiện tại (mà tôi hiểu nó sẽ cần ..?), Nhưng rõ ràng nếu nó không thể với iptables - hoặc các gói Linux tiêu chuẩn - sau đó tôi đoán đó là một cái gì đó để xem xét. – lazidar