반응형

도커를 통해 서비스를 구성해서 테스트를 하는 도중 테스트서버가 털려버렸다.

0.015 BTC를 내놓으면 어쩌구 저쩌구.. 다행이 다른건 털린건 없지만... (털릴 정보도 없는 빈 서버였다.)

 

기존에 설정해둔 방화벽 서비스 ufw가 일단 내려가 있었고, 도커로 엘라스틱 몽고 서비스를 구동해보니 서버에 항상 해당 포트들을 외부에서 접근 할 수 있도록 허용해주고 있었다.

 

찾아보니 도커가 기본적으로 서비스를 구동하면 기존에 UFW가 동작하고 있어도 기본 옵션이 열어주도록 되어 있었다.

 

Docker 방화벽 옵션 끄기

로컬 서비스에서만 도커에서 올린 서비스를 사용하고 싶은 경우가 있다.

이런 경우 옵션을 주면 방화벽에 영향을 주지않고 서비스만 올라오는데 일반적으로 설정하는 방식은 아래와 같다.

 

/etc/docker/damon.json

{
	"iptables": false
}

 

이후 서비스 재기동을 한다.

systemctl restart docker

 

 

하지만, 내가 설치한 서버의 /etc/docker/쪽에는 해당하는 파일도 없었을 뿐더러 파일을 생성하고 재기동하여도 여전히 외부에서 접근이 가능하였다.

다른 글들을 더 찾아보니 도커가 실행되는 서비스 옵션을 변경하라는 글을 찾아서 아래와 같이 적용 후 재기동하니 정상적으로 외부에서 접근이 안되는 모습을 확인하였다.

 

/etc/systemd/system/multi-user.target.wants/dcoker.service

ExceStart 옵션 제일 마지막에 --iptables=false를 추가한 후 저장합니다.

 

재기동 하기전 아래 명령어를 입력합니다.

systemctl daemon-reload

이후 재기동을 해서 해당 포트가 외부에서 접근이 안되는지 확인합니다.

 

 

반응형