Có thể , nhưng không phải không có khó khăn lớn.
Bạn cần ipset
, và một máy chủ web script.
Trước tiên, bạn tạo một "IPset" để ghi lại địa chỉ IP của các máy tính đã thấy cổng bị khóa
ipset create AlreadySaw hash:ip timeout $timeout
Tiếp theo, bạn tạo bộ quy tắc.
Quy tắc đầu tiên nắm bắt lưu lượng truy cập từ các máy chủ không nằm trong IPset "HadSaw":
-t nat -A PREROUTING -m set ! --match-set AlreadySaw src -j REDIRECT
Bộ quy tắc thứ hai đặt lại thời gian chờ của các gói đi qua cổng:
-A FORWARD -m state --state ESTABLISHED -j Estab
-A Estab -j SET --add-set AlreadySaw src --exist
-A Estab -j ACCEPT
Cuối cùng, tạo một máy chủ web lắng nghe trên các cổng: 80 và: 443, sẽ hiển thị cho người dùng một 'cổng thông tin bị giam giữ' và khi người dùng thực hiện thành công một cái gì đó được hỏi bởi 'cổng bị giam giữ', sau đó sẽ thực hiện lệnh sau:
ipset add AlreadySaw %IP%
... Trong đó% IP% là Địa chỉ IP nguồn, được phát hiện bởi tập lệnh của 'cổng thông tin bị giam giữ'.
.
Phần khó, tất nhiên, là trong việc tạo ra kịch bản của 'cổng thông tin bị giam cầm'. Điều đó, tôi để lại cho bạn như bài tập về nhà :)