GRE TUNNELING
[ GRE Tunneling ]
- 암호 및 인증 기능 없음 → IPSec으로 보안 강화해야 함
- 물리적으로 서로 만나는 방향을 잡아줘야 함
- 논리적인 연결이지만 패킷이 움직이는 경로는 물리적인 경로를 따라가기 때문

< Router 설정 >
int tunnel [번호]
tunnel mode gre ip
tunnel source source [내 Router에서 나가는 Serial 번호]
tunnel destination [상대 Router 들어가는 쪽 인터페이스 IP]
<R1>
Router(config)#int tunnel 0
Router(config-if)#ip add 10.10.10.1 255.255.255.0
Router(config-if)#no sh
Router(config-if)#tunnel mode gre ip
Router(config-if)#tunnel source s0/0/1
Router(config-if)#tunnel destination 1.1.34.2
<R2>
Router(config)#int tunnel 0
Router(config-if)#ip add 10.10.10.2 255.255.255.0
Router(config-if)#no sh
Router(config-if)#tunnel mode gre ip
Router(config-if)#tunnel source s0/0/0
Router(config-if)#tunnel destination 1.1.23.1
- 생성한 Tunnel IP도 Routing(통신하려는 Protocol로) 포함
- 인터페이스 방향을 같은 방향으로 왔다 갔다 할 수 있게 source/destination 설정해야 함

ACL
Access Control List
[ ACL (Access Control List) ]
- Standard ACL : 출발지 Network/IP Address만 참조
- 1~99
- Extended ACL : 출발지/목적지 Network/IP Address 참조
- 100~199
[ In/Out ]
패킷이 흐르는 방향을 기준으로 (패킷의 이동 경로, 대상에서 기준점까지)
Router 기준으로 들어가면 In 나가면 Out

[ 설정 시 유의사항 ]
< 규칙 순서가 중요 >
- ACL은 위에서 아래로 순차적으로 규칙 설정을 수행
- 구체적인 규칙(호스트 단위처럼 하나하나에 주는 규칙)은 상단(처음에), 일반적인 네트워크 단위, Subnet 단위 규칙은 하단에(나중에)
- 호스트 단위, 네트워크 단위, Subnet 단위, 마지막 전체 순으로 구성해야 안정적으로 작동
< 암시적 차단 >
- 모든 ACL에는 마지막에 암시적으로 Deny any가 포함되어 있음
- permit 하지 않은 모든 트래픽은 기본적으로 차단됨
< 반대의 경우도 동일(하지만 반대의 경우 신중히 사용해야 함) >
- ACL 리스트를 구성할 때는 위부터 순서대로 읽기 때문에 생각 잘 하고 구성해야 함
- 호스트 단위, 네트워크 단위, Subnet 단위, 마지막 전체 순으로 구성해야 안정적으로 작동

STANDARD ACL
[ Standard ACL ]
- 단순히 특정 네트워크에서 들어오는 트래픽을 모두 차단하고 싶을 때 사용
ex) 192.168.10.0 네트워크에서 오는 트래픽은 차단하고, 나머지는 허용
Router(config)#access-list 1 deny 192.168.10.0 0.0.0.255
Router(config)#access-list 1 permit any
암묵적 deny로 하나가 차단되면 전체가 차단되기 때문에 전체 허용해 줘야 함
Router(config)#int fa0/1
Router(config-if)#ip access-group 1 out
Router(config)#access-list 2 deny host 192.168.10.2
Router(config)#access-list 1 permit any
Router(config)#int fa0/1
Router(config-if)#ip access-group 1 out
EXTENDED ACL
[ Extended ACL ]
- 특정 서비스나 목적지에 대한 세부적인 제어가 필요할 때 사용
ex) 192.168.10.0 네트워크에서 HTTP 트래픽 및 ICMP 차단하고, 다른 서비스는 허용
< web/ping 차단 >
Router(config)#access-list 101 deny tcp any 192.168.10.0 0.0.0.255 eq www
web 차단
Router(config)#access-list 101 deny icmp any 192.168.10.0 0.0.0.255 echo
ping 차단
Router(config)#access-list 101 permit ip any any
Router(config)#int fa0/0
Router(config-if)#ip access-group 101 out
< Access List 확인 명령어 >
Router(config)#do show access-list
Router(config)#access-list [100] [deny] [icmp] [any] host [192.168.20.23] [echo]
ACL 번호, 허용/차단, 프로토콜, 출발지, 목적지, 서비스/포트
목적지가 네트워크 대역일 경우 host를 빼고 네트워크 대역 + 와일드카드마스크로 적용
Router(config)#access-list 100 permit ip [any] [any]
출발지, 목적지
Router(config)#access-list 100 permit ip [any] [any]
Router(config)#int [fa0/0]
적용할 인터페이스
Router(config-if)#ip access-group [100] [out]
인터페이스에 해당 그룹 적용
[ 차단할 수 있는 프로토콜 종류들 ]
TCP, UDP, ICMP, IP, GRE, OSPF, EIGRP 등
< 프로토콜 허용 스크립트 예시 >
WEB(HTTP) 허용
access-list 100 permit tcp host 192.169.20.2 host 192.168.20.23 eq www
FTP 허용
access-list 100 permit tcp host 192.169.20.2 host 192.168.20.23 eq ftp
ICMP(ping) 허용
access-list 100 permit icmp 192.168.60.0 0.0.0.255 host 192.169.10.100 echo
< 다중 적용 예시 >
1. Server1 (192.168.20.23)
특정 네트워크와 호스트에서 Server1의 WEB(HTTP)과 FTP 트래픽만 허용
(허용 대상)
172.16.10.0/24 네트워크
192.168.30.0/24 네트워크
192.169.20.2 (특정 호스트)
access-list 100 permit tcp host 192.169.20.2 host 192.168.20.23 eq www
access-list 100 permit tcp host 192.169.20.2 host 192.168.20.23 eq ftp
access-list 100 permit tcp 172.16.10.0 0.0.0.255 host 192.168.20.23 eq www
access-list 100 permit tcp 172.16.10.0 0.0.0.255 host 192.168.20.23 eq ftp
access-list 100 permit tcp 192.168.30.0 0.0.0.255 host 192.168.20.23 eq www
access-list 100 permit tcp 192.168.30.0 0.0.0.255 host 192.168.20.23 eq ftp
access-list 100 deny ip any any
FTP = 보통 TCP Protocol 사용
DHCP = 보통 UDP Protocol 사용
<DHCP / FTP 차단 예시>
192.168.10.0/24 대역과 172.16.20.10, 20, 30 호스트에 대해 FTP/DHCP 차단
Router(config)# access-list 101 deny tcp 192.168.10.0 0.0.0.255 any eq 21
Router(config)# access-list 101 deny tcp 192.168.10.0 0.0.0.255 any eq 20
Router(config)# access-list 101 deny udp 192.168.10.0 0.0.0.255 any eq 67
Router(config)# access-list 101 deny udp 192.168.10.0 0.0.0.255 any eq 68
Router(config)# access-list 101 deny tcp host 172.16.20.10 any eq 21
Router(config)# access-list 101 deny tcp host 172.16.20.10 any eq 20
Router(config)# access-list 101 deny udp host 172.16.20.10 any eq 67
Router(config)# access-list 101 deny udp host 172.16.20.10 any eq 68
Router(config)# access-list 101 deny tcp host 172.16.20.20 any eq 21
Router(config)# access-list 101 deny tcp host 172.16.20.20 any eq 20
Router(config)# access-list 101 deny udp host 172.16.20.20 any eq 67
Router(config)# access-list 101 deny udp host 172.16.20.20 any eq 68
Router(config)# access-list 101 deny tcp host 172.16.20.30 any eq 21
Router(config)# access-list 101 deny tcp host 172.16.20.30 any eq 20
Router(config)# access-list 101 deny udp host 172.16.20.30 any eq 67
Router(config)# access-list 101 deny udp host 172.16.20.30 any eq 68
Router(config)# access-list 101 permit ip any any
이 후 인터페이스 방향에 맞게 In / Out 설정
IPSec
[ IPSec ]
- 네트워크에서 데이터 무결성, 기밀성, 인증을 제공하는 보안 프로토콜
- VPN에서 주로 사용되며,데이터 패킷을 암호화해 안전한 통신을 보장
- GRE Tunnel : 두 네트워크를 연결하는 가상의 터널
- 암호화를 제공하지 않기 때문에 IPsec을 통해 암호화 적용하여 보안 강화
IPSec 형성 조건
[ ISAKMP 협상 ]
- ISAKMP : 두 장치가 보안 터널을 설정하기 위한 첫 번째 단계
- ISAKMP 설정이 양쪽에 동일하게 설정되어 있어야만 협상 성공
✔ 협상 조건
-
- ISAKMP 정책 일치 (암호화 방식, 해시 방식, 인증 방식 등)
- Pre-shared Key (사전 공유 키) 동일하게 설정
[ IPsec 터널링 ]
- ISAKMP가 성공하면 IPsec 터널이 생성됨
- 양쪽 장치에 동일한 IPsec Transform-set이 설정되어 있어야 함
✔ IPsec 조건
-
- Transform-set (암호화/인증 설정) 동일
- Crypto Map 설정 동일
- ACL에서 트래픽 허용 조건 일치

GRE Tunneling 설정되어있는 상태
[ ACL 설정 ]
<R1>
Router(config)#access-list 100 permit gre host 1.1.23.1 host 1.1.34.2
Router(config)#access-list 100 permit gre 192.168.10.0 0.0.0.255 host 1.1.34.2
[ 암호화 정책 ]
#crypto isakmp policy [정책 ID]
#authentication pre-share
= 사전 공유 키를 사용하여 상대방 인증
#encryption 3des
= 데이터 암호화 방식
#hash md5
= 데이터 무결성 검증 방식
Router(config)#crypto isakmp policy 10
Router(config-isakmp)#authentication pre-share
Router(config-isakmp)#encryption 3des
Router(config-isakmp)#hash md5
[ IPsec 설정 ]
#crypto isakmp key [사전 공유 키] address [상대방 IP]
#crypto ipsec transform-set test esp-3des esp-md5-hmac
= 데이터 암호화 및 인증 설정 방식
Router(config)#crypto isakmp key 1234 address 1.1.34.2
Router(config)#crypto ipsec transform-set test esp-3des esp-md5-hmac
[ Crypto Map 설정 ]
#crypto map vpn-map 10 ipsec-isakmp
= 암호화 매핑 설정
#match address 100
= 동일한 ACL 번호 입력
#set peer [상대방 IP]
#set transform-set [test]
= 암호화 인증 방식
Router(config)#crypto map vpn-map 10 ipsec-isakmp
Router(config-crypto-map)#match address 100
Router(config-crypto-map)#set peer 1.1.34.2
Router(config-crypto-map)#set transform-set test
[ 암호화 적용 ]
해당 인터페이스에 vpn-map을 적용해 IPsec 보안 활성화
Router(config-crypto-map)#int s0/0/1
Router(config-if)#crypto map vpn-map
[ 확인 방법 ]

PC끼리 ping 돌리고 Simulation 해서
Type : IPSec 올라오면 IPsec이 성공적으로 작동
CISCO ASA 방화벽 및 ROUTER 설정
- Cisco ASA 방화벽 및 Router를 이용한 네트워크 방화벽 구성 및 NAT 설정
- Cisco ASA 방화벽을 이용한 기본 인터넷 연결 및 보안 구성을 위한 설정
- 방화벽
- 네트워크 보안을 강화하기 위한 강력한 솔루션
- 주로 기업 네트워크에서 내부 네트워크 보호, 트래픽 제어, 인터넷 접근 관리 등 수행
- security-level이 높은 곳에서 낮은 곳은 통신 허용, 낮은 곳에서 높은 곳으로는 통신 차단됨

- DHCP로 내부 Client에 IP 자동 할당
- NAT 설정으로 내부 IP → 외부 IP로 변환
- ACL 설정으로 ICMP 및 TCP 트래픽 허용
[ Router 설정 ]
<R1>
Router(config)# int fa0/1
Router(config-if)# ip add 1.1.1.1 255.255.255.0
→ 여기까지만 설정하면 방화벽이 트래픽을 차단하고 있기 때문에 R1과 PC1,2 통신 X
[ 방화벽(ASA) 설정 ]
< 내부 네트워크 : LAN >
nameif inside
내부 네트워크는 신뢰할 수 있는 구간이기 때문에 최고 보안 레벨 적용
192.168.1.1 = 내부 네트워크의 Gateway
ciscoasa(config)# int vl 1
ciscoasa(config-if)# ip add 192.168.1.1 255.255.255.0
ciscoasa(config-if)# nameif inside
ciscoasa(config-if)# security-level 100
(보안 레벨 100 설정)
< 외부 네트워크 : WAN >
nameif outside
외부 네트워크는 신뢰할 수 없는 구간이기 때문에 최저 보안 레벨 적용
1.1.1.2 = 외부 네트워크에 연결될 때 사용하는 공인 IP 주소
ciscoasa(config)# int vl 2
ciscoasa(config-if)# ip add 1.1.1.2 255.255.255.0
ciscoasa(config-if)# nameif outside
ciscoasa(config-if)# security-level 0
(보안 레벨 0 설정)
< VLAN 할당 >
e0/0을 VLAN2에 할당
(e0/1은 이미 기본 VLAN1에 속해 있기 때문에 별도 설정 X)
ciscoasa(config)# int e0/0
ciscoasa(config-if)# switchport access vl 2
< DHCP 및 DNS 설정 >
DHCP 설정으로 내부 네트워크에서 IP 주소 자동 할당
DHCP 범위 : 192.168.1.5 ~ 192.168.1.35 지정
DNS 서버로 Google DNS (8.8.8.8) 지정
ciscoasa(config)# dhcpd add 192.168.1.5-192.168.1.35 inside
ciscoasa(config)# dhcpd dns 8.8.8.8 interface inside
< 기본 Routing 설정 >
기본 Routing을 통해 인터넷 트래픽을 Router의 IP인 1.1.1.1로 전송
0.0.0.0 0.0.0.0 = Default Route (기본 경로)
1.1.1.1 = Next Hop IP Address (트래픽을 전달할 Gateway)
ciscoasa(config)# route outside 0.0.0.0 0.0.0.0 1.1.1.1
< NAT 설정 >
내부 IP 주소를 외부 IP 주소로 변환
dynamic interface는 외부 인터페이스의 IP 주소를 동적으로 할당받아 NAT 변환 수행
ciscoasa(config)# object network LAN
ciscoasa(config-network-object)# subnet 192.168.1.0 255.255.255.0
ciscoasa(config-network-object)# nat (inside,outside) dynamic interface
< ACL 설정 >
ACL을 통해 모든 ICMP/TCP 트래픽 허용
access-group으로 해당 ACL을 외부 인터페이스에 적용
ciscoasa(config)# access-list in_to_internet extended permit icmp any any
ciscoasa(config)# access-list in_to_internet extended permit tcp any any
ciscoasa(config)# access-group in_to_internet in interface outside
< PC DHCP 설정 >
외부 네트워크 PC IP DHCP 할당

[ 결과 ]
외부 네트워크에서 내부 네트워크로만 통신 됨 (내부 → 외부 X)

PORT-SECURITY
[ Port-Security ]
- 포트 보안 기능을 활성화해 네트워크 보안 강화
- Switch Port 도청 방지
- MAC Address 스캐닝 방지
- 불법 장치 연결 차단
- Spoofing, Sweeping 공격 방어

#switchport mode access
Port Security는 Access Port에서만 작동함
#switchport port-security
포트 보안 기능 활성화
#switchport port-security maximum [연결 가능한 최대 장치수]
초과 시 보안 위반 발생으로 자동으로 shutdown 됨
#switchport port-security violation shutdown
포트 보안 규칙 위반 시 해당 포트가 자동으로 sh 되도록 설정
[ 차단된 포트 복구 명령어 ]
Switch(config-if)# shutdown
Switch(config-if)# no shutdown
Switch(config)#interface fastEthernet 0/23
Switch(config-if)#switchport mode access
Switch(config-if)#switchport port-security
Switch(config-if)#switchport port-security maximum 2
Switch(config-if)#switchport port-security violation shutdown
[ 결과 ]

정상적으로 포트 연결되어 있음

ping 세 번째 돌리고 shutdown된 상태
해당 포트에 최대 2개의 장치만 연결 가능
3번째 장치가 연결되면 포트를 자동으로 Shutdown (차단)
등록된 MAC Address 이외 모두 차단
[ 등록된 PC MAC Address 확인 ]
Switch(config)#do show port-security address

초기 Mac Table (아무것도 없음)
[ PC MAC Address 확인 ]
C:\>ipconfig /all

Switch(config)#int fa0/23
Switch(config-if)#switchport mode access
Switch(config-if)#switchport port-security
Switch(config-if)#switchport port-security mac-address 0030.A30A.9B61
Switch(config-if)#switchport port-security violation shutdown
[ 결과 ]

17번 PC MAC 주소 등록되어 포트 정상 연결

추가 PC 연결 후 IP 입력하면 포트 차단됨
✔ 추가된 PC도 허용하고 싶다면?
maximum 수 조정 후 MAC 주소 등록, 포트 복구
Switch(config-if)#switchport port-security maximum 2
Switch(config-if)#switchport port-security mac-address 0002.1721.2265
Switch(config-if)#shutdown
Switch(config-if)#no shutdown

정상적으로 연결됨
'IT 엔지니어 > 네트워크' 카테고리의 다른 글
Routing protocol -2 (0) | 2025.05.01 |
---|---|
Routing Protocol (0) | 2025.04.30 |
VLAN (0) | 2025.04.29 |
VLAN / VTP (0) | 2025.04.28 |
Switch Looping (STP/RSTP) (0) | 2025.04.28 |