bxm's IT Story

Access-list (Final Version - Numbers, Names) 본문

Network/Firewall (KEDU)

Access-list (Final Version - Numbers, Names)

bxmsta9ram 2021. 8. 17. 14:13

액세스 리스트.pdf
0.39MB

 

## 오늘 날짜로 IP 대역 설정.

## 액세스 리스트 설명하기 전에 '재분배'까지 하라.

 

 

공통]

ena

conf t

no ip domain lookup

line c 0

  logg sy

  exec-timeout 0

  exit

line vty 0 4

  pass cisco

  exit

hostname ##

 

int s1/0

  no shut

 

  enc fram

  no fram inver

  clock rate 64000

  end

wr


R1]

conf t

int lo0

  ip add 17.17.1.1 255.255.255.0

 

int s1/0

  ip address 17.17.12.1 255.255.255.0

  fram map ip 17.17.12.2 102 br

  end

wr

 

R2]

conf t

int lo0

  ip add 17.17.2.2 255.255.255.0

 

int s1/0.12 m

  ip add 17.17.12.2 255.255.255.0

  fram map ip 17.17.12.1 201 br

  exit

 

int s1/0.23 m

  ip address 17.17.23.2 255.255.255.0

  fram map ip 17.17.23.3 203 br

  end

wr

 

R3]

conf t

int lo0

  ip add 17.17.3.3 255.255.255.0

 

int s1/0.23 m

  ip add 17.17.23.3 255.255.255.0

  fram map ip 17.17.23.2 302 br

  exit

 

int s1/0.34 p  

  ip add 17.17.34.3 255.255.255.0

  fram inter 304

  end

wr

 

R4]

conf t

int lo0

  ip add 17.17.4.4 255.255.255.0

 

int s1/0.34 p

  ip add 17.17.34.4 255.255.255.0

  fram inter 403

  end

wr


## Ping Teset ##

R1]

ping 17.17.12.2

R2]

ping 17.17.23.3

R3]

ping 17.17.34.4


## OSPF & EIGRP Routing Protocol ##

R1]

conf t

router ospf 17

  router-id 1.1.1.1

  network 17.17.1.1 0.0.0.0 area 0

  network 17.17.12.1 0.0.0.0 area 0

  exit

 

int lo0

  ip ospf net point-to-p

  exit

 

router ospf 17

  neighbor 17.17.12.2

  end

wr

## NBMA 구간이라서 Neighbor를 강제로 지정해줘야 한다.

 

R2]

conf t

router ospf 17

  router-id 2.2.2.2

  network 17.17.2.2 0.0.0.0 area 0

  network 17.17.12.2 0.0.0.0 area 0

  exit

 

int lo0

  ip os net point-to-p

 

router ospf 17

  neighbor 17.17.12.1

  exit

 

 

router eigrp 17

  eigrp router-id 2.2.2.2

  network 17.17.23.2 0.0.0.0

  ## 17.17.2.2 는 OSPF Network 소속이므로 EIGRP에 넣지 않는다.

 

  no auto

  passive-interface lo0

  end

wr


R3]

conf t

router eigrp 17

  eigrp router-id 3.3.3.3

  network 17.17.3.3 0.0.0.0

  network 17.17.23.3 0.0.0.0

  network 17.17.34.3 0.0.0.0

 

  no auto

  passive-interface lo0

  end

wr


R4]

conf t

router eigrp 17

  eigrp router-id 4.4.4.4

  network 17.17.4.4 0.0.0.0

  network 17.17.34.4 0.0.0.0

  no auto

  passive-interface lo0

  end

wr


## 원래는 R2가 DR이 되어야 한다. 재부팅 하면 되는데 귀찮 ㅎㅎ..

R1]

show ip ospf nei

R2]

show ip ospf nei

show ip eigrp nei

 

R3]

show ip eigrp nei

R4]

show ip eigrp nei


## 재분배 ##

R2]

conf t

router ospf 17

  redistribute eigrp 17 subnets

  exit

 

router eigrp 17

  redistribute ospf 17 metric 1544 2000 255 1 1500             ## (bandwidth delay rely .. )


R1]

show ip route

## 오른쪽 애들이 E2 경로도 보여야함




R1에 붙일 서버를 만들고 VMnet1 번 빼고 전부 삭제
R4에도 마찬가지로 VMnet4이 달린 서버 추가해서 연결

 

CentOS = VMnet1
Win701 = VMnet4

 


R1]

conf t

no int lo0

 

int f0/0

  no shut

  ip add 17.17.1.254 255.255.255.0

 

R4]

conf t

no int lo0

 

int f0/0

  no shut

  ip add 17.17.4.254 255.255.255.0


CentOS]

vi /etc/sysconfig/network-scripts/ifcfg-ens32

DNS는 시간이 없으므로 무시.

systemctl restart network

ping 17.17.1.254                   ## Gateway로 Ping Test

게이트웨이로 Ping이 잘 간다.
localhost로도 접속이 잘 된다.


Win701]

 

ping 17.17.4.254

게이트웨이로 Ping이 잘 간다.

 

[크롬] - [http://17.17.1.1]

## 안들어가질 것임!! 왜냐면 R1에서 OSPF에 게이트웨이 IP를 안 넣어줬기 때문임.

 

 

R1]

conf t

router ospf 17

  no network 17.17.1.1 0.0.0.0 area 0

  network 17.17.1.254 0.0.0.0 area 0

  end

wr

 

clear ip ospf pro

 

 

R4]

conf t

router eigrp 17

  no network 17.17.4.4 0.0.0.0

  network 17.17.4.254 0.0.0.0

  end

wr

 

clear ip eigrp nei

 

 

## R4에 붙은 Win701이 R1에 붙은 Apache Server에 접속이 가능하게 된다.




R3]

conf t

no int lo0

int f0/0

  no shut

  ip add 192.168.3.254 255.255.255.0

  end

wr

 

## numbers는 access-list 라는 명령어로 실행하며 (1~99, Standard)

## 대상 Network를 1개만 지정할 때 Standard로 지정한다.

## NAT를 돌릴 것임.

 

conf t

access-list 1 permit 192.168.3.0 0.0.0.255

ip nat inside source list 1 int s1/0.23 overload

 

int f0/0

  ip nat inside

  exit

 

int s1/0.23

  ip nat outside


Win702]

 

ping 192.168.3.254

게이트웨이로 Ping이 잘 간다.

 

[크롬] - [http://17.17.1.1]

잘 들어가진다.

 


## 프로젝트 문제에 보면은 R3은 사설, 나머지는 공인 IP임.

## Bogon Address (0.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)을 못들어 오게 막아보자.

## 경계 Router에서 표준 Access-list를 사용함.

 

R2]

conf t

access-list 2 deny 10.0.0.0 0.255.255.255

access-list 2 deny 172.16.0.0 0.15.255.255                      ## 제일 위에 올려져 있는 PDF 파일의 Bogon 주소 차단에

                                                                                Wildmask 15.255.255.255로 되어있는데 잘못된것임!!

access-list 2 deny 192.168.0.0 0.0.255.255

 

## 여기서 묵시적으로 deny any가 생략되어 있으므로 permit any를 해줘야함!!

## 그리고 Standard라서 Protocol 제어가 불가능함. 따라서 IP나 OSPF가 오지 않음. 그냥 Permit any임.

access-list 2 permit any

 

int s1/0.23

  ip access-group 2 in

  end

wr

 

show access-list

40번에 permit any가 나온다.

 

show ip eigrp nei


Win702]

## http://17.17.1.1을 바로 들어가보면 된다. 이건 버퍼에 있는 것임!

[크롬] - [설정] - [개인정보 및 보안] - [캐시 지우기]

 

## 계속 들어가진다 ...? ㅋㅋㅋㅋ 쌤 당황쓰

 


## Trouble Shooting ##

## [R3]의 Interface를 Capture 해보자. 출발지가 어딘지!

## 출발지가 17.17.23.3 이면 안막아지는게 맞고, 사설 IP면 막아지는게 맞음.

## NAT라서 23.3일 확률이 높음!!

## Win702]에서 Web 브라우저 새로고침!

 

17.17.23.3에서 오는 것으로 알아서 전부 다 열어줬음. 바로 아래의 명령어를 통해서 NAT를 해제하자 192.168 대역이 막히는 것을 볼 수 있음!! 

## 앗... 17.17.23.3이 출발지였다..!! 사설을 EIGRP로 광고한다는게 말이 안되므로

## NAT Inside에서 접근하는 것은 출발지를 알 수 없음. 사설인지 모름!! NAT를 풀어보자!!

 

R3] 

conf t

int s1/0.23

  no ip nat outside

  exit

 

int f0/0

  no ip nat inside

  end

wr

 

conf t

router eigrp 17

  network 192.168.3.254 0.0.0.0

  end

 

clear ip eigrp nei

 

 

Win702]

ping 192.168.3.254

 

[크롬] - [http://17.17.1.1]

## 3.3에서 오는 것을 막아버림.


R2]

show access-list

## 192.168.0.0 (33 matches)가 뜬다. 계속 늘어날 것임.

 

## 지금까지 본것을 토대로 사설의 Inside에서 날라오는 것은 못 막는다. 하지만 출발지 주소가 192.168 인 것은 막는다.


## Numbers access-list의 단점은 수정이 안되고, no access-list로 통째로 날려야함.

## 번호를 쓰면 Standard인지 Extended인지 구분을 할 수 있음. 하지만 Names를 쓰면 구분할 수 없음.

## 따라서 정의를 내려줘야 함.

 

## Names로 바꿔보기.

R2]

conf t

no access-list 2

 

## Names로 만들 때는 앞에 ip가 붙는다. 이름을 쓰기 때문에 번호로 구분할 수 없음. Standard인지 구분을 해줘야함!

## 단, Names ACL은 숫자나 특수문자로 시작하면 안된다.

 

ip access-list standard NO_BOGON

  deny 10.0.0.0 0.255.255.255

  deny 172.16.0.0 0.15.255.255

  deny 192.168.0.0 0.0.255.255

  permit any

  exit

 

int s1/0.23

  no ip access-group 2 in

  ip access-group NO_BOGON in

  end

wr

 

## 이렇게 해도 막아진다!!

 

 

## 얘는 수정이 가능하다!!

show ip access-list

## 앞에 일련번호를 안붙이면 10씩 증가한다.

 

conf t

ip access-list standard NO_BOGON

  no 10

  no 20

  end

wr

 

show ip access-list

## 앞에꺼 날아갔음!!

 

## 저장하고 R2만 껏다가 다시 재부팅하면

show ip access-list

## access-list number가 자동으로 재정렬 된다.

 

## 만약 방금 삭제한 것을 후회한다!! 그러면 다시 끼워 넣으면 된다. 10 이전에 넣으면 된다.

conf t

ip access-list standard NO_BOGON

  5 deny 10.0.0.0 0.255.255.255

  6 deny 172.16.0.0 0.15.255.255

  end

 

show ip access-list

## 다시 끼워넣어졌다!! Names는 방금까지 한 것을 토대로 수정이 가능하다라는 것을 알 수 있다!!

 

## 현재 5,6,10,20으로 되어있는데 저장을 한 뒤 R2만 껐다가 다시 켜면 재정렬이 된다!!

 

## Numbers(수정안됨, access-list로 시작)와 Names(수정가능, ip access-list로 시작)의 차이점은 여기까지!!

## Numbers보다 Names가 훨씬 좋음. Names의 장점은 사람이 쓰는 문자로 쓰기 때문에 직관적임(NO_BOGON)

    Numbers는 숫자로 되어있기 때문에, 설정한 사람을 제외하고는 무슨 용도로 사용하는지 알 수 없음.



## 지금까지 BOGON 주소 막는 방법을 알아 보았다. BOGON 주소 막는 것을 풀어보기!!

R2]

conf t

int s1/0.23

  no ip access-group NO_BOGON in

  end

wr

 

## 갑자기 R4가 얄밉고, R3는 인터넷이 가능하게 해보기!!

## 이러면 [출발지/목적지] 개념이 있어야함.

## 출발지(R4의 f0/0), 목적지(R1의 Server쪽)

 

## 확장은 100 이상이면 된다.

R2]

conf t

access-list 100 deny tcp 17.17.4.0 0.0.0.255 17.17.1.1 0.0.0.0 eq 80

end

wr

 

## Web : tcp

## 출발지 : 17.17.4.0 0.0.0.255

## 목적지 : 17.17.1.1 0.0.0.0  (Wild가 0.0.0.0 0 4개 붙이거나 앞에 host 붙이거나 똑같음)

## access-list 100 deny tcp 17.17.4.0 0.0.0.255 host 17.17.1.1 eq 80과 같다.)

17.17.4.1이 거부당하였음!!

 

show ip access-lists

10 deny tcp 17.17.4.0 0.0.0.255 host 17.17.1.1 eq www가 뜬다.



## 과제. Access-list 100번(Numbers)를 Names로 바꿔서 적용해보기 ##

R2]

conf t

no access-list 100

 

int s1/0.23

  no ip access-group 100 in

  exit

 

ip access-list extended R3_ONLY

  deny tcp 17.17.4.0 0.0.0.255 host 17.17.1.1 eq 80         (##eq www 해도 된다)

  permit ip any any                                                  (##deny ip any any가 생략되어 있기 때문에 절대 생략X)

  exit

 

int s1/0.23

  ip access-group R3_ONLY in                                    (## 이제부터 R4에서 인터넷이 안된다.)

  end

wr



## 과제2. InFTP & Telnet도 안되게 해보자 ##

## 출발지가 17.17.4.0 // 목적지가 any // 21번, 23번)

Win701]

## telnet

## 17.17.12.1       (R1으로 Telnet)

## 23

## 현재 텔넷이 된다.

 

conf t

ip access-list extended R3_ONLY

  11 deny tcp 17.17.4.0 0.0.0.255 any eq 23              ## Telnet의 목적지를 any로

  12 deny tcp 17.17.4.0 0.0.0.255 any eq 21              ## FTP Server가 CentOS이므로, any 넣어도 된다.

  end

wr

 

## 이제 저장하고 껐다 키면 재정렬이 된다.

 

 

 

## 그리고 FTP 접속을 해보면 접속이 되지 않는다. (서버에 연결할 수 없습니다.)

 

 

 

## Telnet 또한 접속이 되지 않는다.



## DDoS 공격은 크게 스머프 공격, 프라어쩌구 공격 2가지로 나눌 수 있는데 스머프 공격이 제일 유명함.

## 공격 대상에게 엄청나게 많은 Request를 보내서 상대방을 마비시킴.

 

## 스머프 공격 ##

R4]

ping 17.17.12.1 repeat 1000

Ping 중지를 하고싶다면 Cntl + Shift + 6을 누르면 된다.

## 이것을 막아야함 !!

 

 

## 스머프 공격 방어 ##

## 기존의 access-list에 삽입해도 되고, 날린 다음에 만들어도 된다.

R2]

conf t

int s1/0.23

  no ip access-group R3_ONLY in

  exit

 

## Names Extended로 해보기.

ip access-list extended NO_DDOS

  deny icmp any any echo                   ## 출발지가 어디든 다 막을 것임. (R2로 날아들어오는 것을 다 막음!!)

  

 

 

## 만약 내부에서 바깥으로 나가는 DDoS 공격도 막고싶다면!?

  deny icmp any any echo-reply

  exit

                     

 

int s1/0.23

  ip access-group NO_DDOS in      ## 이러면 바깥으로 나갔다 들어오는 Reply 까지 막게 된다.

  

 

R1]

ping 17.17.12.1 repeat 1000

 

R4]

ping 17.17.12.1 repeat 1000       

(## U.U.U 가 뜨는데 Unreachable 도달불가 라는 뜻임!!)

 

 

R2]

show run int s1/0.23

 

conf t

int s1/0.23

  no ip access-group NO_DDOS in       ## 날려버리기. 원점으로 돌아왔음. 모든게 다 잘되는 상황




R2]

show ip access-lists

 

## R3_ONLY를 편집해보자!!

## R4가 근무시간에 인터넷이 되지 않게!!

conf t

ip access-list extended R3_ONLY

  no 10

  no 11

  no 12

  no 20

  

  10 deny tcp 17.17.4.0 0.0.0.255 host 17.17.1.1 eq www time-range WORK_HOUR

  permit ip any any

  exit

 

time-range WORK_HOUR 

  periodic weekdays 09:00 to 18:00                     ## 기간(월~금 09:00 ~ 18:00 까지)

  end

 

show clock

 

 

## 시간 설정 해주기

clock set 17:15:00 17 august 2021

 

show ip access-lists          

## 근무시간이라 Active라고 뜸. 30번 Deny Line이 유효하다 라는 의미임.

 

 

conf t

int s1/0.23

  ip access-group R3_ONLY in

  end

wr

  

 

## 현재 permit ip any any 뒤에 있기 때문에 인터넷이 된다;;

conf t

ip access-list extended R3_ONLY 

  no 20

  no 30

  10 deny tcp 17.17.4.0 0.0.0.255 host 17.17.1.1 eq www time-range WORK_HOUR

  permit ip any any

  end

wr

 

show ip access-lists

 

 

 

Win703]

[크롬] - [http://17.17.1.1] 하면 안들어가짐


## 이제 R4에서의 Telnet을 막아보자.

R1]

conf t

access-list 1 deny 17.17.4.0 0.0.0.255

access-list 1 permit any

 

line vty 0 4

  access-class 1 in            ## 이렇게 하면 Telnet Proceess에서 막는 것임. 아까 전에는 인터페이스에서 막았던 것임.

                                   ## 정보기기 운용기능사에 Process에서 막으시오! 라고 나올 수도 있음.

Telnet 접속이 되지 않는다!! ㅎㅎ