Oracle Linux 8에서 Apache HTTP Server 및 Wildfly 구축

!!NOTICE!!



이 기사의 내용은 다른 절차와 함께 다음 기사에 전기했습니다.
앞으로는 전기처를 유지하기 위해 그쪽을 봐 주세요.

【증명서 자동 갱신 대응판】Oracle Cloud와 Cloudflare와 Let's Encrypt로 만든다! HSTS 프리로드 가능 AP 서버 클러스터

이 기사 개요



OCI 인스턴스에서 Oracle Linux 8에 Apache HTTP Server 및 Wildfly (JBossAS)를 설치합니다.

전제


  • OS: Red Hat Enterprise Linux release 8.2 (Ootpa)
  • Java: openjdk version "1.8.0_265"
  • Apache HTTP Server: Apache/2.4.37 (Oracle Linux)
  • Wildfly: Release: 12.0.3.Final
  • 거절이 없으면 명령은 root 사용자가 실행 중입니다.

    Wildfly 구축



    1. JDK 설치


    yum install -y java-1.8.0-openjdk.x86_64
    

    2. wildfly 사용자 만들기


    groupadd -r wildfly
    useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly
    

    3. Wildfly DL & 배포



    wget하는 URL은 적당히 기호로.
    cd /opt
    wget https://download.jboss.org/wildfly/20.0.1.Final/wildfly-20.0.1.Final.zip
    unzip -q wildfly-20.0.1.Final.zip
    ln -s wildfly-20.0.1.Final wildfly
    

    4. Wildfly 시작 확인


    sh /opt/wildfly/bin/standalone.sh
    
    2020-09-15 09:47:48,958 INFO  [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full 20.0.1.Final (WildFly Core 12.0.3.Final) started in 13956ms - Started 314 of 580 services (370 services are lazy, passive or on-demand)
    

    안전하게 시작된 것 같습니다. Ctrl+C로 중지합니다.

    5. systemd 데몬 시작



    데몬 시작용 스크립트는 이미 준비되어 있으므로 배치하는 것만으로 바로 데몬 시작할 수 있게 됩니다.
    mkdir -p /etc/wildfly
    cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
    vi /etc/wildfly/wildfly.conf
    

    정의 내용은 필요에 따라 편집하십시오. 바인드 주소를 0.0.0.0 -> 127.0.0.1로 변경했습니다.
    cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
    chmod 744 /opt/wildfly/bin/launch.sh
    cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
    chown -R wildfly /opt/wildfly*
    
    systemctl daemon-reload
    systemctl start wildfly
    systemctl enable wildfly
    

    6. Wildfly 관리 사용자 만들기



    관리 콘솔에서 Wildfly 설정을 어긋나도록 관리 사용자를 구성해야 합니다.
    cd /opt/wildfly/bin
    ./add-user.sh
    

    세부 사항은 생략하지만 프롬프트에 따라 Management User를 추가하십시오.
    자세한 내용은 공식 문서

    Apache HTTP Server 구축



    1. Apache HTTP Server 설치


    yum install -y httpd
    

    2. 보안 대책



    기본 설정을 마치면 보안 위험이 있으므로 수정하십시오.

    기본 콘텐츠 삭제



    일반적으로 공개하지 않는 환영 페이지 등의 불필요한 콘텐츠는 최대한 배제합니다.
    cd /etc/httpd/conf.d
    mv welcome.conf welcome.conf.org
    mv autoindex.conf autoindex.conf.org
    

    디렉토리 내용 일람 표시 기능의 무효화


    vi /etc/httpd/conf/httpd.conf
    
    #Options Indexes FollowSymLinks
    Options FollowSymLinks
    

    TRACE 메소드 무효화



    XST 대책으로 TRACE 메소드를 무효화합니다.
    vi /etc/httpd/conf/httpd.conf
    
    # ファイル末尾に追記
    TraceEnable off
    

    버전 정보 표시 기능 비활성화



    HTTP 응답 헤더에 웹 서버 버전이 포함되지 않도록 합니다.
    vi /etc/httpd/conf/httpd.conf
    
    # ファイル末尾に追記
    ServerTokens ProductOnly
    ServerSignature off
    

    프레임 내 페이지 표시를 동일한 도메인 내에서만 허용



    클릭 재킹을 방지하기 위해 HTTP 응답 헤더에 X-Frame-Options 헤더를 추가합니다.
    # 新規にファイル作成
    vi /etc/httpd/conf.modules.d/headers.conf
    
    # ファイル末尾に追記
    Header append X-FRAME-OPTIONS SAMEORIGIN
    

    Apache HTTP Server와 Wildfly의 협력



    Apache HTTP Server에 대한 요청을 Wildfly로 끌어옵니다.

    1. 역방향 프록시 설정



    80번 포트에 대한 액세스를 8080번 포트(Wildfly의 HTTP 리스너)로 향합니다.
    # 新規にファイル追加
    vi /etc/httpd/conf.modules.d/wildfly.conf
    
    <VirtualHost *:80>
      ProxyPass / http://127.0.0.1:8080/
      ProxyPassReverse / http://example.net/
    </VirtualHost>
    

    2. 정의 체크 & 재시작



    지금까지 설정할 수 있으면 정의 파일을 테스트하고 Apache HTTP Server를 다시 시작합니다.
    httpd -t
    systemctl restart httpd
    

    동작 확인



    http://example.com과 같이, 간단하게 80번 포트에 액세스해 보고, Wildfly의 웰컴 페이지가 보이면 성공입니다.



    요약



    OCI의 LB로 SSL에 대응하고 있어 백엔드측 통신은 HTTP로 구축해 보았습니다. Web/AP 서버로 SSL화하려고 하면 복잡해지므로 LB로 종단할 수 있는 것은 좋은 느낌입니다.

    참고 : 공격을 받기 전에 검토 Apache의 기본 보안 10 포인트
  • 좋은 웹페이지 즐겨찾기