<보안 장비>
+ Firewall 장비 ~ 내부로는 제한, 외부로는 제한X
-> 서버로부터의 들어오는 트래픽에 대해서는 허용(<- 서비스를 받기 위해)
+ SDI( Stateful Deep Inspection)
; IP Header 정보를 가지고서만이 아니라 주소 정보, 프로토콜 #, 등으로 패킷 필터링
-> Port # 까지 필터링 요소로 하면 “포트 필터링”
<= Firewall의 기본 동작
Ref. Stateful; 내부에서 보낸 후 다시 들어 올 때, 나갈 때의 기록을 가장 먼저 보고 허용해주는 상태
※ UDP는 일방 통신이지만, TCP는 양방향 통신
df. Stateless; 보통 R, SW <- 상태 정보를 남기지 않는다.
Ex. 1번 포트에서 2번 포트로 나가는 것을 기록하지 않는다
<- MAC Table, Routing Table을 근거로 전송하기에
+ Route에서의 방화벽같이 제어: ACL (~ 외부로부터의 트래픽 제어 가능)
~ 과거, Firewall에 의한 제어가 없을 때의 기능
~ 운영체제 IOS에서 보안 기능인 ACL을 가진 것
+ Firewall 침투 발생; 우회 경로 or 열린 포트로 침투
-> IDS(~ 알림뿐); signature 기반(<- 잘 알려진 정보 기반으로)
Ref. signature 기반의 경우, 잘 알려지지 않은 공격에 대응 못하지만
anomaly 기반의 오류/오탐의 문제로 signature형의 탐지를 선호
+ IDS는 One-arm 방식에서 mirroring 기법으로 복제본을 받아서 탐지하기에
-> 문제 발생 이후 탐지로 방지 기능 X -> IPS(; 방지)
+ IPS(Intrusion Prevention System)는 (One-arm 방식이 아닌) 데이터 경로 상에,
라우터 밖에 위치하기도 또는 라우터 뒷단에 배치하기도 한다
+ 내부망 안에서 또한 보안의 필요성이 커지며 -> Zero-trust 환경
-> (Zero-trust 환경을 구성하기 위해) Micro Segmentation; 정책 부여를 위해 (내부망/외부망처럼) 경계가 있어야 함에, 그 경계를 최소화하는 방법
+ 3 Tier-Architecture
-> Presentation Tier - Application Tier(Logic Tier) - Data Tier
Ex. 3 Tier-Architecture의 Application Tier에 WAS(Web Application Server)
+ SDN(Software Defined Network)
: 급격한 네트워크 확장에 의한 빠른 대응에 시간적 어려움 존재
<- 네트워크 장비 추가 시, 초기 Configuration & Routing Table 작성 등을 장비 별로 각각 세팅해야 하기에
-> Management Plane(~ 설정) & Control Plane(~ MAC Table, Routing Table; 데이터 제어) 기능을 서버에서 보관하고 구성원에게 전송 <- 장비 별 각각 세팅 X
Ref. 처음 가상화 기술이 나올 때부터 시도했던 기술(~ 그만큼 필요하고 유용하다)
Ex. VMware NSX
; VMware’s NSX manager - transport node(<~ Host or Edge VM)
-> 모든 설정 데이터를 manager에서 보내고 node에서는 필요한 설정 데이터만 사용
(<- 분산 서비스)
※ 초창기 가상화가 서버에서 시작되었을 때, 네트워크 부분에 가상화 기술이 부족했다
-> Cisco에서 UCS 서버 출시; (IBM 등 서버 회사와) 차별화 전략을 써서 출시
-> Cisco & VMware 협력 -> 가상화에서 가상 스위치가 부족하여 -> Cisco Nexus 1000V 제품 출시 -> Nexus 1000V SW를 ESXi에 넣어서 사용하는 부분에서, VMware의 가상화 engr와 Cisco의 네트워크 engr의 협력 문제로 적용/활성화 실패
-> VMware NSX(<- 두 회사의 각 엔지니어들이 트레이드와 같이, 각 회나 내 인력으로 보충되며 나온 결과 -> 그에 따라, Cisco와 비슷한 기술 구현)
<VLAN & VxLAN & Tunneling>
+ VLAN <- Underlay vs Overlay Network
Why? VLAN이 Overlay Network(; 논리적으로 분리되어 있는 Net)
; VLAN의 경우, SW에서 물리적인 설정이 무조건 필요하기에
Ex. 가상화 환경에서, 두 개의 VM Host가 있는 경우
두 가상 스위치에서 VLAN 설정을 다 해주고 네트워크를 구성하여도
-> 중간의 알지 못 하는 물리적 SW가 존재하는 경우, (알지 못하는) SW의 (내가 설정한) VLAN이 활성화 되어 있지 않아(; 중간 SW의 물리적인 Configuration 필요)
-> VLAN을 사용한 정상적인 네트워크 구성 불가
=> 논리적인 설정으로만 Network를 구성하지 못하기에 Underlay Network이다.
Ref. 서로 다른 Network에서 통신에서는 Packet은 변하지 않고 L2 Header만 변경된다
-> Router를 통해서 다른 네트워크로 가면 L2H가 수신 측에서 제거되므로, VLAN 정보 전달 X
+ VxLAN ; Extend VLAN 의미로, L3 넘어서까지 확장
-> 물리적인 설정 없이 Network 구성 가능
- Overlay Network
<- Tunneling을 통해서
+ Tunneling (~ Encapsulation)
- 해당 네트워크에서 지원하지 않는 Protocol을 사용하여 네트워크를 통해 데이터 전송 방법
- 패킷을 캡슐화하여(; wrapping) 작동
Ex.(1). 이중 NAT 구성이 어려워서 tunneling으로 해결
Packet 1: | Data | SIP(PrivateIP) | DIP(PrivateIP) |
Packet 2: | Data | SIP(PrivateIP) | DIP(PrivateIP) | SIP(PublicIP) | DIP(PublicIP) |
: Packet 1으로는 Src IP & Dst IP가 사설 IP로 인해 통신이 안되므로
Packet 2와 같이, Src IP & Dst IP를 Public IP로 Encapsulation을 해서 통신
Ex.(2). 회사 합병 등으로 인해, 사설IP 대역 충돌 같은 경우 NAT로도 해결 안되며 tunneling 사용
<ACL>
+ ACL(Access Control-lists)
(1). Standard ACL: Packet Filtering(1-99)
- List에 IP Header의 소스 IP 정보만 확인해서 Filter
- 목적지에 가까운 곳에서 설정
(2). Extended ACL: Port Filtering(100-199)
- Source IP, Destination IP, Protocol, Port Number 까지 확인해서 Filter
- 출발지에 가까운 곳에서 설정
~ (1) vs (2): (1).SACL의 Packet Filtering으로 L3를 통한 통신 자체 Blocking -> 그래서, SACL 설정을 Dest에 가까운 Port(Interface)에 설정하는 것이 기본
df. (2).EACL는 라우팅 리소스 사용을 줄이기 위해, 동작하기 전에 Filtering하도록 Source에 가까운 Port(Interface)에 설정
Ex.(SACL).1.
access-list 10 permit any
access-list 10 deny 192.168.1.10 0.0.0.0
access-list 10 deny any <- 암묵적 Deny
->(ACL 처리 방식에 의해) 192.168.1.10으로부터 와도 Top-Down process & First Match로 인해 (최상위 정책인 permit any 적용으로) permit 된다
※ MAC Addr도 필터링 가능
+ access list #로 형식 인식해서 리스트 작성 Ex. 1~99: Standard ACL, 100~199: Extended ACL
+ ACL 처리 방식
(1). Top-Down process
~ 리스트가 작성된 순서대로 위에서 아래로 처리
(2). First Match -> 좁은 범위를 위쪽에 기록
~ 가장 먼저 매칭되는 조건만 적용 -> 넓은 범위는 아래, 좁은 범위는 위로
(3). Wildcard 사용해서 주소 범위 제한
Ex. any : 0.0.0.0 255.255.255.255
host : 192.168.1.10 0.0.0.0
※ Wildcard Mask (df. Subnet Mask)
IP: 192.168.1.10
SM: 255.255.255.0
~ SM’s “1” Bit : Network Part
SM’s “0” Bit : Host Part
WM: 0.0.0.255 ( <= 255.255.255.255 - SM(; 255.255.255.0) )
~ WM’s “0” Bit : Exactly Match Part
WM’s “1” Bit : Don’t Care Match Part
Ref. 라우터는 Default Routing을 해서라도 받은 데이터를 내보내려고 한다
(4). 암묵적 deny -> 특정 주소만 차단하고자 할 때는 맨 아래 permit any 조건을 추가해 줘야 함
=> Router & Firewall & 가상화 ACL 모두 기본 처리 방식은 동일
Ex.(SACL).2. 정상적인 SACL 설정 (df. “Ex.(SACL).1.”)
access-list 10 deny 192.168.1.10 0.0.0.0
access-list 10 permit any
(access-list 10 deny any)
+ SACL Test: A to Server DENY
(config)# access-list 10 deny 192.168.1.10 0.0.0.0
-> 제어 하고 싶은 Data(; A to Server)
S : A
D : Server
(1). 제어할 Data의 (Source로부터) 들어오는 interface에 ACL 적용
(config)# int f0/0
(config-if)# ip access-group 10 in
A to B & A to Server
~ 드랍되는 위치에서 Destination Unreachable이 온다 (Destination Unreachable도 종류가 많다) ~> Dst로 가는데 보안 장비가 있음을 알 수 있다 ~> ”보안 장비에서 ICMP를 차단한다”. <- 보안 장비가 있는 걸 알려버리기에 ICMP 차단해버린다.
(2). A to B 통신의 Destination Unreachable 문제 해결하기 위해
(config)# int f0/0
(config-if)# no ip access-group 10 in
(config-if)# int e0/0(or f1/0)
(config-if)# ip access-group 10 out
-> C to Server 차단되었다 <- {(config)# access-list 10 permit any} 설정하지 않아서
(config)# access-list 10 permit any
-> C-> Server 통신 가능
+ EACL Test: A to Web Server, tcp/80 DENY
(사전 설정)
int e1/0
no ip access-group 10 out
Server: Web & DNS( A record: 192.168.3.80 www.test.com )
> Router’s Terminal
(config)# access-list 100 deny tcp host 192.168.1.10 host 192.168.3.80 eq 80
(config)# access-list 100 permit ip any any <- TCP가 아니라 TCP/UDP ICMP를 아우르는 IP로 protocol 설정
( (config)# access-list 100 deny ip any any ); 암묵적 Deny
(config)# int f0/0
(config-if)# ip access-group 100 in
> A’s Terminal
# ping 192.168.3.80
# nslookup www.test.com
<NSLookup & Proxy>
+ nslookup
(1). 라운드 로빈 DNS
-> 순차적으로 보내서 트래픽 분산
-> 서버의 Health 체크 불가
(2). AnyCast Routing
<- 주소는 Unicast이지만 사용은 Multicast처럼
-> 라우터는 인터넷 상에 다수의 같은 IP의 서버들이 있겠지만 가장 빠른 길을 가진 가장 인접한 서버로 라우팅된다.
~ AnyCast Routing
~ Cache 서버
Ref. IX: ISP와 ISP간에 서로 정보 교환을 위해 만나는 접점부
-> IX(Internet exchange?)에 Cache 서버를 위치하게 구성 -> 서비스 환경 속도 증가 -> CDN Content Delivery Network
-> GSLB Global Service LoadBalancer
+ Proxy ; 대행자
-> 외부에게 내부의 정보 노출 시키지 않기위한 Proxy Server; Forward Proxy
<- Client를 보호하기 위해서
<- LB 중에서도 one-arm 방식과 동일한 구조
-> 외부로부터 내부 서버를 보호하기 위한 Proxy Server; Reverse Proxy
+ Port forwarding; 외부와 내부의 같은 서비스, 다른 Port 번호의 매칭 변환
<Data 암호화 방식(: 대칭키 & 비대칭키)>
+ Data 암호화 방식 2가지
(1). 대칭키 암호화
~ 암호화 알고리즘을 사용한다
~ 강력한 암호화 알고리즘 뿐만 아니라 키까지 더해서 암호화 한다.
: 암호화키 = 복호화키
~ 키 사용자가 늘어 날 수록, 키의 노출도가 커지는 단점
~ 대량의 데이터를 암호화하고 복호화하는데 편리하다는 장점
~ 프로세스에 리소스 많이 요구 -> 별도 칩셋 요구(; 데이터 전송 빨라진다)
-> 제대로 된 속도를 내려면 제대로된 암호화 방식을 사용해야한다.
Ex. DES, 3DES, …, AES(<-무선 환경에서 사용), etc.
(2). 비대칭키 암호화
- 데이터 암호화 키(: Public Key, 공개키) != 데이터 복호화 키(: Private Key, 개인키)
Ex.Situ. A – B
A, B 각각 Pri Key, Pub Key 생성
서로 각각 Pub Key 교환
A: B에게 전송 시, B’s Pub Key로 암호화해서 B로 전송
B: A에게 전송 시, A’s Pub Key로 암호화해서 A로 전송
But, A와 B 중간에 C가 자신의 Pub Key가 A’s인 것처럼 B에게 B’s 인 것처럼 A에게 전달
-> 중간자 공격을 당하면, 비대칭키 암호화 기능 X
-> A입장에서 진짜 B의 PubKey인지 확인 필요 -> CA(인증기관)을 통해 확인
-> CA에게 A는 본인의 공개키와 함께 인증 신청 -> CA에서 인증내용을 CA’s PriKey로 전자서명(자신의 PriKet로 암호화해서 전송)하여 인증서를 A에게 보낸다
-> 기업의 경우, 기업 내 별도 CA를 만들어서 운영하는 환경: PKI Public Key Infrastructure <- Open된 환경이 아니라 기업 내에서만 사용하게 된다
-> 비대칭키 암호화는 대량의 데이터 암호화는 어렵다
-> 소량의 Data 암호화 용이
=> 일반적으로 대칭키를 비대칭 암호화해서 안전하게 대칭키를 주고받고 그 대칭키로 서로 암호화 통신한다.
Ref. Application 단에서 암호화에서 SSL/TLS와 같은 비대칭 암호화 방식으로 대칭키 주고 받아서 Tunnel 형성 후, 대칭키 암호화로 데이터 통신 진행한다
<Subnetting(; FLSM & VLSM) & 방화벽 Security Zone 별 Priority>
+ Subnetting 두가지
- Network Part 중심 -> (1). FLSM 구현 시, 사용
- Host 부 중심 -> (2). VLSM 중심으로 할 때 사용
(1). FLSM(Fixed Length Subnet Mask)
Ex. 10.0.0.0/8
-> 10.1.10.0/24 & 10.1.11.0/24, etc.
; C class가 관리하기 용이해서 /24 Fixed Length를 사용해서 할당
-> 모든 네트워크의 크기(; 호스트의 수)가 동일
; 일반적으로 기업의 내부 망
(2). VLSM(Variable Length Subnet Mask)
; 보통 ISP에서 최대한 효율적으로 제한된 IP 자원을 할당하기 위해 사용
~ 실제 할당할 host의 수에 따라 Subnetting
+ 방화벽을 기준으로 3 방향의 Security Zones
-> Outside & Inside & DMZ
- DMZ에 ServerFarm ~ 대외 서비스를 하기 위한 Server 배치
Priority 지정하게 된다 -> ex. Inside Priority: 100, DMZ Priority: 50, Outside Priority: 0
낮은 쪽에서 높은 쪽으로 접근 불가능 <- 가는건 가능하지만 오는건 안된다(;외부에서 접근 X)
=> 외부에서 DMZ 통해서도 Inside 접근 불가능한 구조
<Network Packet Tracer 실습. 본사 & 지사(인천,부산,대구) Network 구성 & ACL>
+ Network Packet Tracer 실습. Pic_Topology & 요구사항 & 결과
Network Packet Tracer 실습. 참고 Scripts)
HQ & DQ Routing 시, 참고 할 것
access-list 100 permit tcp 192.168.1.0 0.0.0.255 host 192.168.1.241 eq 443
access-list 100 permit tcp 192.168.1.0 0.0.0.255 host 192.168.1.241 eq 80
access-list 100 permit udp 192.168.1.0 0.0.0.255 host 192.168.1.241 eq 53
access-list 100 deny ip any any
int f0/0
ip access-group 100 in
HQ
access-list 100 permit tcp any any eq 80 <- 정책 번호 10
access-list 100 permit tcp any any eq 443 <- 정책 번호 20
f0/1 (from DQ to HQ Port)
ip access-group 100 in
sh access-lists -> 앞에 정책별 앞에 번호가 있다
그래서 (1). 원하는 곳의 번호 지정해서 설정
or (2). 지우고 다시 작성
ip access-list extended 100
(config-ext-nacl)# 15 deny ip 192.168.1.160 0.0.0.31(; 대구지점 Net) 192.168.1.0 0.0.0.127(; PC용 Net) <- 대구 지점에서 본사PC Net 접근 X
(config-ext-nacl)# 16 deny … <- 대구 지점에서 서버 Net 접근 X
(config-ext-nacl)# 17 permit … <- 부산 지점에서 DNS(UDP/53) 서비스 허용