Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.8.2. stunnel을 TLS Wrapper로 구성

stunnel 을 구성하려면 다음 단계를 수행합니다.
  1. 사용하는 서비스에 관계없이 stunnel 에 유효한 인증서가 필요합니다. 적절한 인증서가 없는 경우 인증 기관에 적용하여 인증서를 얻거나 자체 서명 인증서를 생성할 수 있습니다.
    주의
    항상 프로덕션 환경에서 실행되는 서버에 인증 기관에서 서명한 인증서를 사용합니다. 자체 서명된 인증서는 테스트 목적 또는 사설 네트워크에만 적합합니다.
    인증 기관에서 부여한 인증서에 대한 자세한 내용은 4.7.2.1절. “인증서 서명 요청 생성” 을 참조하십시오. 반면 stunnel 용으로 자체 서명된 인증서를 생성하려면 /etc/pki/tls/certs/ 디렉터리를 입력하고 다음 명령을 root 로 입력합니다.
    certs]# make stunnel.pem
    이 과정을 완료하기 위해 모든 질문에 대답하십시오.
  2. 인증서가 있는 경우 stunnel 에 대한 구성 파일을 생성합니다. 이 파일은 모든 행이 옵션 또는 서비스 정의의 시작을 지정하는 텍스트 파일입니다. 주석과 빈 줄을 파일에 보관하여 타당성을 개선할 수 있습니다. 여기서 주석이 Semic로 시작하는 경우도 있습니다.
    stunnel RPM 패키지에는 구성 파일을 저장할 수 있는 /etc/stunnel/ 디렉터리가 포함되어 있습니다. stunnel 에는 파일 이름 또는 해당 확장자의 특수 형식이 필요하지 않지만 /etc/stunnel/stunnel.conf 를 사용합니다. 다음 콘텐츠는 stunnel 을 TLS 래퍼로 구성합니다.
    cert = /etc/pki/tls/certs/stunnel.pem
    ; Allow only TLS, thus avoiding SSL
    sslVersion = TLSv1
    chroot = /var/run/stunnel
    setuid = nobody
    setgid = nobody
    pid = /stunnel.pid
    socket = l:TCP_NODELAY=1
    socket = r:TCP_NODELAY=1
    
    [service_name]
    accept = port
    connect = port
    TIMEOUTclose = 0
    또는 sslVersion = TLSv1 이 포함된 행을 다음 행으로 교체하여 SSL을 방지할 수 있습니다.
    options = NO_SSLv2
    options = NO_SSLv3
    옵션의 목적은 다음과 같습니다.
    • cert - 인증서 경로
    • sslVersion - SSL 버전. SSL과 TLS 가 두 개의 독립적인 암호화 프로토콜 경우에도 여기에서 TLS를 사용할 수 있습니다.
    • chroot - 더 높은 보안을 위해 stunnel 프로세스가 실행되는 변경된 루트 디렉터리
    • setuid, setgid - stunnel 프로세스가 실행되는 사용자 및 그룹.
    • pid - stunnel 이 있는 파일은 chroot를 기준으로 프로세스 ID를 저장합니다.
    • socket - 로컬 및 원격 소켓 옵션; 이 경우 네트워크 대기 시간을 개선하기 위해 Nagle의 알고리즘 을 비활성화합니다.
    • [service_name] - 서비스 정의 시작; 이 줄 아래에 사용된 옵션은 지정된 서비스에만 적용되는 반면 위의 옵션은 S tunnel 에 전역적으로 적용됩니다.
    • accept - 수신 대기할 포트
    • connect - 연결할 포트입니다. 보안 서비스에 사용할 포트여야 합니다.
    • TIMEOUTclose - 클라이언트에서 close_notify 경고를 대기하는 시간(초)입니다. 0stunnel 이 전혀 기다리지 않도록 지시합니다.
    • options - OpenSSL 라이브러리 옵션

    예 4.3. CUPS 보안

    CUPS 에 대한 TLS 래퍼로 stunnel을 구성하려면 다음 값을 사용합니다.
    [cups]
    accept = 632
    connect = 631
    632 대신 원하는 모든 무료 포트를 사용할 수 있습니다. 631CUPS 에서 일반적으로 사용하는 포트입니다.
  3. chroot 디렉터리를 만들고 setuid 옵션에서 지정한 사용자에게 쓰기 액세스 권한을 부여합니다. 이렇게 하려면 root 로 다음 명령을 입력합니다.
    ~]# mkdir /var/run/stunnel
    ~]# chown nobody:nobody /var/run/stunnel
    그러면 stunnel 이 PID 파일을 생성할 수 있습니다.
  4. 시스템에서 새 포트에 대한 액세스를 허용하지 않는 방화벽 설정을 사용하는 경우 적절하게 변경합니다. 자세한 내용은 5.6.7절. “GUI를 사용하여 포트 열기” 를 참조하십시오.
  5. 구성 파일과 chroot 디렉토리를 생성하고 지정된 포트에 액세스할 수 있는지 확인하는 경우 stunnel 을 사용할 수 있습니다.