반응형

일반적으로 Tomcat 의 8080 포트를 80번과 연동할때에는 Apache의 Mod를 이용하기도 하지만 더 쉬운방법은 iptables 방화벽에서 포트포워딩을 이용하는 것이다.

포트포워딩을 하는 방법은 이미 이전 글에서 아주 많이 다뤄놨기 때문에 이번에는 어떤게 포트포워딩이 되어있고 이걸 어케 삭제하는지에 대해서 알아보도록 하자 

우선 매우 쉬움쉬윔!!!!

(1) 포트포워딩 확인하는 명령어

 $sudo iptables -t nat -L --line-numbers

그 결과를 볼까요?

Chain PREROUTING (policy ACCEPT)

num  target     prot opt source               destination

1    REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 8080

2    REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:https redir ports 8443

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)

num  target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)

num  target     prot opt source               destination 

위를 보니 1번에는 http 80번을 8080으로 포트포워딩 하는 것이고,

2번 은 https 즉 SSL 443 포트를 8443으로 변환시키고 있다. 


여기서 의문!!!!!!!! 왜 숫자를 보여줄까? ㅋㅋㅋ


..

..


삭제하라고 하는것이다.


(2) 포트포워딩 삭제방법

$ sudo iptables -t nat -D PREROUTING 2 

위 명령어를 써버리면 바로 2번 포트포워딩이 삭제된다.


참~~~~~~ 쉽군. ㅋㅋ


잊어먹지 말지어다!!!

반응형
반응형

인터넷에 Tomcat9 기준으로 인증서 설치한 후기가 너무 없어서 고생해서 하나 남겨본다.


(1) 인증서 구매

- 우선 인증서가 있어야 한다. 인증서를 어디서 살까 하다가 공짜사서 괜히 고생하기 싫어서 걍 돈을 좀 썼다

- 인증서는 보험이랑 호환성 등등의 다양한 조건에 의해서 1만원에서 100만원넘는 인증서가 있으나 우선 개발용이기 때문에 저렴한 1만원 짜리를 샀음.

- 아래 사이트에 가면 저렴하게 인증서를 살수가 있다.


단!!!) 인증서는 도메인이 들어가야하기 때문에 반드시 도메인을 먼저 사야 한다.


(2) 인증서 구매하게 되면 웹사이트에서 인증서를 다운로드 받을 수 있게 마이페이지에 가면 있다.

: 인증서를 다운로드 받을 때에는 용도에 맞게 다운 받으면 된다. pfx 같은 경우에는 IIS 서버에 설치할 경우에 다운로드 받는다.

  나는 TOMCAT에 설치할 거라서 모든 파일 다운로드 하고 jks 확장자의 인증서만 다운로드 받아 서버에 업로드함.

(3) Tomcat Home Directory 이하 conf 폴더에 업로드함.

: 내 개인서버 보안때문에 가릴것은 다 가리고 업로드함.

(4) Tomcat 서버 셋팅!

: server.xml를 열어서 아래와 같이 셋팅만 해주면된다.

   

     <Connector port="8080" protocol="HTTP/1.1"

                connectionTimeout="20000"

                 redirectPort="443" />   <= 8443을 443으로 꼭 바꿔주세요

 <Connector port="8443"

               protocol="org.apache.coyote.http11.Http11NioProtocol"

               maxThreads="150"

               SSLEnabled="true"

               defaultSSLHostConfigName="sungrangkong.kr">

        <SSLHostConfig hostName="sungrangkong.kr">

            <Certificate certificateKeystoreFile="conf/sungrangkong.kr_20181204AAAA.jks"

                         certificateKeystorePassword="a12345"

                         certificateKeyAlias="sungrangkong.kr"

                         type="RSA" />

        </SSLHostConfig>

    </Connector> 


: 빨강색 부분만 하면된다. sungrangkong.kr 이라고 된 부분은 인증서 구매할때 입력한 도메인 주소를 넣고 certificateKeystoreFile 에는 인증서 구매 후 CA(인증기관)에서 제공한 비밀번호를 넣어주면 된다.

※ 간혹 certificateKeyAlias의 값이 다른 경우가 있다. 이 경우에는 아래 명령어를 통해서 alias의 이름을 명확히 알고 입력 하면된다.

$ keytool -list -v -keystore 인증서이름.jks

Enter keystore password:

Keystore type: JKS

Keystore provider: SUN


Your keystore contains 1 entry


Alias name: alias이름  <= 요기 값을 확인해주세요.

Creation date: Jan 5, 2021

Entry type: PrivateKeyEntry

Certificate chain length: 4 


(5) 자 이체 실행해볼까요?

: 잘뜨긴하는데 문제가 하나 있죠!!!! http로 접속했을때 https로 자동으로 들어가면 참 좋을듯 합니다.

우분투의 경우에는 80 이나 443 포트는 관리자 권한이 있을경우 실행이 되기 때문에 8080이나 8443 으로 셋팅하고 방화벽쪽에 셋팅해서 라우팅을 거는작업을 많이 합니다.


(6) 라우팅 작업

 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

 sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443 

: 이렇게 작업하면 80->8080 으로 443->8443 으로 잘 가겠죠?


(7) http -> https로 변환작업

이거는 간단하게 tomcat home directory > conf > web.xml 를 편집하면 하실 수 있습니다.


  <!-- to use within your application.                                       -->

   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>


    <security-constraint>

        <web-resource-collection>

            <web-resource-name>Protected Context</web-resource-name>

            <url-pattern>/*</url-pattern>

        </web-resource-collection>

    <!-- auth-constraint goes here if you requre authentication -->

        <user-data-constraint>

            <transport-guarantee>CONFIDENTIAL</transport-guarantee>

        </user-data-constraint>

    </security-constraint>


</web-app>

 

: 위의 빨강으로 표기된 데이터만 복사해서 붙여넣고 톰캣 재시작 하시면 됩니다.



지금까지 tomcat9에 인증서를 탑재하는 과정을 알아보았습니다.

반응형
반응형

오늘 이 시간에는 Ubuntu 16.04 LTS 버전에서 오라클 JDK를 설치해 보도록 하겠다.

 

맨날 구성원들 블로그 보고 설치하다가 내꺼가 하나 있으면 좋을 것 같아서 이번 기회에 정리해 보도록 하겠다.

 

(1) 오라클 공식 사이트에서 JDK 다운로드함.

: 이번 예시에서는 JDK 1.8 Version을 다운로드 받는 것으로 하겠다.

 



   오라클 JDK 1.8 다운로드 주소 : 
https://www.oracle.com/kr/java/technologies/javase/javase8-archive-downloads.html

 

 

64bit 이기 때문에 Linux x64 Version은 다운로드 받도록 하자.

 

(2) 해당 서버에 임시 폴더 만들어서 파일을 업로드 하도록 하자.

 



 $ mkdir jdk_temp 
 
 ~~~~ 파일 업로드 중 (이건 생략함) ~~~~
 
  $ tar -zxvf ./jdk-8u191-linux-x64.tar.gz
jdk1.8.0_191/
jdk1.8.0_191/javafx-src.zip
jdk1.8.0_191/bin/
jdk1.8.0_191/bin/jmc
jdk1.8.0_191/bin/serialver
jdk1.8.0_191/bin/jmc.ini
 
     ~~~~ (쭉) 압축을 풀자.


    ~/jdk_temp$ ls

    jdk1.8.0_191  jdk-8u191-linux-x64.tar.gz

 

(3) 관리자 계정으로 접속해서 /usr/lib/jvm 하위 폴더로 복사합니다.

: 이 짓을 하는 이유는 어떠한 계정이 접속하더라도 jdk 설정 없이 jdk를 이용할 수 있게 하기 위함입니다.

 



 $ sudo mkdir /usr/lib/jvm


 $ sudo cp -r ./jdk1.8.0_191/ /usr/lib/jvm/


 $ ls /usr/lib/jvm/
   jdk1.8.0_191
 

 

(4) 환경변수 PATH, JAVA_HOME, CLASSPATH 추가하기



$ sudo vim /etc/environment 


PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk1.8.0_191/bin"


JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191
CLASSPATH=JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191/lib
 

 

위에 빨강색으로 보이는 부분만 추가하면 됩니다. 단, 설치되어있는 폴더경로를 틀리지 않게 잘 적으셔야 합니다.

 

: 환경변수가 추가되었으면 아래 명령어를 통해서 환경변수를 적용합니다.

 

 
 $ source /etc/environment

 

: 아울러 환경변수가 매번 실행될 수 있도록 /etc/profile 의 하단에 적용할 수 있는 코드를 집어 넣습니다.

 



 $ sudo vim /etc/profile
 

 

 

(5) 최종적으로 /usr/lib/jdk~~~/bin 이하의 명령어들이 언제 어디서든 쓸수 있도록 /usr/bin 이하 폴더로 심볼릭 링크를 걸어 줍니다.

 



$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_191/bin/java" 1
update-alternatives: using /usr/lib/jvm/jdk1.8.0_191/bin/java to provide /usr/bin/java (java) in auto mode


$  sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_191/bin/javac" 1
update-alternatives: using /usr/lib/jvm/jdk1.8.0_191/bin/javac to provide /usr/bin/javac (javac) in auto mode


$  sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_191/bin/javaws" 1
update-alternatives: using /usr/lib/jvm/jdk1.8.0_191/bin/javaws to provide /usr/bin/javaws (javaws) in auto mode


$  java -version
java version "1.8.0_191" =========================> 짜잔 !!!!!
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
 

 

끝!!!!!

 

추가적으로 JDK 삭제하는 방법에 대해서 알아보겠다.

 



$ sudo update-alternatives --remove "java" "/usr/lib/jvm/jdk1.8.0_191/bin/java"

$  sudo update-alternatives --remove "javac" "/usr/lib/jvm/jdk1.8.0_191/bin/javac"

$  sudo update-alternatives --remove "javaws" "/usr/lib/jvm/jdk1.8.0_191/bin/javaws"

$  rm -i /usr/jvm/jdk1.8.0_191
 
 

 

 

언젠가 한번 하긴 해야하는데 정리 못한걸 드디어 하네요.

 

이제 개발자로써 끝물이라 공부를 많이 못해서 항상 마음이 아쉬웠는데 앞으로 더 정진 하도록 하겠습니다.

 

반응형
반응형

우분투에 간혹 로그인을 시도하다 보면 아래와 같은 문구가 나타나는 경우가 더러 있다.



위에 보면 알겠지만  214개의 packages 가 업그레이드 가능하다는 말이다.


이 경우에는 가급적 업그레이드를 해주는 것이 보안상 아주 좋다.


각 데몬별로 업데이트를 위해서는 아래 명령어를 실행하도록 한다.


 $ sudo apt-get update


$ sudo apt-get upgrade


$ sudo apt-get dist-upgrade








이러고 나서 재부팅 이후 다시 로그인 해보자!



이제 모두 업데이트 됨을 확인할 수 있다 ^^

반응형

+ Recent posts