SW/ 개발팁 / 추천프로그램, 꿀팁 공유
  • 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

cloudflare zero trust, tailscale(headscale), nebula 질문

zepinos 118

0

2

안녕하세요.

회사에 적용할 제품을 고르는데 사전정보를 좀 모으고 있습니다. 거기에 대한 질문을 좀 드리려고 합니다.

 

현재 회사에서는 IaaS에 VM을 만들어두고 Bation Host 서버를 만들어두고 SSH Tunnel을 통해 작업자가 접근하고, IaaS 내에 있는 CD로 다른 VM에 배포를 하고 있습니다. 그러다보니 개발자들은 로그 확인 등을 하기 위해서 여러 서버를 Bastion으로 접속해야해서...putty에 Bastion을 통한 SSH Tunnel을 서버별로 잔뜩 만든 뒤 localhost:(포트) 형태로 접속하고 있습니다. 서버들은 몇 개의 계정에 나뉘어져 서비스를 받고 있으며, 그 안에서도 subnet을 나눠놔서...좀 복잡하기도 하고 대부분의 서버는 공인IP가 없고 LB 등을 통해서 외부 요청을 받는 용도로만 사용중입니다.

 

문제는 최근에 회사의 방화벽 정책이 매우 까다롭게 변해서 Bation Host 접속을 위해서 방화벽 신청을 반드시 하게 되도록 변경되었고, 이것도 1년 혹은 3년마다 갱신품의를 올리게 변경되었다는 것입니다. 그 외에도 Bation 접속 시 공용 pem을 이용해서 접속하도록 해놓다보니 보안적으로도 좋지 않다고 판단하고 있습니다. 회사에서도 소스나 CD가 외부에 있는 건 좋지 않아보인다 하여 회사 내에 서버를 별도로 구축하게 되었습니다. 하지만, 방화벽 때문에 Bastion을 거쳐야만 다른 서버에 배포를 할 수 있게 되어서 autossh 같은걸 이용해서 tunneling 을 항시 해두지 않으면 매우 불편한 문제를 직면할 것으로 예상되었습니다.

 

그래서 이번에 Zero Trust나 Mesh VPN이 적용된 프로그램을 이용해볼까 해서 조사 및 연구를 하고 있습니다.

 

여러 제품이 있겠지만, 특징을 통해 Cloudflare의 SSE/SASE(50인 미만, 3개 네트워크 위치 무료), Tailsacle(Headscale), Nebura 정도로 후보를 압축했습니다.

 

가장 먼저 생각한 것은 Nebula였습니다. 완전 무료이라는 장점 때문이었습니다. 하지만, Lighthouse를 UDP로 반드시 열어두고 있어야한다는 점이 문제였습니다. 그리고 사용자를 추가할 때에도 private 키를 두고 명령줄로 실행하여 private/public 키를 생성하여 제공하고, 만료시키기 위해서는 설정에서 fingerprint을 이용해 차단한다거나...이런 식의 운영이다보니...이게 잘 될지도 의문이었습니다. IaaS에 있는 서버들은 그래도 UDP 접속은 문제도 없고 outbound도 모두 열려있는 반면, 사내의 개발자들은 80, 443 외에는 기본적으로 모든 outbound가 차단되어 있기 때문입니다. 심지어 서버는 완전 차단 상태라 OS Update/Docker Image pull을 빌미로 80, 443을 겨우 연 상태입니다. 이 상태에서 서버에서는 IaaS에 4242 UDP를 열고 그곳을 연결할 수 있게 한다 하더라도 내부 개발자들은 어찌할지 고민입니다. 내부 서버에 Lighthouse2 를 만들어 Lighthouse를 이중으로 운영한다던지 하는 방식이 가능할지 궁금하네요.

 

상업적인 운영을 하는 회사이기 때문에 Cloudflare나 Tailscale 이용을 하는 쪽이 낫다고 생각은 하는데...

  1. 방화벽을 항시 오픈해야 하는 것이 있다면 난감해진다
  2. 가급적 비용이 안드는 방식을 선도입하고 싶은데, subnet이 나뉘어진 환경 때문에 네트워크 위치 판별 기준이 subnet 기준이라면 무료 범위를 한참 넘어선다
  3. Cloudflare의 방식이 무조건 Cloudflare를 거쳐가는 방식인 건지 궁금하다
  4. Headscale을 쓸 경우 IaaS에 가장 작은 서버를 하나 띄우고 설치하려고 하는데, 방화벽을 통해 80, 443 이외의 다른 포트를 이용해야만 하는지 궁금하다

정도의 궁금증이 있습니다.

 

 

 

긴 글이지만 읽어보시고 조언을 해주실 분이 계시다면 댓글 좀 부탁드립니다.

고맙습니다.

신고공유스크랩
2
1등
eyeball 2024.04.30. 11:04

클플 터널 데몬을 이용해 2개 사이트 CD를 구현한 적이 있습니다.
각 사이트에 게이트웨이 역할을 할 VM에 터널 데몬을 설치하고 라우팅 테이블을 등록하면 서브넷에 접근이 가능합니다.
사용자 혹은 CD 서버에는 클플 클라이언트를 설치하여 타겟서버에 접근이 가능합니다.
각 사이트에는 별도의 외부 포트를 개방하지 않았습니다.

(저희는 아웃바운드는 막지 않았지만 아웃바운드가 막혀있으면 클플 터널 포트는 개방이 필요해 보입니다)
물론 게이트웨이 VM에서 대상 서버로의 방화벽 정책은 개방이 필요합니다.

그리고 이 방법은 클플 서버를 경유하는 방식입니다. P2P를 원한다면 테일스케일 쪽이 더 나은 듯 합니다.
하지만 P2P를 위해선 터널링을 위한 방화벽 개방이 필요한 것으로 알고있습니다.

profile image 2등
달소 2024.04.30. 11:22

보통은 방화벽 <-> AWS와의 vpn구간을 만들고 접근제어 솔루션을 사용해서 접근하는게 일반적인구성이라고 알고있긴합니다.

bastion 서버에 guacamole 같은 서비스를 올려놓고 각 VM으로 접근할 수 있는 방화벽 정책만 오픈하고 사용하시는건 어떨까요??

++headscale의 경우 80/443으로 중개정도 역할을해주고 실제로는 p2p로 서로간 udp포트를 통한 통신을하는걸로 알고있습니다

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story