Security_Analysis

SMTP 연동 (Feat. Synology DS220+ Gitlab) 본문

현업

SMTP 연동 (Feat. Synology DS220+ Gitlab)

Positivie 2023. 12. 22. 14:22
728x90
반응형

지난번 소스코드 형상관리를 위한 Synology NAS에 Gitlab을 연동했었다. 

 < 관련글 > : gitlab, Synology NAS(DS220+) 연동

 

형상관리를 위한 GitLab 서버도 만들어놨고, 프로젝트도 올려놓았다. 

이제 실제 스크립트를 개발하는 인력들을 초대하여 프로젝트에 추가하여야 하는데 아직 SMTP가 구축되지 않았어서,

Commit 한 내용들에 대해서 확인을 할 수 없는 상황이었기에 

오늘은 Gitlab과 SMTP를 연결할 것 이다. 

검색을 여러군데 해보니, DSM 6버전 에서는 Docker에 Gitlab을 올릴때 환경변수에다가 SMTP를 하는 방법이 있었던 것 같다.

하지만 나는 DSM 7버전을 사용하기 때문에 이 방법이 과연 가능할까라는 의문이 생겨서 도전하지 않았고ㅡ

실제로 gitlab.rb 파일에 접근하여 SMTP를 설정했었다. 

 

---------------------------------------------------------------------------------------------------------------------

준비물

      1. Synology 에 설치된 Gitlab

      2. SMTP 설정을 위한 메일서버 

----------------------------------------------------------------------------------------------------------------------

 

1. Gitlab에 CLI로 접속 

  gitlab.rb 파일을 바꾸기 위해서 NAS에 SSH 접속하여, 'docker exec' 명령으로 컨테이너 내부에 접근하였다. 


2. gitlab.rb 설정파일 값 변경

  gitlab.rb 파일을 바꾸기 위해서 NAS에 SSH 접속하여, 'docker exec' 명령으로 컨테이너 내부에 접근하였다. 

  나는 이미 설정을 완료하였지만, 바꿔야 하는 부분만 체크해보았다. 

  먼저, gitlab의 설정파일 위치는 별도로 변경하지 않았을 경우에 "/etc/gitlab/gitlab.rb" 이다. 

 

  이 파일을 vi 편집기로 열어서 smtp 관련된 내용을 변경해야 하는데,

  SMTP 및 email 관련 모든 설정을 출력하기 에는 너무 길기 때문에 설정이 필요한 부분만 캡쳐해보았다. 

 

더보기

 # smtp_enable 로 활성화 

gitlab_rails['smtp_enable'] = true  

 

 # smtp_address에 메일서버 주소 작성

gitlab_rails['smtp_address'] = "smtp.example.co.kr"

 

# smtp_port에 SMTP 포트번호 작성

# smtp는 25, 465, 587 가 있지만 본인 설정에 맞게 변경

gitlab_rails['smtp_port'] = 25

 

# smtp_user_name에 메일계정 작성

gitlab_rails['smtp_user_name'] = "test@example.co.kr"

 

# smtp_password에 메일계정에 대한 비밀번호 작성

gitlab_rails['smtp_password'] = "1q2w3e4r!!"

 

# smtp_authentication에 SMTP 인증방식 작성

gitlab_rails['smtp_authentication'] = "login"

 

# smtp_openssl_verify_mode에 OpenSSL 인증모드 방법 작성

gitlab_rails['smtp_openssl_verify_mode'] = 'none'

 

# gitlab_email_from에 보내는사람 계정 입력

gitlab_rails['gitlab_email_from'] = 'administrator@example.co.kr'

 

# gitlab_email_reply_to에 답장 받을사람 계정 입력

gitlab_rails['gitlab_email_reply_to'] = 'administrator@example.co.kr'


3. gitlab.rb 설정 완료 후 재부팅

  gitlab.rb를 개인설정에 맞게 변경을 하고나면, gitlab-ctl 명령을 통해서 설정파일 및 gitlab 재부팅을 해줘야 한다. 

gitlab-ctl reconfigure

# gitlab-ctl reconfigure : 설정파일(gitlab.rb) 재구성 및 재실행
# gitlab-ctl stop : 중지
# gitlab-ctl start : 시작
# gitlab-ctl restart : 재시작

4. 메일 테스트 

  gitlab-rails console 을 사용하여 테스트 메일을 발송해보았다. 

# gitlab-rails console 접속
gitlab-rails console

# 메일링 테스트
Notify.test_email('admin@example.com', 'Gitlab 메일 테스트', 'Gitlab SMTP 메일 테스트').deliver_now

 


5. 테스트 결과 확인

  gitlab-rails console 을 사용하여 테스트 메일을 발송해보았다.


6. 마무리 및 결과 확인

  테스트 메일이 도착했고, 이제 사용자를 추가하고 해당 계정으로 Commit을 하면 관리자에게 메일이 도착한다. 

  근데 여기서 문제가 하나있다. 

  나는 이 환경을 구축하는데에, 사내망이면서 해당 GitLab에 들어가려면 SSL-VPN을 타고 들어가야 한다. 

  그러다보니, Gitlab의 관리자 계정에 대해 메일주소를 변경하려고 시도하였으나, 메일도 도착하였지만, 불가능 하였다.

 

  왜 이런 오류가 나는지는 잘 모르겠으나, SSL-VPN과 연관이 있을까라는 추측을 하고 있다. 

  다만, SMTP 설정을 하고나서 새로 가입하려는 계정들에 대해서는 SMTP 서버가 설정되어 있기 때문에 확인메일은 도착한다. 

  이후, 가입은 되는데 메일 변경이 안되는걸 이해를 못하겠다. 

  그래도, gitlab.rb 파일에 "SMTP" email_reply 를 관리자 메일로 설정했기 때문에 gitlab 페이지 내 관리자 계정에서

  메일주소를 변경하지 않아도 된다. 

 

728x90
반응형