지난 포스트에서 방화벽 설치를 완료하였다. 별도의 정책이 없이 일단은 NAT를 제공하는 게이트웨이 형태로 운영되고 있기 때문에, 방화벽 정책을 설정하기 전에 우선 각 네트워크 영역에 필요한 이미지들을 설치한다.
우선 첫번째는 Office Zone이다. 해당 zone에는 개발자 PC, 관리자 PC가 존재한다. 각각 윈도우7 이미지를 이용하여 구성하고, 네트워크를 구성해 준다.
네트워크 인터페이스 구성 방법은 이전의 방법과 동일하게 Office VMnet에 연결하면 된다. 그리고 윈도우 7 이미지 내부에서 네트워크 설정을 진행해 준다.
제어판 - 네트워크 및 인터넷 - 네트워크 및 공유 센터 에 들어가면 현재 이미지 내 네트워크 상태를 확인할 수 있다. 처음 들어가면 당연히 인터넷 연결이 되지 않고 있다. 네트워크 영역에 맞게 설정을 진행한다.
해당 창에서 연결 부분에 있는 로컬 영역 연결을 클릭하면 네트워크 정보를 확인할 수 있다. 해당 네트워크 정보에서 속성을 클릭한 뒤, 로컬 영역 연결 속성을 확인할 수 있는데, 여기서 IPv4에 해당하는 항목을 더블클릭한다. 그러면 IPv4 설정을 진행할 수 있다.
그러면 IPv4 속성에서 IP주소를 설정해 줄 수 있다. 여기서 수동으로 IP를 지정해 주면 된다. 이후, 잠시 기다리면 링크가 정상적으로 연결되는 것을 확인할 수 있다.
이후, 동일한 방법으로 다른 PC도 IP를 설정해 준다.
다음으로, HIDS 서버를 구축한다. 필자는 HIDS 서버를 위해 기존에 미리 구축해 둔 우분투 서버를 이용할 예정이다. 우분투 설치의 경우, 차후 IPS에 연결하는 웹 서버를 구축할 때 우분투를 새로 구축할 예정이므로, 그때 상세히 서술한다.
기존의 우분투 서버에 우선 네트워크를 구성한다. 기존에 하던 대로 VMnet을 이용해서 네트워크 인터페이스를 Internal로 설정해 주고, 우분투 내부에서 네트워크 설정을 진행한다.
우분투의 경우, 우측 상단의 아이콘을 통해 네트워크 설정을 진행할 수 있다. 아이콘을 클릭하고, Settings에 들어간다.
이후 설정처럼 생긴 버튼을 누르면 네트워크 설정을 진행할 수 있다.
이후 IPv4 설정으로 들어가 Manual로 주소 및 DNS를 설정해 주면 된다.
이후 네트워크를 한번 껏다 켜거나, 해당 이미지를 재부팅하면 정상적으로 인터넷이 연결되는 것을 확인할 수 있다.
인터넷이 정상적으로 연결되었다면, 해당 서버의 기능을 정상적으로 수행하기 위해 Wazuh를 설치한다.
Wazuh의 경우, https://wazuh.com/start/ 에서 다운로드 가이드를 확인할 수 있다. Wazuh 서버의 설치 방식에는 All-in-one이 있고, Distributed가 존재하는데, 한 서버에 모든 구성 요소를 담을 예정이기 때문에 All-in-one 방식으로 설치한다.
해당 명령어를 통해 Wazuh 서버를 한번에 설치할 수 있다. 이때, 꼭 root 권한으로 수행되어야 하기 때문에 루트 계정에서 수행한다.
# curl -so ~/all-in-one-installation.sh https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/unattended-installation/all-in-one-installation.sh && bash ~/all-in-one-installation.sh -i
위의 명령어를 사용하면 한번에 설치할 수 있지만, 필자는 각 구성요소를 step-by-step 방식을 이용하여 설치할 예정이다.
우선 설치를 위해 JDK11, wget, curl, unzip, libcap 등의 패키지가 필요한데, 아래 명령어를 따라가면서 차근차근 실행해 준다.
# apt install -y curl apt-transport-https unzip wget libcap2-bin software-properties-common lsb-release gnupg2
# add-apt-repository ppa:openjdk-r/ppa
# apt update
# export JAVA_HOME=/usr/ && apt install -y openjdk-11-jdk
이후 Wazuh를 설치하기 위해 아래 step을 수행한다.
# curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH
# echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list
# apt-get update
# apt-get install wazuh-manager
# systemctl daemon-reload
# systemctl enable wazuh-manager
# systemctl start wazuh-manager
이후 Wazuh에서 사용하는 모듈 중 하나인 Elasticsearch를 설치한다
# apt install elasticsearch-oss opendistroforelasticsearch
# curl -so /etc/elasticsearch/elasticsearch.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/elasticsearch/7.x/elasticsearch_all_in_one.yml
# curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/roles.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/elasticsearch/roles/roles.yml
# curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/roles_mapping.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/elasticsearch/roles/roles_mapping.yml
# curl -so /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/elasticsearch/roles/internal_users.yml
# rm /etc/elasticsearch/esnode-key.pem /etc/elasticsearch/esnode.pem /etc/elasticsearch/kirk-key.pem /etc/elasticsearch/kirk.pem /etc/elasticsearch/root-ca.pem -f
# mkdir /etc/elasticsearch/certs
# cd /etc/elasticsearch/certs
# curl -so ~/search-guard-tlstool-1.8.zip https://maven.search-guard.com/search-guard-tlstool/1.8/search-guard-tlstool-1.8.zip
# unzip ~/search-guard-tlstool-1.8.zip -d ~/searchguard
# curl -so ~/searchguard/search-guard.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/searchguard/search-guard-aio.yml
# ~/searchguard/tools/sgtlstool.sh -c ~/searchguard/search-guard.yml -ca -crt -t /etc/elasticsearch/certs/
# rm /etc/elasticsearch/certs/client-certificates.readme /etc/elasticsearch/certs/elasticsearch_elasticsearch_config_snippet.yml ~/search-guard-tlstool-1.8.zip ~/searchguard -rf
# systemctl daemon-reload
# systemctl enable elasticsearch
# systemctl start elasticsearch
# /usr/share/elasticsearch/plugins/opendistro_security/tools/securityadmin.sh -cd /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/ -nhnv -cacert /etc/elasticsearch/certs/root-ca.pem -cert /etc/elasticsearch/certs/admin.pem -key /etc/elasticsearch/certs/admin.key
이후 해당 명령을 쳤을 때 다음과 같은 output이 나오면 된다.
# curl -XGET https://localhost:9200 -u admin:admin -k
{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "J4EAfzd7R4KZv-31jBAuNA",
"version" : {
"number" : "7.10.0",
"build_flavor" : "oss",
"build_type" : "rpm",
"build_hash" : "51e9d6f22758d0374a0f3f5c6e8f3a7997850f96",
"build_date" : "2020-11-09T21:30:33.964949Z",
"build_snapshot" : false,
"lucene_version" : "8.7.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
이후 Wazuh에서 사용하는 모듈 중 하나인 Filebeat를 설치한다.
# apt-get install filebeat
# curl -so /etc/filebeat/filebeat.yml https://raw.githubusercontent.com/wazuh/wazuh-documentation/4.1/resources/open-distro/filebeat/7.x/filebeat_all_in_one.yml
# curl -so /etc/filebeat/wazuh-template.json https://raw.githubusercontent.com/wazuh/wazuh/4.1/extensions/elasticsearch/7.x/wazuh-template.json
# chmod go+r /etc/filebeat/wazuh-template.json
# curl -s https://packages.wazuh.com/4.x/filebeat/wazuh-filebeat-0.1.tar.gz | tar -xvz -C /usr/share/filebeat/module
# mkdir /etc/filebeat/certs
# cp /etc/elasticsearch/certs/root-ca.pem /etc/filebeat/certs/
# mv /etc/elasticsearch/certs/filebeat* /etc/filebeat/certs/
# systemctl daemon-reload
# systemctl enable filebeat
# systemctl start filebeat
이후 해당 명령을 쳤을 때 다음과 같은 output이 나오면 된다.
# filebeat test output
elasticsearch: https://127.0.0.1:9200...
parse url... OK
connection...
parse host... OK
dns lookup... OK
addresses: 127.0.0.1
dial up... OK
TLS...
security: server's certificate chain verification is enabled
handshake... OK
TLS version: TLSv1.3
dial up... OK
talk to server... OK
version: 7.10.0
이후 마지막으로, Wazuh에서 사용하는 모듈 중 하나인 Kibana를 설치한다.
# apt-get install opendistroforelasticsearch-kibana
# mkdir /usr/share/kibana/data
# chown -R kibana:kibana /usr/share/kibana/data
# cd /usr/share/kibana
# sudo -u kibana /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/4.x/ui/kibana/wazuh_kibana-4.1.4_7.10.0-1.zip
# mkdir /etc/kibana/certs
# cp /etc/elasticsearch/certs/root-ca.pem /etc/kibana/certs/
# mv /etc/elasticsearch/certs/kibana_http.key /etc/kibana/certs/kibana.key
# mv /etc/elasticsearch/certs/kibana_http.pem /etc/kibana/certs/kibana.pem
# setcap 'cap_net_bind_service=+ep' /usr/share/kibana/node/bin/node
# systemctl daemon-reload
# systemctl enable kibana
# systemctl start kibana
이후, 해당 서버의 Kibana 웹을 통해 Wazuh를 사용할 수 있다.
Kibana의 초기 아이디와 패스워드는 admin/admin이며, Kibana의 기본 포트는 5601이기 때문에 해당 포트로 접속하면 Wazuh를 확인할 수 있다.
이후 명세와 같이, 오피스망에 Wazuh Agent를 설치한다. 오피스망은 윈도우이기 때문에, 홈페이지에서 Wazuh Agent 윈도우 설치 파일을 다운로드 받아서 설치 및 배포를 진행한다.
다운로드 받은 폴더에서 CMD 창을 켜서, 해당 명령을 수행한다.
> wazuh-agent-4.1.4-1.msi /q WAZUH_MANAGER="<SERVER_IP>" WAZUH_REGISTRATION_SERVER="<SERVER_IP>"
필자의 경우, 다음과 같이 명령을 수행했다.
다른 PC들도 동일하게 적용해 준다. 이후 Wazuh Manager에서 Agent를 확인해 보면, PC들이 추가된 것을 확인할 수 있다.
'Security > Infra' 카테고리의 다른 글
[Infra] 오픈 소스를 이용한 가상 보안 인프라 환경 구축 - 5 (0) | 2021.04.16 |
---|---|
[Infra] 오픈 소스를 이용한 가상 보안 인프라 환경 구축 - 4 (0) | 2021.04.16 |
[Infra] 오픈 소스를 이용한 가상 보안 인프라 환경 구축 - 2 (0) | 2021.04.15 |
[Infra] 오픈 소스를 이용한 가상 보안 인프라 환경 구축 - 1 (3) | 2021.04.15 |