[WebLogic] 접근 허용 아이피 설정
1. Overview
Security Filter를 이용하면, 접근 제한 규칙을 활용하여 인스턴스 접근 제한을 둘 수 있다.
2. Descriptions
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
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~79
와141~254
아이피도 허용이 되는 설정이다.
3. netmask 계산 방법
-
netmask 계산 방법은 어디서나 통용된다.
-
netmask bit는 1과 1 사이에 0이 올 수 없다.
- 즉 1이 연속되어야 하고, 0이 오면 그 뒤로 1이 다시는 올 수 없다.
1111 11...
isOK
1101 11...
isINVALID
- “(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개 라는 뜻
- ex)
- 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