TrueNAS Jail 생성하기

이번에는 TrueNAS에서 어떻게 jail을 생성하는지 알아보도록 하겠습니다.

 

TrueNAS jail은 Jails 메뉴에서 만들 수 있습니다. Jails로 가 주세요.

그럼 위와 같은 화면을 볼 수 있습니다. ADD를 눌러 jail을 생성합니다. ADD를 눌러주세요.

 

추가적으로 설정해야 할 것이 있으니 Advanced Jail Creation을 클릭하여 고급 설정 화면으로 가 주세요.

 

그러면 위의 모습처럼 여러 옵션이 더 보이게 됩니다.

 

기본 설정

Name에는 jail의 이름을 넣어주시면 됩니다.

Jail Type에는 Clone Jail, Base Jail 2가지가 있습니다. 두 방식의 특징은 아래와 같습니다.

Clone Jail

  • RELEASE로 부터 clone되어 생성됩니다.
  • clone한 RELEASE와의 폴더 및 파일의 변경사항만 따로 저장하는 방식입니다.
  • 그렇기 때문에 일반적으로 생성한 jail의 크기가 작고, 만드는 것도 빠릅니다.
  • 오래 사용하지 않을 jail(예를 들면, 프로그램 테스트용으로 만든 jail)에 적합합니다. (왜냐하면 jail 내부의 정보가 기존의 RELEASE와 크게 차이가 나면 jail의 크기가 작다는 장점이 상실되기 때문입니다.)
  • iocage update를 이용하여 jail을 업데이트 할 때에는 clone jail마다 각각 해 주어야 합니다. 조금 귀찮지요.

 

Base Jail

  • RELEASE를 복사하여 생성됩니다.
  • 일부 사용자 디렉토리를 삭제하고, 삭제한 디렉토리들을 RELEASE로 부터 nullfs 합니다.
  • Clone Jail에 비해서는 차지하는 공간이 많습니다.
  • 오래 사용할 프로그램에 적합합니다. SFTP 같은 서비스 등은 base jail에 구축하는 것이 좋습니다.
  • iocage update를 이용하여 jail을 업데이트 하면, 같은 RELEASE 버전을 가지고 있는 모든 base jail이 같이 업데이트 됩니다. 그래서 다수의 Jail을 관리하여야 할 때에는 base jail이 편리합니다.

 

이것 외에도 thick jail 등이 있습니다만, 이러한 jail들은 shell로 접속해서 cli로 명령을 내려야지만 jail을 생성할 수 있습니다. 그리고 thick jail은 특수한 경우가 아니라면, base jail로 대체 가능합니다.

다른 jail들에 대한 정보는 아래 링크에 잘 설명되어 있습니다.

https://www.truenas.com/community/threads/iocage-jail-type-base-jail-vs-clone-which-to-choose.82639/

 

Release에는 사용할 FreeBSD의 버전을 설정하면 됩니다. 특별한 이유가 있지 않다면, 최신 버전의 FreeBSD 버전을 선택해 주시면 됩니다. 메뉴얼을 만들고 있는 지금은 12.3-RELEASE가 최신 버전이네요.

 

네트워크 설정

 

DHCP Autoconfigure IPv4는 jail의 IP주소를 DHCP를 통해서 받아오겠다는 뜻입니다. 즉, 공유기가 자동으로 설정해 준다는 뜻이죠. 하지만 서버를 구축할 때 DHCP로 IP 주소를 받아오는 것은 권장하지 않습니다. 만약 공유기 등이 바뀐다면 IP 주소가 바뀔 확률이 굉장히 높습니다. 그렇기 때문에 추후 관리를 위해서 고정 IP를 설정하시는 것을 추천드립니다. 따라서 저의 메뉴얼에서는 수동으로 IP 주소를 입력하겠습니다. 체크 해제해 주세요.

NAT은 Network Address Translation의 약자로, 다수의 IP들을 하나의 IP처럼 작동하게 해줍니다. 일종의 가상 공유기라고 생각하시면 이해가 빠를 것 같습니다. Jail 안에 여러 jail을 만드는 특수한 상황이 아닌 한, NAT를 사용할 이유는 없습니다. 오히려 구성이 더 복잡해지기만 합니다. 따라서 체크 해제해 주세요.

VNET은 가상 네트워크 인터페이스를 말합니다. DHCP를 사용한다면 체크해야 하지만, 우리는 고정 IP를 사용할 것이므로 굳이 사용할 이유가 없습니다. 다만, Jail 내부에서 ipfw을 사용하여 내부 방화벽 옵션을 변경하지 못합니다. 따라서, SFTP 구축하기와 같이 내부 네트워크 방화벽 옵션을 변경해야 하는 경우에는 사용하여야 합니다. 일반적인 경우에서는 체크 해제해 주시면 됩니다.

Berkeley Packet Filter는 패킷을 분석하고, 필터링 하는 역할을 합니다. TrueNAS의 kernel 내에서 VM 형태로 작동합니다. 일반적으로는 해당 필터를 사용할 필요가 없으나, DHCP를 이용하여 jail의 IP를 할당하게 되면 필수적으로 사용하여야 합니다. 수동으로 IP를 할당할 것이므로 체크 해제하면 됩니다.

그럼 이제 IPv4 설정을 하도록 하겠습니다.

IPv4 Interface는 자신의 서버에 설치되어 있는 네트워크 인터페이스를 고르면 됩니다.

IPv4 Address에 해당 jail이 사용할 IP주소를 입력하면 됩니다.

IPv4 Netmask에는 해당 jail이 사용할 넷마스크를 입력하면 됩니다. 굳이 설정할 필요는 없으니 그냥 ——-를 선택하여도 됩니다.

마지막으로, 거의 맨 밑 부분에 있는 Auto-start를 체크해 주세요. 이것을 체크하면 TrueNAS가 부팅할 때 jail도 자동으로 시작하게 됩니다.

나머지 옵션들은 추가적인 것들이므로, 기본적인 세팅에 필요하지 않습니다. 만약 자신에게 필요하다고 판단되면 알아서 잘 추가하시면 되겠습니다.

SAVE를 눌러서 jail을 만듭니다.

 

마치면서

이로써 여러분은 TrueNAS에서 jail을 생성할 수 있게 되었습니다. 앞으로 더 이상 jail을 만드는 과정을 메뉴얼에 포함시키지 않을 것입니다. 그러니 jail을 만드는 과정이 메뉴얼에 없더라도 본 포스트를 참고해서 만들어 주세요.

This Post Has 6 Comments

  1. namnam

    jail 설정시 freebsd 서버와 연결이 안되는지 release 선택이 안되는데 혹시 어떤 문제인지 아시나요?

    1. Bongtae

      Release 선택이 안되는 경우는 서버가 인터넷에 연결할 수 없어서 release 정보를 못 받아오기 때문입니다. 인터넷 설정이 제대로 되어있는지 확인해 주세요.
      Network – Interfaces로 가셔서 Link가 UP인지, 또는 IP 설정이 잘못되어있는지 확인해 주세요.

  2. kman

    jail 만들때 VNET 체크 안하면 jail 내부에서 ipfw 사용 못합니다..
    ipfw이 호스트 커널 기반이라 보안 구멍이 생길 수 있어서 막아논듯 싶네요.
    sftp 구성할때 이것때문에 삽질했습니다. 휴
    다른분들도 고생하지 않게 이 부분 포스트에 추가해주셨으면 좋겠습니다.

    1. Bongtae

      제가 빠트린 부분 지적해주셔서 감사합니다. 해당 내용 추가했습니다.

  3. SW

    안녕하세요
    truenas 로 외부접속 해보겠다고 오래된 글이지만 열심히 읽으며 따라하고 있습니다.
    헌데, jail 메뉴에서 add 를 눌렀을때 에러가 뜨고, relaese에서 아무것도 선택이 되질 않습니다.
    위에 답변 보고 network – interfaces 에서 봐도 link 는 up 으로 되어있고, ip도 맞습니다… ㅠㅠ
    해결 방법이 있을까요?
    좋은 글 많이 남겨주셔서 많이 도움 되고 있습니다. 감사합니다.

    1. Bongtae

      안녕하세요. 제 블로그에 방문해 주셔서 감사합니다.

      말씀해 주신 부분의 경우 제가 에러를 확인할 수 없어 제 추측이긴 하나, 시스템 pool 설정이 되지 않으신것 같습니다. TrueNAS는 어떤 디스크(pool)에 jail을 만들지 선택해주어야 jail을 만들 수 있습니다.
      제가 쓴 글인 ‘TrueNAS WebUI 설정하기’에서 ‘시스템 pool 설정’ 문단을 참고해주시면 될 것 같습니다. Jail을 설치할 pool을 먼저 만드시고 설정을 진행해 주시면 됩니다.

      만약 제가 위에서 말씀드린 방법이 먹히지 않으면 다시 댓글 남겨주시면 도와드리겠습니다!

답글 남기기