InfoGrab DocsInfoGrab Docs

자산 프록시 설정

요약

공개된 GitLab 인스턴스를 운영할 때 발생할 수 있는 보안 우려 중 하나는 이슈와 댓글에 삽입된 이미지를 통해 사용자의 IP 주소를 탈취당할 수 있다는 점입니다. 예를 들어 이슈 설명에 ![An example image.](http://example.com/example.png)를 추가하면 외부 서버에서 이미지를 불러와 표시합니다.

공개된 GitLab 인스턴스를 운영할 때 발생할 수 있는 보안 우려 중 하나는 이슈와 댓글에 삽입된 이미지를 통해 사용자의 IP 주소를 탈취당할 수 있다는 점입니다.

예를 들어 이슈 설명에 ![An example image.](http://example.com/example.png)를 추가하면 외부 서버에서 이미지를 불러와 표시합니다. 하지만 이 과정에서 외부 서버가 해당 사용자의 IP 주소를 기록할 수 있습니다.

이를 완화하는 방법 중 하나는 외부 이미지를 직접 관리하는 서버를 거쳐 프록시하는 것입니다.

GitLab은 이슈와 댓글에서 외부 이미지/동영상/오디오를 요청할 때 자산 프록시 서버를 사용하도록 구성할 수 있습니다. 이를 통해 악의적인 이미지를 가져올 때 사용자의 IP 주소가 노출되지 않도록 보장합니다.

video와 audio 프록시를 지원하고 설정 자유도가 더 높은 cactus/go-camo를 사용하는 것을 권장합니다.

Camo 서버 설치#

Camo 서버는 프록시 역할을 수행하는 데 사용됩니다.

자산 프록시로 Camo 서버를 설치하려면 다음을 진행합니다.

  1. go-camo 서버를 배포합니다. 도움이 되는 안내는 building cactus/go-camo에서 확인할 수 있습니다.

    [!warning] 자산 프록시 서버는 (기본 go-camo 헤더와 함께) form-action 'none'과 같이 올바른 콘텐츠 보안 정책(Content Security Policy) 헤더를 사용하도록 구성해야 합니다.

  2. GitLab 인스턴스가 실행 중인지 확인하고, 비공개 API 토큰을 생성합니다. API를 사용해 GitLab 인스턴스의 자산 프록시 설정을 구성합니다. 예:

    curl --request "PUT" "https://gitlab.example.com/api/v4/application/settings?\
    asset_proxy_enabled=true&\
    asset_proxy_url=https://proxy.gitlab.example.com&\
    asset_proxy_secret_key=<somekey>" \
    --header 'PRIVATE-TOKEN: <my_private_token>'
    

    다음 설정을 지원합니다.

    속성 설명
    asset_proxy_enabled 자산 프록시를 켭니다. 켜는 경우 asset_proxy_url 이 필요합니다.
    asset_proxy_secret_key 자산 프록시 서버와 공유하는 시크릿입니다.
    asset_proxy_url 자산 프록시 서버의 URL 입니다.
    asset_proxy_whitelist (지원 중단: 대신 asset_proxy_allowlist를 사용합니다) 이 도메인과 일치하는 자산은 프록시되지 않습니다. 와일드카드를 사용할 수 있습니다. GitLab 설치 URL은 자동으로 허용됩니다.
    asset_proxy_allowlist 이 도메인과 일치하는 자산은 프록시되지 않습니다. 와일드카드를 사용할 수 있습니다. GitLab 설치 URL은 자동으로 허용됩니다.
  3. 변경 사항을 적용하려면 서버를 재시작합니다. 자산 프록시 값을 변경할 때마다 서버를 재시작해야 합니다.

Camo 서버 사용#

Camo 서버가 실행 중이고 GitLab 설정을 켜면, 외부 소스를 참조하는 모든 이미지, 동영상, 오디오가 Camo 서버로 프록시됩니다.

예를 들어 다음은 Markdown에서 이미지로 연결되는 링크입니다.

![A GitLab logo.](https://about.gitlab.com/images/press/logo/jpg/gitlab-icon-rgb.jpg)

다음은 그 결과로 생성될 수 있는 소스 링크의 예입니다.

http://proxy.gitlab.example.com/f9dd2b40157757eb82afeedbf1290ffb67a3aeeb/68747470733a2f2f61626f75742e6769746c61622e636f6d2f696d616765732f70726573732f6c6f676f2f6a70672f6769746c61622d69636f6e2d7267622e6a7067

자산 프록시 설정

GitLab v19.5
Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

공개된 GitLab 인스턴스를 운영할 때 발생할 수 있는 보안 우려 중 하나는 이슈와 댓글에 삽입된 이미지를 통해 사용자의 IP 주소를 탈취당할 수 있다는 점입니다. 예를 들어 이슈 설명에 ![An example image.](http://example.com/example.png)를 추가하면 외부 서버에서 이미지를 불러와 표시합니다.

공개된 GitLab 인스턴스를 운영할 때 발생할 수 있는 보안 우려 중 하나는 이슈와 댓글에 삽입된 이미지를 통해 사용자의 IP 주소를 탈취당할 수 있다는 점입니다.

예를 들어 이슈 설명에 ![An example image.](http://example.com/example.png)를 추가하면 외부 서버에서 이미지를 불러와 표시합니다. 하지만 이 과정에서 외부 서버가 해당 사용자의 IP 주소를 기록할 수 있습니다.

이를 완화하는 방법 중 하나는 외부 이미지를 직접 관리하는 서버를 거쳐 프록시하는 것입니다.

GitLab은 이슈와 댓글에서 외부 이미지/동영상/오디오를 요청할 때 자산 프록시 서버를 사용하도록 구성할 수 있습니다. 이를 통해 악의적인 이미지를 가져올 때 사용자의 IP 주소가 노출되지 않도록 보장합니다.

video와 audio 프록시를 지원하고 설정 자유도가 더 높은 cactus/go-camo를 사용하는 것을 권장합니다.

Camo 서버 설치#

Camo 서버는 프록시 역할을 수행하는 데 사용됩니다.

자산 프록시로 Camo 서버를 설치하려면 다음을 진행합니다.

  1. go-camo 서버를 배포합니다. 도움이 되는 안내는 building cactus/go-camo에서 확인할 수 있습니다.

    [!warning] 자산 프록시 서버는 (기본 go-camo 헤더와 함께) form-action 'none'과 같이 올바른 콘텐츠 보안 정책(Content Security Policy) 헤더를 사용하도록 구성해야 합니다.

  2. GitLab 인스턴스가 실행 중인지 확인하고, 비공개 API 토큰을 생성합니다. API를 사용해 GitLab 인스턴스의 자산 프록시 설정을 구성합니다. 예:

    curl --request "PUT" "https://gitlab.example.com/api/v4/application/settings?\
    asset_proxy_enabled=true&\
    asset_proxy_url=https://proxy.gitlab.example.com&\
    asset_proxy_secret_key=<somekey>" \
    --header 'PRIVATE-TOKEN: <my_private_token>'
    

    다음 설정을 지원합니다.

    속성 설명
    asset_proxy_enabled 자산 프록시를 켭니다. 켜는 경우 asset_proxy_url 이 필요합니다.
    asset_proxy_secret_key 자산 프록시 서버와 공유하는 시크릿입니다.
    asset_proxy_url 자산 프록시 서버의 URL 입니다.
    asset_proxy_whitelist (지원 중단: 대신 asset_proxy_allowlist를 사용합니다) 이 도메인과 일치하는 자산은 프록시되지 않습니다. 와일드카드를 사용할 수 있습니다. GitLab 설치 URL은 자동으로 허용됩니다.
    asset_proxy_allowlist 이 도메인과 일치하는 자산은 프록시되지 않습니다. 와일드카드를 사용할 수 있습니다. GitLab 설치 URL은 자동으로 허용됩니다.
  3. 변경 사항을 적용하려면 서버를 재시작합니다. 자산 프록시 값을 변경할 때마다 서버를 재시작해야 합니다.

Camo 서버 사용#

Camo 서버가 실행 중이고 GitLab 설정을 켜면, 외부 소스를 참조하는 모든 이미지, 동영상, 오디오가 Camo 서버로 프록시됩니다.

예를 들어 다음은 Markdown에서 이미지로 연결되는 링크입니다.

![A GitLab logo.](https://about.gitlab.com/images/press/logo/jpg/gitlab-icon-rgb.jpg)

다음은 그 결과로 생성될 수 있는 소스 링크의 예입니다.

http://proxy.gitlab.example.com/f9dd2b40157757eb82afeedbf1290ffb67a3aeeb/68747470733a2f2f61626f75742e6769746c61622e636f6d2f696d616765732f70726573732f6c6f676f2f6a70672f6769746c61622d69636f6e2d7267622e6a7067