I.K.Picture & IT Info.

[centos/ubuntu]톰캣 일반 사용자 80 바인드 본문

Desktop and Mobile/Linux

[centos/ubuntu]톰캣 일반 사용자 80 바인드

helpful-intruder 2021. 2. 10. 22:52
반응형

해당 내용은 제가 centos와 ubuntu 모두 처리 해보고 올리는 글입니다. 

 

1. 계정 생성

일단, 기본적으로 사용하고 있는 계정을 쓰시겠지만, 보안을 위해서라면

별도 계정이 필요하겠죠...?? 

하지만, 굳이 로그인을 할 필요가 없는 계정이라면 아래와 같이 계정을 생성하면됩니다. 

 

$sudo groupadd tomcat

$sudo mkdir /opt/tomcat

$sudo useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

 

그 다음 tomcat을 받아야겠죠...?

아래 사이트를 통해 다운로드를 받습니다. (원하는 버전으로 받으시면 되요)

tomcat.apache.org/download-80.cgi

 

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

 

2. 압축 해제 및 서비스 폴더 이동

압축파일 tar.gz 을 다운로드 받으실 것이고,

이를 풀어줘야겠죠? 

전 /opt/tomcat 으로 압축을 풀었습니다.

일단 압축을 풀고, 해당 폴더로 이동을 해줬어요...

 

$tar -xvf 톰캣압축파일명.tar.gz

$sudo mv 톰캣압축파일명 /opt/

 

3. 사용 권한 설정

 

압축을 푼 곳으로 들어가서 서비스가 돌아갈 시 권한이 필요한 파일들을 변환해줍니다. 

아래 보시면 아시겠지만, 대부분 파일들에 대한 권한을 변경합니다. 

 

$cd /opt/tomcat

$sudo chgrp -R tomcat conf

$sudo chmod g+rwx conf

$sudo chmod g+r conf/*

$sudo chown -R tomcat logs/ temp/ webapps/ work/

$sudo chgrp -R tomcat bin

$sudo chgrp -R tomcat lib

$sudo chmod g+rwx bin

$sudo chmod g+r bin/*

4. 서비스 등록

서비스를 등록하기 위해 파일을 하나 생성합니다. 저 같은 경우 서비스 명을 tomcat으로 하였습니다. 

tomcat.service 파일을 보면 /opt/tomcat (압축해제한 위치)의 경우 직접 결정한 위치로 작성하시기 바랍니다.

사용자와 그룹도 위에 계정을 생성했다면 해당 계정으로 변경해주시기 바랍니다. 

 

$sudo vi /etc/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

 

[Service]

Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/jre

Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid

Environment=CATALINA_HOME=/opt/tomcat

Environment=CATALINA_BASE=/opt/tomcat

Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'

Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

 

ExecStart=/opt/tomcat/bin/startup.sh

ExecStop=/bin/kill -15 $MAINPID

 

User=tomcat

Group=tomcat

 

[Install]

WantedBy=multi-user.target

 

5. authbind 설치

여기서... 부터가 중요합니다.

tomcat은 8080 포트를 사용하는게 대부분인데.. 이를 80포트로 변경하는 경우가 간혹 있습니다. 

여러 방법들이 있지만, 이 방법이 제일 쉽고 간편해보여 정리해보았습니다. 

 

authbind라는 소프트웨어를 설치해야합니다. 

centos의 경우 아래 rpm으로 설치하는 방법이 있구요 

ubuntu의 경우 apt를 통해 받으시면됩니다. 

 

- CentOS

$sudo rpm -Uvh https://s3.amazonaws.com/aaronsilber/public/authbind-2.1.1-0.1.x86_64.rpm

- Ubuntu

$sudo apt install authbind

 

80포트를 사용하기 위한 설정을 아래를 보시면됩니다. (ubuntu/centos 모두 동일합니다)

 

$sudo touch /etc/authbind/byport/80

$sudo chmod 500 /etc/authbind/byport/80

$sudo chown tomcat /etc/authbind/byport/80

6. tomcat startup 설정 변경

startup.sh을 편집기로 실행하여 맨마지막 줄을 아래처럼 authbind가 추가되어야 합니다. 

 

$sudo vi /opt/tomcat/bin/startup.sh 

<<  exec "$PRGDIR"/"$EXECUTABLE" start "$@"

>>  exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"

 

이 다음 server.xml에 8080을 80으로 변경해줘야합니다. 

파일 안에 보면 8080이라고 써있는 부분을 변경해주세요

 

$sudo vi /opt/tomcat/conf/server.xml

 

마지막으로 서비스를 실행하면 됩니다. 

 

$sudo systemctl start tomcat.service

$sudo systemctl enable tomcat.service

 

혹시, 서비스가 실행되지 않으면, bin 폴더의 startup.sh 로 실행하셔도 됩니다.

 

반응형
Comments