Câu trả lời:
Theo nguyên tắc chung, hãy sử dụng DỰ ÁN khi bạn muốn đầu kia biết cổng không thể truy cập được 'sử dụng DROP cho các kết nối đến máy chủ mà bạn không muốn mọi người nhìn thấy.
Thông thường, tất cả các quy tắc cho các kết nối bên trong mạng LAN của bạn nên sử dụng DỰ ÁN. Đối với Internet, ngoại trừ nhận dạng trên một số máy chủ nhất định, các kết nối từ Internet thường bị DROPPED.
Sử dụng DROP làm cho kết nối dường như là một địa chỉ IP không được sử dụng. Máy quét có thể chọn không tiếp tục quét các địa chỉ không xuất hiện. Cho rằng NAT có thể được sử dụng để chuyển hướng kết nối trên tường lửa, sự tồn tại của một dịch vụ nổi tiếng không nhất thiết chỉ ra sự tồn tại của máy chủ trên một địa chỉ.
Nhận dạng phải được thông qua hoặc từ chối trên bất kỳ địa chỉ nào cung cấp dịch vụ SMTP. Tuy nhiên, việc sử dụng các tra cứu Nhận dạng bằng cách phục vụ SMTP đã không được sử dụng. Có các giao thức trò chuyện cũng dựa trên một dịch vụ nhận dạng làm việc.
EDIT: Khi sử dụng quy tắc DROP: - Các gói UDP sẽ bị hủy và hành vi sẽ giống như kết nối với một cổng không có tường bao không có dịch vụ. - Các gói TCP sẽ trả về một ACK / RST giống như phản hồi mà một cổng mở không có dịch vụ trên đó sẽ đáp ứng. Một số bộ định tuyến sẽ phản hồi và ACK / RST thay mặt cho các máy chủ ngừng hoạt động.
Khi sử dụng quy tắc RE DỰ ÁN, gói ICMP được gửi cho biết cổng không khả dụng.
Sự khác biệt là mục tiêu RE DỰ ÁN gửi phản hồi từ chối tới nguồn, trong khi mục tiêu DROP không gửi gì.
Điều này có thể hữu ích, ví dụ cho dịch vụ nhận dạng. Nếu bạn sử dụng RE DỰ ÁN thì khách hàng không cần phải đợi đến thời gian chờ.
Thông tin thêm về điều này: http://www.linuxtopia.org/Linux_Firewall_iptables/x4550.html
Thông thường, bạn muốn bỏ qua các đầu dò từ những kẻ tấn công đến một số cổng nhất định, điều đó có nghĩa là bạn không muốn gửi lại 'kết nối bị từ chối'. 'Kết nối bị từ chối' có nghĩa là: 'có một máy chủ ở đây' và có thể cung cấp thêm thông tin, trong khi việc bỏ gói không đưa ra manh mối về các phiên bản phần mềm, lỗ hổng có thể hoặc thậm chí thực tế là máy chủ đang lắng nghe IP của bạn.
Trên đây là một trong những lý do chính để sử dụng DROP thay vì DỰ ÁN.
Tôi thấy rất nhiều câu trả lời mâu thuẫn ở đây và được cho đây là bài viết đầu tiên trong Google với các từ khóa phù hợp; đây là lời giải thích chính xác
Thật đơn giản:
DROP không làm gì cả với gói. Nó không được chuyển tiếp đến một máy chủ lưu trữ, nó không được trả lời. Trang chủ của IPtables nói rằng nó làm rơi gói tin xuống sàn, tức là nó không làm gì với gói.
ĐỐI TƯỢNG khác với DROP rằng nó sẽ gửi lại một gói, nhưng câu trả lời là nếu một máy chủ được đặt trên IP, nhưng không có cổng ở trạng thái nghe. IPtables sẽ gửi RST / ACK trong trường hợp TCP hoặc với UDP, cổng đích ICMP không thể truy cập được.
Nếu bạn đang cố gắng che giấu sự tồn tại của máy hoàn toàn, -j DROP
thì phù hợp. Ví dụ, bạn có thể sử dụng điều này để thực hiện một danh sách đen.
Nếu bạn đang cố gắng che giấu sự thật rằng một cổng đang mở, bạn nên bắt chước hành vi sẽ xảy ra nếu cổng đó không mở:
-p tcp -j REJECT --reject-with tcp-reset
-p udp -j REJECT --reject-with icmp-port-unreachable
Nếu một máy quét cổng thấy rằng một vài cổng đang bỏ các gói trong khi hầu hết đang từ chối chúng, thì nó có thể giả sử các gói bị rơi nằm trên các cổng được mở nhưng bị ẩn.
Mặc dù có rất nhiều câu trả lời đúng, chỉ hai xu của tôi:
Đây là một PoC FW.IDS-DROP-vs-RE DỰ ÁN ngắn của tôi đối với chủ đề liên quan đến các quy tắc cho hệ thống cấm (tường lửa, IDS, v.v.).
Ngắn gọn:
DROP
có thể được sử dụng cho những kẻ xâm nhập tái phạm, nếu cấm tất cả các cổng (vì vậy có vẻ như máy chủ đã ngừng hoạt động ở phía bên xâm nhập)REJECT --reject-with tcp-reset
là lựa chọn tốt nhất cho việc cấm nhiều cổng, bởi vì nó dường như hoạt động như một cổng đóng thực sựDROP
và REJECT
(không có tcp-reset
) sẽ cung cấp cho kẻ xâm nhập một "tín hiệu" rằng có thứ gì đó chặn ở đó (để có thể kích thích anh ta tiếp tục "tấn công" với hy vọng cung cấp dữ liệu cần thiết ở một điểm nào đó)Có, sử dụng DROP là vô nghĩa. Sử dụng DỰ ÁN.
Ngay cả khi quy tắc nói "DROP", hệ thống vẫn trả lời một SYN đến với TCP RST / ACK - đây là hành vi mặc định cho các cổng không có dịch vụ đang chạy. (tcpdump et al không đăng nhập này.)
Nếu một dịch vụ đang chạy, thì SYN được đáp ứng với TCP SYN / ACK.
Vì DROP không phản hồi như bình thường với TCP SYN / ACK, nhưng với RST / ACK thay vào đó, quy tắc DROP của bạn sẽ quảng cáo tường lửa của bạn và trình quét cổng sẽ biết rằng bạn đang tường lửa một cái gì đó và có thể tiếp tục cản trở bạn với hy vọng bắt tường lửa của bạn xuống.
Đây là nmap có thể báo cáo "đã lọc" thay vì "đóng" chẳng hạn:
$ nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-14 00:21 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 986 closed ports
PORT STATE SERVICE
21/tcp open ftp
53/tcp open domain
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds
$ iptables -I INPUT -p tcp --dport 1111 -j DROP
$ nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2018-03-14 00:21 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000060s latency).
Not shown: 986 closed ports
PORT STATE SERVICE
21/tcp open ftp
53/tcp open domain
80/tcp open http
1111/tcp filtered lmsocialserver
Nmap done: 1 IP address (1 host up) scanned in 1.60 seconds
$ iptables -D INPUT 1
Như vậy, thiết lập tường lửa "vô hình" duy nhất là một thiết bị trong đó một thiết bị chuyên dụng nằm giữa các thiết bị của bạn và chỉ chuyển tiếp có chọn lọc các cổng.
Nếu bạn thực sự muốn gây rối với các máy quét cơ bản, bạn có thể kết nối TcIT tcp, đặt Cửa sổ TCP thành 0 để không có dữ liệu nào được chuyển sau khi mở kết nối, bỏ qua các yêu cầu đóng kết nối, nghĩa là máy quét phải chờ cho thời gian chờ kết nối xảy ra, nếu nó muốn chắc chắn. Nhưng thật tầm thường khi một kẻ tấn công phát hiện ra điều này và khiến thời gian chờ của anh ta rất ngắn.
Tất cả mọi thứ được xem xét, có lẽ bạn tốt nhất chỉ nên sử dụng RE DỰ ÁN - hoặc đặt một thiết bị chuyển tiếp cổng chuyên dụng giữa máy chủ của bạn và internet.
Hoặc chỉ chạy các dịch vụ trên các máy phải đối mặt với internet mà không yêu cầu tường lửa.
Nói chung, DỰ ÁN là tốt nhất cho các máy chủ web, vì bất kỳ dịch vụ nào đang cố truy cập vào nó (có thể thường xuyên hơn không, bạn) sẽ nhanh chóng nhận được phản hồi và người dùng hoặc các dịch vụ khác sẽ không phải chờ đợi nếu có sự cố ngừng mạng.
DROP
sẽ đưa ra một SYN/ACK
? Tôi chưa bao giờ thấy điều này trên máy của tôi.
DROP
trả về a SYN/ACK
. Tôi cũng vậy, chưa bao giờ thấy hành vi này dưới bất kỳ phiên bản nào iptables
. Nếu bạn có một nguồn hỗ trợ cho yêu cầu của mình, sẽ hữu ích nhất khi xem nó; chắc chắn, các gói tin tôi vừa hoàn thành không hỗ trợ yêu cầu của bạn.