내 고객이 뭔가 변경해야 할 때마다 두어 대의 웹 서버를 관리해 달라는 요청을 받습니다.
내가 원하는 것은 테스트하는 동안 다른 모든 연결은 모든 사람에게 공개되는 동안 일시적으로 나 자신에게만 HTTP
제한 하는 것입니다.HTTPS
그들은 관리하지 않았지만 iptables
sudo 액세스 권한이 있습니다.
중단하고 싶지 않은 다른 서비스가 많이 실행되고 있습니다. 되돌릴 수 있는 콘솔 액세스 권한이 없기 때문에 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