[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)
이름풀이도 안되고 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
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에서 인터넷 해보면 잘되는것 확인
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는 못막는다.(방화벽 안쪽에 있는거라)
'네트워크 수업 > 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 |
댓글