Điểm:1

việc thêm quy tắc vào iptables có nghĩa là quy tắc đó có hiệu lực ngay lập tức không?

lá cờ in

tôi chạy sudo iptables -A INPUT -p tcp -m tcp --dport 2222 -j CHẤP NHẬN trong bash và sau đó cố gắng kết nối với máy đó qua một máy khác trên cùng mạng LAN/mạng con qua cổng 2222 bằng PuTTY và nó không hoạt động.

Có lẽ tôi cần phải khởi động lại iptables sau khi tôi thêm quy tắc để nó có hiệu lực? Nếu vậy làm thế nào tôi sẽ làm điều đó?

Đây là đầu ra của iptables -S:

-P CHẤP NHẬN ĐẦU VÀO
-P VỀ PHÍA TRƯỚC DROP
-P CHẤP NHẬN ĐẦU RA
-N DOCKER
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N DOCKER-NGƯỜI DÙNG
-A INPUT -p tcp -m tcp --dport 2222 -j CHẤP NHẬN
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A FORWARD -o docker0 -j DOCKER
-A VỀ PHÍA TRƯỚC -i docker0 ! -o docker0 -j CHẤP NHẬN
-A CHUYỂN ĐI -i docker0 -o docker0 -j CHẤP NHẬN
-A FORWARD -o br-4f5770ea8905 -m conntrack --ctstate LIÊN QUAN, THÀNH LẬP -j CHẤP NHẬN
-A PHÍA TRƯỚC -o br-4f5770ea8905 -j DOCKER
-A VỀ PHÍA TRƯỚC -i br-4f5770ea8905 ! -o br-4f5770ea8905 -j CHẤP NHẬN
-A VỀ PHÍA TRƯỚC -i br-4f5770ea8905 -o br-4f5770ea8905 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.2/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 3306 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.3/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 8080 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.3/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 443 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.7/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 6379 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.8/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 3306 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.10/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 3306 -j CHẤP NHẬN
-A DOCKER -d 172.18.0.3/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 80 -j CHẤP NHẬN
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-4f5770ea8905 ! -o br-4f5770ea8905 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-4f5770ea8905 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN

Đây là đầu ra của Sudo iptables --line-numbers -L INPUT:

ĐẦU VÀO chuỗi (chính sách CHẤP NHẬN)
num target prot opt ​​source đích
1 CHẤP NHẬN tcp -- mọi nơi mọi lúc mọi nơi tcp dpt:2222
lá cờ in
[Câu trả lời này từ vài năm trước](https://askubuntu.com/a/243180/1222991) vẫn còn hiệu lực cho đến ngày nay. Nói chung, nếu bạn muốn điều gì đó có hiệu lực ngay lập tức, `ufw` là công cụ bạn cần. Nó sẽ ghi lại thay đổi quy tắc thành `iptables` và lặng lẽ áp dụng trong nền.
Doug Smythies avatar
lá cờ gn
Có, các quy tắc iptables đã thêm sẽ có hiệu lực ngay lập tức. Chúng tôi cần bạn đăng toàn bộ bộ quy tắc iptables để có thể cố gắng trợ giúp thêm. Tuy nhiên, có thể bạn cần chèn, thay vì nối thêm, quy tắc đó ở giai đoạn trước.
lá cờ in
@DougSmythies - Tôi đã thêm toàn bộ bộ quy tắc iptables. Cảm ơn!
lá cờ in
@matigo - Tôi đã thử `Sudo ufw allow 2222` nhưng không thành công. Tôi sẽ đọc câu trả lời đó iab - phải đi làm vài việc lặt vặt. Cảm ơn!
Doug Smythies avatar
lá cờ gn
Bộ quy tắc iptables của bạn không phải là vấn đề. Bạn có chắc là máy tính đang nghe trên cổng 2222 không?
Điểm:6
lá cờ in

Có, việc thêm quy tắc thông qua lệnh iptables sẽ có hiệu lực ngay lập tức.

Có lẽ bạn muốn thêm quy tắc CHẤP NHẬN cho cổng vì bạn muốn ghi đè quy tắc chặn tất cả hoặc hầu hết các cổng.

Tuy nhiên, bạn đã thêm quy tắc với -MỘT sẽ nối thêm quy tắc vào bảng. Vì bạn đã có quy tắc chặn (sử dụng thứ gì đó như DROP hoặc REJECT), quy tắc mới sẽ được thêm vào sau đó, khiến quy tắc này không hiệu quả.

Nếu bạn muốn điều này hoạt động, bạn cần chèn quy tắc (-I #) trước quy tắc chặn hoặc thêm quy tắc vào đúng vị trí trong tệp cấu hình và tải lại tất cả các quy tắc. (Hoặc sử dụng một cái gì đó như ufw hoặc tường lửa để làm điều này cho bạn). Bạn có thể nhận được một danh sách các quy tắc được đánh số với iptables --line-numbers -L INPUT và chèn quy tắc mới của bạn tại hoặc trước vị trí của quy tắc chặn.

Nếu giả định rằng bạn có quy tắc chặn là sai, thì bạn cần quay lại và kiểm tra xem có bất kỳ thứ gì thậm chí có cổng đang mở hay không. Bạn có thể dùng netstat -nl | grep 2222 hoặc ss -nlt | grep 2222 và nếu nó không được liệt kê, thì không có gì nghe được trên cổng.

Từ đầu ra bạn đã thêm vào câu hỏi của mình, bảng INPUT về cơ bản trống (ngoại trừ quy tắc chấp nhận của bạn) và -P CHẤP NHẬN ĐẦU VÀO nói chấp nhận mọi thứ không khớp với quy tắc trong bảng đầu vào.

lá cờ in
Đây là đầu ra `Sudo iptables -S` của tôi: https://pastebin.com/4We0DhaP . Đối với tôi, không có gì giống như một quy tắc chặn nhưng tôi sợ phải nói rằng tôi thực sự không biết rõ về iptables..
lá cờ in
`sudo iptables --line-numbers -L INPUT` trả về https://pastebin.com/VcVveE8W
user10489 avatar
lá cờ in
Có vẻ như bạn không có bất kỳ quy tắc chặn nào đối với đầu vào và cổng mà bạn đang cố mở trong tường lửa đã được mở. Tôi nghĩ rằng bạn đang khắc phục vấn đề sai và thay vào đó bạn cần giải thích những gì bạn đang cố gắng thực hiện. Có lẽ không có gì đang lắng nghe trên cổ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.