웹사이트 검색

Ubuntu 22.04에 Malcolm 네트워크 트래픽 분석 도구를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. Malcolm 시스템 사용자 만들기
  3. Malcolm Ubuntu 22.04 설치
  4. Malcolm 구성
  5. Malcolm 관리자 계정 만들기
  6. Malcolm Docker 이미지 가져오기
  7. Malcolm 서비스 시작
  8. 액세스 Malcolm

Malcolm은 간단하고 사용하기 쉬우며 강력한 네트워크 트래픽 분석 도구입니다. 아티팩트(PCAP 파일) 및 Zeek 로그를 캡처할 수 있습니다. Malcolm은 부분의 합보다 더 크게 만드는 상호 연결된 프레임워크를 제공합니다. Malcolm의 쉽고 유연한 배포와 강력한 도구 조합은 네트워크 보안 공간의 공백을 메우고 공공 및 민간 부문의 많은 사람들이 고급 네트워크 트래픽 분석에 액세스할 수 있도록 합니다.

이 게시물에서는 Ubuntu 22.04에 Malcolm 네트워크 트래픽 분석 도구를 설치하는 방법을 보여줍니다.

전제 조건

  • Ubuntu 22.04를 실행하는 서버.\n
  • 최소 16GB RAM 및 4 CPU 코어.
  • 루트 암호는 서버에서 구성됩니다.\n

Malcolm 시스템 사용자 생성

먼저 Malcolm을 실행하려면 전용 사용자 계정을 만들어야 합니다. 다음 명령으로 만들 수 있습니다.

useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolm

그런 다음 다음 명령을 사용하여 사용자 암호를 설정합니다.

passwd malcolm

그런 다음 다음 명령을 사용하여 Malcolm 사용자의 UID를 확인합니다.

id malcolm

다음 출력이 표시되어야 합니다.

uid=1000(malcolm) gid=1000(malcolm) groups=1000(malcolm),27(sudo)

말콤 우분투 22.04 설치

먼저 사용자를 Malcolm으로 전환하고 다음 명령을 사용하여 최신 버전의 Malcolm을 다운로드합니다.

su - malcolm
git clone https://github.com/idaholab/Malcolm

다운로드가 완료되면 디렉토리를 다운로드한 디렉토리로 변경하고 다음 명령을 사용하여 Malcolm 설치를 시작합니다.

cd Malcolm
sudo ./scripts/install.py

설치하는 동안 아래와 같이 몇 가지 질문을 받게 됩니다.

Installing required packages: ['apache2-utils', 'make', 'openssl', 'python3-dialog']

"docker info" failed, attempt to install Docker? (Y/n): Y

Attempt to install Docker using official repositories? (Y/n): Y
Installing required packages: ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg-agent', 'software-properties-common']


Installing docker packages: ['docker-ce', 'docker-ce-cli', 'containerd.io']
Installation of docker packages apparently succeeded

Add a non-root user to the "docker" group?: Y

Enter user account: malcolm

Add another non-root user to the "docker" group?: n

"docker-compose version" failed, attempt to install docker-compose? (Y/n): Y

Install docker-compose directly from docker github? (Y/n): Y
Download and installation of docker-compose apparently succeeded


fs.file-max increases allowed maximum for file handles
fs.file-max= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_user_watches increases allowed maximum for monitored files
fs.inotify.max_user_watches= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_queued_events increases queue size for monitored files
fs.inotify.max_queued_events= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_user_instances increases allowed maximum monitor file watchers
fs.inotify.max_user_instances= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.max_map_count increases allowed maximum for memory segments
vm.max_map_count= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


net.core.somaxconn increases allowed maximum for socket connections
net.core.somaxconn= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.dirty_background_ratio defines the percentage of system memory fillable with "dirty" pages before flushing
vm.dirty_background_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.dirty_ratio defines the maximum percentage of dirty system memory before committing everything
vm.dirty_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

/etc/security/limits.d/limits.conf increases the allowed maximums for file handles and memlocked segments
/etc/security/limits.d/limits.conf does not exist, create it? (Y/n): Y

Malcolm이 설치되면 다음 단계를 진행할 수 있습니다.

Malcolm 구성

Malcolm을 설치한 후 다음 명령을 사용하여 구성해야 합니다.

sudo ./scripts/install.py --configure

Malcolm 구성 중에 몇 가지 질문을 받게 됩니다. 아래와 같이 모든 질문에 답하십시오.

  • Malcolm 프로세스는 UID 1000 및 GID 1000으로 실행됩니다. 괜찮습니까? (예/아니요): 예
  • OpenSearch용 10g 및 Logstash용 3g 설정. 이거 괜찮아? 예
  • Logstash 파이프라인에 대해 3개의 작업자를 설정합니다. 이거 괜찮아? (예/아니요): 예
  • 시스템 또는 Docker 데몬이 다시 시작될 때 Malcolm을 다시 시작하시겠습니까? 예 그런 다음 중지하지 않는 한 기본 옵션을 선택합니다.\n
  • HTTPS로 Malcolm을 설정할지 여부 선택: 예\n
  • Malcolm이 프록시 뒤에서 실행되는지 여부 선택: 아니오\n
  • 네트워킹 선택: 기본값을 수락하려면 입력하십시오. LDAP 선택: 아니요
  • OpenSearch 색인 스냅샷 호스트를 /opt/malcolm/Malcom/opensearch-backup에 로컬로 저장하시겠습니까? 예
  • OpenSearch 색인 스냅샷 압축 선택: 예
  • 데이터베이스가 특정 크기를 초과할 때 가장 오래된 인덱스를 삭제할지 여부: 아니오\n
  • 로그의 소스 및 대상 IP 주소에 대해 로컬에서 역방향 DNS 조회: 아니요\n
  • MAC 주소에 대한 하드웨어 공급업체 OUI 조회: 예\n
  • 일부 필드에서 문자열 임의성 채점 수행: 예\n
  • OpenSearch 포트를 외부 호스트에 노출: 아니오\n
  • Logstash 포트를 외부 호스트에 노출: 아니오\n
  • Logstash 로그를 외부 OpenSearch 인스턴스로 전달: 아니오
  • Filebeat TCP 포트를 외부 호스트에 노출: 아니오\n
  • Zeek로 파일 추출 활성화: 예\n
  • 흥미로움을 추출 동작으로 선택합니다. 파일 보존 방법 선택: 격리
  • ClamAV로 추출된 파일/PE 파일 검사: 예
  • Yara로 추출된 파일/PE 파일 스캔: 예
  • Capa로 추출된 파일/PE 파일 검사: 예
  • VirusTotal을 사용하여 추출된 파일 해시 조회: 아니요\n
  • 업데이트된 스캐너 서명을 주기적으로 다운로드: 예
  • Malcolm이 PCAP 파일에 대한 네트워크 트래픽을 캡처해야 합니까? 예\n
  • Malcolm이 네트워크 트래픽에 사용할 캡처 인터페이스(쉼표로 구분) 지정: eth0\n
  • netsniff-ng를 사용하여 패킷을 캡처하시겠습니까? (예/아니요): 예
  • tcpdump를 사용하여 패킷을 캡처하시겠습니까? (y/N): 아니요
  • 캡처 필터(tcpdump와 유사한 필터 표현식, 모든 트래픽을 캡처하려면 공백으로 두십시오.) 포트 8005가 아닌 5044
  • 캡처 인터페이스 하드웨어 오프로딩을 비활성화하고 링 버퍼 크기를 조정하시겠습니까? (y/아니요): n

Malcolm이 구성되면 시스템을 다시 시작하여 구성을 적용하십시오.

sudo reboot

Malcolm 관리자 계정 만들기

다음으로 Malcolm 웹 인터페이스에 액세스하려면 관리 계정을 만들어야 합니다.

먼저 사용자를 Malcolm으로 전환하고 다음 명령을 사용하여 Malcolm 디렉터리로 이동합니다.

su - malcolm
cd ~/Malcolm

그런 다음 다음 명령을 실행하여 관리자 계정을 만듭니다.

./scripts/auth_setup

관리자 계정을 만들려면 아래와 같이 모든 질문에 답하십시오.

  • 로컬 Malcolm 액세스를 위한 관리자 사용자 이름/암호를 저장하시겠습니까? 예
  • 관리자 비밀번호와 사용자 이름을 설정합니다.\n
  • 웹 트래픽 HTTPS에 대해 자체 서명된 SSL 인증서를 (재)생성: 예\n
  • 원격 로그 전달자를 위한 자체 서명된 인증서를 (재)생성: 예\n
  • Logstash 이벤트를 보조 외부 OpenSearch 인스턴스로 전달하기 위한 사용자 이름/암호 저장: 아니요. 이메일 알림 발신자 계정의 사용자 이름/암호 저장: 아니오\n

Malcolm Docker 이미지 가져오기

다음으로 Docker Hub 레지스트리에서 필요한 모든 Docker 이미지를 다운로드해야 합니다. 다음 명령으로 모두 다운로드할 수 있습니다.

docker-compose pull

모든 이미지가 다운로드되면 다음 명령을 사용하여 모든 이미지를 확인합니다.

docker images

다음 출력이 표시되어야 합니다.

REPOSITORY                        TAG       IMAGE ID       CREATED       SIZE
malcolmnetsec/filebeat-oss        6.2.0     5e9fa4c8ea2d   11 days ago   648MB
malcolmnetsec/arkime              6.2.0     4f4e6025c82d   11 days ago   793MB
malcolmnetsec/zeek                6.2.0     5b117ad2b4bb   11 days ago   1.4GB
malcolmnetsec/dashboards          6.2.0     9dcaff859eec   11 days ago   1.13GB
malcolmnetsec/logstash-oss        6.2.0     cf4d75dcf4af   11 days ago   1.64GB
malcolmnetsec/file-monitor        6.2.0     26227c3c7dc9   11 days ago   589MB
malcolmnetsec/nginx-proxy         6.2.0     3b8b5413b52e   11 days ago   121MB
malcolmnetsec/file-upload         6.2.0     2c704be24433   11 days ago   263MB
malcolmnetsec/api                 6.2.0     90f964b5d728   11 days ago   148MB
malcolmnetsec/suricata            6.2.0     cbdb091d2df4   11 days ago   274MB
malcolmnetsec/htadmin             6.2.0     2b55630700d1   11 days ago   242MB
malcolmnetsec/opensearch          6.2.0     9ccb4665bd6c   11 days ago   1.25GB
malcolmnetsec/pcap-monitor        6.2.0     d957d803bdbb   11 days ago   214MB
malcolmnetsec/freq                6.2.0     3959a9daa952   11 days ago   131MB
malcolmnetsec/dashboards-helper   6.2.0     7da9699a72b3   11 days ago   168MB
malcolmnetsec/pcap-capture        6.2.0     df63e8daa369   11 days ago   121MB
malcolmnetsec/name-map-ui         6.2.0     6bd6c7c58d36   11 days ago   120MB

Malcolm 서비스 시작

이제 Malcolm에 필요한 모든 구성 요소가 준비되었습니다. 이제 다음 명령을 사용하여 Malcolm 서비스를 시작할 수 있습니다.

./scripts/start

모든 서비스를 시작하려면 잠시 기다립니다. 모든 서비스가 시작되면 다음 명령을 사용하여 실행 중인 모든 서비스를 확인합니다.

docker ps -a

다음 출력에 실행 중인 모든 컨테이너가 표시되어야 합니다.

CONTAINER ID   IMAGE                                   COMMAND                  CREATED          STATUS                             PORTS                                                                                            NAMES
840ea2b0e9ad   malcolmnetsec/nginx-proxy:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          0.0.0.0:443->443/tcp, 127.0.0.1:5601->5601/tcp, 0.0.0.0:488->488/tcp, 127.0.0.1:9200->9200/tcp   malcolm-nginx-proxy-1
dd5c8c63816c   malcolmnetsec/suricata:6.2.0            "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)                                                                                                           malcolm-suricata-1
3112e1bd8f73   malcolmnetsec/filebeat-oss:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          127.0.0.1:5045->5045/tcp                                                                         malcolm-filebeat-1
c93cfe93ad7e   malcolmnetsec/file-upload:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          80/tcp, 127.0.0.1:8022->22/tcp                                                                   malcolm-upload-1
18ee20b46f3c   malcolmnetsec/dashboards:6.2.0          "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          5601/tcp                                                                                         malcolm-dashboards-1
2c34206c06e4   malcolmnetsec/zeek:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)                                                                                                           malcolm-zeek-1
41103ef99ce1   malcolmnetsec/logstash-oss:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          9001/tcp, 127.0.0.1:5044->5044/tcp, 9600/tcp                                                     malcolm-logstash-1
0408f42a76c3   malcolmnetsec/dashboards-helper:6.2.0   "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          28991/tcp                                                                                        malcolm-dashboards-helper-1
3e78024620de   malcolmnetsec/arkime:6.2.0              "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          8000/tcp, 8005/tcp, 8081/tcp                                                                     malcolm-arkime-1
58cd869beced   malcolmnetsec/pcap-monitor:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          30441/tcp                                                                                        malcolm-pcap-monitor-1
1040fa8bd6df   malcolmnetsec/file-monitor:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          3310/tcp, 8440/tcp                                                                               malcolm-file-monitor-1
25c83f14413d   malcolmnetsec/zeek:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-zeek-live-1
b321a96c0362   malcolmnetsec/api:6.2.0                 "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          5000/tcp                                                                                         malcolm-api-1
0f1f4ac023f9   malcolmnetsec/name-map-ui:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          8080/tcp                                                                                         malcolm-name-map-ui-1
ba4d553cf6b5   malcolmnetsec/suricata:6.2.0            "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-suricata-live-1
e4637d0ec04d   malcolmnetsec/opensearch:6.2.0          "/usr/local/bin/dock…"   17 minutes ago   Up 13 minutes (health: starting)   9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp                                                           malcolm-opensearch-1
ac002e31d9be   malcolmnetsec/htadmin:6.2.0             "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          80/tcp                                                                                           malcolm-htadmin-1
7223d5244a7b   malcolmnetsec/pcap-capture:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-pcap-capture-1
971931b21788   malcolmnetsec/freq:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          10004/tcp                                                                                        malcolm-freq-1

다음 명령을 사용하여 모든 수신 포트를 확인할 수도 있습니다.

ss -atlnp | grep -i docker

다음 출력이 표시되어야 합니다.

LISTEN 0      65535      127.0.0.1:5601       0.0.0.0:*    users:(("docker-proxy",pid=7480,fd=4))   
LISTEN 0      65535        0.0.0.0:488        0.0.0.0:*    users:(("docker-proxy",pid=7519,fd=4))   
LISTEN 0      65535      127.0.0.1:9200       0.0.0.0:*    users:(("docker-proxy",pid=7443,fd=4))   
LISTEN 0      65535      127.0.0.1:5044       0.0.0.0:*    users:(("docker-proxy",pid=6247,fd=4))   
LISTEN 0      65535      127.0.0.1:5045       0.0.0.0:*    users:(("docker-proxy",pid=7063,fd=4))   
LISTEN 0      65535      127.0.0.1:8022       0.0.0.0:*    users:(("docker-proxy",pid=6826,fd=4))   
LISTEN 0      65535        0.0.0.0:443        0.0.0.0:*    users:(("docker-proxy",pid=7567,fd=4))

액세스 말콤

이제 URL https://your-server-ip/dashboards/를 사용하여 Malcolm OpenSearch 대시보드에 액세스할 수 있습니다. 관리자 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다.

관리자 사용자 이름, 비밀번호를 제공하고 로그인 버튼을 클릭합니다. 다음 화면에 OpenSearch 대시보드가 표시되어야 합니다.

Malcolm 캡처 파일 및 로그 아카이브 업로드 화면에 액세스하려면 URL https://your-server-ip/upload/를 입력하십시오.

호스트 및 서브넷 이름 매핑 편집기에 액세스하려면 URL https://your-server-ip/name-map-ui/를 입력합니다.

계정 관리 화면에 액세스하려면 URL https://your-server-ip:488/을 사용하십시오.

축하합니다! Ubuntu 22.04에 Malcolm 네트워크 트래픽 분석 도구를 성공적으로 설치하고 구성했습니다.