본문 바로가기
네트워크 수업/Docker

[실습] IOS_FW GNS3 23.05.10

by 6^6 2023. 5. 10.
728x90

 

 

[HQ]


HQ(config)#int f0/0
HQ(config-if)#ip add 100.1.1.254 255.255.255.0
HQ(config-if)#int f0/1
HQ(config-if)#ip add 1.1.100.1 255.255.255.252
HQ(config-if)#do ping 1.1.100.2

HQ(config-if)#router ospf 1
HQ(config-router)#net 100.1.1.254 0.0.0.0 area 0
HQ(config-router)#net 1.1.100.1 0.0.0.0 area 0

 



 

[IOS_FW]

IOS_FW(config)#int f0/0
IOS_FW(config-if)#ip add 1.1.100.2 255.255.255.252
IOS_FW(config-if)#int f0/1
IOS_FW(config-if)#ip add 1.1.100.5 255.255.255.252 
IOS_FW(config-if)#do ping 1.1.100.6

IOS_FW(config)#router ospf 1
IOS_FW(config-router)#net 1.1.100.2 0.0.0.0 area 0
IOS_FW(config-router)#net 1.1.100.5 0.0.0.0 area 0

 

 

 

 

[BB]


BB(config)#int f0/0
BB(config-if)#ip add 1.1.100.6 255.255.255.252
BB(config-if)#int f0/1
BB(config-if)#ip add 1.1.100.9 255.255.255.252
BB(config-if)#int f1/0
BB(config-if)#shut
BB(config-if)#mac-add 1234.1234.1122
BB(config-if)#no shut
BB(config-if)#ip add dhcp

BB(config-if)#do ping 1.1.100.10


BB(config-if)#router ospf 1
BB(config-router)#net 1.1.100.6 0.0.0.0 area 0
BB(config-router)#net 1.1.100.9 0.0.0.0 area 0

BB(config-router)#default-information originate 
BB(config-router)#ip route 0.0.0.0 0.0.0.0 f1/0 10.0.0.1


BB(config)#ip access-list standard INGRESS
BB(config-std-nacl)#permit 100.1.1.0 0.0.0.255
BB(config-std-nacl)#permit 200.1.1.0 0.0.0.255
BB(config-std-nacl)#exit
BB(config)#ip nat inside source list INGRESS int f1/0 overload

 

BB(config)#int f0/0
BB(config-if)#ip nat inside
BB(config-if)#int f0/1
BB(config-if)#ip nat inside
BB(config-if)#int f1/0
BB(config-if)#ip nat outside

 

[Branch]

Branch(config)#int f0/0
Branch(config-if)#ip add 1.1.100.10 255.255.255.252
Branch(config-if)#int f0/1
Branch(config-if)#ip add 200.1.1.254 255.255.255.0
Branch(config-if)#router ospf 1
Branch(config-router)#net 1.1.100.10 0.0.0.0 area 0
Branch(config-router)#net 200.1.1.254 0.0.0.0 area 0

 

 

 

 

 

 

 

 

 

 

 

<방화벽 설정>

1. ACL(Access Control List)

IOS_FW(config-router)#ip access-list extended OUT_IN
IOS_FW(config-ext-nacl)#permit udp any host 100.1.1.250 eq 53 
IOS_FW(config-ext-nacl)#permit tcp any host 100.1.1.250 eq 80
IOS_FW(config-ext-nacl)#deny ip any any log-input
IOS_FW(config-ext-nacl)#int f0/1
IOS_FW(config-if)#ip access-group OUT_IN in
*Mar  1 00:34:04.259: %SEC-6-IPACCESSLOGRP: list OUT_IN denied ospf 1.1.100.6 (FastEthernet0/1 cc03.0d7c.0000) -> 224.0.0.5, 1 packet 

 

OSPF가 끊겼다.

왜?

지금 access정책 말고는 끊기기때문에

그래서 OSPF거 까지 허용해주기 위해선

 

IOS_FW(config-if)#do show ip access-lists
Extended IP access list OUT->IN
    10 permit ospf host 1.1.100.6 any (232 matches)
    20 permit udp any host 100.1.1.250 eq domain
    30 permit tcp any host 100.1.1.250 eq www
    40 permit ip any any (108 matches)
Extended IP access list OUT_IN

<여기에다가 넣기>
    10 permit udp any host 100.1.1.250 eq domain
    20 permit tcp any host 100.1.1.250 eq www
    30 deny ip any any log-input (12 matches)

 

IOS_FW(config-if)#ip access-list extended OUT_IN
IOS_FW(config-ext-nacl)#5 permit ospf host 1.1.100.6 any  =>1.1.100.6에서 날아오는거니까

 

OSPF가 다시 맺어지는것을 확인할 수 있다.

 

 

win701에서 방화벽 막혀있어서 인터넷 안된다.

 

왜?

출발지가 랜덤포트고 목적지가 53번인 udp

리쿼시브 쿼리로 다시 출발지가 53번이고 목적지가 랜덤포트가 되는데 우리가 목적지 설정을 안해줬다. 그래서 인터넷이 안되는것.

session packet expect

나간 세션 허용해주는것(VMnet1→구름) = SPI

IOS_FW(config-ext-nacl)#22 permit tcp any 100.1.1.0 0.0.0.255 established 물고나간것을 허용

udp 는 established가 안먹는다. 그래서 tcp만 해당.

 

IOS_FW(config-ext-nacl)#no 30             
IOS_FW(config-ext-nacl)#30 deny ip any any

 

IOS_FW(config-ext-nacl)#do show ip access-list
Extended IP access list OUT->IN
    10 permit ospf host 1.1.100.6 any (232 matches)
    20 permit udp any host 100.1.1.250 eq domain
    30 permit tcp any host 100.1.1.250 eq www
    40 permit ip any any (108 matches)
Extended IP access list OUT_IN
    5 permit ospf host 1.1.100.6 any (70 matches)
    10 permit udp any host 100.1.1.250 eq domain
    20 permit tcp any host 100.1.1.250 eq www
    22 permit tcp any 100.1.1.0 0.0.0.255 established
    30 deny ip any any (12 matches)

 

win702

이름풀이도 안되고 google도 계속 안된다.

 

 

 

 

ip.addr == 100.1.1.1 && tcp.port == 23

 

 

[Branch 에서 telnet설정]

Branch(config-router)#line vty 0 4
Branch(config-line)#password cisco
Branch(config-line)#login

Branch(config-line)#enable password cisco

 

telnet은 접속되는것 확인 가능

 

STATEFUL packet inspection (3세대 기술)나가는거에 대한 돌아오는 경로가 보장이 된다.
나가는것에 대한 돌아오는 경로가 포트번호 그대로 양쪽다 물고 들어오는게 자동으로 적용된다.

 

2. RACL(Reflexive ACL)

 

다시 지우고
IOS_FW(config)#no ip access-list extended OUT_IN
IOS_FW(config)#int f0/1 
IOS_FW(config-if)#no ip access-group OUT_IN in     

 

안에서 바깥으로 빠져나가는 정책 넣고,

IOS_FW(config-if)#ip access-list extended RACL->OUT
IOS_FW(config-ext-nacl)#permit tcp any any reflect RACL_T  ==>출발지와 목적지가 어디든간에 tcp //win7에서 kt dns로 갈때 돌아올때 permit 이라는 뜻
IOS_FW(config-ext-nacl)#permit udp any any reflect RACL_T ==>  " udp 
IOS_FW(config-ext-nacl)#permit icmp any any reflect RACL_T ==> " icmp 
IOS_FW(config-ext-nacl)#permit ip any any  ==>그 이외에 모든 것 허용 //inside → outside 방화벽정책이 any any permit이어서 여기에도 그렇게 넣어준것.

 

바깥에서 안으로 들어가는 정책넣기.(RACL(Reflexive ACL)정책)

IOS_FW(config-ext-nacl)#ip access-list extended RACL->IN
IOS_FW(config-ext-nacl)#permit ospf host 1.1.100.6 any  
IOS_FW(config-ext-nacl)#permit udp any host 100.1.1.250 eq 53 
IOS_FW(config-ext-nacl)#permit tcp any host 100.1.1.250 eq 80 
IOS_FW(config-ext-nacl)#evaluate RACL_T ==> 들어오는 정책인데 이걸 기억했다가 적용시키겠다 아까는 RACL_T가 목적지였는데 이렇게 넣으면 출발지로 바뀜!(출발지, 목적지가 바뀜)
IOS_FW(config-ext-nacl)#exit

 

IOS_FW(config)#int f0/1
IOS_FW(config-if)#ip access-group RACL->OUT out
IOS_FW(config-if)#ip access-group RACL->IN in

 

 

이제 인터넷 됨.

 

do show ip access-list 하면 진짜...많이 나온다......이 정책은 그리 좋은건 아님 하지만 회사에서 쓰이는곳도 있다.

 

 

3. DACL(Dynamic ACL)

 

telnet으로 접근해서 맞으면 텔넷이 자동으 끊기고 들여보내준다.

이게 AAA보다 덜복잡해서 이걸 AAA대신에 쓴다.

 

 


HQ(config)#line vty 0 4
HQ(config-line)#password cisco
HQ(config-line)#login

 

IOS_FW(config)#do sho ip access
Extended IP access list OUT->IN
    10 permit ospf host 1.1.100.6 any
    20 permit udp any host 100.1.1.250 eq domain
    30 permit tcp any host 100.1.1.250 eq www
    40 permit ip any any
Extended IP access list RACL->IN
    10 permit ospf host 1.1.100.6 any
    20 permit udp any host 100.1.1.250 eq domain
    30 permit tcp any host 100.1.1.250 eq www
    40 evaluate RACL_T
Extended IP access list RACL->OUT
    10 permit tcp any any reflect RACL_T
    20 permit udp any any reflect RACL_T
    30 permit icmp any any reflect RACL_T
    40 permit ip any any
Reflexive IP access list RACL_T

너무 많다;;

 

IOS_FW#clear ip access-list counters  //counters 빼먹으면 access-list 다 지워짐

 

DLCL을 RACL->IN

40다음 41, 42에 넣자

IOS_FW(config)#ip access-list extended RACL->IN
IOS_FW(config-ext-nacl)#41 permit tcp any host 1.1.100.5 eq 23
IOS_FW(config-ext-nacl)#42 dynamic applythis permit tcp any host 1.1.100.1 eq 23

IOS_FW(config)#line vty 0 4
IOS_FW(config-line)#password cisco
IOS_FW(config-line)#login

IOS_FW(config-line)#autocommand access-enable host timeout 10

 

IOS_FW(config-line)#do show ip access-list
Extended IP access list OUT->IN
    10 permit ospf host 1.1.100.6 any
    20 permit udp any host 100.1.1.250 eq domain
    30 permit tcp any host 100.1.1.250 eq www
    40 permit ip any any
Extended IP access list RACL->IN
    10 permit ospf host 1.1.100.6 any
    20 permit udp any host 100.1.1.250 eq domain
    30 permit tcp any host 100.1.1.250 eq www
    40 evaluate RACL_T
    41 permit tcp any host 1.1.100.5 eq telnet
    42 Dynamic applythis permit tcp any host 1.1.100.1 eq telnet
Extended IP access list RACL->OUT
    10 permit tcp any any reflect RACL_T
    20 permit udp any any reflect RACL_T
    30 permit icmp any any reflect RACL_T
    40 permit ip any any
Reflexive IP access list RACL_T

 

 

 

702에서 telnet 1.1.100.5 하고

telnet 1.1.100.1하고

  ios_FW에서 sho ip access-list 하면

42아래에 뭐가 더 생긴다.

 

 

응용하면

telnet을 성공해서 인증을 받으면 인터넷이 되게 할수도있고, 더 많이 활용하는것은 락앤키이다.

 

락앤키를 간단히 다시 설명하면

41에서 성공하면 42에서 아이피를 넣어라

 

 

4. CBAC(Context-Based ACL)

SPI(3세대 방화벽 기술) : 네트워크 연결상태를 추적할 수 있는 패킷 검사. 세션을 인지. 다수의 포트를 사용하는 동적. FTP도 가능

 

다시 지워주기

IOS_FW(config-line)#int f0/1
IOS_FW(config-if)#no ip access-group RACL->IN in
IOS_FW(config-if)#no ip access-group RACL->OUT out
IOS_FW(config-if)#exit
IOS_FW(config)#no ip access-list extended RACL->IN
IOS_FW(config)#no ip access-list extended RACL->OUT

 

돌아올때의 프로토콜도 바로 적어준다. udp도 마음대로 줄수있다.(아까는 안됨) -- 매우 편함!

 

 

 


ip inspect name CBAC_T tcp
ip inspect name CBAC_T udp
ip inspect name CBAC_T icmp
☞ CBAC 이름을 정의하고, SPI 를 수행할 프로토콜을 지정. 해당 프로토콜의 트래픽에 대해서는 응답을 수신하기 위한 임시 ACL이 생성된다.

 

 

 



ip access-list extended OUT->IN
permit ospf host 1.1.100.6 any
permit udp any host 100.1.1.250 eq 53
permit tcp any host 100.1.1.250 eq 80
deny ip any any
exit

int f0/1
ip access-group OUT->IN in
ip inspect CBAC_T out //나갈때 기억했다가 들어올때 허용해라




701에서 인터넷 해보면 잘되는것 확인

 

win702

 

 

 

 

ISO_FW(config)#ip urlfilter exclusive-domain deny .moon681.shop
ISO_FW(config)#ip urlfilter exclusive-domain deny .kedu.edu
ISO_FW(config)#ip urlfilter allow-mode on
ISO_FW(config)#ip urlfilter audit-trail
ISO_FW(config)#ip inspect name CBAC_T http urlfilter

 

하고 cloud.moon681.shop 들어가보면

라우터로 허접하게지만 막아진다!

but, 싼게 비지떡이라고 http에선 못막는다

kedu.edu는 못막는다.(방화벽 안쪽에 있는거라)

 

 

728x90

'네트워크 수업 > Docker' 카테고리의 다른 글

클라우드서버 구축 nextcoud 23.05.11  (0) 2023.05.11
CLI(Command-line Interface) 23.05.11  (0) 2023.05.11
방화벽 23.05.10  (0) 2023.05.10
Docker(AWS) 23.05.09  (0) 2023.05.09
Docker 23.05.08  (0) 2023.05.08

댓글