GCP 방화벽(firewall) 설정
GCP / AWS 등의 클라우드 환경을 사용하면 보안에 매우 민감합니다.
사용자들이 불특정 다수이며, 비 IT 직군도 많다 보니 이러한 보안에 취약할 수밖에 없습니다. 물론 규모가 큰 회사의 경우 보안 담당부서가 따로 있어서 이를 모두 관리하고 권한 부분도 관리하는 경우가 많지만 작은 회사의 경우는 그렇지 못한 경우가 많습니다.
만약에 GCE (Google Compute Engine) 를 만들고 방화벽을 연결하지 않고 바로 접속이 될 경우 0.0.0.0/0으로 모두 ALL 오픈된 상태이므로, 이는 매우 심각한 상황입니다. 그 누구의 집에서도 접속이 가능하다는 뜻입니다. 예를 들면 철수 집에서도 가능하고 영희 집에서도 접속이 가능하다는 뜻입니다. 보안에 매우 취약하므로, 즉시 0.0.0.0/0으로 열려 있는 부분을 제거하고 방화벽을 설정해야 합니다.
그래서 최소한의 보안을 위해서 방화벽(firewall) 설정은 필수라고 생각됩니다.
그래서 이번 글에서는 가장 기본적으로 방화벽을 설정하는 방법에 대해서 작성하였습니다.
GCP에서 메뉴 부분에 "VPC네트워크" -> "방화벽" 으로 갑니다.
"방화벽 규칙 만들기" 클릭 합니다.
"방화벽 만들기"를 클릭하면 다음과 같이 화면이 나옵니다. 이 글의 경우 가장 기본을 설명하고 있기 때문에 아주 기본적인 설정만 하였습니다. 자세한 부분은 문서를 참고하여 읽어 보시는 것을 권장드립니다. (GCP 방화벽)
1. 우선 방화벽의 이름을 정해야 합니다. 방화벽 규칙 및 사용 목적에 맞게 각자 정하면 됩니다. 뒤에서 다시 설명 하겠지만 이것으로 방화벽을 구분하는 것이 아닌 단순한 이름입니다. 나중에 GCE 연결할 때 이름이 아닙니다.
2. 네트워크를 선택합니다. VPC에 따라 다르게 설정해야 합니다. GCE가 만약에 A VPC에 있을 경우 A V PC용으로 따로 방화벽을 만들어야 합니다. 만약에 B VPC로 이관할 경우 B VPC에 방화벽을 만들어야 합니다. * 주의사항 : 나중에 GCE에 방화벽을 연결할 경우 아무 문제없이 연결은 가능 하지만 동작을 하지 않습니다. (개인적 생각으로 이건 좀.. 개선되었으면 하는 바람이..)
3. 나중에 GCE를 연결할 때 이 부분에 설정한 명칭을 넣어야 연결됩니다. ( 이 부분은 매우 중요합니다. )
4. 소스 필터의 경우 IP범위로 하는 경우가 일반적이므로 IP 범위로 설정하였습니다.
5. 위의 IP범위를 지정합니다. 내가 만약에 A -> B로 가고 싶은 경우 A의 IP를 넣고 B 서버에 해당 방화벽을 연결해야 합니다. 만약 본인의 PC에서 서버에 접속하고자 할 경우 다음의 사이트에서 나오는 IP를 넣으면 됩니다. ( 클릭 )
6. 모두 허용의 경우 보통 쓰지 않습니다. 이는 해당 IP주소 또는 범위 안에서 모든 port를 허용한다는 뜻입니다. 일반적으로 SSH의 경우 22번 , MYSQL의 경우 3306이며, 해당 서버로 접속이 필요한 포트만 최소한으로 입력합니다.
설정을 모두 했다면, 이제 만들기를 클릭하여 방화벽을 생성합니다.
이후 방화벽을 생성이 정상적으로 이루어졌는지 확인합니다.
생성된 방화벽을 이제 GCE에 연결해보겠습니다. GCE의 경우 제가 기존에 만들어 놨습니다. 여기에서 방화벽을 연결하겠습니다.
GCE에서 수정을 누르고 아래와 같이 네트워크 태그 부분에 아까 만들었던 방화벽의 네트워크 태그를 입력합니다. 앞서 언급했지만 이곳에는 방화벽 이름이 아니고 네트워크 태그 부분에 넣었던 명칭을 넣어야 연결됩니다. 저 같은 경우 그래서 방화벽 이름과 네트워크 태크를 동일하게 작성해서 관리하고 있습니다.
이제 수정을 완료하면 방화벽이 연결됩니다. 연결하고 정상적으로 접속이 되는지 SSH를 통해서 테스트 또는 생각해 두셨던 서버에서 접속을 테스트해보고 연결이 정상적으로 잘 되었는지 확인합니다. (꼭 테스트해보세요)
나중에 0.0.0.0/0으로 열려 있는 부분이 있는지 찾는 부분도 작성하여 올리도록 하겠습니다.
감사합니다.