Nếu bạn chặn tất cả các kết nối đến, làm thế nào bạn vẫn có thể sử dụng internet?


22

Nếu ISP hoặc tường lửa của bạn chặn tất cả các kết nối đến, làm thế nào các máy chủ web vẫn có thể gửi dữ liệu của bạn đến trình duyệt của bạn? Bạn gửi yêu cầu (gửi đi) và máy chủ gửi dữ liệu (đến). Nếu bạn chặn tất cả các đến, làm thế nào máy chủ web có thể đáp ứng?

Còn về truyền phát video và trò chơi nhiều người chơi, nơi nó sử dụng UDP thì sao? UDP không có kết nối, do đó không có kết nối nào được thiết lập, vậy tường lửa hoặc ISP sẽ xử lý như thế nào?


2
Chặn tất cả các cuộc gọi điện thoại đến / Chuyển tiếp tất cả các cuộc gọi điện thoại đến thư thoại? Không ngăn bạn gọi cho ai đó.
WernerCD

Câu trả lời:


43

"Khối đến" có nghĩa là các kết nối mới đến bị chặn, nhưng lưu lượng truy cập được thiết lập được cho phép. Vì vậy, nếu các kết nối mới bên ngoài được cho phép, thì một nửa cuộc trò chuyện đến là ổn.

Tường lửa quản lý điều này bằng cách theo dõi trạng thái kết nối (tường lửa như vậy thường được gọi là "tường lửa trạng thái"). Nó nhìn thấy TCP TCP gửi đi và cho phép nó. Nó nhìn thấy một SYN / ACK đang đến và có thể xác minh rằng nó phù hợp với SYN ngoài mà nó đã thấy và cho phép điều đó xảy ra, v.v. Nếu nó cho phép bắt tay ba chiều (ví dụ: nó được cho phép theo quy tắc tường lửa), nó sẽ cho phép cuộc trò chuyện đó. Và khi nó kết thúc cuộc trò chuyện đó (FINs hoặc RST), nó sẽ đưa kết nối đó ra khỏi danh sách các gói tin cho phép.

UDP được thực hiện tương tự, mặc dù nó liên quan đến việc tường lửa ghi nhớ đủ để giả vờ rằng UDP có kết nối hoặc phiên (mà UDP không có).


1
Đối với UDP, do không có kết nối thực tế, tường lửa thường sẽ theo dõi IP đích và cổng của các gói UDP đi và nếu có một gói đến có cùng IP và cổng như nguồn thì nó sẽ cho rằng đó là phản hồi và cho phép trong.
WhiteWinterWolf

17

@gowenfawr có hình ảnh cấp cao xuống. Tuy nhiên, tôi nghĩ rằng tôi đã thêm một số chi tiết về cách "kết hợp" để theo dõi kết nối được thực hiện, vì nó có vẻ giống như phép thuật đối với người không quen.

Mỗi kết nối TCP có một số cổng của mỗi bên. Như hầu hết các kỹ thuật viên đều biết, máy chủ HTTP chạy trên cổng 80. Khi trình duyệt của bạn kết nối với máy chủ web, nó sẽ yêu cầu hệ điều hành tạo số cổng "cục bộ", đây sẽ là một thứ ngẫu nhiên như 29672 không được sử dụng bởi bất kỳ ai khác Kết nối TCP từ máy tính đó (và HĐH có thể thực hiện việc này vì nó biết về tất cả các kết nối TCP đang hoạt động). Sau đó, gói thiết lập TCP ban đầu sẽ được gửi từ ip của máy của bạn (IP_YOURS) và số cổng 29672 đến ip của máy chủ web (IP_CHBSERVER) và cổng số 80. Tại thời điểm đó, tường lửa trạng thái sẽ nói "aha, các gói trong tương lai từ cổng IP_CHBSERVER 80 đi tới IP_YOURS cổng 29672 không phải là kết nối mới, chúng là phản hồi cho kết nối hiện có và được phép ". Tường lửa nhà nước duy trì một bảng,


3
Điều này chủ yếu là chính xác, nhưng, vì một vài điểm nhỏ, số cổng dừng ở 65535 (chúng là số không dấu 16 bit) và ngoài thời gian chờ, các gói có cờ FIN hoặc RST được đặt cũng có thể báo hiệu rằng TCP kết nối hiện đang đóng
thiệu lại vào

@reirab Oh rất tiếc, vâng số cổng thất bại. Đóng lại, tất nhiên có thể kiểm tra các cờ TCP, nhưng phải tính đến việc mất gói có thể xảy ra và việc truyền lại các chuỗi gần đủ phức tạp đến mức tôi cho rằng hầu hết các tường lửa chỉ đơn giản là tái sử dụng mục nhập bảng ít được sử dụng gần đây nhất thay vì giữ theo dõi chính xác.

@atsby Bạn luôn có thể chỉnh sửa bài đăng của mình và thay thế số cổng bằng thứ gì đó phù hợp hơn?

Tất cả những điều này là thông tin tuyệt vời. Chỉ muốn thêm một điều vào các cổng được thảo luận bởi các ý kiến ​​trên. Chúng được gọi là 'cổng phù du' và phạm vi của chúng được xác định bởi kernel cụ thể cho từng HĐH. Trên Linux, bạn có thể nhận được những thứ đó bằng "cat / Proc / sys / net / ipv4 / ip_local_port_range" --- phạm vi mặc định là "32768 đến 61000"
Arul Selvan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.