Vì vậy, tôi đã tìm kiếm trên mạng một tập lệnh sẽ thả tất cả lưu lượng truy cập vào tất cả các cổng ngoại trừ các cổng http (80) và https (443), sau đó chỉ cho phép lưu lượng truy cập trên tất cả các cổng khác từ quốc gia x (trong đó ở của tôi trường hợp quốc gia x là Mỹ).
Tôi không muốn thêm tất cả IP từ mọi quốc gia, tôi chỉ muốn cho phép ips từ quốc gia của mình sau đó chặn gần như tất cả lưu lượng truy cập khác từ thế giới bên ngoài. Không ai ngoài đất nước tôi có quyền truy cập vào ssh, ftp, smtp, ect. khác với bản thân mình Nếu điều này thay đổi, tôi sẽ thêm một trường hợp đặc biệt cho nó khi nó đến gần.
Lưu ý bên
Tôi phải lưu ý rằng tôi đã tìm thấy một câu hỏi có chứa tập lệnh cấm ip theo quốc gia bằng cách sử dụng các bảng ip nhưng đó là rất nhiều thao tác chèn thêm mà tôi sẽ phải làm.
Kịch bản được đánh dấu là câu trả lời hay nhất sẽ chặn tất cả lưu lượng truy cập từ các IP đó. Tôi chỉ muốn chặn truy cập vào tất cả các cổng ngoại trừ 80 và 443.
Cập nhật
Với quy tắc sau,
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
tôi có thể sửa đổi nó và làm một cái gì đó như
iptables -A OUTPUT -m geoip --dst-cc CN --dport 80 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN --dport 443 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
Tôi cho rằng điều này sẽ cho phép ips từ Trung Quốc truy cập vào cổng 80 và cổng 443 và nó sẽ bỏ phần còn lại. Giả định này có đúng không? Nếu không, tai sao không?
Cập nhật 2
Sau một vài lần loay hoay, tôi thấy rằng phiên bản Ubuntu của tôi không thích --dport
thuộc tính này. Vì vậy, thay vì sử dụng những người trong chúng tôi chạy Ubuntu 14+ (ít nhất, tôi chỉ cài đặt Ubuntu 14.04, 14.10 và 15.04 trên một số máy) sẽ phải sử dụng-p PORT_NUMBER_OR_NAME
Vì vậy, nó sẽ trông giống như
iptables -A OUTPUT -m geoip --dst-cc CN -p 443 -j ACCEPT
hoặc cho lưu lượng truy cập đến,
iptables -A INPUT -m geoip --src-cc CN -p 443 -j ACCEPT