본문 바로가기

프로그래밍/JSP & Servlet

JSP단에서 아이피 주소 검사

보안 솔루션에서 웹 서버 앞단에서 IP 주소를 체크해서 접근 허용이나 거부를 할 수도 있겠지만,

이렇게 할 수 없는 경우에는 JSP단이나 Servlet단에서 처리를 해주어야 한다.


예를 들어 사내에서만 사용되는 웹 페이지를 사내 밖(외부)에 노출을 시켜서는 안되는 경우를 생긴다.

이럴 경우, 사내 IP 주소 대역폭을 체크해서 사내인 경우에는 접근을 허용하고, 그렇지 않은 외부로 부터의 접속인 경우 접속 거부를 하게 된다.


사내에서 사용하는 IP 대역폭이 192.168.1.1부터 192.168.2.220과 192.168.10.1부터 192.168.20.220이라고 가정을 하자.


우선, 시작 IP 주소와 종료 IP 주소를 숫자(Long)값으로 변경을 한다.

 IP 주소

 숫자

 192.168.1.1 ~ 192.168.2.220

 3232235777L ~ 3232236252L

 192.168.10.1 ~ 192.168.20.220

 3232238081L ~ 3232240860L


이렇게 IP 주소가 숫자로 변경된 값을 가지고 IP 주소 대역폭을 체크


<%

    String ipAddress = (String) request.getRemoteAddr();

    String[] ipAddressTemp = ipAddress.split("\\.");

    long ipAddressLong = (Long.parseLong(ipAddressTemp[0]) << 24) + (Long.parseLong(ipAddressTemp[1]) << 16)  + (Long.parseLong(ipAddressTemp[2]) << 8) +Long.parseLong(ipAddressTemp[3]);

    //

    if((ipAddressLong >= 3232235777L && ipAddressLong <= 3232236252L) //192.168.1.1 ~ 192.168.2.220

        || (ipAddressLong >= 3232238081L && ipAddressLong <= 3232240860L) //192.168.10.1 ~ 192.168.20.220

        ) {

%>

        <script type="text/javascript">

            alert("사내 접속이라 접근 허용");

        </script>

<%     

    } else {

%>

        <script type="text/javascript">

            alert("외부 접속이라 접근 금지");

        </script>

<%

        return;

    }

    //

    //접근 허용 업무 프로세스...

    //

%>



출처 : https://m.blog.naver.com/PostView.nhn?blogId=sabisung&logNo=220413685246&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F


1) Eclipse 에서 환경 변수 설정 다이얼로그 띄우기

Run > Run Confiugrations

 > 좌측 트리 메뉴에서 Apache Tomcat 서버 선택(E.g. Tomcat v7.0 Server at localhost)

 > (x) = Arguments 탭 메뉴 선택

 > VM Arguments (텍스트 박스 영역)


Arguments 텍스트 박스 가장 하단에 아래 코드를 추가하면 됩니다. 추가한 후 적용(Apply) 해주세요!!


"-Djava.net.preferIPv4Stack=true"

 

 

 

 

[Run Configurations 메뉴 선택 경로] 


 


만약 Eclipse를 사용하지 않는다면 톰캣의 Catalina 파일을 직접 수정하여 이를 변경할 수 있습니다.


2) 톰캣 서버 환경 설정 파일에서 직접 변경하기

 톰캣서버디렉토리경로(e.g. tomcat-7.0.50)\bin\catalina.bat 파일 열기

 파일에서 set JAVA_OPTS 로 검색하면 바로 아래 다음과 같이 2곳의 Java 환경 설정 정보가 있는데,



:noJuliConfig

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%


:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%




위의 2개의 설정 값에 각각 위의 파란색 박스 코드를 추가하여 줍니다.



:noJuliConfig

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Djava.net.preferIPv4Stack=true


:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% -Djava.net.preferIPv4Stack=true








다시 톰캣을 재실행 후, 테스트해보면 IPv4로 값이 나오는 것을 확인하실 수 있습니다.



출처: http://ooz.co.kr/138 [이러쿵저러쿵]