![입력부터 특정 포트까지 특정 범위를 제외한 모든 IP 차단 [중복]](https://linux55.com/image/35747/%EC%9E%85%EB%A0%A5%EB%B6%80%ED%84%B0%20%ED%8A%B9%EC%A0%95%20%ED%8F%AC%ED%8A%B8%EA%B9%8C%EC%A7%80%20%ED%8A%B9%EC%A0%95%20%EB%B2%94%EC%9C%84%EB%A5%BC%20%EC%A0%9C%EC%99%B8%ED%95%9C%20%EB%AA%A8%EB%93%A0%20IP%20%EC%B0%A8%EB%8B%A8%20%5B%EC%A4%91%EB%B3%B5%5D.png)
CentOS 7 웹 서버에서 특정 IP 주소 목록을 제외한 모든 IP 주소의 성공적인 http 또는 https 요청을 차단하도록 방화벽을 어떻게 구성합니까?
IP 제한을 사용할 수 있다는 것을 알고 있지만 httpd.conf
IP를 제한하려면 어떻게 방화벽을 설정해야 합니까? 무슨 문서? 나는 그것을 사용합니까 firewall-cmd
? 어떤 구문?
나는 여기에 배치된 하나 이상의 풍부한 규칙을 만드는 것이 포함된다고 생각합니다.문서. 하지만 나는 이 일을 제대로 하고 있는지 확인하고 싶다. 예를 들어, 모든 사람의 모든 http/s 요청을 거부하는 규칙이 있습니까? 그러면 각 특정 IP에 대한 http/s 요청을 승인하는 데 또 다른 규칙이 필요합니까? 이 규칙은 http/s 제공을 위한 것입니까, 아니면 포트 443을 위한 것입니까? 아니면 어떤 조합인가요? 거절과 수락을 기록해 보는 것은 어떨까요?
답변1
FirewallD가 마음에 안들어서 예전 iptables 서비스로 교체했는데,
난 이걸 할거야,
새로운 체인을 만들어서 부르자
ALLOW_TO_HTTP
iptables -N ALLOW_TO_HTTP
그런 다음 체인에 허용하려는 모든 IP 주소를 추가하세요.
iptable -I ALLOW_TO_HTTP -j ACCEPT -s 1.2.3.4
그런 다음 위 체인을 가리키는 INPUT 테이블에 행을 추가하여 포트 80 및 443에 새 연결을 설정합니다.
iptables -I INPUT -p tcp -m multiport --dports 80,443 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ALLOW_TO_HTTP
위 규칙은 포트 443 및 80의 모든 새 연결을 ALLOW_TO_HTTP 체인으로 리디렉션하고 IP가 일치하면 연결이 허용됩니다.
모범 사례를 위해서는 세 번째 규칙을 넣을 올바른 행을 찾아야 합니다. 왜냐하면 이 규칙이 iptables의 첫 번째 규칙이 되는 것을 원하지 않기 때문입니다. 규칙을 삽입하려는 행을 지정하여 이를 수행할 수 있습니다.
iptables -I INPUT 4 ...
그러면 4행에 규칙이 삽입됩니다.
다음 명령을 사용하여 규칙 줄 번호를 나열할 수 있습니다.
iptables -nvL --line-numbers