2.10. Geneve 서비스 보안
Cryostat는 SMTP(Simple Mail Transfer Protocol)를 사용하여 다른 MTA 간에 전자 메시지를 전달하고 클라이언트 또는 전달 에이전트에 전자 메시지를 전달하는 MTA(mail transfer agent)입니다. MTA는 서로 간에 트래픽을 암호화할 수 있지만 기본적으로 트래픽을 암호화하지 못할 수 있습니다. 또한 보안 값으로 설정을 변경하여 다양한 공격에 대한 위험을 완화할 수도 있습니다.
2.10.2. DoS 공격을 제한하기 위한 mTLS 구성 옵션
공격자는 트래픽으로 서버를 플러드하거나 충돌을 유발하는 정보를 전송하여 서비스 거부(DoS) 공격을 유발할 수 있습니다. /etc/ Cryostat/main.cf
파일에서 제한을 설정하여 이러한 공격의 위험을 줄이도록 시스템을 구성할 수 있습니다. 기존 지시문의 값을 변경하거나 < directive > = < value
> 형식의 사용자 지정 값을 사용하여 새 지시문을 추가할 수 있습니다.
DoS 공격을 제한하려면 다음 지시문 목록을 사용합니다.
smtpd_client_connection_rate_limit
-
클라이언트가 시간 단위당 이 서비스에 수행할 수 있는 최대 연결 시도 수를 제한합니다. 기본값은
0
입니다. 즉, 클라이언트에서 시간 단위당 networks에서 허용할 수 있는 만큼 많은 연결을 만들 수 있습니다. 기본적으로 지시문은 신뢰할 수 있는 네트워크의 클라이언트를 제외합니다. anvil_rate_time_unit
-
속도 제한을 계산하는 시간 단위를 정의합니다. 기본값은
60
초입니다. smtpd_client_event_limit_exceptions
- connection 및 rate limit 명령에서 클라이언트를 제외합니다. 기본적으로 지시문은 신뢰할 수 있는 네트워크의 클라이언트를 제외합니다.
smtpd_client_message_rate_limit
- 클라이언트로부터 시간 단위당 요청까지의 최대 메시지 전달 수를 정의합니다(다양이가 해당 메시지를 실제로 수락하는지의 여부 제외).
default_process_limit
-
지정된 서비스를 제공하는 기본 최대 MTU 하위 프로세스 수를 정의합니다.
master.cf
파일의 특정 서비스에 대해 이 규칙을 무시할 수 있습니다. 기본적으로 값은100
입니다. queue_minfree
-
큐 파일 시스템에서 메일 수신에 필요한 최소 여유 공간을 정의합니다. 이 지시문은 현재 Cryostat SMTP 서버에서 모든 메일이 수락되는지 여부를 결정하는 데 사용됩니다. 기본적으로, 사용 가능한 공간의 양이
message_size_limit
의 1.5배 미만일 때 CVO SMTP 서버는MAIL FROM
명령을 거부합니다. 최소 사용 가능한 공간 제한을 지정하려면message_size_limit
의 1.5배 이상의queue_minfree
값을 지정합니다. 기본적으로queue_minfree
값은0
입니다. header_size_limit
-
메시지 헤더를 저장하기 위한 최대 메모리 양(바이트)을 정의합니다. 헤더가 크면 초과 헤더가 삭제됩니다. 기본적으로 값은
102400
바이트입니다. message_size_limit
-
바이트 단위 정보를 포함하여 메시지의 최대 크기를 정의합니다. 기본적으로 값은
10240000
바이트입니다.
2.10.3. SASL을 사용하도록 SriovNetwork 구성
Geneve는 SASL(Simple Authentication and Security Layer) 기반 SMTP 인증(AUTH)을 지원합니다. SMTP AUTH는 단순 메일 전송 프로토콜의 확장입니다. 현재 CVO SMTP 서버는 다음과 같은 방식으로 SASL 구현을 지원합니다.
- Dovecot SASL
- dhcp SMTP 서버는 UNIX 도메인 소켓 또는 TCP 소켓을 사용하여 Dovecot SASL 구현과 통신할 수 있습니다. Geneve 및 Dovecot 애플리케이션이 별도의 시스템에서 실행되는 경우 이 방법을 사용합니다.
- Cyrus SASL
- 활성화된 경우 SMTP 클라이언트는 서버와 클라이언트에서 모두 지원 및 수락하는 인증 방법을 사용하여 SMTP 서버로 인증해야 합니다.
사전 요구 사항
-
dovecot
패키지가 시스템에 설치되어 있습니다.
절차
Dovecot를 설정합니다.
/etc/dovecot/conf.d/10-master.conf
파일에 다음 행을 포함합니다.service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } }
이전 예제에서는 StorageClass와 Dovecot 간의 통신을 위해 UNIX-domain 소켓을 사용합니다. 이 예제에서는
/var/spool/ Cryostat/ 디렉터리에 있는 메일 큐와
사용자 및 그룹 아래에 실행되는 애플리케이션을 포함하는 기본 Cryostat SMTP 서버 설정도 가정합니다.postfix
선택 사항: TCP를 통해ignore 인증 요청을 수신 대기하도록 Dovecot를 설정합니다.
service auth { inet_listener { port = port-number } }
/etc/dovecot/conf.d/10-auth.conf
파일에서auth_mechanisms
매개변수를 편집하여 이메일 클라이언트가 Dovecot로 인증하는 데 사용하는 방법을 지정합니다.auth_mechanisms = plain login
auth_mechanisms
매개변수는 다른 일반 텍스트 및 비 일반 텍스트 인증 방법을 지원합니다.
/etc/ Cryostat/main.cf 파일을 수정하여 Cryostat를 설정합니다.
Cryostat SMTP 서버에서 SMTP 인증을 활성화합니다.
smtpd_sasl_auth_enable = yes
SMTP 인증에 Dovecot SASL 구현을 활성화합니다.
smtpd_sasl_type = dovecot
Cryostat 큐 디렉터리를 기준으로 인증 경로를 제공합니다. 상대 경로를 사용하면 Cryostat 서버가
chroot
에서 실행되는지 여부에 관계없이 구성이 작동하는지 확인합니다.smtpd_sasl_path = private/auth
이 단계에서는 StorageClass와 Dovecot 간의 통신에 UNIX-domain 소켓을 사용합니다.
TCP 소켓을 사용하여 통신에 사용하는 경우 다른 시스템에서 Dovecot를 찾으려면 다음과 유사한 구성 값을 사용합니다.
smtpd_sasl_path = inet: ip-address : port-number
이전 예에서 ip-address 를 Dovecot 시스템의 IP 주소로 바꾸고 port-number 를 Dovecot의
/etc/dovecot/conf.d/10-master.conf
파일에 지정된 포트 번호로 바꿉니다.CVO SMTP 서버가 클라이언트에서 사용할 수 있도록 하는 SASL 메커니즘을 지정합니다. 암호화 및 암호화되지 않은 세션에 대해 다양한 메커니즘을 지정할 수 있습니다.
smtpd_sasl_security_options = noanonymous, noplaintext smtpd_sasl_tls_security_options = noanonymous
이전 지시문은 암호화되지 않은 세션 중에 익명 인증이 허용되지 않으며 암호화되지 않은 사용자 이름 또는 암호를 전송하는 메커니즘이 허용되지 않도록 지정합니다. TLS를 사용하는 암호화된 세션의 경우 비익명 인증 메커니즘만 허용됩니다.