Ubuntu 22.04에 Malcolm 네트워크 트래픽 분석 도구를 설치하는 방법
이 페이지에서
- 전제 조건
- Malcolm 시스템 사용자 만들기
- Malcolm Ubuntu 22.04 설치
- Malcolm 구성
- Malcolm 관리자 계정 만들기
- Malcolm Docker 이미지 가져오기
- Malcolm 서비스 시작
- 액세스 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 네트워크 트래픽 분석 도구를 성공적으로 설치하고 구성했습니다.