입력부터 특정 포트까지 특정 범위를 제외한 모든 IP 차단 [중복]

입력부터 특정 포트까지 특정 범위를 제외한 모든 IP 차단 [중복]

CentOS 7 웹 서버에서 특정 IP 주소 목록을 제외한 모든 IP 주소의 성공적인 http 또는 https 요청을 차단하도록 방화벽을 어떻게 구성합니까?

IP 제한을 사용할 수 있다는 것을 알고 있지만 httpd.confIP를 제한하려면 어떻게 방화벽을 설정해야 합니까? 무슨 문서? 나는 그것을 사용합니까 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

관련 정보