Apache Web Server 2.4 에 HTTPS 적용하기

Linux/CentOS 2015. 11. 11. 10:53 by 후뤼한잉여

Apache Web Server 2.4 에 HTTPS 적용하기

1) 개요

Apache Web Server 구성 이후 HTTPS로 보안을 강화해보고자 설치했던 내용을 정리하기 위해 작성되었습니다.

2) 설정방법

  1. 의존패키지 설치하기
    sudo yum install openssl-devel
    
  2. Apache 모듈 포함하여 재설치
    CentOS 7 에서 Apache Web Server 2.4 설치하기 참고하여 진행
    sudo ./configure --prefix=[Apache 설치된 디렉토리] --with-apr=[Apache 설치된 디렉토리]/bin/apr-1-config --enable-ssl --with-ssl=/usr/bin/openssl
    sudo make
    sudo make install
    

    prefix를 다른 위치로 지정하여 설치 후 SSL 모듈만 가져와서 사용하는것이 더 안전합니다.

  3. Apache 설정 변경하기
    vi [Apache 설치된 디렉토리]/conf/httpd.conf
    
    httpd.conf 파일에 수정할 내용
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so //주석 해제
    LoadModule ssl_module modules/mod_ssl.so //추가
    LoadModule rewrite_module modules/mod_rewrite.so //추가 (HTTPS로 리다이렉트시 사용 필요하신 분만 사용하세요.)
    Include conf/extra/httpd-ssl.conf //주석 해제
    
    • HTTP 접속시 HTTPS로 리다이렉트 하기 위해 httpd.conf파일 마지막에 추가
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{HTTPS} off
      RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [C]
      </IfModule>
      
  4. OpenSSL 인증서 생성하기
    GitLab에 HTTPS 보안 적용을 위한 OpenSSL 설정하기 참고하여 생성
  5. Apache SSL 관련 부분 설정 변경하기
    vi [Apache 설치된 디렉토리]/conf/extra/httpd-ssl.conf
    
    httpd-ssl.conf 파일에 수정할 내용
    JkMountCopy on //<VirtualHost _default_:443>아래에 추가
    DocumentRoot //주석처리
    SSLCertificateFile "[인증서 설치된 디렉토리]/[인증서 이름].crt"
    SSLCertificateKeyFile "[인증서 설치된 디렉토리]/[인증서 이름].key"
    
  6. Tomcat 설정 변경하기
    vi [Tomcat 설치된 디렉토리]/conf/server.xml
    
    server.xml에 변경할 내용
    SSLEngine=“off” //기존 "off"를 “on”변경
    
  7. 방화벽 설정하기
    sudo firewall-cmd --add-service=https --permanent
    sudo firewall-cmd --reload
    
  8. Apache, Tomcat 재시작

Apache Web Server 2.4 와 Tomcat 8 연동하기

Linux/CentOS 2015. 11. 11. 10:31 by 후뤼한잉여

Apache Web Server 2.4 와 Tomcat 8 연동하기

1) 개요

정적 페이지는 Apache Web Server에서 처리하고, 동적 페이지는 Tomcat에서 처리하기 위해 설정한 내용을 정리하기 위해 작성되었습니다.

2) 설치 방법

  1. 연동 커넥터 다운로드
    wget  http://apache.tt.co.kr/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz
    
  2. 의존 패키지 설치하기
    sudo yum install autoconf libtool
    
  3. 연동 커넥터 설치파일 압축 해제
    tar -zxvf tomcat-connectors-1.2.41-src.tar.gz
    
  4. 연동 커넥터 설치하기
    cd [설치파일 압축 해제한 디렉토리]/native/
    sudo ./buildconf.sh
    sudo ./configure --prefix=[Apache 설치된 디렉토리] --with-apxs=/usr/bin/apxs
    sudo make
    sudo make install
    
  5. 연동 커넥터 생성 확인 및 실행권한 부여
    ls [Apache 설치된 디렉토리]modules/mod_jk.so
    sudo chmod +x [Apache 설치된 디렉토리]/modules/mod_jk.so
    

3) 설정 방법

  1. mod_jk 모듈 관련 설정
    1-1. 톰캣과 연동 정보 설정

     vi [Apache 설치된 디렉토리]/conf/workers.properties
    

    workers.properties에 입력할 내용

     workers.tomcat_home="[Tomcat이 설치된 디렉토리]"
     workers.java_home="[JDK가 설치된 디렉토리]"
     ps=/
     worker.list=ajp13
     worker.ajp13.port=8009
     worker.ajp13.host=localhost
     worker.ajp13.type=ajp13
    

    1-2. 정적 페이지 패턴 및 로그 관련 설정

     vi [Apache 설치된 디렉토리]/conf/mod_jk.conf
    

    mod_jk.conf에 입력할 내용

     <IfModule mod_jk.c>
         JkWorkersFile "[Apache 설치된 디렉토리]/conf/workers.properties" //연동 정보 파일
         JkMount /*.jsp ajp13 //정적 페이지 처리할 패턴 설정
         JkLogFile "[Tomcat이 설치된 디렉토리]/logs/mod_jk.log" //로그 설정
         JkLogLevel info
         JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
         JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
         JkRequestLogFormat "%w %V %T"
         JkAutoAlias "[Tomcat이 설치된 디렉토리]/webapps"
     </IfModule>
    
    • 서블릿에서 특정 정적 패턴을 제외한 나머지 WAS가 처리하도록 설정 하는 팁
        SetEnvIf Request_URI "/*.js$" no-jk
        JkMount /* ajp13
      
      • 모든 유형은 톰캣에서 처리하지만 .js파일은 아파치에서 처리하겠다는 의미. Request_URI는 정규표현식을 이용해서 패턴을 정하는데 *.js까지만 하면 jsp파일도 아파치에서 처리해서 소스가 노출되는 문제가 있어 문자의 끝을 의미하는 $를 넣어주는것이 안전하다.
  2. Apache Web Server 설정

     vi [Apache 설치된 디렉토리]/conf/httpd.conf
    

    httpd.conf파일에 수정할 부분

     LoadModule jk_module modules/mod_jk.so //추가
     include conf/mod_jk.conf //추가
     DocumentRoot "[Tomcat이 설치된 디렉토리]/webapps/ROOT"
     <Directory "[Tomcat이 설치된 디렉토리]/webapps/ROOT"> //ROOT 상위 디렉토리 접근 필요시 ROOT 제외
     Options -Indexes FollowSymLinks를 Options //Indexes앞에 - 붙이기.
    
    • Options Indexes FollowSymLinks를 Options -Indexes FollowSymLinks로 변경해야 WelcomePage 없을 때 indeox of 페이지를 못 보게 막을 수 있다.
    • -로 붙였는데 오류가 나면 Indexes자체를 지운다.
  3. Tomcat Native Library 설치하기

    • Native Library를 설치하기 위해서는 APR이 설치되어 있어야 하는데, 일반적으로 Apache를 설치하면 [Apache가 설치된 디렉토리]/bin/apr-1-config 에 설치 되는듯 하다.

      3-1. Native Library 다운로드

      wget http://apache.tt.co.kr/tomcat/tomcat-connectors/native/1.1.33/source/tomcat-native-1.1.33-src.tar.gz
      

      3-2. 압축 해제하기

      tar -xvf [설치파일].tar.gz
      

      3-3. Native Library 설치하기

      cd [설치파일 압축 풀린 디렉토리]/jni/native
      sudo ./configure  --prefix=[Tomcat 설치된 디렉토리] --with-apr=[Apache가 설치된 디렉토리]/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=/usr
      sudo make
      sudo make install
      

      3-4. Tomcat 8 설정 변경

      cd [Tomcat 설치된 디렉토리]/bin
      vi catalina.sh
      

      catalina.sh 파일에 추가할 부분

      export LD_LIBRARY_PATH=/app/tomcat8/lib:$LD_LIBRARY_PATH //시작 부분에 추가
      
      • 꼭 추가 해야하는지는 확인을 안해봐서 나중에 확인해보도록 하겠습니다.
    • Tomcat 시작 시 SSL 엔진을 못 찾는 다는 오류가 발생한다면 아래 내용 적용하기
      vi [Tomcat 설치된 디렉토리]/conf/server.xml
      
      server.xml 파일에 수정할 내용
      SSLEngine=“off" //기존 on에서 off로 변경
      

CentOS 7 에서 Apache Tomcat 8 Container 설치하기

Linux/CentOS 2015. 11. 11. 00:20 by 후뤼한잉여

CentOS 7 에서 Apache Tomcat 8 Container 설치하기

1) 개요

JSP를 사용하기 위해 Apache Tomcat 8 Container를 설치한 내용을 정리하고자 작성되었습니다.

2) 설치하기

  1. 의존패키지 설치하기
    sudo yum -y install wget make gcc gcc-c++*
    
  2. Tomcat 8 다운로드
    wget http://apache.tt.co.kr/tomcat/tomcat-8/v8.0.26/bin/apache-tomcat-8.0.26.tar.gz
    
  3. Tomcat 8 압축 해제(설치) 하기
    tar -xvf [설치파일] -C [설치할 경로]
    
  4. 방화벽 해제하기
    sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
    sudo firewall-cmd --reload
    
  • Tomcat 8 실행 / 종료 명령어
    • 실행 명령어
      [Tomcat 8 설치된 경로]/bin/startup.sh
      
    • 종료 명령어
      [Tomcat 8 설치된 경로]/bin/shutdown.sh
      

CentOS 7 에서 Apache Web Server 2.4 설치하기

Linux/CentOS 2015. 11. 11. 00:11 by 후뤼한잉여

CentOS 7 에서 Apache Web Server 2.4 설치하기

1) 개요

개인적인 웹 서버 구축시 설치 한 내용을 정리하고자 작성되었습니다.

2) 설치하기

  1. JDK 설치하기
  2. 의존 패키지 설치하기
    sudo yum -y install gcc gcc-c++ wget
    
  3. 설치할 파일들 다운로드
    wget http://mirror.apache-kr.org//httpd/httpd-2.4.16.tar.gz
    wget http://mirror.apache-kr.org//apr/apr-1.5.2.tar.gz
    wget http://mirror.apache-kr.org//apr/apr-util-1.5.4.tar.gz
    wget http://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz
    
  4. 설치할 파일들 압축 해제하기
    tar -zxvf httpd-2.4.16.tar.gz
    tar -zxvf apr-1.5.2.tar.gz
    tar -zxvf apr-util-1.5.4.tar.gz
    tar -zxvf pcre-8.37.tar.gz
    
  5. Apache Web Server 설치시 필요 파일 이동하기
    mv [APR 압축 풀린 디렉토리] ./[Apache Web Server 압축 풀린 디렉토리]/srclib/apr
    mv [APR-Util 압축 풀린 디렉토리] ./[Apache Web Server 압축 풀린 디렉토리]/srclib/apr-util
    
  6. PRCE 설치하기
    cd [PRCE 압축 풀린 디렉토리]
    sudo ./configure
    sudo make
    sudo make install
    
  7. Apache Web Server 설치하기
    cd [Apache Web Server 압축 풀린 디렉토리]
    sudo ./configure --prefix=[Apache Web Server 설치할 디렉토리] --with-included-apr
    sudo make
    sudo make install
    
  8. Apache Web Server 설정하기
    vi [Apache Web Server 설치된 디렉토리]/conf/httpd.conf
    
    httpd.conf파일에 수정할 내용
    ServerName localhost //중간에 ServerName 주석 지우고 localhost 입력
    
  9. 방화벽 해제하기
    sudo firewall-cmd --permanent --add-service=http
    sudo systemctl reload firewalld
    
  • Apache Web Server 실행 / 종료 명령어
    • 실행 명령어
      [Apache Web Server 설치된 디렉토리]/bin/httpd -k start
      또는
      [Apache Web Server 설치된 디렉토리]/app/apache/bin/apachectl start
      
    • 종료 명령어
      [Apache Web Server 설치된 디렉토리]/bin/httpd -k stop
      또는
      [Apache Web Server 설치된 디렉토리]/app/apache/bin/apachectl stop
      

CentOS 7 에서 Maria DB 설치하기

Linux/CentOS 2015. 11. 10. 23:55 by 후뤼한잉여

CentOS 7 에서 Maria DB 설치하기

1) 개요

Maria DB 서버 구축시 설치한 내용을 정리하기 위해 작성되었습니다.

2) 설치방법

  1. yum 레파지토리 신규 등록
    sudo vi  /etc/yum.repos.d/MariaDB-10.1.repo
    
    MariaDB-10.1.repo에 작성할 내용
    # MariaDB 10.1 CentOS repository list - created 2015-09-24 12:48 UTC
    # http://mariadb.org/mariadb/repositories/
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.1/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    
  2. Maria DB 설치하기
    sudo yum install MariaDB-server MariaDB-client
    
  3. Maria DB 관리자계정 암호 설정하기
    mysqladmin password [설정할 암호]
    
  4. 방화벽 해제하기
    sudo firewall-cmd --add-service=mysql --permanent
    sudo firewall-cmd --reload
    
  • Maria DB 실행 / 종료 명령어
    • 실행 명령어
      sudo service mysql start
      
    • 종료 명령어
      sudo service mysql stop
      
  • 서버 부팅시 자동실행 설정하기
    sudo chkconfig mysql on
    
  • 한글 깨짐 문제 방지 설정
    sodu vi /etc/my.cnf
    
    my.cnf파일에 추가할 내용
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    
    서버 재시작
    sudo service mysql restart
    

CentOS 7 에서 Oracle JDK 설치하기

Linux/CentOS 2015. 11. 10. 23:39 by 후뤼한잉여

CentOS 7 에서 Oracle JDK 설치하기

1) 개요

서버 구성 중 JDK를 의존하는 툴에서 사용하기 위해 설치한 내용을 정리하기 위해 작성되었습니다.

2) 설치방법

  • JDK 설치
  1. Oracle에 접속하여 설치파일 다운로드


    1-1. Downloads -> Java SE로 이동


    1-2. JDK 항목에 DOWNLOAD 버튼 클릭


    1-3. Accept License Agreement을 클릭 후, 자신의 버젼에 해당하는 파일 선택하여 다운로드


  2. JDK를 설치할 디렉토리를 생성
    sudo mkdir -p [설치할 디렉토리]
    
  3. SFTP를 이용하여 [설치파일]을 서버의 [설치할 디렉토리]로 업로드
  4. [설치파일] 압축을 해제 합니다.
    sudo tar -zxvf [설치파일]
    
  5. 사용의 편의를 위해 JDK 디렉토리의 링크를 설정 (옵션 입니다.)
    ln -s [JDK 설치된 전체 경로] JDK
    
  6. 서버에 JDK Path를 설정하기 위해 profile을 수정
    sudo vi /etc/profile
    
    profile에 추가할 내용
    # java Setting
    export JAVA_HOME=[JDK 설치된 전체 경로]
    export CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    
  7. profile 수정된 내용 적용
    source /etc/profile
    
  8. 설치된 JDK에 소유권한 변경 (옵션 입니다.)
    sudo chown -R root:root [JDK 설치된 경로]
    


CentOS 7 에서 hostname 수정하는 방법

Linux/CentOS 2015. 11. 9. 22:22 by 후뤼한잉여

CentOS 7 에서 hostname 수정하는 방법

1) 개요

호스트명(hostname)을 변경하기 위한 방법을 설명하기 위해 작성되었습니다.

2) 설정방법

root 권한으로 실행합니다.

sudo hostnamectl set-hostname [변경할 호스트명]

CentOS 7 에서 방화벽 해제 하는 방법

Linux/CentOS 2015. 11. 9. 22:09 by 후뤼한잉여

CentOS 7 에서 방화벽 해제 하는 방법

1) 개요

특정 포트나 특정 서비스에 대한 방화벽을 해제하기 위해 설정하기 위한 방법을 설명을 하기 위해 작성 되었습니다.

2) 설정 방법

root 권한으로 실행합니다.

  1. 방화벽에 포트 또는 서비스를 추가합니다.
    • 특정 포트 등록하는 방법
      sudo firewall-cmd --permanent --zone=public --add-port=[포트번호]/tcp
      
    • 특정 서비스 등록하는 방법
      sudo firewall-cmd --add-service=[서비스명] --permanent
      
  2. 방화벽 설정을 다시 불러옵니다.
    sudo firewall-cmd --reload
    

CentOS 7 에서 ifconfig 명령 사용하기 위한 패키지 설치

Linux/CentOS 2015. 11. 9. 21:56 by 후뤼한잉여

CentOS 7 에서 ifconfig 명령 사용하기 위한 패키지 설치

1) 개요

ifconfig 명령어를 사용하려고 할 때, 명령어를 찾을 수 없을 때 네트워크 관련 패키지를 설치하기 위한 방법을 설명하기 위해 작성되었습니다.

2) 설치 방법

root 권한으로 설치 합니다.

sudo yum install net-tools

CentOS 7 일반 사용자 계정에 sudo 기능 활성화

Linux/CentOS 2015. 11. 9. 21:48 by 후뤼한잉여

CentOS 7 일반 사용자 계정에 sudo 기능 활성화

1) 개요

CentOS 7 설치 후 일반 사용자 계정을 사용 중 최고권한을 가진 root의 기능을 사용하기 위해 sudo 명령어를 사용하는데 sudo 자체를 사용할 수 없을 때 설정하는 방법을 설명하기 위해 작성되었습니다.

2) sudo란?

Super-User DO의 약자로 Linux/Uinx 에서 일반 계정이 작업 중 임시로 최고권한을 가진 root의 기능을 사용할 때 사용하는 명령어 입니다.

예)
sudo mkdir -p /app

3) 설정방법

  1. root 계정으로 로그인을 한다.
  2. sudoers 파일을 수정하기 위해 파일의 접근권한을 변경한다.
    chmod 740 /etc/sudoers
    
  3. 텍스트 편집기를 이용하여 sudoers파일을 열고 맨아래 부분에 내용을 추가한다.
    vi /etc/sudoers
    
    --추가할 내용--
    [일반계정명] ALL=(ALL) ALL
    
  4. sudoers파일의 접근권한을 원래대로 되돌린다.
    chmod 440 /etc/sudoers
    
Nav