오픈 소스 Packetfence NAC 솔루션 설정 방법 - 1. inline 방식

오픈 소스 Packetfence NAC 솔루션 설정 방법 - 1. inline 방식

Packetfence 은 오픈소르로 구현 할 수 있는 NAC 솔루션 입니다.

사용 방식을 크게 2가지로 나누어 설명 할 것이며

구축비용이 매우 적고 쉬운 inline 모드와

구축비용이 발생하고 어렵지만 보안적으로 강력하고 안정적인 vlan enforce 모드를 설명드립니다.


어디를 찾아봐도 실제 동작까지의 과정을 세세히 소개한 자료가 없어서(구글님도 자세히 안나오고 공홈도..)

해보시려는 분들에게 도움이 되실 것 같습니다.




OS 환경 centos 7.8 ( Centos8용은 아직 제공되지 않음)


공통부분부터 설명하겠습니다.

[[email protected]_packetfence ~]# vi /etc/sysctl.conf

net.ipv4.ip_forward=1

[[email protected]_packetfence ~]# sysctl -p

[[email protected]_packetfence ~]#yum install kernel-devel-$(uname -r)

[[email protected]_packetfence ~]# yum localinstall http://packetfence.org/downloads/PacketFence/RHEL7/packetfence-release-7.stable.noarch.rpm

[[email protected]_packetfence ~]# yum install --enablerepo=packetfence packetfence

(설치 시간이 사양에 따라 소요됩니다 그래도 오픈스택 같은거 구축할때보다는 기다릴만 한 수준입니다.)

설치 다되면 1443 포트 보이실 것이고 selinux permissive인 것도 확인하시구요.

접속은 웹페이지에 https://자신의IP:1443입니다.
저는 이렇게 됩니다.
https://192.168.111.130:1443

위와 같은 화면이 보이게 됩니다.

초기 설정 부분입니다.

여기서 이제 구성방법에 따라 많이 달라지게 됩니다.




옵션 1. inline 방식 (랜포트 WAN/LAN 2개 필요)


inline 방식은 모든 트래픽이 이 서버를 거처가며 이 서버가 만약 고장나면 죽으면 망이 끊깁니다.
따라서 packetfence 자체 HA옵션을 활용하여 HA구성을 권장드립니다.
비용이 적은 이유는 이 서버 한대만 있으면 구현이 가능하기 때문입니다.
Packetfence가 DHCP서버가 있으며 해당 서버에서 할당 받은 사람은 노드(노트북or PC) 감지가 되며
등록 및 정책할당을 하게 되면 사용자가 인터넷을 사용할 수 있게 됩니다.
현재 회사에서는 망 안전성의 중요도가 낮은 외부인이 출입하는 곳에서만 이 방식으로 사용 중입니다.

이 방식을 하시려면 일단 랜포트 2개를 갖추시고 시작하시면 되겠습니다.


밑줄친 부분 클릭하여 들어갑니다.

TYPE Management로 설정합니다.

Save 누르시고 -> X 눌러서 나옵니다.

2번째 LAN이 될 부분을 클릭합니다

아래와 같이 입력했습니다.

IPv4 Address 부분은 LAN영역 허가된 사용자들이 사용할 네트워크영역 입니다.
저희는 inline 할것이므로 Type는 위와 같이 설정하고
DNS도 설정합니다.
100.100.100.1/24 입력한 부분은 등록되지 않은 사용자가 인터넷이 되지 않더라도10.0.0.1/24 대역을 일단 할당 받게 되면 내부의 10.0.0.1영역은 접근이 가능하기 때문에 다른 네트웍으로 일단 분리해주는 것이 보안에 좀 더 이점이 있습니다.

다 설정하시면 Save 클릭하시고

위와 비슷한 문구가 등장하면 설정된 것이기 때문에 눌러서 나가줍니다.



위와같이 설정 되었으며 Next 눌러서 다음으로 이동합니다.

다음화면에 automatic configuration 푸시고 직접 입력해주세요

root패스워드 입력하시고 Set Password 눌러요.

그다음 create 누르면서 갑니다.

Domain 이름이나

hostname 자유롭게 적어주시고

timezone 설정

track configuration 활성화

Administrator 계정 비밀번호 설정

알람은 자유 입니다보통은 advanced 눌러서 설정하셔야 합니다.

다 되셨다면 Next!

이 부분은 옵션인데 이걸 등록하게 되면 사용자가 기기를 물렸을 때 OS버전이나 노트북 제조사
심지어 바이오스버전까지 나오는 경우가 있어서 저는 관리적 측면에서 사용하고 있습니다.

키발급은 파란색 링크 눌러서 로그인 하시면됩니다registration page   (github ID로도 됩니다.)


로그인 하면 이렇게 나오고 API key 부분 복사하여


붙어넣기 하시면 됩니다.

하셨다면 Next 눌러서 다음으로 가도록 하겠습니다.

Start 눌러주심되요


정상적으로 시작되면 자동으로 로그인화면 나오니 ID PW로 로그인합니다.


짜잔 이런 Dash보드를 보실 수 있어요!!




Nodes 라고 써있는 탭에 가보실게요.

아직 하나도 없네요~

configuration가셔서

Policies ~ -> authentication Sources 가신다음
사용하지 않는 인증소스들을 모두 비활성화 시켜야합니다.

해당 인증소스를 사용하여 관리자없이도 조건만 맞으면 단독으로 승인 할 수 있습니다.
그런 부분을 원치 않기 때문에 저는 비활성화 하겠습니다.


각 소스별로 들어가서 

Enabled를 disabled로 전환합니다.

꼭 SAVE 누르고 나오세요!


아까 inline 이더넷으로 10.0.0.1/24할당한 인터페이스에 랜선꼽고 스위칭허브에 내려준 허브에

테스트용 노트북 하나 물려볼께요.




해당 노트북에서 랜선을 꼽으면 위와 같은 화면이 나옵니다.

IP도 등록되지 않은 사용자들이 할당 받는 곳으로 보내버리구요.

그렇기 때문에 인터넷도 되지 않습니다.




노드탭 가면 위에 나온 것처럼 노드가 감지되었습니다.

클릭해서 들어가시면

이렇게 나오고

status를 Registered 로 하시고

언제 등록해제 할 것인지도 미리 정할 수 있습니다.

예를들어 외부 손님이고 하루만 사용한다면 +1D 눌러주셔도되구요.

그리고 Bandwidth 부분도 조절하여 대여폭사용을 제한 할 수도 있습니다.

다하시고 save 누르겠습니다.

그리고 페이지를 새로고침 하시면

OS 명도 감지되고 IP명도 바뀐 것을 볼 수 있습니다.

클릭해서 들어가서 핑거뱅크 보시면 (처음 시작할 때 API key넣으셨던분들)

windows 10이고

제조사가 LG인 노드라고 나오네요~

맞습니다. LG노트북으로 연결했어요

다시 여기 화면 가셔서 차단하고 싶으시면 reject 설정하시고 save하면 해당 노드는 차단됩니다.

또는 Unregistered 로 변경하셔도 됩니다.

여기까지 기본 등록 및 해제이고 노드 삭제는 아래 Delete입니다.



정책 설정 보겠습니다.

configuration -> system Config~->Main~ 부분 보시면

여러가지가 있습니다그 중에서 쓸만한 게 몇 가지 있습니다.


기본으로 꺼져있는데 이게 유용합니다.

클릭해서 들어가신 다음에

(너무 영어만 나와서 너무 힘들어요~! 생각되면 구글에서 키시고 번역누르셔도됩니다.)



이런식으로 한글로 보여져요 그럼 설명안해도 잘 하실 수 있으리라 생각됩니다.

실제 사용하면 많은 노드들이 나오는데 장기간 사용하지 않는 사용자를 등록해제 하는 정책과

장기간등록되지 않은 사용자들을 얼마나 기다리고 자동 삭제 할 것인지 등을 설정 할 수 있습니다.




다음은 보안 정책부분을 보러 가겠습니다.

보시면 기본적으로 많이 꺼져있는데 보고 쓸모있다고 생각되는 것을 키시면 됩니다.

저는 오래된 OS차단,P2P차단,NAT되는 공유기 차단을 활성화 하여 쓰고 있습니다.

들어가서 설정보시면

이벤트가 나오는데 Unreg 시킬수도 있고

Role 에서 reject로 바꿔서 차단되게 할 수도 있습니다.

이 정도 살펴보았고 이것저것 설치 후에 둘러보시면 좀 더 있습니다.

inline은 앞서 소개한 것처럼 매우 쉽게 구성됩니다.




기타 알림 사항

  • 1.DB 패스워드 변경

  • -간혹 노드가 삭제 안될 때 DB접속해서 노드 강제 삭제 할 수 있습니다.

  • -원래 노드 삭제 기능 자체가 없었는데 최근에 생겼는데 다시 다른 패치하더니 삭제가 월할하지 않더군요. 10.1 -> 10.2 버전으로 업데이트하면 수정된다고 합니다.

  • -삭제 방법은 아래 사진으로 첨부드립니다.

로케이션로그문제라서 이렇게 삭제하고 웹에서 노드삭제합니다.

10.1버전에서 생긴 문제입니다.



추가적으로

여기 페이지 가셔서 node_cleanup 정책은 꼭쓰시는게 맘편합니다.


상용 NAC 솔루션이 맘이 편합니다. G사 NAC을 군에 있을 때 써보았는데 참 편하더라구요..
물론 그것도 네트웍 구성이 조금 잘못되면 우회하는 방법이 있어서 우회해서 사용한 적도 있지만
아무튼 그렇습니다.


긴 글 읽어주셔서 감사합니다.

동작 시연영상은..아마 구글에 packetfence 시연 치시면 나옵니다.

그거 올린사람이 저 밖에 없어서 쉽게 찾을 수 있습니다.

옛날영상인데 오늘찍은 최신으로 이번주 내로 바꿔놓을께요.

태그가 없습니다.

8개의 댓글이 있습니다.

7일 전

존박님 자세한 내용 감사합니다.
딱 필요한 기능이 있다면 오픈소스 패키지도 괜찮을듯 합니다.

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

8일 전

잘 봤습니다.

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

14일 전

와.. 이렇게 상세하게...
사용하던 NAC 없어졌는데....
근데 inline 모드 혹시 문제 생겨서 네트워크 완전 차단될 까봐 조심 스럽네요.
상세한 설명, 가이드 매우 감사 드립니다.

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

15일 전

좋은 정보 감사드립니다~

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

19일 전

좋은 정보 감사합니다~

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

20일 전

좋은 정보 감사드려요

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

23일 전

정보 감사합니다. 나중에 한번 해봐야겠네요.

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

23일 전

자세한 설명 감사합니다.
자택 근무 관련 끝나면 테스트 진행 하려고 했는데.. 상세히 잘 써주셔서.. 많은 도움이 될거 같습니다!

Reply

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입

댓글 남기기

댓글을 남기기 위해서는 로그인이 필요합니다.

로그인 회원가입