1. 개요

Security Filter를 이용하면, 접근 제한 규칙을 활용하여 인스턴스 접근 제한을 둘 수 있다.

2. 설명

2.1 Security Filter 적용

(1). Console - Domain - Security - Filter

  • Connection Filter: weblogic.security.net.ConnectionFilterImpl

  • Connection Filter Rules:

    1
    2
    
    192.168.56.2 192.168.56.1 8001 allow
    \* 192.168.56.1 8001 deny
    

Security-Filter_1

Connection Filter는 1줄에 1개의 Rule만 작성하며, 클라이언트가 접속하면, 맨위부터 1개의 Rule씩 적용한다.

Syntax: [client ip] [wls ip] [wls port] [action] [protocol; optional]

  • protocol 을 작성하지 않으면, http/t3/iiop/t3s/https 등 모두 적용된다.

2.2 적용 예시

(1). 적은 수의 허용 IP

  • WLS : 192.168.56.2:7001

  • 허용할 접속 Client IP : 172.16.4.80 ~ 81

  • 허용할 프로토콜 : http

  • 허용할 IP가 2개로 설정 수가 적다. 간단하게 아래와 같이 적용한다.

    1
    2
    3
    
    172.16.4.80 192.168.56.2 7001 allow http
    172.16.4.81 192.168.56.2 7001 allow http
    * 192.168.56.2 7001 deny
    

(2). 많은 수의 허용 IP

  • WLS : 192.168.56.2:7001

  • 허용할 접속 Client IP : 172.16.4.80 ~ 140

  • 허용할 프로토콜 : http

  • 허용할 IP가 많으므로, 일부 대역을 통째로 허용한다. netmask 를 활용한다.

    1
    2
    
    172.16.4.0/32 192.168.56.2 7001 allow http
    * 192.168.56.2 7001 deny
    

    172.16.4.140 은 2진수로 10101100.00010000.00000100.10001100 이다.

    netmask는 허용할 IP 개수를 지정하는 옵션이고, 172.16.4.X 를 허용하기로 하였으므로 254개를 통쨰로 해줄 수 있다.

    즉 netmask 는 255.255.255.255 (/32) 로, 11111111.11111111.11111111.11111111를 지정한다.

    물론 이러한 설정은, 80~140 뿐만 아니라 1~79141~254 아이피도 허용이 되는 설정이다.

3. netmask 계산 방법

  • netmask 계산 방법은 어디서나 통용된다.

  • netmask bit는 1과 1 사이에 0이 올 수 없다.

    • 즉 1이 연속되어야 하고, 0이 오면 그 뒤로 1이 다시는 올 수 없다.
    • 1111 11... is OK
    • 1101 11... is INVALID
    • “(2). 많은 수의 허용 IP” 예시를 보면, 결국 모든 범위 IP를 허용했다. 이 부분을 해소하려면, 172.16.4.1~79 는 deny 하고, 80~140은 allow 하고, 그 외는 모두 deny 하면 해결된다.

  • netmask 를 255.255.255.255 으로 표시할 수도, integer로 표시할 수도 있다.
    • ex) 255.255.255.255 is /32
    • 1이 32개 라는 뜻

  • netmask bit가 작으면 작을 수록 허용하는 IP 대역이 넓어진다.
    • 192.168.56.0/24 라는 설정은, 192.168.56.X 대역에 netmask 24bit 를 AND 계산한다는 것이다.
    • 24bit는 11111111.11111111.11111111.00000000 이다. 뒤 00000000 bit만큼 IP 허용 수가 많다.

  • 다른 예시로 설명을 해보자면, 192.168.56.0/28 이라는 설정은, 192.168.56.X 대역에 netmask 28 bit를 AND 계산한다는 것.
    • 11111111.11111111.11111111.11110000과 접속하는 Client IP를 AND 계산해보면 15개의 IP만 접근할 수 있다. (192.168.56.0은 제외하여 16-1 = 15개)

4. netmask 계산 하면서 정리한 내용

  • targetAddress : 192.168.56.0

  • netmask : 255.255.255.252 (11111111.11111111.11111111.11111100; 4개 host 가능)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    192.168.56.0    -> 11000000.10101000.00111000.00000000 -> netmask와 AND 계산 결과 : 192.168.56.0 (ok)
      
    192.168.56.1    -> 11000000.10101000.00111000.00000001 -> netmask와 AND 계산 결과 : 192.168.56.0 (ok)
      
    192.168.56.2    -> 11000000.10101000.00111000.00000010 -> netmask와 AND 계산 결과 : 192.168.56.0 (ok)
      
    192.168.56.3    -> 11000000.10101000.00111000.00000011 -> netmask와 AND 계산 결과 : 192.168.56.0 (ok)
      
    192.168.56.4    -> 11000000.10101000.00111000.00000100 -> netmask와 AND 계산하면 192.168.56.4가 나온다, targetAddress와 다르니 fail
    

  • targetAddress : 172.16.4.0

  • netmask : 255.255.255.248 (11111111.11111111.11111111.11111000; 8개 host 가능)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    172.16.4.0 생략
    172.16.4.1 생략
    172.16.4.2 생략
    172.16.4.3 생략
    172.16.4.4 생략
    172.16.4.5 생략
    172.16.4.6 생략
      
    172.16.4.7      -> 10101100.00010000.00000100.00000111 -> netmask와 AND 계산 결과 : 172.16.4.0 (ok)
      
    172.16.4.8      -> 10101100.00010000.00000100.00001000 -> netmask와 AND 계산하면 172.16.4.8 이 나온다, targetAddress와 다르니 fail