4 분 소요

image

# 공통 설정

en
conf t
no ip domain lookup
line c 0
logg syn
exec-timeout 0
exit
host
# IP Address

ASAv]
show friewall // firewall mode 확인
firewall transparent
show firewall // transparent 의 2계층 방화벽으로 설정됨을 확인할 수 있다.
no firewall transparent
show firewall // default로 router mode 인 3계층 확인
show int ip br // ASA를 사용하려면 인터페이스에 이름을 설정해야함.
int g0/0
no shut
nameif Inside // Inside 명령을 하면 ASA의 기본 Security level 값이 100으로 설정됨.
desc ##Inside_Network
ip add 200.1.1.254 255.255.255.0
security-level 100 //혹시 몰라서 한번더 선언
exit
int g0/1
no shut
nameif Outside
desc ##Outside_Network##
security-level 0
ip add 1.1.100.1 255.255.255.252
exit
int g0/2
no shut
nameif DMZ
desc ##DMZ_
security-level 50
ip add 100.1.1.254 255.255.255.0
end
wr

ISP]
int f0/1
no shut
ip add dhcp
exit
int f1/0
no shut
ip add 2.2.2.254 255.255.255.0
exit
int f0/0
no shut
ip add 1.1.100.6 255.255.255.252

CE]
int f0/1
no shut
ip add 1.1.100.5 255.255.255.252
exit
int f0/0
no shut
ip add 1.1.100.2 255.255.255.252

DMZ_SW]
en
conf t
no ip routing

DSW]
en
conf t
no ip routing
int f0/0
no shut
ip add 200.1.1.2 255.255.255.0
exit
ip-defaultgateway 200.1.1.254

# static routing & NAPT

ISP]
ip route 0.0.0.0 0.0.0.0 f0/1 10.0.0.1
ip route 1.1.100.0 255.255.255.252 f0/0 1.1.100.5
ip route 100.1.1.0 255.255.255.0 f0/0 1.1.100.5
ip route 200.1.1.0 255.255.255.0 f0/0 1.1.100.5
!
ip access-list standard DMZ_Inside
permit 100.1.1.0 0.0.0.255
permit 200.1.1.0 0.0.0.255
permit 2.2.2.0 0.0.0.255
permit 1.1.1.100 0.0.0.3
exit
ip nat inside source list DMZ_Inside int f0/1 overload
int f0/0
ip nat in
exit
int f1/0
ip nat in
exit
int f0/1
ip nat out

CE]
ip route 0.0.0.0 0.0.0.0 f0/1 1.1.100.6
ip route 100.1.1.0 255.255.255.0 f0/0 1.1.100.1
ip route 200.1.1.0 255.255.255.0 f0/0 1.1.100.1

ASAv]
route Outside 0 0 1.1.100.2 // 라우팅을할때 출구 인터페이스의 nameif와 디폴트 라우팅을 0 0 으로 약식할 수 있다.

DSW]
ip route 0.0.0.0 0.0.0.0 f0/0 200.1.1.254

# firewall 정책

policy-map global_policy // ASA가 정책하는 것은 global_policy에 모여있다.
class inspection_default
inspect icmp
telnet 200.1.1.0 255.255.255.0 Inside // 해당 명령어로 telnet 세팅을 해줌.
password cisco
telnet 100.1.1.0 255.255.255.0 DMZ // 이제 100.1.1.0/24 서버에서도 텔넷 접속이 가능.
password cisco
telnet 100.1.1.2 255.255.255.255 Outside // 그래도 CE에서는 접속할 수 없다. Securiy level이 0이기때문
password cisco

username cisco password cisco123
aaa authentication ssh console LOCAL
crypto key generate rsa modulus 1024
ssh 200.1.1.0 255.255.255.0 Inside
ssh 1.1.100.2 255.255.255.255 Outside // ASA의 와일드 카드 표기법 서브넷과 동일하다.
CE#ssh -l admin 1.1.100.1 // 접속이 됨. ssh는 security level과 상관없이 접속이 된다.

image

# ASA GUI Setting

ASAv]
int management 0/0
no shut
nameif Management
security-level 100
ip add 192.168.1.254 255.255.255.0
desc ##Management Interface##
앞선 실습 telnet, ssh를 clear명령어를 통해 삭제
clear configure telnet
clear configure ssh
ssh 192.168.1.0 255.255.255.0 Management // 삭제한건 그냥 정리를 위함

ManagementPC]
ASA를 제어하기 위한 운영체제가 필요함.
admin-781-150.bin 파일을 ManagementPC C://TFTP로 복사. // 경로에 한글이 끼면 안좋다.
세팅을 하고나면 Management PC가 TFTP의 Server역할을 한다.

ASAv]
copy tftp: flash
192.168.1.1 // (TFTP 서버 IP)
asdm-781-150.bin // 보낼 파일이름
asdm-781-150.bin // 가져올떄 이름 (그대로 가져옴)
dir all // 파일 확인
username admin password cisco // web으로 접근할때 해당 username과 password를 사용
asdm image flash:asdm-781-150.bin
http server enable // 명령어는 http지만 https로 접근됨
http 192.168.1.1 255.255.255.255 Management

ManagementPC]
https://192.168.1.254 접근 asdm lancher 설치.
GUI 환경으로 ASA를 설정할 수 있다.

image

# ASAv CLI로 방화벽 정책 설정 후 GUI 환경으로 관찰.

과제] Inside와 DMZ에서 Outside로의 접근은 Sec_leval에 의해 동작한다.
Outside에서 DMZ에 위치한 다음 서비스들에 대해 접근을 허용하시오.
- DNS 서버 (100.1.1.250)
- WEB 서버 (100.1.1.251)
- ICMP (100.1.1.0/24)

ASAv]
access-list OUT->IN extended permit udp any host 100.1.1.250 eq 53 // 넘버 ACL은 없다. 네임드만 존재
access-list OUT->IN extended permit tcp any host 100.1.1.251 eq 80
access-list OUT->IN extended permit icmp any 100.1.1.0 255.255.255.0
access-list OUT->IN deny ip any any
show run access-list 로 확인
access-group OUT->IN in interface Outside  
# Security level이 아닌 네트워크 대역을 object로 묶어서 방화벽 정책 설정

ASAv]
object network sails
subnet 200.1.1.0 255.255.255.0
exit
object network MGR
subnet 200.2.2.0 255.255.255.0
exit
object network DNS_SVR
host 100.1.1.250
exit
object network WEB_SVR
host 100.1.1.251
exit

=> Object로 관리하면 ACL의 갯수를 줄여서 관리할 수 있다.
# TCN-SYNFLOODING ATTACK

hping3 --rand-source www.kedu.edu -p 80 -S // -S: TCPsynflooding 공격, 서버쪽에서 포트를열고 상대 ack를 기다림. 
칼리에서 공격할때 포트번호를 여러맥주소로 여러명인척 했을때 상대는 포트를열고 ack를 기다린다.
이때 ack를하지않고 계속 열어놓은 port의 서버는 다운된다.

ASAv]
class-map HTTP_C
match port tcp eq 80
exit
policy-map Deny_Syn_Flood
class HTTP_C
set connection embryon in-conn-max 10 // port를 열어놓은 상태를 최대 10개까지만 
exit
exit
service-policy Deny_Syn_Flood interface Outside
칼리에서 다시 공격했을때 10개까지만 half open됨을 확인할 수 있다.
show service-policy interface Outside // embryonic conns 10개를 확인.
# DSW에서 방화벽을 우회하여 ISP로 텔넷 접속 시도

ASAv]
access-list INSIDE_IN line 4 extended deny tcp object-group HQ_IN_NET any eq 23 

ISP]
line vty 0 4
password cisco
exit

80번 포트로 방화벽을 우회하여 ISP에 Telnet 연결을 시도한다.

CE]
ip nat inside source static tcp 1.1.100.6 23 1.1.100.2 80 // 방화벽을 우회하려면 혼자선 못함.
int f0/1
ip nat inside
exit
int f0/0
ip nat outside

DSW]
telnet 1.1.100.2 80 // DSW에서 CE의 f0/0 1.1.100.2를 1.1.100.6 23으로 둔갑하여 텔넷 접속이 된다.

댓글남기기