설치

리눅스 시스템에서 팔코 설치하기

팔코는 시스템 호출을 이용해 시스템을 모니터링하고 보호하는 리눅스 보안 도구이다.

팔코는 쿠버네티스 런타임 보안에 사용할 수 있다. 팔코를 설치하는 가장 안전한 방법은 시스템 손상 시 팔코와 쿠버네티스가 격리되도록 호스트 시스템에 직접 설치하는 것이다. 그 다음 팔코 알림은 쿠버네티스에서 실행되는 읽기 전용 에이전트를 통해 사용할 수 있다.

격리가 문제가 되지 않는 경우에는 팔코를 쿠버네티스에서 직접 실행할 수 있다. Kind, Minikube, Helm 같은 도구를 이용해 팔코를 쿠버네티스에서 직접 실행하는 방법은 써드파티 통합을 참고한다.

아래의 패키지 관리 아티팩트를 이용해 팔코를 설치한 경우에는 다음이 준비되어 있다.

  • systemd를 통해 예정된 팔코 사용자 공간 프로그램
  • 패키지 관리 도구를 통해 설치된 팔코 드라이버 (호스트에 따라 커널 모듈 또는 eBPF)
  • /etc/falco에 위치한 기본 설정 파일

또는 아래에서 설명하는 바이너리 패키지를 사용할 수도 있다.

설치하기

Debian/Ubuntu

  1. falcosecurity GPG 키를 추가하고, apt 리포지터리를 설정하고, 패키지 목록을 업데이트한다.

    curl -s https://falco.org/repo/falcosecurity-3672BA8F.asc | apt-key add -
    echo "deb https://download.falco.org/packages/deb stable main" | tee -a /etc/apt/sources.list.d/falcosecurity.list
    apt-get update -y
    
  2. 커널 헤더를 설치한다.

    apt-get -y install linux-headers-$(uname -r)
    
  3. 팔코를 설치한다.

    apt-get install -y falco
    

    이제 팔코, 커널 모듈 드라이버, 기본 설정 파일이 설치되었다. 팔코는 systemd 유닛으로 실행 중이다.

    팔코를 관리하고, 실행하고, 디버깅하는 방법은 실행을 참고한다.

  4. 팔코를 삭제한다.

    apt-get remove falco
    

CentOS/RHEL/Fedora/Amazon Linux

  1. falcosecurity GPG 키를 추가하고, yum 리포지터리를 설정한다.

    rpm --import https://falco.org/repo/falcosecurity-3672BA8F.asc
    curl -s -o /etc/yum.repos.d/falcosecurity.repo https://falco.org/repo/falcosecurity-rpm.repo
    

    Note — 다음 명령어는 해당 배포판에서 DKMS와 make를 사용할 수 없는 경우에만 필요하다. DKMS 사용 여부는 yum list make dkms를 통해 확인할 수 있다. 필요하다면 yum install epel-release를 실행하고 yum install make dkms를 실행해 설치한다.

  2. 커널 헤더 설치하기

    yum -y install kernel-devel-$(uname -r)
    

    Note — 위 명령어 실행 시 패키지를 찾을 수 없다면, yum distro-sync를 실행해 해결할 수도 있다. 이 경우 시스템을 재시작해야 할 수 있다.

  3. 팔코 설치하기

    yum -y install falco
    

    이제 팔코, 커널 모듈 드라이버, 기본 설정 파일이 설치되었다. 팔코는 systemd 유닛으로 실행 중이다.

    팔코를 관리하고, 실행하고, 디버깅하는 방법은 실행을 참고한다.

  4. 팔코 삭제하기

    yum erase falco
    

Linux generic (binary package)

  1. 최신 바이너리를 다운로드한다.

    curl -L -O https://download.falco.org/packages/bin/x86_64/falco-0.29.0-x86_64.tar.gz
    
  2. 팔코를 설치한다.

    tar -xvf falco-0.29.0-x86_64.tar.gz
    cp -R falco-0.29.0-x86_64/* /
    
  3. 다음 의존성을 설치한다.

    • 리눅스 배포판에 맞는 커널 헤더
  4. 아래 설명된 드라이버를 설치한다.

드라이버가 설치되면 falco를 수동으로 실행할 수 있다.

드라이버 설치하기

드라이버를 설치하는 가장 쉬운 방법은 falco-driver-loader 스크립트를 이용하는 것이다.

기본적으로 해당 스크립트는 먼저 로컬에서 dkms를 이용해 커널 모듈을 빌드한다. 불가능한 경우, 사전에 빌드된(prebuilt) 파일을 ~/.falco/ 경로에 다운로드 한다. 커널 모듈이 발견되면 그것을 삽입한다.

eBPF 프로브(probe) 드라이버를 설치하려면 falco-driver-loader bpf를 실행한다. 이 명령어는 먼저 로컬에서 eBPF 프로브를 빌드하고, 안될 경우 사진에 빌드된 파일을 ~/.falco/ 경로에 다운로드한다.

구성 가능한 옵션은 다음과 같다.

  • DRIVERS_REPO - 사전 빌드된 커널 모듈과 eBPF 프로브를 다운로드할 기본 리포지터리 URL을 대체하려면 이 환경 변수를 후행 슬래시 없이 설정한다.

    https://myhost.mydomain.com 또는 https://myhost.mydomain.com/drivers 하위 디렉토리 구조 https://myhost.mydomain.com/drivers가 있는 경우를 예로 들어보자.

    드라이버는 /${driver_version}/falco_${target}_${kernelrelease}_${kernelversion}.[ko|o]와 같은 구조로 호스팅되어야 한다. 여기서 koo는 각각 커널 모듈과 eBPF 프로브를 나타낸다.

    예를 들면, /a259b4bf49c3330d9ad6c3eed9eb1a31954259a6/falco_amazonlinux2_4.14.128-112.105.amzn2.x86_64_1.ko이다.

    falco-driver-loader 스크립트는 위의 형식을 이용해 드라이버를 가져온다.