Nas Issue

SSL서버 인증서 및 갱신 프로세스(Let's Encrypt 및 ZeroSSL) 자동화 내장 certbot을 갖춘 Nginx 웹서버 및 역방향 프록시 설정

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스서버/swag 

이 readme는 여기에서 찾을 수 있는 전체 버전에서 축약되었습니다 .

SWAG - 보안 웹 애플리케이션 게이트웨이(이전 명칭 letsencrypt, Let's Encrypt™와는 관련 없음)는 PHP 지원 및 무료 SSL 서버 인증서 생성 및 갱신 프로세스(Let's Encrypt 및 ZeroSSL)를 자동화하는 내장 certbot 클라이언트를 갖춘 Nginx 웹 서버 및 역방향 프록시를 설정합니다. 또한 침입 방지를 위한 fail2ban도 포함되어 있습니다.

응용 프로그램 설정

검증 및 초기 설정
  • 이 컨테이너를 실행하기 전에 URL과 하위 도메인이 이 컨테이너의 호스트로 제대로 전달되었는지 확인하고, 포트 443(또는 80)이 호스트의 다른 서비스(NAS GUI, 다른 웹 서버 등)에서 사용되고 있지 않은지 확인하세요.
  • 동적 DNS 공급자가 필요한 경우 무료 공급자 duckdns.org를 사용할 수 있습니다. 여기서는 http 검증 또는 DNS 검증을 통해  URL will이  yoursubdomain.duckdns.org 되고  SUBDOMAINS can이 됩니다 . duckdns 이미지를 사용 하여 duckdns.org에서 IP를 업데이트할 수 있습니다. www,ftp,cloud wildcard
  • 검증을 위해  http 라우터의 인터넷 측 포트 80을 이 컨테이너의 포트 80으로 전달해야 합니다.
  • 검증을 위해  dns 해당 ini(또는 일부 플러그인의 경우 json) 파일에 자격 증명을 입력해야 합니다. /config/dns-conf
    • Cloudflare는 DNS 관리를 위한 무료 계정을 제공하며 이 이미지로 사용하기 매우 쉽습니다. "DNS + 프록시" 대신 "DNS 전용"으로 설정되어 있는지 확인하세요.
    • Google DNS 플러그인은 유료 기업 제품인 "Google Cloud DNS"와 함께 사용하도록 되어 있으며 "Google Domains DNS"에는 사용할 수 없습니다.
    • DuckDNS는 두 가지 유형의 DNS 검증 인증서만 지원합니다(동시에 두 가지를 지원할 수는 없음):
      1. 주요 하위 도메인만을 포함하는 인증서(즉  yoursubdomain.duckdns.org SUBDOMAINS 변수를 비워두세요)
      2. 주요 하위 도메인의 하위 하위 도메인을 포함하는 인증서(예 : 변수를 로  *.yoursubdomain.duckdns.org 설정 ) SUBDOMAINS wildcard
  • --cap-add=NET_ADMIN fail2ban이 iptables를 수정하려면 필요합니다.
  • 설치 후  https://yourdomain.url 기본 홈페이지에 접속합니다(포트 80을 통한 http 접속은 기본적으로 비활성화되어 있으며, 기본 사이트 구성을 편집하여 활성화할 수 있습니다  /config/nginx/site-confs/default.conf ).
  • 인증서는 매일 밤 확인되며 만료일이 30일 이내이면 갱신을 시도합니다. 인증서가 30일 이내에 만료되는 경우 아래의 로그를 확인하여  /config/log/letsencrypt 갱신이 실패한 이유를 확인합니다. 이러한 상황에서 Let's Encrypt에서 만료 알림을 받을 수 있도록 docker 매개변수에 이메일을 입력하는 것이 좋습니다.
Certbot 플러그인

SWAG에는 기본적으로 많은 Certbot 플러그인이 포함되어 있지만 모든 플러그인을 포함할 수 있는 것은 아닙니다. 포함되지 않은 플러그인이 필요한 경우 플러그인을 사용할 수 있는 가장 빠른 방법은 Universal Package Install Docker Mod를 사용하는 것 입니다 .

컨테이너에서 다음 환경 변수를 설정하세요.

            DOCKER_MODS=linuxserver/mods:universal-package-installINSTALL_PIP_PACKAGES=certbot-dns-<plugin>
            

필요한 자격 증명(일반적으로 플러그인 설명서에서 찾을 수 있음)을 .에 설정합니다 . 플러그인이 예상대로 작동하는지 확인하려면 먼저  /config/dns-conf/<plugin>.ini 인증서를 얻으려고 시도하는 것이 좋습니다 . STAGING=true

보안 및 암호 보호
  • 컨테이너는 URL과 하위 도메인의 변경 사항을 감지하고, 기존 인증서를 해지하고 시작 중에 새로운 인증서를 생성합니다.
  • RFC7919  따라 컨테이너는 ffdhe4096  . 으로 운송합니다  dhparams.pem .
  • 사이트를 암호로 보호하려면 htpasswd를 사용할 수 있습니다. 호스트에서 다음 명령을 실행하여 htpasswd 파일을 생성합니다. docker exec -it swag htpasswd -c /config/nginx/.htpasswd <username>
  • 여러 user:pass를 .에 추가할 수 있습니다  .htpasswd . 첫 번째 사용자의 경우 위의 명령을 사용하고 다른 사용자의 경우  -c 플래그 없이 위의 명령을 사용합니다. 이렇게 하면 기존 사용자의 삭제  .htpasswd 와 새 사용자의 생성이 강제로 이루어집니다.
  • 보안 및 액세스 제어를 위해 ldap auth를 사용할 수도 있습니다. 샘플, 사용자 구성 가능한 ldap.conf가 제공되며 ldap 서버와 통신하려면 별도의 이미지 linuxserver/ldap-auth가 필요 합니다.
사이트 구성 및 역방향 프록시
  • 기본 사이트 구성은 .에 있습니다  /config/nginx/site-confs/default.conf . 이 파일을 자유롭게 수정하고 다른 conf 파일을 이 디렉토리에 추가할 수 있습니다. 그러나 파일을 삭제하면  default 컨테이너 시작 시 새 기본값이 생성됩니다.
  • 인기 있는 앱에 사전 설정된 역방향 프록시 구성 파일이 추가되었습니다. 이를 활성화하는 방법에 대한 지침은 아래 파일을 참조하세요. 사전 설정된 conf는 이 repo에 있으며 여기 에서  README.md 가져 옵니다 . /config/nginx/proxy_confs
  • 검색 엔진 크롤러에서 사이트를 숨기려면 ssl.conf가 포함된 줄 위에 있는 server 블록 내의 사이트 구성에 이 구성 줄을 추가하는 것이 유용할 수 있습니다 .  add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive";  이렇게 하면 Google 등에 사이트를 인덱싱하고 나열하지 않도록 요청합니다 . 검색 엔진에 표시하려는 사이트에서 이 줄을 그대로 두면 결국 목록에서 삭제되므로 조심하세요.
  • http를 https로 리디렉션하려면 포트 80을 노출해야 합니다.
다른 컨테이너에서 인증서 사용
  • 이 컨테이너에는 Emby와 Znc와 같은 다른 앱에 필요한 자동 생성된 pfx 및 private-fullchain-bundle pem 인증서가 포함되어 있습니다.
    • 다른 컨테이너에서 이러한 인증서를 사용하려면 다음 중 하나를 수행하세요.
    1. (더 쉬움) 컨테이너의 config 폴더를 다른 컨테이너(예:  -v /path-to-swag-config:/swag-ssl )에 마운트하고 다른 컨테이너에서는 인증서 위치를 사용합니다. /swag-ssl/keys/letsencrypt/
    2. (더욱 안전함) 다른 컨테이너(예: )  etc 에 있는 SWAG 폴더를 마운트하고 다른 컨테이너에서 인증서 위치를 사용합니다. (첫 번째 방법은 www 파일을 포함하여 전체 SWAG 구성 폴더를 다른 컨테이너와 공유하는 반면 두 번째 방법은 ssl 인증서만 공유하기 때문에 이 방법이 더 안전합니다.) /config -v /path-to-swag-config/etc:/swag-ssl /swag-ssl/letsencrypt/live/<your.domain.url>/
    • 이러한 자격증에는 다음이 포함됩니다.
    1. cert.pem Certbot에서 생성되고 nginx 및 기타 다양한 앱에서 사용되는  chain.pem fullchain.pem privkey.pem
    2. privkey.pfx Microsoft에서 지원하고 Emby Server(비밀번호 없음)와 같은 dotnet 앱에서 일반적으로 사용되는 형식
    3. priv-fullchain-bundle.pem ZNC와 같은 앱에서 사용하는 개인 키와 전체 체인을 묶은 pem 인증서
fail2ban 사용
  • 이 컨테이너에는 기본적으로 5개의 감옥이 설정된 fail2ban이 포함되어 있습니다.
    1. nginx-http-인증
    2. nginx-배드봇
    3. nginx-봇서치

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 7 / 1 페이지

Favorites


최근글


새댓글


  • 댓글이 없습니다.
알림 0