데이터베이스 패스워드, accounts.xml 계정들의 패스워드의 경우 일반 문자열 대신 암호화된 문자열로 적을 수 있도록 하는 것이다.
이러한 암호화된 문자열을 사용하기 위해서는 JEUS가 제공하는 암호화 툴(Encryption Tool)을 사용해야 한다.
JEUS를 기동시키거나 중지시킬 때, dsboot와 dsdown 명령어를 만들어서 간편하게 서버를 기동시키고 중지시킬 수 있다.
이때, dsboot와 dsdown에 들어가는 명령어에 user 와 password가 필요한데, 직접 작성 (plain) 하여 입력하면 보안취약점에 걸리므로 Encryption 을 통해 암호화하여 작성한다.
암호화하는 방법은 JEUS 버전마다 다르며, 암호화 알고리즘도 다르기 때문에 버전 별 맞는 Encryption 방식을 사용해야 한다.
1. JEUS6
사용 가능한 Encryption Algorism
base64
SHA
DES
DESede
AES
SEED
Blowfish
cd $JEUS_HOME/config/`hostname`/security/SYSTEM_DOMAIN
accounts.xml 파일 확인
cd $JEUS_HOME/config/`hostname`/security
security.key 파일 확인
cd $JEUS_HOME/config/`hostname`/security 경로에서 Encryption
encryption [암호화 방식] [암호화 할 패스워드]
ex) encryption aes jeusadmin
result)
[aes] : [jeusadmin] --> [encode:uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=]
[aes] : [uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=] --> [decode:jeusadmin]
암호화된 패스워드를 복사하여 accounts.xml의 <password></password>에 삽입
ex)
vi accounts.xml
..
#{암호화 알고리즘}{암호화된 패스워드}
<password>{AES}uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=</password>
..
2. JEUS7
사용 가능한 Encryption Algorism
base64
DES
DESede
AES
SEED
Blowfish
SHA
SHA-256
SHA512
##JeusEncode File 생성##
cd $JEUS_HOME/bin 이동
encryption [암호화 방식] [id]:[password]
ex) encryption aes administrator:jeusadmin
result)
[aes] : [administrator:jeusadmin] --> [encode:5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh]
[aes] : [5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh] --> [decode:administrator:jeusadmin]
$JEUS_HOME/bin 내에 jeusEncode 파일 생성
vi jeusEncode
##jeusEncode 파일 내용
#ex)
#---------------------------------------------------------------------------------------------------------------------------------
jeus_domain:adminServer 5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh
jeus_domain:server1 5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh
localhost:10000 5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh
localhost:10010 5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh
#---------------------------------------------------------------------------------------------------------------------------------
##accounts.xml 파일 수정##
cd $JEUS_HOME/config/`hostname`/security/SYSTEM_DOMAIN
accounts.xml 파일 확인
cd $JEUS_HOME/config/`hostname`/security
security.key 파일 확인
cd $JEUS_HOME/config/`hostname`/security 경로에서 Encryption
encryption [암호화 방식] [암호화 할 패스워드]
ex) encryption aes jeusadmin
result)
[aes] : [jeusadmin] --> [encode:uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=]
[aes] : [uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=] --> [decode:jeusadmin]
암호화된 패스워드를 복사하여 accounts.xml의 <password></password>에 삽입
ex)
vi accounts.xml
..
#{암호화 알고리즘}{암호화된 패스워드}
<password>{AES}uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=</password>
3. JEUS8 / 8.5
#명령어로 확인 가능
encrypion -algolist
사용 가능한 Encryption Algorism
base64 DES
base64
DES
DESede
SEED
Blowfish
SHA -1
SHA 256
SHA 384
SHA 512
AES 128
AES 192
AES 256
##JeusEncode File##
cd $JEUS_HOME/bin 이동
encryption -keypath [security.key 파일 경로] [암호화 방식] [ID 문자 수]:[ID][Passowrd]
ex) encryption -keypath /home/jeus8/jeus8/bin aes 8:wasadminjeusadmin1!
result)
[aes] : [8:wasadminjeusadmin1!] --> [encode:kgquD/cnw/HgCpk/Kl19yN3phNSAiGYFHEtAF/A0CMtOqhCJ+jFOsSybdnluoimQ]
[aes] : [kgquD/cnw/HgCpk/Kl19yN3phNSAiGYFHEtAF/A0CMtOqhCJ+jFOsSybdnluoimQ] --> [decode:8:wasadminjeusadmin1!]
$JEUS_HOME/bin 내에 jeusEncode 파일 생성
vi jeusEncode
##jeusEncode 파일 내용
#ex)
#---------------------------------------------------------------------------------------------------------------------------------
jeus_domain:wasadmin kgquD/cnw/HgCpk/Kl19yN3phNSAiGYFHEtAF/A0CMtOqhCJ+jFOsSybdnluoimQ
#---------------------------------------------------------------------------------------------------------------------------------
##accounts.xml 수정##
cd ${JEUS_HOME}/domains/${DOMAIN_NAME}/config/security/SYSTEM_DOMAIN
accounts.xml 파일 확인
cd ${JEUS_HOME}/domains/${DOMAIN_NAME}/config/security
security.key 파일 확인
cd ${JEUS_HOME}/domains/${DOMAIN_NAME}/config/security 경로에서 Encryption
encryption -keypath [security.key 파일 경로] [암호화 방식] [Passowrd]
ex) encryption -keypath ./ aes jeusadmin1!
result)
[aes] : [jeusadmin1!] --> [encode:blSCRdxhUXyEEs6JnnbMlajckjpJzQWzsPQL+Oar7mY=]
[aes] : [blSCRdxhUXyEEs6JnnbMlajckjpJzQWzsPQL+Oar7mY=] --> [decode:jeusadmin1!]
암호화된 패스워드를 복사하여 accounts.xml의 <password></password>에 삽입
ex)
vi accounts.xml
..
#{암호화 알고리즘}{암호화된 패스워드}
<password>{AES}blSCRdxhUXyEEs6JnnbMlajckjpJzQWzsPQL+Oar7mY=</password>
목차 0. 설치환경 1. JDK Version 2. 계정 생성 및 환경변수 설정 2.1 계정 생성 2.2 환경변수 설정 3. JEUS21 설치 3.1 Install File 및 설치 준비 3.2 domain-config-template.properties 설정 3.3 권한 변경 4. JEUS21 실행 4.1 ant install 4.2 DAS admin 확인 - Console Admin 4.2 DAS admin 확인 - WebAdmin
초기 설치시에 DAS만 포함된 도메인이 생성되고 WebAdmin이나 jeusadmin을 사용해 MS를 추가하여 원하는 도메인을 구성할 수 있다.
추가한 MS를 원하는 머신에서 시작하면 해당 머신에 필요한 도메인 정보가 DAS를 통해 전달된다.
Ant Task에서 설정의 기본값은 JEUS_HOME/setup/domain-config-template.properties에 정의되어 있다.
Ant Task와 jeusadmin 명령에 사용할 속성들은 공통적으로 다음과 같은 기본값을 갖는다.
속성
기본값
Listen IP 주소
0.0.0.0
Listen Port
9736
사용자 이름
administrator
Multicast IP 주소
230.30.1.1
Multicast Port 번호
12488
domain-config-template.properties 내용을 설치 시 설정한 속성으로 수정한다.
cd $JEUS_HOME
cd setup
vi domain-config-template.properties
domain-config-teplate.properties 수정 전
1. domain= : 사용하려는 domain 명으로 수정. 2. DAS 권장 설정 값으로 변경. 3. domain.admin.server.jeus.port= : webadmin 접근 포트 수정. (Default: 9736) 4. jeus.password= : jeusadmin 접근할 계정의 PW 입력 5. jeus.username= : jeusadmin 접근할 계정의 ID 입력
domain-config-teplate.properties 수정 후
#============================================================================= # [Default configuration template] # This template will be used when generating default domain-configurations via admin # tool(e.g. create-domain). # # System admin can modify this to change the default template if needed. # Do not modify option name. #=============================================================================
# Default option values. You can input your options. domain=jeus_domain productionmode=true domain.admin.server.name=adminServer cloud.server.name=server domain.admin.server.jvm.config=-Xms1024m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m domain.admin.server.jeus.port=10000 domain.admin.server.http.port=8088 transport.type=HYBRID transport.address=230.30.1.1 transport.port=12488 # password's plain text is jeus. # If you want to set encrypted password, change it by set-password command with algorithm option in jeusadmin jeus.password=jeusadmin1! jeus.username=wasadmin # Node configuration nodename=node1 # Other configuration jeus.lang=ko jvm.vendor=Sun
# If you want to set native library folder manually, define "source" to name of folder in JEUS_HOME/setup/lib_native #source=sunos_64
# target xsd file for config (default: jeus-domain.xsd,security-domains.xsd,jeus-nodes.xsd,jeus-po-service-model.xsd) source.schemas=jeus-domain.xsd,security-domains.xsd,jeus-nodes.xsd,jeus-po-service-model.xsd
3.3 권한 변경
$SUPERFRAME_HOME/lib/etc/ant/bin 하위에 파일 권한을 700으로 변경한다.
install-bin: [mkdir] Created dir: /home/jeus21/bin [copy] Copying 28 files to /home/jeus21/bin
install-nativelib: [echo] os.name=Linux, os.version=3.10.0-1160.el7.x86_64, os.arch=amd64 [echo] Found OS type = linux_x86_64 [copy] Copying 7 files to /home/jeus21/lib/system
create-domain: [mkdir] Created dir: /home/jeus21/domains/jeus_domain [mkdir] Created dir: /home/jeus21/domains/jeus_domain/.applications [mkdir] Created dir: /home/jeus21/domains/jeus_domain/.deploymentplans [mkdir] Created dir: /home/jeus21/domains/jeus_domain/bin [mkdir] Created dir: /home/jeus21/domains/jeus_domain/config [mkdir] Created dir: /home/jeus21/domains/jeus_domain/lib [mkdir] Created dir: /home/jeus21/domains/jeus_domain/lib/application [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers [copy] Copying 4 files to /home/jeus21/domains/jeus_domain/bin [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers/adminServer [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers/adminServer/bin [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers/adminServer/.workspace [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers/adminServer/.workspace/deployed [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers/adminServer/.workspace/deployed/deploymentplans [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers/adminServer/logs [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers/adminServer/lib [mkdir] Created dir: /home/jeus21/domains/jeus_domain/servers/adminServer/lib/application [echo] setup jeus directory: jeus.home = /home/jeus21
create-init-config: [echo] Creating a domain configuration: [echo] domaindir=/home/jeus21/domains/jeus_domain [echo] domain=jeus_domain [echo] password=jeusadmin1! [echo] admin server name=adminServer [echo] admin server base port=10000 [echo] admin server base listen address=${jeus.address} [echo] [mkdir] Created dir: /home/jeus21/domains/jeus_domain/config/servlet [mkdir] Created dir: /home/jeus21/domains/jeus_domain/config/security [copy] Copying 3 files to /home/jeus21/domains/jeus_domain/config [copy] Copying 1 file to /home/jeus21/domains/jeus_domain/config/servlet [copy] Copying 2 files to /home/jeus21/domains/jeus_domain/config/security [copy] Copied 1 empty directory to 1 empty directory under /home/jeus21/domains/jeus_domain/config/security [copy] Copying 4 files to /home/jeus21/domains/jeus_domain/config/security [echo] setup jeus directory: jeus.home = /home/jeus21
create-init-xmls: [echo] productionmode = true [java] JVM args ignored when same JVM is used.
BUILD SUCCESSFUL Total time: 3 seconds
ant install 후 $SUPERFRAME_HOME에 bin 과 domains 디렉토리가 생겼음을 확인할 수 있다.
$SUPERFRAME_HOME
본 예제에서는 jeusadmin의 접근할 ID/PW를 wasadmin/jeusadmin1! 으로 했고 Default는 jeus/jeus 이다.