※ 저장해둔 파일 불러오기
※ access control list / access list / acl 개념
1. 접근 제어 --> 네트워크 통신 장비들은 고사양 게임을 한다던지, 높은 CPU를 요구할 사항들이 많이 없어서 연산 속도가 많이 느리다. 만약 여러개의 트래픽이 발생하면 장비 자체가 다운될 가능성이 높고 이를 막기 위해서 접근 제어를 사용한다.
- 대용량의 트래픽인 경우 : 방화벽이 알아서 막아준다. [ ex D-DOS 공격 같은 것들]
- 대용량까지는 아니지만 적당한 트래픽인 경우 : access control list [ telnet , http에서 오는 트래픽 ]
2. 정책 적용 대상 지정 [NAT]
- 네크워크의 많은 정책들의 대상을 지정한다.
ex)
- 어떤 트래픽은 네이버에 접속 못하게 한다.
- 어떤 트래픽은 빨리 처리할 수 있도록한다.
- telnet으로 접속할 때 어떤 트래픽 주소만 관리자로 받아들이고 나머지는 관리자로 받아들이지 않는다. 등등....
※ Cisco 장비에서 access list 설정
- standard acl [ 표준 acl ] : 출발지 IP를 근거로 permit / deny 가능
[ 출발지만 보기 때문에 상세 설정 불가, 그렇지만 신속한 설정이 가능하다.]
- numbered acl : 번호로 설정 1 -99 / 1300 - 1999
- named acl : 이름으로 설정
- extend acl [ 확장 acl ] : 출발지와 목적지를 모두 볼 수 있다.
[protocol 지정 가능 : ip, tcp, udp, icmp ...]
- numbered acl : 번호로 설정 100 - 199 / 2000 - 2699
- named acl : 이름으로 설정
==================================================================================
※ S1에서 S22로 핑 보내기
※ 본사 네트워크인 11.1.1.0 대역이 아니라 S1 대역인 11.1.1.1 대역에서 보내는 핑을 제어해보자
S1 (11.1.1.1 / 32 ) R2_fa 1/0 outbound deny 명령으로 R2에서 1/0 인터페이스로 나가는 핑을 차단한다.
※ 설정 후에 꼭 확인해야 하는 것
1. 로그와 백업 확인
2. 기존설정과 추가설정 비교하기
3. 설정하기
4. 설정 확인 - show run | in access-list
5. 적용 확인 - show ip access-list
※ R2에서 access-list 설정하기
conf t
access-list [숫자: 표준과 확장 acl 범위 내에 있고 사용하지 않는 번호 중 아무거나] 22 [ permit / deny] deny [src_ip]
11.1.1.1 [wildcard] 0.0.0.0 [옵션]
(src_ip 설정 tip)
- 만약 11.1.1.0의 본사 서버를 제어한다고 했으면 11.1.1.0 0.0.0.255 <- 이와 같은 형식으로 설정해주면 된다.
-> access-list 22 deny 11.1.1.1 0.0.0.0 [Cisco에서는 뒤에 32bit로 올 0 일때 11.1.1.1만 작성해도 된다. ]
※ R2에서 access-list 적용하기
int fa 1/0
ip access-group 22 out
[access-group인 이유: 지금은 그냥 하나의 트레픽만 제어하기 위해서 설정하는 것이지만 평소에는 수십 개의 트래픽이 있어서 22라는 숫자 그룹에 저장이 되기 때문에 group으로 묶어준다. ]
※ 만약에 11.1.1.1에서 출발하기 때문에 막히는 거라면 서버의 ip를 11.1.1.10으로 바꾼다면 핑이 나갈지에 대해서 생각해보자.
※ 변경했는데 왜 안나갈까?
-> 11.1.1.10 대역에서는 뭘 하라는 명령어를 입력해주지 않았기 때문에 아무런 설정이 없다. 따라서 11.1.1.1은 deny되서 통신이 안되고 11.1.1.10 대역은 설정이 없기 때문에 통신 자체가 안되는 것이다.
-> 11.1.1.1 대역 외의 통신은 나갈 수 있도록 허용하는 명령어를 R2에 알려줘야 통신이 가능해진다.
※ R3에서 S1 -> S33으로 핑이 나가지 못하도록 막아보자
※ S33으로 통신 안나가게 설정
※ S44로 통신이 안나가게 설정 - 설정 전에 R3에서 no ip access-group 3 in 해제해야 핑 전달 가능
※ S2 -> S1 관리자(11.1.1.1)만 telnet 접속 할 수 있도록 설정
※ 다른 서버의 텔넷도 위와 마찬가지로 설정해줄 수 있다.
- 지금까지 설정한 방식은 numbered acl 방식으로 설정했다. named acl도 살펴보자.
- numbered acl은 수정이 불가능하다.
access-list 1 deny 1.1.1.1 0.0.0.0
access-list 1 deny 2.1.1.1 0.0.0.0
access-list 1 deny 3.1.1.1 0.0.0.0 -> 이 ip 하나만 수정하려고 하면 모두 삭제하고 다시 만들어야한다.
access-list 1 deny 4.1.1.1 0.0.0.0
access-list 1 deny 5.1.1.1 0.0.0.0
access-list 1 permit any
int fa 0/0
ip access-group 1 in
- 하지만 named acl은 수정이 가능하다. -> 순서번호를 가지고 있기 때문에 수정이 가능하다.
※ named acl 방식
- ip access-list standard CC
[10] deny 1.1.1.1 0.0.0.0 : 앞쪽에 보이지 않는 순서 번호가 적혀 있다.
[20] deny 2.1.1.1 0.0.0.0
[30] deny 3.1.1.1 0.0.0.0
[40] deny 4.1.1.1 0.0.0.0
[50] deny 5.1.1.1 0.0.0.0
[60] deny 6.1.1.1 0.0.0.0
permit any
exit
int fa 0/0
ip access-group 1 in
※ 변경 시
ip access-list standard CC
no 30 : 3번째 변경
30 deny 3.4.5.1 0.0.0.0
※ 각각의 서비스를 차단하고 허가하기
(R1에서 제어)
R1_fa0/1_outbound
S1(11.1.1.1) ---> S2(22.1.1.1) telnet 허가 --> tcp eq 23
S1(11.1.1.1) ---> S22(2.2.2.1) http 차단 --> tcp eq 80
S1(11.1.1.1) ---> S33(3.3.3.1) ping 차단 --> icmp / echo
S1(11.1.1.1) ---> S44(4.4.4.1) ssh 허가 --> tcp eq 22
S1(11.1.1.1) ---> S55(5.5.5.1) ping 허가 --> icmp / echo
※ 문법
access-list [숫자] 100 [permit|deny] permit [protocol] tcp [src_ip] 11.1.1.1 [wildcard] 0.0.0.0
[dst_ip] 22.1.1.1 [wildcard] 0.0.0.0 [옵션] eq 23
--> access-list 100 permit tcp 11.1.1.1 0.0.0.0 22.1.1.1 0.0.0.0 eq 23
int fa 0/1
ip access-group 100 out
access-list 100 permit tcp 11.1.1.1 0.0.0.0 22.1.1.1 0.0.0.0 eq 23
access-list 100 deny tcp 11.1.1.1 0.0.0.0 2.2.2.1 0.0.0.0 eq 80
access-list 100 deny icmp 11.1.1.1 0.0.0.0 3.3.3.1 0.0.0.0 echo
access-list 100 permit tcp 11.1.1.1 0.0.0.0 4.4.4.1 0.0.0.0 eq 22
access-list 100 permit icmp 11.1.1.1 0.0.0.0 5.5.5.1 0.0.0.0 echo
access-list 100 permit ip any any
int fa 0/1
ip access-group 100 out
no access-list 100 -> 틀렸다면 numbered acl이라서 처음부터 다시 설정한다.
- 10 telnet 허가 확인
- 20 www 거부 확인
- 30 icmp 거부 확인(ping)
- 40 ssh 허가 확인
-> 이와 같은 방법으로 access-list의 방법들을 알아보았다. ssh 접속에 대한 것은 조금 더 공부 해서 알아봐야겠다. 일단 access-list의 문제 같진 않다.. 고민 해봐야겠다.
