Tôi muốn chặn truy cập vào cổng 6379 trên máy chủ của mình, nhưng tôi vẫn muốn kết nối với nó trong nội bộ. Ứng dụng redis-server chạy trên cổng đó và tôi chỉ muốn kết nối với nó cục bộ (127.0.0.1). Tôi có thể làm cái này như thế nào?
Tôi muốn chặn truy cập vào cổng 6379 trên máy chủ của mình, nhưng tôi vẫn muốn kết nối với nó trong nội bộ. Ứng dụng redis-server chạy trên cổng đó và tôi chỉ muốn kết nối với nó cục bộ (127.0.0.1). Tôi có thể làm cái này như thế nào?
Câu trả lời:
Để làm điều này, bạn cần đảm bảo rằng các quy tắc IPTables của bạn được cấu hình đúng. Ubuntu thường để máy chủ của họ mở rộng theo mặc định, đó là lý do tại sao tôi vẫn không khuyến nghị họ sử dụng làm máy chủ trừ khi bạn nhận thức rõ về cách thực hiện việc này đúng cách.
Tôi tưởng tượng rằng bạn iptables -L -nv
trông giống như thế này, phải không?
# iptables -L -nv
Chain INPUT (policy ACCEPT 4M packets, 9M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 8M packets, 4M bytes)
pkts bytes target prot opt in out source destination
Nó trống rỗng và nó rộng mở. Ubuntu IPTables HowTo có thể sẽ giúp ích khá nhiều cho việc này. ( https://help.ubfox.com/community/IptablesHowTo )
Tôi khuyên bạn nên một cái gì đó như thế này, cho phép SSH trên bất kỳ giao diện nào và tcp 6379 bất kỳ giao diện nào nhưng giao diện bạn không muốn:
*filter
:INPUT DROP [92:16679]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [203:36556]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 6379 -j ACCEPT
-A INPUT -i lo -p udp -m udp --dport 6379 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
Sau đó, bạn sẽ lưu tệp này trong /etc/iptables.rules.
Rõ ràng, bất kỳ cổng nào khác mà bạn đặc biệt muốn mở nên được thêm vào.
Lưu ý: Tôi đã thêm 6379 dòng cụ thể cho rõ ràng. CHẤP NHẬN dưới cùng ngay trước khi CAM KẾT thực sự cho phép điều này bởi vì tất cả các kết nối loopback phải được cho phép trên hệ thống Linux để hoạt động đúng.
Bạn cũng sẽ muốn đặt các quy tắc trong tệp / etc / mạng / giao diện của mình, để đảm bảo rằng chúng được thêm vào khi giao diện xuất hiện và không muộn hơn trong quá trình khởi động. Thêm một cái gì đó như thế này được khuyến khích:
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
Chỉnh sửa: Để tải cấu hình này ban đầu, bạn cần chạy lệnh iptables-restore được tham chiếu ở trên:
iptables-restore < /etc/iptables.rules
Chà, tôi sẽ đề nghị sử dụng "tường lửa không phức tạp" (ufw), cũng được khuyến nghị bởi canonical. Đọc và viết iptables quá phức tạp đối với các tác vụ khóa cổng thỉnh thoảng.
Xem tại đây: https://wiki.ubfox.com/UncomplicatedFirewall
Cái gì đó như
iptables -A INPUT -s 0.0.0.0 -i eth0 --protocol tcp --dport 6379 -j DROP
Nên làm việc.