#!/bin/bash
###########################################################
#
# Application Defender On-Premises Installation
#
# 이 스크립트는 CentOS 7 x86_64에서 테스트 되었음.
#
###########################################################
CURRENT_DIR=$(pwd)
RELEASE=20.1.0
APPDEFENDER_IP=10.10.10.55
VERTICA_DB1_IP=10.10.10.56
INSTALL_DIR=/opt/appdefender_${RELEASE}
KEY_PASSPHRASE='<비밀번호>'
ZIP_FILE=appdefender_${RELEASE}_docker_images.zip
PATH=${PATH}:/usr/local/bin
###########################################################
#
# su (일반 계정으로 실행시 su를 명시해 준다)
#
###########################################################
#SUDO_CMD=
SUDO_CMD=sudo
###########################################################
#
# appdefender.properties
#
###########################################################
HOSTNAME=$(hostname)
DB_KEY='<비밀번호>'
DOCKER_CMD=docker
DOCKER_COMPOSE=docker-compose
ZIP_CMD=/usr/bin/zip
UNZIP_CMD=/usr/bin/unzip
DOCKER_FOLDER=/var/lib/docker
TMPSTR=$(docker -v)
DOCKER_VERSION=${TMPSTR:15}
###########################################################
#
# 고객사 정보
#
###########################################################
CUSTOMER_NAME="MyCompany"
CUSTOMER_DOMAIN="test.com"
###########################################################
#
# Vertica Database 정보
#
###########################################################
VERTICA_DB=db_appdefender
VERTICA_USER=dbadmin
VERTICA_PW='<비밀번호>'
###########################################################
#
# Docker/PostgreSQL Database 정보
#
###########################################################
POSTGRES_DB=db_appdefender
POSTGRES_USER=postgres
POSTGRES_PW='<비밀번호>'
###########################################################
#
# SMTP 서버 정보
#
# MAIL_TO가 최초 로그인 계정이 되며, Forget password로
# 이메일을 통해 초기 암호를 발급 받아야 한다.
#
###########################################################
SMTP_SERVER=10.10.10.1
MAIL_FROM=sales@gmail.com
MAIL_TO=test@naver.com
###########################################################
#
# MicroFocus 사이트에서 다운로드 받은 패키지 파일 정보
#
###########################################################
PACKAGE_DIR=${INSTALL_DIR}/server
PROPERTIES_FILE=${PACKAGE_DIR}/appdefender.properties
#!/bin/bash
###########################################################
#
# docker 패키지 설치
#
# 이 스크립트는 CentOS 7 x86_64에서 테스트 되었음.
#
###########################################################
###########################################################
# config.sh를 읽어들인다.
###########################################################
INCLUDE_DIR=`pwd`
if [[ ! -d "${INCLUDE_DIR}" ]]; then INCLUDE_DIR="${PWD}"; fi
. "${INCLUDE_DIR}/0_config.sh"
###########################################################
#
# disable SELinux
#
###########################################################
setenforce 0
getenforce
###########################################################
#
# docker 제거
#
###########################################################
do_uninstall_docker() {
echo "###################################################"
echo "#"
echo "# do_uninstall_docker"
echo "#"
echo "###################################################"
${SUDO_CMD} yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
${SUDO_CMD} yum -y remove docker-ce docker-ce-cli
${SUDO_CMD} rm -f /usr/local/bin/docker-compose
${SUDO_CMD} rm -f /usr/bin/docker-compose
${SUDO_CMD} rm -rf /var/lib/docker
}
###########################################################
#
# RPM 다운로드
#
###########################################################
do_download_rpm() {
echo "###################################################"
echo "#"
echo "# do_download_rpm"
echo "#"
echo "###################################################"
RPM_DIR=$(pwd)/rpm
mkdir ${RPM_DIR}
${SUDO_CMD} yum clean all
${SUDO_CMD} yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
${SUDO_CMD} yum-config-manager --disable docker-ce-edge
${SUDO_CMD} yum-config-manager --disable docker-ce-test
${SUDO_CMD} yum install -y --downloadonly --downloaddir=${RPM_DIR} docker-ce
${SUDO_CMD} curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o ${RPM_DIR}/docker-compose
chmod 755 ${RPM_DIR}/docker-compose
}
###########################################################
#
# docker 설치
#
###########################################################
do_install_docker() {
echo "###################################################"
echo "#"
echo "# do_install_docker"
echo "#"
echo "###################################################"
${SUDO_CMD} yum install -y yum-utils device-mapper-persistent-data lvm2
${SUDO_CMD} yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
${SUDO_CMD} yum-config-manager --disable docker-ce-edge
${SUDO_CMD} yum-config-manager --disable docker-ce-test
${SUDO_CMD} yum install -y docker-ce
${SUDO_CMD} curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
${SUDO_CMD} chmod 755 /usr/bin/docker-compose
${SUDO_CMD} yum list docker-ce --showduplicates | sort -r
${SUDO_CMD} systemctl daemon-reload
${SUDO_CMD} systemctl enable docker
${SUDO_CMD} systemctl start docker
${SUDO_CMD} echo "" >> /etc/rc.d/rc.local
${SUDO_CMD} echo "ulimit -n 65536" >> /etc/rc.d/rc.local
}
###########################################################
#
# docker 설치 (SKP용)
#
###########################################################
do_install_docker_skp() {
echo "###################################################"
echo "#"
echo "# do_install_docker (for SKP)"
echo "#"
echo "###################################################"
${SUDO_CMD} yum install -y yum-utils device-mapper-persistent-data lvm2
${SUDO_CMD} yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
${SUDO_CMD} yum-config-manager --enable docker-ce-edge
${SUDO_CMD} yum-config-manager --enable docker-ce-test
${SUDO_CMD} yum install -y docker-ce
${SUDO_CMD} yum-config-manager --disable docker-ce-test
${SUDO_CMD} yum-config-manager --disable docker-ce-edge
${SUDO_CMD} curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
${SUDO_CMD} chmod 755 /usr/local/bin/docker-compose
${SUDO_CMD} yum list docker-ce --showduplicates | sort -r
${SUDO_CMD} systemctl daemon-reload
${SUDO_CMD} systemctl enable docker
${SUDO_CMD} systemctl start docker
${SUDO_CMD} echo "" >> /etc/rc.d/rc.local
${SUDO_CMD} echo "ulimit -n 65536" >> /etc/rc.d/rc.local
}
###########################################################
#
# 필요한 패키지 설치
#
###########################################################
do_install_yum_pkg() {
echo "###################################################"
echo "#"
echo "# do_install_yum_pkg"
echo "#"
echo "###################################################"
${SUDO_CMD} yum -y install net-tools
${SUDO_CMD} yum -y install sendmail
${SUDO_CMD} yum -y install ntp
${SUDO_CMD} yum -y install unzip
${SUDO_CMD} yum -y install lrzsz
${SUDO_CMD} yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
${SUDO_CMD} systemctl daemon-reload
${SUDO_CMD} systemctl disable sendmail
${SUDO_CMD} systemctl enable ntpd
${SUDO_CMD} systemctl start ntpd
${SUDO_CMD} systemctl start sendmail
}
###########################################################
#
# main
#
###########################################################
#do_download_rpm
do_uninstall_docker
do_install_docker
#do_install_docker_skp
do_install_yum_pkg
#!/bin/bash
###########################################################
#
# Application Defender On-Premises Installation
# (root로 실행)
#
# 이 스크립트는 CentOS 7 x86_64에서 테스트 되었음.
#
###########################################################
###########################################################
# config.sh를 읽어들인다.
###########################################################
INCLUDE_DIR=`pwd`
if [[ ! -d "${INCLUDE_DIR}" ]]; then INCLUDE_DIR="${PWD}"; fi
. "${INCLUDE_DIR}/0_config.sh"
if [ $(whoami) = "root" ]; then ulimit -n 65536; fi
###########################################################
#
# 설치 디렉토리 생성
#
###########################################################
do_make_dir() {
echo "###################################################"
echo "#"
echo "# do_make_dir"
echo "#"
echo "###################################################"
${SUDO_CMD} mkdir -p -m 755 ${INSTALL_DIR}
${SUDO_CMD} mkdir -p -m 755 ${INSTALL_DIR}/certs
${SUDO_CMD} mkdir -p -m 755 ${INSTALL_DIR}/data
${SUDO_CMD} mkdir -p -m 755 ${INSTALL_DIR}/docker_images
${SUDO_CMD} mkdir -p -m 755 ${INSTALL_DIR}/licenses
${SUDO_CMD} mkdir -p -m 755 ${INSTALL_DIR}/logs
${SUDO_CMD} mkdir -p -m 755 ${INSTALL_DIR}/server
${SUDO_CMD} mkdir -p -m 755 ${INSTALL_DIR}/yaml/appdefender
cd /opt
${SUDO_CMD} ln -sf ${INSTALL_DIR} appdefender
cd ${CURRENT_DIR}
}
###########################################################
#
# 설치 패키지 파일 복사
#
###########################################################
do_copy_package() {
echo "###################################################"
echo "#"
echo "# do_copy_package"
echo "#"
echo "###################################################"
${SUDO_CMD} mkdir -p ${PACKAGE_DIR}
${SUDO_CMD} cp -Rf ${CURRENT_DIR}/fortify_appdefender_server_${RELEASE}/* ${PACKAGE_DIR}/
}
###########################################################
#
# docker 실행 스크립트 재구성
# load.sh → docker_load.sh
#
###########################################################
do_make_docker_load_script() {
echo "###################################################"
echo "#"
echo "# do_make_docker_load_script"
echo "#"
echo "###################################################"
export SED_PATH_STRING=$(echo ${INSTALL_DIR} | sed 's_/_\\/_g')
echo '#!/bin/bash' > ${INSTALL_DIR}/docker_images/docker_load.sh
${SUDO_CMD} cat ${INSTALL_DIR}/docker_images/load.sh >> ${INSTALL_DIR}/docker_images/docker_load.sh
${SUDO_CMD} sed -i "s/\r//g" ${INSTALL_DIR}/docker_images/docker_load.sh
${SUDO_CMD} chmod 755 ${INSTALL_DIR}/docker_images/docker_load.sh
${SUDO_CMD} sed -i "s/ \./ ${SED_PATH_STRING}\/docker_images/g" ${INSTALL_DIR}/docker_images/docker_load.sh
}
###########################################################
#
# 스크립트 파일 복사
#
###########################################################
do_copy_script() {
echo "###################################################"
echo "#"
echo "# do_copy_script"
echo "#"
echo "###################################################"
${SUDO_CMD} cp -f ./scripts/run_appdefender.sh ${INSTALL_DIR}/
${SUDO_CMD} chmod 755 ${INSTALL_DIR}/*.sh
}
###########################################################
#
# 인증서 생성
#
###########################################################
do_generate_cert() {
echo "###################################################"
echo "#"
echo "# do_generate_cert"
echo "#"
echo "###################################################"
${SUDO_CMD} rm -rf ${INSTALL_DIR}/certs
${SUDO_CMD} tar -C ${INSTALL_DIR} -xzf ${PACKAGE_DIR}/CertGeneration.tar.gz
${SUDO_CMD} mv ${INSTALL_DIR}/CertGeneration ${INSTALL_DIR}/certs
echo "###################################################"
echo "#"
echo "# KEY_PASSPHRASE: ${KEY_PASSPHRASE}"
echo "#"
echo "###################################################"
${SUDO_CMD} chmod 755 ${INSTALL_DIR}/certs/server-root-self-signed.sh
cd ${INSTALL_DIR}/certs && ${SUDO_CMD} ./server-root-self-signed.sh
echo "###################################################"
echo "#"
echo "# KEY_PASSPHRASE: ${KEY_PASSPHRASE}"
echo "#"
echo "###################################################"
${SUDO_CMD} chmod 755 ${INSTALL_DIR}/certs/build-stores.sh
cd ${INSTALL_DIR}/certs && ${SUDO_CMD} ./build-stores.sh
cd ${CURRENT_DIR}
# If you want to use certificates from third party CA then copy server certificate, server private key, Intermediate ROOT certificate and Third party ROOT certificate to output directory:
# Enter 1 for self-signed cert or 2 for third-party CA - Default Self signed 1 <엔터키 입력>
# Creating output directory if it doesn't exist
# Enter passphrase that you want to set for Java keystore (atleast 6 characters) and press [ENTER]: <비밀번호 입력>
}
###########################################################
#
# 라이선스 파일 복사
#
###########################################################
do_copy_licenses() {
echo "###################################################"
echo "#"
echo "# do_copy_licenses"
echo "#"
echo "###################################################"
cd ${CURRENT_DIR}
${SUDO_CMD} cp -Rf licenses ${INSTALL_DIR}
}
###########################################################
#
# appdefender.properties
#
###########################################################
do_make_properties() {
echo "###################################################"
echo "#"
echo "# do_make_properties"
echo "#"
echo "###################################################"
if [ ! -e ${PROPERTIES_FILE}.orig ]; then
${SUDO_CMD} cp -f ${PROPERTIES_FILE} ${PROPERTIES_FILE}.orig
fi
${SUDO_CMD} rm -f ${PROPERTIES_FILE}
${SUDO_CMD} sh -c "echo \"deploy: single\" > ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"lb_host:${APPDEFENDER_IP}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"apps_host:[['1','${APPDEFENDER_IP}','${HOSTNAME}']]\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"infrastructure_host:[['1','${APPDEFENDER_IP}','${HOSTNAME}']]\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"apps_host_mac_address:F4:03:43:57:E8:30\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"appdefender_registry:appdefender\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"defender_logs:${INSTALL_DIR}/logs\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"defender_data:${INSTALL_DIR}/data\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"initial_user_email:${MAIL_TO}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"initial_user_first_name:Fortify\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"initial_user_last_name:Application Defender\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"initial_tenant_domain:${CUSTOMER_DOMAIN}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"initial_tenant_name:${CUSTOMER_NAME}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"mail_from:${MAIL_FROM}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"mail_host:${SMTP_SERVER}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"mail_port:25\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"mail_username:\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"mail_password:\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"postgres_ip:${APPDEFENDER_IP}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"postgres_dbname:${POSTGRES_DB}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"postgres_user:${POSTGRES_USER}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"postgres_password:${POSTGRES_PW}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"vertica_ip:${VERTICA_DB1_IP}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"vertica_dbname:${VERTICA_DB}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"vertica_user:${VERTICA_USER}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"vertica_password:${VERTICA_PW}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"keystore_path:${INSTALL_DIR}/certs/keystore.jks\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"keystore_password:${KEY_PASSPHRASE}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"truststore_path:${INSTALL_DIR}/certs/truststore.jks\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"truststore_password:${KEY_PASSPHRASE}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"itemstore_path:${INSTALL_DIR}/certs/itemstore.jks\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"itemstore_password:${KEY_PASSPHRASE}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"license_file_dir:${INSTALL_DIR}/licenses\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"version:${RELEASE}\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"syslog:disable\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"haproxy_config_location: ${INSTALL_DIR}/yaml/appdefender/haproxy.tmpl\" >> ${PROPERTIES_FILE}"
${SUDO_CMD} sh -c "echo \"db_key:${DB_KEY}\" >> ${PROPERTIES_FILE}"
}
###########################################################
#
# 설정파일 생성
#
###########################################################
do_generate_yaml() {
echo "###################################################"
echo "#"
echo "# do_generate_yaml"
echo "#"
echo "###################################################"
cd ${CURRENT_DIR}
${SUDO_CMD} cp -f ${PACKAGE_DIR}/generate-compose-yaml.py ${INSTALL_DIR}/yaml
${SUDO_CMD} rm -rf ${PACKAGE_DIR}/appdefender
${SUDO_CMD} rm -rf ${INSTALL_DIR}/yaml/appdefender
cd ${INSTALL_DIR}/yaml
${SUDO_CMD} python generate-compose-yaml.py ${PROPERTIES_FILE}
${SUDO_CMD} cp -f ${PACKAGE_DIR}/privacy-scripts.env ${INSTALL_DIR}/yaml/appdefender/
${SUDO_CMD} cp -f ${PACKAGE_DIR}/privacy-scripts.yml ${INSTALL_DIR}/yaml/appdefender/
}
###########################################################
#
# 함수 실행
#
###########################################################
do_make_dir
do_copy_package
do_copy_script
do_generate_cert
do_copy_licenses
do_make_properties
do_generate_yaml
#!/bin/bash
###########################################################
#
# unzip & 파일 복사
#
# 이 스크립트는 CentOS 7 x86_64에서 테스트 되었음.
#
# docker hub를 통해 받은 appdefender 이미지 또는 기존에
# 받아서 압축되어 있는 docker image의 압축을 푼다.
#
###########################################################
###########################################################
# config.sh를 읽어들인다.
###########################################################
INCLUDE_DIR=`pwd`
if [[ ! -d "${INCLUDE_DIR}" ]]; then INCLUDE_DIR="${PWD}"; fi
. "${INCLUDE_DIR}/0_config.sh"
###########################################################
#
# docker image 초기화
#
###########################################################
do_docker_cleaning_up() {
echo "###################################################"
echo "#"
echo "# do_docker_cleaning_up"
echo "#"
echo "###################################################"
${SUDO_CMD} ${DOCKER_CMD} stop $(${SUDO_CMD} ${DOCKER_CMD} ps -qa)
${SUDO_CMD} ${DOCKER_CMD} rm $(${SUDO_CMD} ${DOCKER_CMD} ps -qa)
${SUDO_CMD} ${DOCKER_CMD} rmi $(${SUDO_CMD} ${DOCKER_CMD} images -q)
${SUDO_CMD} ${DOCKER_CMD} volume rm $(${SUDO_CMD} ${DOCKER_CMD} volume ls -q)
${SUDO_CMD} ${DOCKER_CMD} system prune -a -f
}
###########################################################
#
# Appdefender docker 이미지 풀기
#
###########################################################
do_unzip_docker_images() {
echo "###################################################"
echo "#"
echo "# do_unzip_docker_images"
echo "#"
echo "###################################################"
if [ -x ${UNZIP_CMD} ]
then
${SUDO_CMD} mkdir -p ${INSTALL_DIR}/docker_images
${SUDO_CMD} ${UNZIP_CMD} ${ZIP_FILE} -d ${INSTALL_DIR}/docker_images
fi
}
###########################################################
#
# 함수 실행
#
###########################################################
if [ -f ${ZIP_FILE} ]
then
do_docker_cleaning_up
do_unzip_docker_images
fi
#!/bin/bash
###########################################################
#
# Application Defender On-Premises Installation
# (root로 실행)
#
# 이 스크립트는 CentOS 7 x86_64에서 테스트 되었음.
#
###########################################################
###########################################################
# config.sh를 읽어들인다.
###########################################################
INCLUDE_DIR=`pwd`
if [[ ! -d "${INCLUDE_DIR}" ]]; then INCLUDE_DIR="${PWD}"; fi
. "${INCLUDE_DIR}/0_config.sh"
if [ $(whoami) = "root" ]; then ulimit -n 65536; fi
###########################################################
#
# AppDefender ${DOCKER_CMD} 이미지 로드 (기존 이미지 모두 제거)
#
###########################################################
load_docker_images() {
echo "###################################################"
echo "#"
echo "# load_docker_images"
echo "#"
echo "###################################################"
for TAR_FILE in ${INSTALL_DIR}/docker_images/*.tar
do
echo Loading... ${TAR_FILE}
${SUDO_CMD} ${DOCKER_CMD} load -i ${TAR_FILE}
done
}
###########################################################
#
# AppDefender Build Containers
# (실행 후
# SELECT * FROM ALL_TABLES WHERE TABLE_TYPE='TABLE';
# 쿼리를 사용하여 Vertica 테이블 생성 확인)
#
###########################################################
build_containers() {
echo "###################################################"
echo "#"
echo "# build_containers"
echo "#"
echo "###################################################"
echo "###################################################"
echo "# postgres.yml"
echo "###################################################"
${SUDO_CMD} ${DOCKER_COMPOSE} -f ${INSTALL_DIR}/yaml/appdefender/postgres.yml up -d
echo "###################################################"
echo "# infrastructures.yml up -d db_migrations"
echo "###################################################"
${SUDO_CMD} ${DOCKER_COMPOSE} -f ${INSTALL_DIR}/yaml/appdefender/infrastructures.yml up -d db_migrations
${SUDO_CMD} ${DOCKER_CMD} logs -f db_migrations
echo "###################################################"
echo "# applications.yml up -d rsyslog_defender
echo "###################################################"
${SUDO_CMD} ${DOCKER_COMPOSE} -f ${INSTALL_DIR}/yaml/appdefender/applications.yml up -d rsyslog_defender
echo "###################################################"
echo "# applications.yml up -d ui_customer
echo "###################################################"
${SUDO_CMD} ${DOCKER_COMPOSE} -f ${INSTALL_DIR}/yaml/appdefender/applications.yml up -d ui_customer
echo "###################################################"
echo "# infrastructures.yml"
echo "###################################################"
${SUDO_CMD} ${DOCKER_COMPOSE} -f ${INSTALL_DIR}/yaml/appdefender/infrastructures.yml up -d
#echo "###################################################"
#echo "# optional.yml"
#echo "###################################################"
#${SUDO_CMD} ${DOCKER_COMPOSE} -f ${INSTALL_DIR}/yaml/appdefender/optional.yml up -d
echo "###################################################"
echo "# applications.yml"
echo "###################################################"
${SUDO_CMD} ${DOCKER_COMPOSE} -f ${INSTALL_DIR}/yaml/appdefender/applications.yml up -d
${SUDO_CMD} ${DOCKER_CMD} logs -f appdefender_ui_customer_1
${SUDO_CMD} ${DOCKER_CMD} ps
${SUDO_CMD} ${DOCKER_CMD} ps | wc -l
}
###########################################################
#
# 함수 실행
#
###########################################################
${SUDO_CMD} systemctl restart docker
load_docker_images
build_containers
#!/bin/bash
##############################################################################
#
# 이 패치는 Application Defender 20.1.0의 rtal(RunTime Application Logging)
# 룰이 docker 이미지에서 누락되어 있는 버그를 패치한다.
# 패치를 진행하기 전에 Agent를 한번 다운로드 받고 진행한다.
#
# 패치를 진행한 후에는 반드시 Agent를 재 설치해야 한다.
#
##############################################################################
CURRENT_DIR=$(pwd)
SECURITY_CONTENT=${CURRENT_DIR}/fortify_appdefender_server_20.1.0/SecurityContent2019.4.1.1.zip
UNZIP_CMD=$(which unzip)
if [ -z ${UNZIP_CMD} ]
then
exit 1
fi
DOCKER_CMD=$(which docker)
if [ -z ${DOCKER_CMD} ]
then
exit 2
fi
mkdir ${CURRENT_DIR}/tmp_securitycontent
${UNZIP_CMD} ${SECURITY_CONTENT} -d ${CURRENT_DIR}/tmp_securitycontent
${DOCKER_CMD} exec -it appdefender_ui_customer_1 /bin/ls -l /service/initialConfig
${DOCKER_CMD} cp ${CURRENT_DIR}/tmp_securitycontent/rules/rtal_information_dotnet.rpr appdefender_ui_customer_1:/service/initialConfig/
${DOCKER_CMD} cp ${CURRENT_DIR}/tmp_securitycontent/rules/rtal_information_java.rpr appdefender_ui_customer_1:/service/initialConfig/
${DOCKER_CMD} cp ${CURRENT_DIR}/tmp_securitycontent/rules/rtal_logging_dotnet.rpr appdefender_ui_customer_1:/service/initialConfig/
${DOCKER_CMD} cp ${CURRENT_DIR}/tmp_securitycontent/rules/rtal_logging_java.rpr appdefender_ui_customer_1:/service/initialConfig/
#for RULE_FILE in ${CURRENT_DIR}/tmp_securitycontent/rules/*
#do
# echo ${DOCKER_CMD} cp ${RULE_FILE} appdefender_ui_customer_1:/service/initialConfig/
# ${DOCKER_CMD} cp ${RULE_FILE} appdefender_ui_customer_1:/service/initialConfig/
#done
${DOCKER_CMD} exec -it appdefender_ui_customer_1 /bin/chown -R root:root /service/initialConfig
${DOCKER_CMD} exec -it appdefender_ui_customer_1 /bin/ls -l /service/initialConfig
rm -rf ${CURRENT_DIR}/tmp_securitycontent
#!/bin/bash
###########################################################
#
# unzip & 파일 복사
#
# 이 스크립트는 CentOS 7 x86_64에서 테스트 되었음.
#
# docker hub를 통해 appdefender 이미지를 받고 압축한다.
# 만일 docker hub를 이용하지 않으면 이 과정은 필요 없다.
#
###########################################################
###########################################################
# config.sh를 읽어들인다.
###########################################################
INCLUDE_DIR=`pwd`
if [[ ! -d "${INCLUDE_DIR}" ]]; then INCLUDE_DIR="${PWD}"; fi
. "${INCLUDE_DIR}/0_config.sh"
###########################################################
#
# docker image 초기화
#
###########################################################
do_docker_cleaning_up() {
echo "###################################################"
echo "#"
echo "# do_docker_cleaning_up"
echo "#"
echo "###################################################"
${SUDO_CMD} ${DOCKER_CMD} stop $(${SUDO_CMD} ${DOCKER_CMD} ps -qa)
${SUDO_CMD} ${DOCKER_CMD} rm $(${SUDO_CMD} ${DOCKER_CMD} ps -qa)
${SUDO_CMD} ${DOCKER_CMD} rmi $(${SUDO_CMD} ${DOCKER_CMD} images -q)
${SUDO_CMD} ${DOCKER_CMD} volume rm $(${SUDO_CMD} ${DOCKER_CMD} volume ls -q)
${SUDO_CMD} ${DOCKER_CMD} system prune -a -f
}
###########################################################
#
# dockerhub에서 AppDefender docker image 받아오기
#
###########################################################
do_docker_login() {
echo "###################################################"
echo "#"
echo "# do_docker_login"
echo "#"
echo "###################################################"
echo "###################################################"
echo "# DockerHUB Account: esvali / Zxcv!234Z"
echo "###################################################"
${SUDO_CMD} ${DOCKER_CMD} login
}
###########################################################
#
# dockerhub에서 AppDefender docker image 받아오기
#
###########################################################
do_docker_pull() {
echo "###################################################"
echo "#"
echo "# do_docker_pull"
echo "#"
echo "###################################################"
${SUDO_CMD} ${DOCKER_CMD} stop $(${SUDO_CMD} ${DOCKER_CMD} ps -qa)
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/defender-base:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/storm-base:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/backend-jobs:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/cassandra:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/command-channel:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/consul:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/db-migrations:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/edge:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/haproxy:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/kafka:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/postgres:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/registrator:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/rsyslog:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/storm-nimbus:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/storm-supervisor:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/storm-ui:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/topologies:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/ui-customer:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} pull appdefender/zookeeper:${RELEASE}
}
###########################################################
#
# dockerhub에서 받은 AppDefender docker image 저장하기
#
###########################################################
do_docker_save() {
echo "###################################################"
echo "#"
echo "# do_docker_save"
echo "#"
echo "###################################################"
${SUDO_CMD} ${DOCKER_CMD} stop $(${SUDO_CMD} ${DOCKER_CMD} ps -qa)
${SUDO_CMD} mkdir ./docker_images.tmp
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_defender-base_${RELEASE}.tar appdefender/defender-base:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_storm-base_${RELEASE}.tar appdefender/storm-base:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_backend-jobs_${RELEASE}.tar appdefender/backend-jobs:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_cassandra_${RELEASE}.tar appdefender/cassandra:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_command-channel_${RELEASE}.tar appdefender/command-channel:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_consul_${RELEASE}.tar appdefender/consul:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_db-migrations_${RELEASE}.tar appdefender/db-migrations:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_edge_${RELEASE}.tar appdefender/edge:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_haproxy_${RELEASE}.tar appdefender/haproxy:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_kafka_${RELEASE}.tar appdefender/kafka:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_postgres_${RELEASE}.tar appdefender/postgres:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_registrator_${RELEASE}.tar appdefender/registrator:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_rsyslog_${RELEASE}.tar appdefender/rsyslog:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_storm-nimbus_${RELEASE}.tar appdefender/storm-nimbus:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_storm-supervisor_${RELEASE}.tar appdefender/storm-supervisor:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_storm-ui_${RELEASE}.tar appdefender/storm-ui:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_topologies_${RELEASE}.tar appdefender/topologies:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_ui-customer_${RELEASE}.tar appdefender/ui-customer:${RELEASE}
${SUDO_CMD} ${DOCKER_CMD} save -o ./docker_images.tmp/appdefender_zookeeper_${RELEASE}.tar appdefender/zookeeper:${RELEASE}
}
###########################################################
#
# dockerhub에서 받은 AppDefender docker image 압축하기
#
###########################################################
do_zip_docker_images() {
echo "###################################################"
echo "#"
echo "# do_zip_docker_images"
echo "#"
echo "###################################################"
${SUDO_CMD} rm -f appdefender_${RELEASE}_docker_images.zip
if [ -x ${ZIP_CMD} ]
then
cd ./docker_images.tmp; ${SUDO_CMD} ${ZIP_CMD} -9 ../appdefender_${RELEASE}_docker_images.zip *.tar
cd ${CURRENT_DIR}
${SUDO_CMD} rm -rf ./docker_images.tmp
fi
}
###########################################################
#
# 함수 실행
#
###########################################################
do_docker_cleaning_up
do_docker_login
do_docker_pull
do_docker_save
do_zip_docker_images
#!/bin/bash
###########################################################
#
# Application Defender On-Premises uninstallation
# (root로 실행)
#
# 이 스크립트는 CentOS 7 x86_64에서 테스트 되었음.
#
# by 이존석(hasu0707@gmail.com)
#
###########################################################
###########################################################
# config.sh를 읽어들인다.
###########################################################
INCLUDE_DIR=`pwd`
if [[ ! -d "${INCLUDE_DIR}" ]]; then INCLUDE_DIR="${PWD}"; fi
. "${INCLUDE_DIR}/0_config.sh"
if [ $(whoami) = "root" ]; then ulimit -n 65536; fi
export PATH=${PATH}:/usr/local/bin
function do_uninstall_docker_images {
# AppDefender 중지
cd ${INSTALL_DIR}/yaml/appdefender
${SUDO_CMD} ${DOCKER_COMPOSE} -f applications.yml stop
${SUDO_CMD} ${DOCKER_COMPOSE} -f infrastructures.yml stop
${SUDO_CMD} ${DOCKER_COMPOSE} -f postgres.yml stop
# ${DOCKER_CMD} container 모두 중지
${SUDO_CMD} ${DOCKER_CMD} stop $(${SUDO_CMD} ${DOCKER_CMD} ps -a -q)
# ${DOCKER_CMD} container 모두 삭제
${SUDO_CMD} ${DOCKER_CMD} rm $(${SUDO_CMD} ${DOCKER_CMD} ps -a -q)
# ${DOCKER_CMD} image 모두 삭제
${SUDO_CMD} ${DOCKER_CMD} rmi $(${SUDO_CMD} ${DOCKER_CMD} images -q)
# ${DOCKER_CMD} volume 모두 삭제
${SUDO_CMD} ${DOCKER_CMD} volume rm $(${SUDO_CMD} ${DOCKER_CMD} volume ls -q)
# Purging All Unused or Dangling Images, Containers, Volumes, and Networks
${SUDO_CMD} ${DOCKER_CMD} system prune -a -f
${SUDO_CMD} systemctl stop docker
}
function do_uninstall_appdefender {
${SUDO_CMD} rm -rf /opt/appdefender
${SUDO_CMD} rm -rf /opt/appdefender_${RELEASE}
${SUDO_CMD} rm -rf /opt/*
}
do_uninstall_docker_images
do_uninstall_appdefender
${SUDO_CMD} systemctl restart docker