[vyos dot1q subinterface 설정 예시]
vyos@vyos-rtr# set interfaces ethernet eth1 vif 100 description 'VLAN 100'
vyos@vyos-rtr# set interfaces ethernet eth1 vif 100 address '192.168.100.1/24'
https://support.vyos.io/en/kb/articles/vlan-sub-interfaces-802-1q-2
데이터 부분에 있는 str을 읽고 정규표현식 등을 활용하여 데이터 필터링(url 필터링, 확장자를 확인하고 데이터 필터링 가능)을 할 수 있다.
ex) 특정 사이트 막기, 이미지 파일 막기
ex) squid squidguard 를 이용한 url 필터링
dest blacklist {
domainlist blacklist/domains
urllist blaklist/urls
log accesses
}
https://m.blog.naver.com/cgidhtml/130013976166
standard(1~99) / extended(100~199)
실제로는 이름을 이용하여 정책명을 설정하는 경우가 대다수이다!
access-list 1 permit 1.1.1.0 0.0.0.255
-> 출발지 주소가 1.1.1.0 ~ 1.1.1.255 인 것을 허용하겠다
access-list 1 deny host 2.2.2.2 (= 2.2.2.2 0.0.0.0)
access-list 1 deny any
access-list 100 permit tcp any host 3.3.3.3 eq 80
src(출발지): any
dst(도착지): 3.3.3.3:80
access-list 100 deny icmp any host 3.3.3.3 echo
src(출발지): any
dst(도착지): 3.3.3.3로 들어오는 echo(= ping)
access-list 100 deny ip any host 4.4.4.4
src(출발지): any
dst(도착지): 4.4.4.4
ACL의 rule
1. top-down(위에서부터 아래로 차례차례 적용된다. 순서가 매우 중요하다)
2. acl에서 지정하지 않은 트래픽은 자동으로 차단된다.
보이지는 않지만 acl의 가장 아래에는 access-list X deny any 또는 access-list X deny ip any any가 생략되어있다.
3. 작성된 acl은 적용해주어야 활성화된다. 적용할 때에는 interface, vty(telnet, ssh와 같은 virtual terminal), NAT -> ip nat inside source list 1 int fa0/0 overload
DSW1, DSW2 slot에 NM-16ESW 추가
HQ에 NM-1FE-TX 추가
인터넷 -> VMnet10(NAT) 추가
본사서버 -> VMnet1 추가
본사 PC -> VMnet2 추가
지사 PC -> VMnet3 추가
시나리오
1. 우리 회사는 본사 지사 간 WAN으로 연결됨
2. 본사, 지사는 공인 주소 211.183.3.0/24를 사용할 수 있음
211.182.3.2은 ISP 주소, 211.183.3.3은 라우터 주소
211.183.3.1은 ISP와 우리 라우터 간 연결된 스위치 주소
본사 내부에 있는 서버의 주소 172.16.1.100은 외부 통신 시 211.183.3.100과 1:1로 정적 매핑된다 -> 정적 NAT
본사 내부 PC들은 211.183.3.101 하나를 이용하여 인터넷을 사용
지사 내부 PC들은 211.183.3.102 하나를 이용하여 인터넷을 사용
-> 동적 PAT
sol)
ip -> vlan -> 라우팅 -> NAT -> 필터링, 보안 순으로 구성하기
[HQ]
conf t
int fa0/0
ip add 211.183.3.3 255.255.255.0
no sh
int fa1/0
ip add 10.10.10.1 255.255.255.252
no sh
int fa0/1
no sh
int fa0/1.10
encap dot1q 10
ip add 172.16.1.2 255.255.255.0
int fa0/1.20
encap dot1q 20
ip add 172.16.2.2 255.255.255.0
do show ip int br
[BR]
conf t
int fa0/0
ip add 10.10.10.2 255.255.255.252
no sh
int fa0/1
ip add 192.168.116.2 255.255.255.0
no sh
[HQ]
! ISP로 ping
do ping 211.183.3.2
.!!!!
! BR로 ping
do ping 10.10.10.2
.!!!!
[DSW1]
! vlan 생성하기
vlan dat
vlan 10 name SERVER
vlan 20 name PC
exit
! trunk port 구성
conf t
int fa1/10
sw mode trunk
int fa1/15
sw mode trunk
do show int trunk
! access port 구성
int fa1/1
sw mode access
sw access vlan 10
do show vlan-sw br
[DSW2]
! vlan 생성하기
vlan dat
vlan 10 name SERVER
vlan 20 name PC
exit
! trunk port 구성
conf t
int fa1/15
sw mode trunk
! access port 구성
int fa1/2
sw mode access
sw access vlan 20
do show int trunk
do show vlan-sw br
라우팅:
라우터는 기본적으로 직접 연결된 네트워크에 대하여 통신이 가능하다.
떨어져 있는 네트워크에 대하여 해당 정보를 라우터에 입력이 되도록 해주어야 한다.
1. 정적 라우팅: 관리자 또는 사용자가 원격지 네트워크 정보를 직접 입력하는 방식. 단방향
네트워크 정보를 유지하기 위하여 불필요한 트래픽이 발생하지 않으므로 빠르다.
일반적인 구성 방법:
ip route 2.2.2.0 255.255.255.0 3.3.3.3
"2.2.2.0": 목적지 네트워크 주소, 목적지 IP 주소
"255.255.255.0": 서브넷 마스크(만약 1대만 지정하고 싶다면 255.255.255로 지정)
"3.3.3.3": 목적지 네트워크로 찾아기기 위해 선택할 다음(바로 옆) 라우터 주소
2. 동적 라우팅: 라우터간 라우팅 프로토콜을 이용하여 자신들이 알고있는 네트워크 정보를 서로에게 광고한다. 동일 목적지에 대하여 여러 경로를 전달 받는다면 헤딩 경로 중 가장 빠른 경로를 선택하고 해당 경로를 라우팅 테이블에 인스톨한다. 최신 경로를 계속해서 유지하려고 한다.
[HQ]
1. 인터넷과의 통신을 위한 default route
2. 지사 내부와의 통신을 위한 static route
[BR]
1. default route
동일 목적지에 대하여 서로 다른 방법으로 도달이 가능한 경우, 이에 대한 우선 순위가 있다.
connetctd: 0
static route: 1
routing protocol: 프로토콜 별로 다르다. 예를 들어 RIP 120, OSPF 110
숫자가 작을수록 우선 선택된다.
[HQ]
conf t
ip route 0.0.0.0 0.0.0.0 211.183.3.2
ISP: 211.183.3.2
[HQ]
ip route 192.168.116.0 255.255.255.0 10.10.10.2
목적지: 192.168.116.0
next-hop: 10.10.10.2
[BR]
conf t
ip route 0.0.0.0 0.0.0.0 10.10.10.1
목적지: 0.0.0.0
next-hop: 10.10.10.1
[HQ]
do ping 192.168.116.2 so 172.16.1.2
do ping 192.168.116.2 so 172.16.2.2
do ping 8.8.8.8
VXLAN은 레이어 3 네트워크 기반으로 레이어 2 연결을 확장하기 위해 터널링을 사용하여 데이터센터 연결을 제공하는 캡슐화 프로토콜입니다.
https://www.juniper.net/kr/ko/research-topics/what-is-vxlan.html
OpenStack은 풀링된 가상 리소스를 사용하여 프라이빗 및 퍼블릭 클라우드를 구축하고 관리하는 오픈소스 플랫폼입니다.
https://www.redhat.com/ko/openstack-35971
https://byline.network/2019/01/22-36/
https://www.prestonlee.com/wp-content/uploads/2012/05/Nova-Essex-Schema.png
[HQ]
ip nat pool HQSRV 211.183.3.100 211.183.3.100 prefix-length 24
pool name: HQSRV
start IP: 211.183.3.100
end IP: 211.183.3.100
ip nat inside so static 172.16.1.100 211.183.3.100
inside local IP(사설 IP): 172.16.1.100
inside global IP: 211.183.3.100
-> 172.16.1.100을 211.183.3.100으로 보내겠다.
int fa0/0
ip nat outside
int fa1/0
ip nat inside
int fa0/1.10
ip nat inside
int fa0/1.20
ip nat inside
[centos1]
ping www.google.com -c 3 -> 된다
[HQ]
do show ip nat tr
[PC]
211.183.3.100 접속
-> LEEGUNWOO 페이지 뜸
ssh로 211.183.3.100 접속 -> 된다
-> 지정된 IP만 접속할 수 있도록 설정해야함
[Virtual Network Editor]
VMnet2, VMnet3 -> DHCP 설정 해제
DHCP 서비스
서버 - DHCP - 클라이언트
클라이언트는 부팅 시 DHCP 프로토콜 내에 discover 메시지를 포함하여 목적지 MAC, FF:FF:FF:FF:FF:FF(L2 broadcast 주소)로 전송한다.
DHCP 시나리오
1. 본사 내부는 172.16.2.0/24에서 주소를 할당 받는다. 지사 내부는 192.168.116.0/24 할당 받는다.
2. 각 네트워크에서 1~100까지는 내부적으로 사용이 예약되어있어 실제로 클라이언트들이 제공 받는 주소는 172.16.1.101 ~ , 192.168.116.101 ~ 할당 받는다.
3. 임대 기간은 2시간으로 한다.
4. DNS 서버는 8.8.8.8
[HQ]
conf t
! 제외할 주소의 범위부터 설정
ip dhcp excluded-address 172.16.2.1 172.16.2.100
ip dhcp excluded-address 192.168.116.1 192.168.116.100
ip dhcp pool HQ
network 172.16.2.0 /24
default-router 172.16.2.2
lease 0 2
dns 8.8.8.8
ip dhcp pool BR
network 192.168.116.0 /24
default-router 192.168.116.2
lease 0 2
dns 8.8.8.8
[BR]
conf t
int fa0/1
ip helper-address 10.10.10.1
[centos3]
ping 172.16.1.100 -> 된다
172.16.1.100 접속 -> LEEGUNWOO 페이지 뜸
ping 172.16.2.101 -> 된다
ifconfig -> 192.168.116.101
[centos2]
ifconfig -> 172.16.2.101
[HQ]
end
conf t
! 설정된 ip nat pool 확인
do show run | in ip nat pool
!PC들을 위한 동적 PAT 구성
! 각 사설 네트워크에서 사용할 공인 주소를 풀로 작성
ip nat pool HQPC 211.183.3.101 211.183.3.101 pre 24 -> 본사 공인 주소
ip nat pool BRPC 211.183.3.102 211.183.3.102 pre 24 -> 지사 공인 주소
do show run | in ip nat pool
! 각각의 사설 주소를 ACL을 이용하여 분류하기
ip access-list standard hqadd
permit 172.16.2.0 0.0.0.255 -> 본사 사설 주소
ip access-list standard bradd
permit 192.168.116.0 0.0.0.255 -> 지사 사설 주소
exit
ip nat inside source list hqadd pool HQPC overload
-> hqadd(사설 주소) -> hqpc(공인 주소)로 변환
-> 여러 개의 사설 주소가 한 개의 공인 주소(211.183.3.101)를 공유
ip nat inside source list bradd pool BRPC overload
end
show ip nat translation
[centos3]
www.naver.com 접속 -> 된다
[HQ]
show ip nat translation | in 192.168.116.101
-> naver 트래픽이 보임
[centos2]
www.rapa.or.kr 접속 -> 된다
[HQ]
show ip nat translation | in 172.16.2.101
-> rapa 트래픽이 보임
aws와 같은 클라우드 환경에서의 기본 보안 사항
1. NACL: VPC 내에 여러 개의 서브넷을 생성하고, 각 서브넷에서 다른 서브넷으로의 통신 시 필터링이 필요한 경우 NACL을 적용한다. 주 목적은 서브넷 단위에서의 패킷 필터링이며 outbound 적용을 주로 적용한다.
2. security-group: 서브넷 단위가 아닌 인스턴스 단위로 보안 사항을 적용하고자 하는 경우.
주로 inbound에 대하여 적용하며, outbound는 기본적으로 permit any와 같이 설정되어있다.
3. IAM: 계정 관리
root 사용자 -> aws 모든 서비스에 대하여 접근이 가능하며 계정 추가, 삭제, 계정에 대한 권한 부여 등을 진행한다. 즉, linux의 superuser인 root와 동일하다고 생각하면 된다.
iam 사용자 -> 특정 aws root 계정 하에서 생성된 일반 사용자(db 관리, 개발, 운영자)
각 계정 별로 접근할 수 있는 서비스에 대하여 지정할 수 있으며, 해당 사용자가 로그인하는 방법도 선택할 수 있다. access key id, access key를 사용하여 자신의 개발 환경 또는 linux와 같은 환경에서 자신의 로컬 환경과 aws 환경을 연결하여 사용할 수 있다.
quiz1. 회사 내에 있는 IP 주소들이 NAT되지 않은 상태에서 외부로 빠져나가려고 한다면 이는 모두 차단해야한다. 172.16.1.0/24, 172.16.2.0/24, 192.168.116.0/24, 10.0.0.0/8
[HQ]
end
conf t
! 인터넷으로 빠져나갈 때 차단
access-list 101 deny ip 172.16.1.0 0.0.0.255 any
!172.16.1.0에서 any로 가는 것 차단
access-list 101 deny ip 172.16.2.0 0.0.0.255 any
!172.16.2.0에서 any로 가는 것 차단
access-list 101 deny ip 192.168.116.0 0.0.0.255 any
!192.168.116.0에서 any로 가는 것 차단
access-list 101 deny ip 10.0.0.0 0.255.255.255 any
!10.0.0.0에서 any로 가는 것 차단
int fa0/0
ip access-group 101 out
[centos1]
ping www.google.com -c 3
-> 안 된다
[centos2]
ping www.google.com -c 3
-> 안 된다
[centos3]
ping www.google.com -c 3
-> 안 된다
-> dns로 나가는 것 자체가 안 된다??
-> deny ip any any가 생략되어있기 때문!!
-> permit any any를 추가해야된다
[HQ]
exit
access-list 101 permit ip any any
[centos1, 2, 3]
www.naver.com 접속 -> 인터넷 접속 된다
[BR]
do ping 8.8.8.8
UUUUU -> 잘 차단되었음 -> destination unreachable
-> 가는 경로는 맞지만 차단되었음 -> 방화벽에 의해서
-> HQ가 방화벽에 의해 차단되었다고 unreachable이라고 대답해줌
quiz2.
fa0/1.10 아래에는 우리 회사 본사에 있는 웹서버가 위치하고 있다. 이 웹서버는 원격 관리를 위하여 ssh를 사용 중인데 아무나 접속해서는 안 된다. 오직 외부(인터넷)에 있는 211.183.3.1(퇴근한 서버 관리자의 집 IP 주소)과 본사 내부에 있는 172.16.2.100에서는 ssh 연결이 가능하다. 다른 곳으로부터의 ssh 연결은 모두 차단된다.
ssh를 제외한 나머지 모든 접근(172.16.1.0/24)은 허용된다. 이를 fa0/1.10에 적용하라.
참고)
access-list 112 permit tcp any host 2.2.2.2 eq 80
access-list 112 permit tcp host 3.3.3.3 host 4.4.4.4 eq 22
access-list 112 permit ip any any
윈도우에서 211.183.3.100으로 ssh, http, ping 연결 가능
172.16.1.101, 172.16.2.101에서는 211.183.3.100으로 ssh 연결 불가. 단, http/ping은 가능
172.16.1.101을 정적으로 172.16.1.100으로 IP 주소를 변경한 다음 ssh 연결 시도하면 가능!
access-list 104 permit tcp host 211.183.3.1 host 172.16.1.100 eq 22
access-list 104 permit tcp host 172.16.2.100 host 172.16.1.100 eq 22
access-list 104 deny tcp any host 172.16.1.100 eq 22
access-list 104 permit ip any any
int fa0/1.10
ip access-group 104 out
[centos2]
ping 172.16.1.100 -> 된다
curl http://172.16.1.100 -> 된다
ssh -l root 172.16.1.100 -> 안 된다
wired settings 변경
-> ip: 172.16.2.100
-> gw: 172.16.2.2
ifconfig ens32 -> 172.16.2.100
ssh -l root 172.16.1.100 -> 된다
외부(pc)에서 연결 test
putty로 ssh 연결 -> 된다
http://172.16.1.100
ping 172.16.1.100