따라서 인터넷에서 http (80) 및 https (443) 포트를 제외한 모든 포트에 대한 모든 트래픽을 삭제하고 국가 x (내 어디에서나 다른 모든 포트의 트래픽 만 허용하는 스크립트)를 찾고 있습니다. 사례 국가 x는 미국입니다).
모든 국가의 모든 IP를 추가하고 싶지는 않습니다. 국가의 IP를 허용 한 다음 외부 세계의 거의 모든 다른 트래픽을 차단하고 싶습니다. 우리나라 이외의 어느 누구도 ssh, ftp, smtp, ect에 액세스 할 수 없습니다. 나 자신 외에. 이것이 바뀌면 접근 할 때 특별한 경우를 추가 할 것입니다.
사이드 노트
ip 테이블을 사용하여 국가별로 ip 를 금지 하는 스크립트가 포함 된 질문을 찾았 지만 추가 삽입이 필요하다는 것을 알아야합니다.
최상의 답변으로 표시된 스크립트는 해당 IP의 모든 트래픽을 차단합니다. 80 및 443을 제외한 모든 포트에 대한 액세스를 차단하고 싶습니다.
최신 정보
다음 규칙에 따라
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP
그것을 수정하고 다음과 같은 일을 할 수 있을까요?
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
나는 이것이 중국의 IP가 포트 80과 포트 443에 액세스 할 수 있다고 가정하고 나머지는 삭제합니다. 이 가정이 맞습니까? 그렇지 않다면 왜 안됩니까?
업데이트 2
혼란스러워서 우분투 버전이 --dport
속성을 좋아하지 않는다는 것을 알았습니다 . 따라서 Ubuntu 14 이상을 실행하는 사람들을 사용하는 대신 (적어도 일부 컴퓨터에는 Ubuntu 14.04, 14.10 및 15.04 만 설치되어 있어야 함)-p PORT_NUMBER_OR_NAME
그렇게 보일 것입니다
iptables -A OUTPUT -m geoip --dst-cc CN -p 443 -j ACCEPT
또는 들어오는 트래픽
iptables -A INPUT -m geoip --src-cc CN -p 443 -j ACCEPT