728x90
[Centos7] root 계정이 아닌 일반 계정으로 Apache Tomcat 실행하기
root계정으로 톰캣 실행 시 보안측면에서 문제가 발생한다. root 계정이기 때문에 마음대로 파일 업로드를 하거나 업로드한 파일을 이용해 root 권한을 탈취하여 악의적인 코드를 실행시킬 수 있다. 그래서 tomcat이라는 일반계정을 생성한 후 앞으로는 tomcat 계정으로 Apache Tomcat을 구동시키도록 한다.
# root 계정으로 실행된 톰캣 프로세스
$ ps -ef | grep tomcat
root 4054 1 0 14:24 ? 00:00:14 //bin/java -Djava.util.logging.config.file=/usr/share/tomcat10/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/share/tomcat10/bin/bootstrap.jar:/usr/share/tomcat10/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/tomcat10 -Dcatalina.home=/usr/share/tomcat10 -Djava.io.tmpdir=/usr/share/tomcat10/temp org.apache.catalina.startup.Bootstrap start
- tomcat 계정 설정
# tomcat group 생성
$ groupadd tomcat
# tomcat user 생성 /bin/nologin을 이용하여 계정 로그인을 금지하며 그룹 및 홈디렉토리를 설정한다.
$ useradd -M -s /bin/nologin -g tomcat -d /usr/share/tomcat10 tomcat
# tomcat 디렉토리 권한 설정
$ chown -R tomcat:tomcat /usr/share/tomcat10
# tomcat 유저 확인
$ cat /etc/passwd
tomcat:x:1001:1001::/usr/share/tomcat10:/bin/nologin
- tomcat 계정으로 실행하기 위한 서비스 파일 생성
$ vi /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/share/tomcat10/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
- 서버 재부팅 시 톰캣 서비스 자동 시작
# 서비스 등록
$ systemctl enable tomcat.service
# 서비스 데몬 재로드
$ systemctl daemon-reload
- 등록된 서비스 조회
$ systemctl list-unit-files --type service | grep tomcat
tomcat.service enabled
- 톰캣 구동 테스트
# 톰캣 서비스 시작
$ service tomcat start
Redirecting to /bin/systemctl start tomcat.service
# tomcat 계정으로 실행된 톰캣 프로세스 확인
$ ps -ef | grep tomcat
tomcat 5043 1 94 16:19 ? 00:00:04 /usr/bin/java -Djava.util.logging.config.file=/usr/share/tomcat10/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/share/tomcat10/bin/bootstrap.jar:/usr/share/tomcat10/bin/tomcat-juli.jar -Dcatalina.base=/usr/share/tomcat10 -Dcatalina.home=/usr/share/tomcat10 -Djava.io.tmpdir=/usr/share/tomcat10/temp org.apache.catalina.startup.Bootstrap start
# 톰캣 서비스 종료
$ service tomcat stop
Redirecting to /bin/systemctl stop tomcat.service
728x90
'OS & Server > Linux' 카테고리의 다른 글
[Apache Tomcat] 오류 발생 시 버전 노출 방지 (1) | 2022.07.18 |
---|---|
[Apache Tomcat] 응답 헤더의 서버 정보 노출 방지 (0) | 2022.07.18 |
[Centos7] Apache Tomcat10 설치 (0) | 2022.07.15 |
[Centos7] Open JDK18 (JAVA Development Kit) 업데이트 (0) | 2022.07.15 |
[Centos7] Open JDK11 (JAVA Development Kit) 설치 (0) | 2022.07.14 |
댓글