Tocmat으로 운영중인 사이트로 가끔씩 이상한 접근을 하는 IP들이 있어서
그런 IP들만 제한을 하기 위한 방법이다.
Catalina Container (Engine, Host, Context) 에 사용할 수 있다.
나 같은 경우는 /conf/server.xml의 Host 단위로 설정해서 사용한다.
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="127.0.0.1"/>
그외에도 정규식으로도 적용이 가능하다.
아래 URL에서 다양한 샘플을 볼수 있다.
대표적인 샘플 몇개를 적어놓는다.
<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve" addConnectorPort="true" deny="127\.\d+\.\d+\.\d+;\d*|::1;\d*|0:0:0:0:0:0:0:1;\d*|.*;8443"/>
http://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Remote_Address_Valve
위의 예에서도 보듯이 포트도 제한이 가능하고 deny 대신에 allow를 사용하면 반대로 특정 아이피만 허용가능하다.
그리고, 여러개의 아이피를 사용할때 구분자를 콤마(,)로 얘기해주는 곳도 있는데,
내가 테스트했을 경우는 콤마(,)를 쓰면 제대로 동작을 안하다 위와같이 | 와 같은 구분자를 사용해줘야 한다.
아무래도 정규식을 사용하다보니 콤마(,)를 사용하면 제대로 인식을 못하는듯..ㅠㅠ