wonder

정보보안 스터디 - 12주차 6일 - ACL 방화벽 본문

Security/네트워크 보안

정보보안 스터디 - 12주차 6일 - ACL 방화벽

wonder12 2023. 1. 3. 21:50

☞ ACL (access list) 방화벽

 

standard ACL

 

extended ACL

extended의 특징이자 standard와의 차이점은 특정 프로토콜, 포트에 대해서만 차단/허용하기를 원할 때 사용하는 방식입니다. 

 

 

원래는 방화벽을 자동으로 설정해주는 시스템이 되어있지만

지금은 ACL로 수동으로 설정하기 때문에 복잡할 수 있습니다. 

 

기본적으로 방화벽이란

외부에서의 접근은 모두 차단합니다.

 

회사에서 내부에서 도박 및 불법사이트에 접속을 블랙리스트로 차단합니다. 

차단할 사이트는 nslookup, host, dig 를 이용해 ip주소 및 개수를 확인하고, whois에서 검색해서 국가, 회사명을 알아내고, 역방향 검색 > 네임서버 회사명을 확인합니다.

 

 

그 외로 내부에서 외부로의 접근은 허용합니다. 

외부에서 내부로의  접근을 모두 차단합니다.

ip access-list extended In-Filter(숫자로도 가능합니다.)
deny ip any host 104.23.140.17 eq 80 log-input
deny ip any host 104.23.140.17 eq 443 log-input
deny ip any host 54.249.84.62 eq 80 log-input
deny ip any host 54.249.84.62 eq 443 log-input
패킷요청이 들어왔을 때 로그를 남깁니다.
매번 알림이 뜨지 않고 100 패킷당 하나 정도로 남깁니다.
이를 통해 직원이 불법사이트, 제한사이트에 방문하는지 확인할 수 있습니다.


100 permit ip any any
나머지는 접속을 허용합니다.
모두 허용하는 sequence는 여유있게 두고 사이트가 더 추가된다면 그 사이에 추가합니다.  


int e0/1
ip access-group In-Filter in
아예 처음부터 내부에서 나가려는 패킷을 차단해버립니다.
show run
show ip access-list In-Filter
으로 확인합니다.

 

하지만 완전히 차단해버리면 문제점은

내부에서 외부로 웹서버, 핑 등 접속을 할 때 응답마저 차단한다는 것입니다.

또한 회사에 가만히 있는게 아니라 외부에서 업무를 하는 사람이 회사 인트라넷에 접속하려고 한다면 허용시켜줘야합니다. 그부분을 해결하기 위해서 telnet 로그인으로 인증이 완료되면 그 ip주소에 대해서 모든 또는 특정 네트워크에 허용하는 방식이 있습니다.

 

 

1. 내부 > 외부로 접속할 때 응답으로 오는 패킷은 허용

 

 RACL (Reflexsive ACL) 

일단 내부 > 외부
ip access-list extended Out-FW
permit tcp 192.168.20.0 0.0.0.255 any reflect RACL(임의)
permit udp 192.168.20.0 0.0.0.255 any reflect RACL
permit icmp 192.168.20.0 0.0.0.255 any reflect RACL
tcp, udp, icmp를 합쳐 ip로도 가능합니다.

int e0/0
ip access-group Out-FW out 
외부 > 내부 응답 받아올 때 
ip access-list extended In-FW
40 evaluate RACL 

 

요청패킷이 밖으로 나가면 인지하고 있다가 응답으로 들어올 때 검사한다음 통과시켜줍니다.

예를 들어 naver.com는 접속이 됩니다. 이 때 reflect ACL이 생성된것입니다.

 

번호가 모두 차단의 위에 있기 때문에 우선순위로 검사하여 통과시킵니다.

 

 

 

 

 CBAC

inspection 방화벽이며 현재 보통 가장 많이 쓰는 방식입니다.

 

기존 방법으로 사용하면 내부의 여러 PC들이 접속시도하기 때문에 응답패킷도 너무 많아질 것입니다. 

내부에서 외부로 나갈 때 상태정보를 띄워서 검증합니다.

맞다면 통과시킵니다. 세션으로 확인가능합니다.

 

기존의 우선순위와는 상관없이 상태정보가 있다면 통과시킵니다. 

 

inspect는 ip 프로토콜 모두 적용하려면 따로 써야합니다.

 

conf
ip inspect name CBAC tcp
ip inspect name CBAC udp
ip inspect name CBAC icmp

int e0/0
ip inspect CBAC out

설정 자체가 쉽습니다.

 

웹브라우저 접속(tcp패킷 주고받음)

nslookup www.google.com 

ping 168.126.63.1

 

show ip inspect interface e0/0
바깥쪽으로 되어있는지 확인합니다.
show ip inspect sessions
tcp, udp, icmp세션을 확인합니다.

나갔다가 들어올 때 FIN상태가 되지 않으면 기다렸다가 삭제가 됩니다.

time out 이 뜹니다. tcp는 기다리는 시간이 길지만

연결성이 없는 udp나 icmp는 시간이 짧습니다.

 

 

 

2. 외부 근무자가 회사 네트워크에 접속할 때

 

 NAC

network access control 

 

방화벽(라우터) 자체에

유저를 추가하여 비밀번호를 걸고

telnet으로 접속하여 로그인 정보가 맞다면

해당 ip를 허용합니다.

 

마찬가지로 10분간 연결이 없을 때 자동으로 timeout 됩니다.

  

conf t
username admin password cisco
유저계정을 추가하고
username admin autocommand host 10
로그인되면 자동으로 ip주소를 등록합니다. timeout은 10분입니다.

line vty 0 4
 login local
 transport input all


ip access-list extended In-FW
40 permit any host 192.168.100.1 eq 23
방화벽으로의 telnet 접속은 허용시켜줘야합니다.
50 dynamic NAC permit ip any 192.168.20.0 0.0.0.255
특정 네트워크를 지정할 수도있습니다.

만약 인증이 된다면 

show ip access-list 를 확인했을 때 ip 주소가 permit밑에 뜨게 됩니다.

 

 

 

 

 

Comments