Security_Analysis

gitlab, Synology NAS(DS220+) 연동 본문

현업

gitlab, Synology NAS(DS220+) 연동

Positivie 2023. 10. 20. 10:54
728x90
반응형

재직 중인 회사에는 파일서버용으로 Synology NAS를 사용한다. 

 

프로그램 및 스크립트에 대한 소스코드를 포함하여 다양한 엑셀 문서를 보관하는데, 

gitlab, github 등 형상관리를 하지도 않았고, NAS는 정말 파일공유용으로만 사용했다. 

이력관리도 어려워지고, 소스코드 변경도 제대로 파악이 어려웠다. 

 

보안 컨설팅 일을 하면서 스크립트 개발 및 간단한 프로그램 개발도 겸하는 나한테는 정말 최악의 환경이었기에, 

오늘 형상관리를 위한 연동을 해볼까 한다.

 

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

준비물

      1. Synology NAS(DS220+) < RAM 최소 4GB 이상 / 권장 6 혹은 그 이상 >

      2. Gitlab 계정

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

 

1. Synology NAS(DS220+) 최신 업데이트

   DSM 7이상 버전으로 업데이트 권고 

      gitlab 연동시에 https를 사용하려면 인증서를 발급해야 하는데, Synology  설정에서 인증서를 갱신, 추가할 수 있다.

      NAS 자체에서 무료로 추가 및 갱신을 하려면 "Lets's Encrypt" 라는 곳에서 할 수 있도록 되어있지만, 

      DSM 6.2.3 이하 버전은 "서버에 응답이 없습니다" 라는 오류가 발생하므로 최신으로 업데이트가 필요하다.


 

2. gitlab/gitlab-ce Docker Image 다운로드 

Container Manager 실행 > 이미지 > 작업 > 가져오기 > URL에서 추가 > Docker-hub(gitlab-ce) 링크 입력 > 가져오기 > 태그(latest)

DSM 6버전에서는 Synology NAS 내에 "패키지 센터" 를 가보면 Gitlab 및 Docker 패키지를 설치할 수 있다.

   ※ DSM 6에서 Gitlab 패키지를 다운받으면 "sameersbn/gitlab" 으로 되어있어서 공식이 아니라고 생각(개인의견) 한다.

하지만, DSM 7버전에는 Gitlab 패키지도 검색이 되지 않으며, Docker 패키지 또한 "Container Manager" 로 변경되었다. 


3. gitlab/gitlab-ce Container 추가 

이미지 다운로드가 끝나면 컨테이너 탭으로 이동하여 다운로드 받은 이미지를 컨테이너화로 진행한다.

 

Container Manager 실행 > 컨테이너 > 생성 > 이미지(gitlab-ce)

 이미지 : <Docker-hub> 에서 다운로드 받은 gitlab-ce 
 컨테이너 이름 : < 마음대로 > 
 "리소스 제한 활성화" 및 "자동 재시작 활성화" 기능은 본인 필요에 따라 설정
"Web Station을 통해 웹 포털 설정" 또한 HTTP, HTTPS 둘중 하나 골라서 진행 

 포트 설정 : 80과 443은 WebStation
네트워크 : Bridge로 진행 
볼륨 설정은 원하는 경로에 작성 

 

 설정 요약 확인 후 "완료" 후 WebStation 설정 

※ WebStation 은 443(HTTPS), 80(HTTP) 로 설정되어 있으나, 사내망에서 쓰기 때문에 특정 포트로 포워딩 설정까지 완료 


4. 테스트

이제 IP:포트번호(443) 혹은 (80)을 입력하면 gitlab 로그인 사이트가 나온다.

원래 gitlab에서 쓰던 IP와 PW를 입력했더니 로그인 실패가 발생했다. 

생각해보면 NAS에 gitlab을 설치한 것이며, gitlab-ce 이미지에 postgresDB가 포함되어 있다

결론적으로 외부에서 쓰던 ID와 PW는 NAS 내에서 사용이 불가능하다. 

초기 설정으로 "Username : root" , "Password : /etc/gitlab/initial_root_password" 에 임시비밀번호가 존재하므로 입력하면 된다. 

로그인 해보면 아래와 같이 로그인이 되는 것을 볼 수 있다. 


5. root 계정 프로필 변경 

사내에서 쓰는만큼 관리자 계정에 대한 이메일 주소를 업데이트 하기 위해 "Edit Profile" 에서 변경할 수 있다. 

이메일 뿐만 아니라, 이름, 비밀번호 등 다양하게 변경을 하면 완료가 될 것 같다. 


6. 마무리 

NAS를 연결하는데 많은 유튜브 글들이 도움이 됐었다. 

그러나 역시, 설정하는데 너무나 많이 오래 걸렸다. 

HTTPS를 설정하다보니 인증서도 설정하고 했는데 502 오류에서 넘어가지를 않았고, 

사내 방화벽 부터 이것저것 설정을 다 건드려본 것 같다. 

결국에는 방화벽 문제는 없었고, 443 포트에 문제가 있어서 80번으로 진행했지만...

 

다음에는 SMTP를 연결해볼까 한다. 

나를 포함하여 소스코드 및 스크립트를 수정하고 나서 Commit 하는데,

각 개발자들은 Commit 한 내용을 알고 있어야 하고, 

관리자 계정은 커밋한 내용들에 대해서 전부 로그를 남기도록 해보려고 한다. 

 

 

728x90
반응형