IP 테이블은 모든 것을 허용하지만 하나의 IP에 대해서만 HTTP를 제한합니다.

IP 테이블은 모든 것을 허용하지만 하나의 IP에 대해서만 HTTP를 제한합니다.

내 고객이 뭔가 변경해야 할 때마다 두어 대의 웹 서버를 관리해 달라는 요청을 받습니다.

내가 원하는 것은 테스트하는 동안 다른 모든 연결은 모든 사람에게 공개되는 동안 일시적으로 나 자신에게만 HTTP제한 하는 것입니다.HTTPS

그들은 관리하지 않았지만 iptablessudo 액세스 권한이 있습니다.

중단하고 싶지 않은 다른 서비스가 많이 실행되고 있습니다. 되돌릴 수 있는 콘솔 액세스 권한이 없기 때문에 SSH 세션 연결을 끊고 싶지 않습니다.

이 2개의 명령만 실행하면 다른 포트가 작동하는 동안에 HTTP만 제한됩니까?HTTPS

iptables -I INPUT -p tcp -s 0.0.0.0/0 --match multiport --dport 80,443 -j DROP
iptables -I INPUT -p tcp -s 10.1.1.2 --match multiport --dport 80,443 -j ACCEPT

편집: 규칙의 순서를 변경했습니다.

답변1

예, 다른 모든 것을 허용 iptables --list하지 않는 한 에 있는 내용만 처리됩니다.DROP ALL

그러나 우리가 사용하는 경우 -I (Insert)규칙의 순서가 Drop먼저 와야 합니다. 즉, 규칙이 먼저 처리되는 DROP동안 규칙이 끝에 있게 됩니다 .ACCEPT

[root@hostname ~]# iptables -I INPUT -p tcp -s 0.0.0.0/0 --match multiport --dport 80,443 -j DROP            
[root@hostname ~]# iptables -I INPUT -p tcp -s 10.1.1.2 --match multiport --dport 80,443 -j ACCEPT

이제 실행iptables --list

[root@hostname ~]# iptables --list
Chain INPUT (policy ACCEPT)
target     prot    opt    source               destination
ACCEPT     tcp      --    10.1.1.2         anywhere            multiport dports http,https
DROP       tcp      --    anywhere         anywhere            multiport dports http,https

관련 정보