네트워크 포트 및 아웃바운드 프록시
Mattermost v12.0요약
설치하기 전에 Mattermost에 필요한 포트를 열고, 배포 환경이 접속하게 될 아웃바운드 대상을 확인하세요. 다음 표는 Mattermost 서버에 필요한 네트워크 포트와 프로토콜을 정리한 것입니다. 사용자가 실제로 접근하는 인바운드 포트만 외부에 노출하면 됩니다.
설치하기 전에 Mattermost에 필요한 포트를 열고, 배포 환경이 접속하게 될 아웃바운드 대상을 확인하세요. 사용 환경에서 직접 아웃바운드 접근을 차단한다면 아웃바운드 프록시도 함께 구성하세요.
네트워크 포트#
다음 표는 Mattermost 서버에 필요한 네트워크 포트와 프로토콜을 정리한 것입니다.
| 서비스 이름 | 구성 설정 | 포트(기본값) | 프로토콜 | 방향 | 정보 |
|---|---|---|---|---|---|
| HTTP/Websocket | ServiceSettings.ListenAddress | 8065/80/443 (TLS) | TCP | 인바운드 | 외부(프록시 없음) / 내부(프록시 사용) HTTPS를 실행할 때는 보통 80번과 443번 포트가 필요합니다. |
| 클러스터 | ClusterSettings.GossipPort | 8074 | TCP/UDP | 인바운드 | 내부 |
| 메트릭 | MetricsSettings.ListenAddress | 8067 | TCP | 인바운드 | 외부(프록시 없음) / 내부(프록시 사용) |
| 데이터베이스 | SqlSettings.DataSource | 5432 (PostgreSQL) / 3306 (MySQL) | TCP | 아웃바운드 | 보통 내부(권장) |
| LDAP | LdapSettings.LdapPort | 389 | TCP/UDP | 아웃바운드 | |
| S3 스토리지 | FileSettings.AmazonS3Endpoint | 443 (TLS) | TCP | 아웃바운드 | |
| SMTP | EmailSettings.SMTPPort | 10025 | TCP/UDP | 아웃바운드 | |
| 푸시 알림 | EmailSettings.PushNotificationServer | 443 (TLS) | TCP | 아웃바운드 |
- 모든 아웃바운드 포트는 구성에 따라 달라질 수 있습니다
- Mattermost는 모든 HTTP/HTTPS 트래픽에 아웃바운드 프록시를 사용하도록 구성할 수 있습니다(아래 참고)
- Calls 서비스에는 추가 포트가 필요할 수 있습니다. 자세한 내용은 Calls 배포 가이드를 참고하세요.
사용자가 실제로 접근하는 인바운드 포트만 외부에 노출하면 됩니다. Mattermost를 NGINX 리버스 프록시 뒤에서 실행할 때는 프록시에서 80번과 443번 포트를 노출하고, 8065번, 8067번, 8074번 포트는 내부에 두세요.
아웃바운드 프록시 구성#
배포 환경에서 아웃바운드 프록시를 사용해야 한다면 환경 변수로 Mattermost를 구성할 수 있습니다.
-
서비스 구성에서 프록시 설정을 구성합니다.
Environment=HTTP_PROXY=http://proxy.example.com:3128 Environment=HTTPS_PROXY=https://proxy.example.com:3128 Environment=NO_PROXY=localhost,127.0.0.1,.internal.example.com이 줄들은
mattermost.servicesystemd 유닛의[Service]섹션에 넣습니다. 전체 유닛 파일은 사용하는 설치 방법의 페이지를 참고하세요: Ubuntu/Debian, RHEL 또는 수동 타르볼. -
인증이 필요한 프록시에서는 URL에 자격 증명을 포함합니다.
Environment=HTTP_PROXY=http://username:password@proxy.example.com:3128 Environment=HTTPS_PROXY=https://username:password@proxy.example.com:3128유닛 파일을 읽을 수 있는 사람은 누구나 이 자격 증명을 읽을 수 있습니다. 파일의 권한을 제한하거나, root만 읽을 수 있는 별도의
EnvironmentFile을 통해 값을 제공하세요. -
NO_PROXY변수에는 다음을 포함할 수 있습니다.- IP 주소(예:
1.2.3.4) - CIDR 범위(예:
1.2.3.4/8) - 도메인 이름(예:
example.com) - 서브도메인(예:
.example.com)
- IP 주소(예:
HTTPS 프록시를 사용할 때는 연결 문제를 피하기 위해 Mattermost 서버에 프록시의 루트 인증서가 구성되어 있는지 확인하세요.
다음 단계#
- 사용자가 HTTPS로 연결할 수 있도록 NGINX 프록시를 설정하고 TLS를 설정하세요.
- 준비 체크리스트로 돌아가세요.