NICT EXIST를 설치해 보았습니다.
소개
EXIST란?
EXIST 은 NICT 의 NICTER 해석 팀이 개발한 웹 어플리케이션으로, NICTER 해석 팀이 일상적인 조사·해석 업무에 사용하고 있는 툴입니다.
커뮤니티나 보안 벤더 등이 제공하는 사이버 위협 정보를 자동 집계할 수 있습니다.
EXIST는 사이버 위협 정보를 집계하고 다양한 소스를 가로 질러 검색 할 수있는 웹 응용 프로그램입니다. 다양한 소스에서 사이버 위협 정보를 피드 및 API를 통해 검색하여 EXIST의 데이터베이스에 집계합니다. 사용자는 WebUI 또는 WebAPI에서 사이버 위협 정보를 특정 키워드로 횡단적으로 검색 할 수 있습니다.
인용: NICTER Blog 부터)
환경 구성
- OS: CentOS 7.6
- DB: MariaDB 10.3.13
- Python 3.6.7
설치
GitHub의 순서를 참고로, 설치해 갑니다.
OS가 프록시 아래 환경에 있으면 /etc/profile
에 프록시 설정을 추가하십시오.
OS 최신화
# sudo yum update -y
# sudo yum upgrade -y
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
Git 설치
# yum install git -y
# プロキシの設定は必要に応じて実施
# git config --global http.proxy http://proxy.example.com:port
# git config --global https.proxy http://proxy.example.com:port
Python3 설치
Yum 리포지토리를 추가하고 Python3.6을 설치합니다.
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
# yum install python36u python36u-libs python36u-devel python36u-pip -y
# yum groupinstall 'development tools' -y
# python3.6 --version
Python 3.6.7
pip 버전 업
Python과 함께 제공되는 pip 버전은 이전 상태이므로 --upgrade
옵션을 사용하여 최신 버전으로 업데이트합니다.
프록시 환경의 경우 --proxy http://proxy.example.com:port
옵션을 추가합니다.
# pip3.6 install --upgrade pip
# pip3.6 --version
pip 19.0.3 from /usr/lib/python3.6/site-packages/pip (python 3.6)
소스 클론
# cd /opt
# git clone https://github.com/nict-csl/exist.git
Python 모듈 설치
프록시 환경의 경우 pip 명령에 --proxy http://proxy.example.com:port
를 추가합니다.
# cd /opt/exist
# pip install -r requirements.txt
MariaDB 설치
프록시 환경의 경우, ~/.curlrc
에 프록시 정보를 기재해 둡니다.
~/.curlrcproxy-user=username:password
proxy=http://proxy.example.com:port
# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo.
[info] Adding trusted package signing keys...
[info] Succeessfully added trusted package signing keys.
# yum install MariaDB-server MariaDB-client -y
# systemctl start mariadb
# systemctl enable mariadb
mysql_secure_installation
MariaDB의 최소 보안 설정을 수행합니다.
# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): //初期インストール時はパスワードがないため、そのままEnter押下
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password: //新しいパスワードを入力
Re-enter new password: //再度、新しいパスワードを入力
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
MariaDB 재부팅
# systemctl restart mariadb
MariaDB 설정
MariaDB에 mysql -u root -p
명령으로 로그인하고 EXIST에 대한 설정을 구성합니다.
MariaDB [(none)]> CREATE DATABASE intelligence_db;
MariaDB [(none)]> CREATE USER 'exist'@'localhost' IDENTIFIED BY 'Passw0rd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON intelligence_db.* TO 'exist'@'localhost';
MariaDB [(none)]> quit
장고 설정
템플릿 파일을 복사하여 구성 파일을 만듭니다.
# cp -p /opt/exist/intelligence/settings.py.template /opt/exist/intelligence/settings.py
settings.py
파일의 정보를 업데이트합니다.
업데이트는 다음 내용입니다.
- OS: CentOS 7.6
- DB: MariaDB 10.3.13
- Python 3.6.7
GitHub의 순서를 참고로, 설치해 갑니다.
OS가 프록시 아래 환경에 있으면
/etc/profile
에 프록시 설정을 추가하십시오.OS 최신화
# sudo yum update -y
# sudo yum upgrade -y
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
Git 설치
# yum install git -y
# プロキシの設定は必要に応じて実施
# git config --global http.proxy http://proxy.example.com:port
# git config --global https.proxy http://proxy.example.com:port
Python3 설치
Yum 리포지토리를 추가하고 Python3.6을 설치합니다.
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
# yum install python36u python36u-libs python36u-devel python36u-pip -y
# yum groupinstall 'development tools' -y
# python3.6 --version
Python 3.6.7
pip 버전 업
Python과 함께 제공되는 pip 버전은 이전 상태이므로
--upgrade
옵션을 사용하여 최신 버전으로 업데이트합니다.프록시 환경의 경우
--proxy http://proxy.example.com:port
옵션을 추가합니다.# pip3.6 install --upgrade pip
# pip3.6 --version
pip 19.0.3 from /usr/lib/python3.6/site-packages/pip (python 3.6)
소스 클론
# cd /opt
# git clone https://github.com/nict-csl/exist.git
Python 모듈 설치
프록시 환경의 경우 pip 명령에
--proxy http://proxy.example.com:port
를 추가합니다.# cd /opt/exist
# pip install -r requirements.txt
MariaDB 설치
프록시 환경의 경우,
~/.curlrc
에 프록시 정보를 기재해 둡니다.~/.curlrc
proxy-user=username:password
proxy=http://proxy.example.com:port
# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
[info] Repository file successfully written to /etc/yum.repos.d/mariadb.repo.
[info] Adding trusted package signing keys...
[info] Succeessfully added trusted package signing keys.
# yum install MariaDB-server MariaDB-client -y
# systemctl start mariadb
# systemctl enable mariadb
mysql_secure_installation
MariaDB의 최소 보안 설정을 수행합니다.
# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): //初期インストール時はパスワードがないため、そのままEnter押下
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password: //新しいパスワードを入力
Re-enter new password: //再度、新しいパスワードを入力
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
MariaDB 재부팅
# systemctl restart mariadb
MariaDB 설정
MariaDB에
mysql -u root -p
명령으로 로그인하고 EXIST에 대한 설정을 구성합니다.MariaDB [(none)]> CREATE DATABASE intelligence_db;
MariaDB [(none)]> CREATE USER 'exist'@'localhost' IDENTIFIED BY 'Passw0rd';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON intelligence_db.* TO 'exist'@'localhost';
MariaDB [(none)]> quit
장고 설정
템플릿 파일을 복사하여 구성 파일을 만듭니다.
# cp -p /opt/exist/intelligence/settings.py.template /opt/exist/intelligence/settings.py
settings.py
파일의 정보를 업데이트합니다.업데이트는 다음 내용입니다.
/opt/exist/intelligence/settings.py
ALLOWED_HOSTS = [
'localhost',
'xxx.xxx.xxx.xxx', # インストールサーバーのIPアドレス etc.
]
...(中略)...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'intelligence_db',
'USER': 'exist',
'PASSWORD': 'Passw0rd',
'HOST': '',
'PORT': '',
'OPTIONS': {
'charset': 'utf8mb4',
'init_command': 'SET character_set_connection=utf8mb4;'
'SET collation_connection=utf8mb4_unicode_ci;'
"SET NAMES 'utf8mb4';"
"SET CHARACTER SET utf8mb4;"
},
}
}
장고 마이그레이션
# cd /opt/exist
# python3.6 manage.py makemigrations exploit reputation threat threat_hunter twitter twitter_hunter
# python3.6 manage.py migrate
Redis server 설치
# yum install redis -y
# systemctl start redis
# systemctl enable redis
Celery 설정
/etc/sysconfig/celery
# Name of nodes to start
# here we have a single node
CELERYD_NODES="localhost"
# or we could have three nodes:
#CELERYD_NODES="w1 w2 w3"
# Absolute or relative path to the 'celery' command:
CELERY_BIN="/bin/celery"
# App instance to use
# comment out this line if you don't use an app
CELERY_APP="intelligence"
# or fully qualified:
#CELERY_APP="proj.tasks:app"
# How to call manage.py
CELERYD_MULTI="multi"
# Extra command-line arguments to the worker
CELERYD_OPTS="--time-limit=300 --concurrency=8"
# - %n will be replaced with the first part of the nodename.
# - %I will be replaced with the current child process index
# and is important when using the prefork pool to avoid race conditions.
CELERYD_PID_FILE="/var/run/celery/%n.pid"
CELERYD_LOG_FILE="/var/log/celery/%n%I.log"
CELERYD_LOG_LEVEL="INFO"
Celery 자동 시작 설정
/etc/systemd/system/celery.service
[Unit]
Description=Celery Service
After=network.target
[Service]
Type=forking
User=root
Group=root
EnvironmentFile=/etc/sysconfig/celery
WorkingDirectory=/opt/exist
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
--pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
[Install]
WantedBy=multi-user.target
방화벽 설정
# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --zone=public --add-service=https --permanent
# firewall-cmd --zone=public --add-port=8000/tcp --permanent
# firewall-cmd --reload
EXIST 시작
# mkdir -p /var/log/celery; chown root:root /var/log/celery
# mkdir -p /var/run/celery; chown root:root /var/run/celery
# systemctl start celery.service
# systemctl enable celery.service
# python3.6 /opt/exist/manage.py runserver 0.0.0.0:8000
웹브라우저에서
http://<EXISTサーバーのIPアドレス>:8000
로 이동하여 아래 화면이 나오면 시작이 완료됩니다.관련 링크
참고 정보
Reference
이 문제에 관하여(NICT EXIST를 설치해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ymasaoka/items/d9f679e8b8308b3e72f4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)