본문 바로가기

목록이 없습니다.

[Tomcat] 특정 아이피(IP)만 접속 허용(allow)하기

Server/Ubuntu
    반응형

     

     

    업무를 하다보면 테스트용으로 올려두고 다른 거래처나 외부 클라이언트에게 우리의 개발 진척도를 노출하기 싫은 경우가 있습니다. 이런 경우 개발서버는 올려두는데 아이피만 매핑시켜놓고 사용할 도메인은 바인딩하지 않고 또는 우리의 개발 도메인으로 묶어놓고 올려도 되지만 상황상 어쩔 수 없는 경우가 생길 수 있는데요, 그럴 때 아주 유용한 톰캣 설정 옵션입니다.

     


     

    설정은 간단합니다. tomcat을 설치한 디렉토리에 가서 conf 디렉토리로 이동합니다. 여기서는 버전은 명시하지 않고 명령어를 나열하겠습니다.

     

    Open Server.xml

    $ cd /apache-tomcat/conf/
    $ vi server.xml
    
    또는 바로 open
    
    $ vi /apache-tomcat/conf/server.xml

     

    설정 파일을 모아놓은 conf 디렉토리에 있는 server.xml을 열어줍니다. 그러면 비교적 긴 텍스트가 나오는데요 여기서 설정한 Host에 한줄만 추가해주면 됩니다.

     

    Modify Server.xml

    ...
    
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
    
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
    
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    
      </Host>
    
      <Host name="test.com" appBase="/was/apache-tomcat/webapps/TEST"  xmlValidation="false" xmlNamespaceAware="false" autoDeploy="false">
    
        <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="허용할IP|allowIP|127.0.0.1"/>
    
        <Context path="" docBase="" reloadable="true"/>
      </Host>
    
    ...
    

     

     

    RemoteAddrValve

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="허용할IP"/>

    한줄의 태그를 넣어주면 됩니다. allow의 파라미터값으로 허용할 ip를 넣어주면 되고 여러개를 넣고 싶은 경우 or 문자로 자주 쓰이는 '|'를 넣어서 분기해주시면 됩니다.

     

     

    ※ 주의사항

    혹시나 해당 서버가 API서버로 활용되거나 내부에서 서버 자신을 호출하는 로직이 있다거나 하는 경우 반드시 서버의 공인IP를 넣어주셔야 합니다. 서버의 설정은 사소하지만 그에 따른 영향력은 무지막지하니 조심하시기 바랍니다.

    반응형