AWS EC2 보안 그룹은 외부에서 해당 EC2로의 접근을 허용/제한하는 인바운드 규칙과 해당 EC2에서 외부로의 접근을 허용/제한하는 아웃바운드 규칙을 설정할 수 있습니다. 대부분의 보안 이슈는 우리 EC2로 들어오는 악의적인 접근에 의해 발생합니다. 따라서 해당 포스팅은 인바운드 규칙 위주로 설명드리겠습니다. *** 해당 포스팅에는 동적으로 생성되는 인프라에서의 보안 그룹을 설정할 수 있는 방법이 포함되어 있습니다! 보안 그룹의 인바운드 규칙보안 그룹의 인바운드 규칙은 앞서 말씀드린 것처럼 외부에서 해당 보안 그룹에 속한 인스턴스에 접근하는 것을 허용 또는 제한할 수 있습니다. 쉽게 말해 미리 약속된 인스턴스는 접근을 허용해주고 그렇지 않은 인스턴스는 접근을 제한할 수 있는 것이죠. AWS Console에서 인바운드 규칙을 설정하는 기본적인 방법입니다. 보안 그룹 페이지로 이동AWS EC2 페이지 > 왼쪽 메뉴 인스턴스 > 설정하고자 하는 인스턴스 > 하단의 보안 탭 > 보안 그룹 클릭 인바운드 규칙 편집보안 그룹 페이지 > 우측 하단의 인바운드 규칙 편집 버튼 클릭 접근을 허용하고자 하는 프로토콜과 포트, 소스를 입력하신 후 우측 하단의 규칙 저장 버튼을 클릭하시면 됩니다. 동적인 인프라 환경에 적용하기사실 해당 포스팅을 작성하는 가장 큰 이유가 해당 내용입니다. 저는 Auto-Scaling을 사용하여 동적으로 인스턴스가 증감하는 인프라를 사용중입니다. 이러한 인프라 구성에서 만약 특정 IP를 소스로 설정하여 인바운드 규칙을 구성해야한다면 우리는 새로 생성되는 인스턴스의 IP를 미리 알 수 없기때문에 대처할 수 없습니다. 따라서 동적인 인프라에서는 조금 다른 설정이 필요합니다. IP가 아닌 보안 그룹을 정의인바운드 규칙에서 소스를 IP가 아닌 보안 그룹으로 지정하는 경우 해당 보안 그룹이 적용된 인스턴스들의 접근을 허용할 수 있습니다. Auto-Scaling으로 생성되는 인스턴스들의 보안 그룹을 미리 소스로 정의하는 것이죠. 아주 간단합니다! 프라이빗 IP만 유효퍼블릭 IP의 경우 보안 그룹을 소스로 정의하는 방식에서는 접근이 불가능합니다. 프라이빗 IP만 유효하니 기존에 설정된 IP를 프라이빗 IP로 수정해주세요. 이 부분은 단순 기능적인 문제를 넘어 보안 상으로도 필요한 조치입니다. 최소 권한 부여 원칙보안 그룹에서는 최소 권한 부여 원칙을 준수해야 합니다. 꼭 필요한 IP대역만 허용하시고 불필요한 IP와 Port는 제거해주시는 것이 보안, 운영에 도움이 됩니다. 정리해당 포스팅에서는 AWS EC2의 보안 그룹 중 인바운드 규칙을 설정하는 기본적인 방법을 살펴보고 동적인 인프라에서 어떻게 적용해야하는지까지 살펴보았습니다. 설정하는 방법이 어렵지는 않지만 모르는 내용이라면 쉽게 생각하기 어려운 내용이라고 생각됩니다. 동적 인프라를 구축하면서 특정 인스턴스에 접근해야하는 문제에 직면하신 분들이 이 포스팅을 읽고 쉽게 해결하셨으면 좋겠습니다. 추가로 궁금한 내용이 있으시면 댓글 남겨주시면 답변 드리겠습니다. 감사합니다. 인바운드 설정은 서버에 들어오는 경로이기 때문에 신경을 써서 관리 할텐데요. 아웃바운드 같은 경우는 서버에서 나가는 것이기 때문에 비교적 소흘하기 십상입니다. 하지만 최근에 급속도로 퍼지고 있는 랜섬웨어의 작동 루틴을 보면 감염 – 키(key)를 저장하는 해커 서버와 통신 – 키를 기반으로 암호화로 크게 나눌수 있습니다. 이때 키를 저장하는 서버와 통신을 막을수 있는 최소한의 수단이 방화벽 아웃바운드 설정으로 아웃바운드의 기본값을 차단으로 바꾸어 아웃바운드로 허용할 항목만 작성한다면 피해를 최소화 할수 있을 것입니다. 특히나 서버로 사용한다면 필수로 적용해야 할 설정입니다. 이 설정은 윈도우 데스크탑/서버 버전 모두 가능합니다. 로컬 그룹에서 방화벽 설정윈도우 10일 경우 검색창에 gpedit.msc(로컬 그룹 정책 편집기)를 실행합니다. 윈도우 8.x 이하 혹은 서버일 경우 실행창에 gpedit.msc(로컬 그룹 정책 편집기)를 실행합니다. 로컬 그룹 정책에서 컴퓨터 구성 – windows 설정 – 보안 설정 – 고급 보안이 포함된 Windows 방화벽을 순서대로 클릭하면 방화벽에 대한 항목이 나옵니다. 이 항목을 오른쪽 클릭 후 속성을 클릭합니다. MS 운영체제인 윈도우를 사용한다면 보안을 위해 기본적으로 방화벽이 활성화되어 있으며 특정앱에 대하여 방화벽을 해제하거나 특정 네트워크 포트 “Network Port”에 한해서 방화벽을 해제 할 수 있으며 해당포트로 접속에 대해서 인바운드와 아웃바운드로 방화벽 해제가 가능합니다.
기본적으로 특정 앱에 대하여 방화벽 해제방법이 있지만 네트워크 라이센스등을 사용하는 경우 해당 라이센스 포트를 열어주는것으로 네트워크로 연결된 PC간의 정보를 주고받을 수 있습니다. 참고 : 특정 앱 방화벽 해제방법 윈도우10 방화벽 해제방법노랗 목차
윈도우10 기준 방화벽 및 네트워크 보호를 실행합니다.
인바운드 & 아웃바웃드를 통한 특정 앱과 포트열기를 위해서는 방화벽 및 네트워크 보호 -> 고급설정을 선택합니다. 방화벽 규칙종류 및 특성그럼 인바운드 규칙과 아웃바운드 규칙을 각각 추가할 수 있습니다. 인바운드아웃바운드이해서버 내부로 들어오는것으로 서버 또는 네트워 내부로 들어오는것을 말함서버 외부로 나가는것으로 서버 또는 네트워크 외부로 송출하는것을 말함클라이언트 업로드클라이언트 다운로드규칙윈도우 방화벽 기본설정은 모든 접속 차단으로 설정윈도우 방화벽 기본설정은 모든 접속 허용으로 설정저같은 경우는 UG NX의 Lmtools 라이센스 서버에 대하여 28000 포트를 추가했으며 그 외에도 카티아나 솔리드웍스, 프로이, 토렌트나 팟플레이어,카카오톡과 같은 앱 프로그램 및 포트를 추가할 수 있습니다. 인바운드 방화벽 업로드 해제인바운드 새 규칙인바우드 규치에서 새 규칙을 선택합니다. 방화벽에 대하여 프로그램을 제어할 것인지 포트를 열어 TCP 또는 UDP 포트의 방화벽을 해제할 수 있습니다. 방화벽 해제를 하고 싶은 프로그램을 선택하거나 모든 프로그램의 규칙을 적용할 수 있습니다. 해당 프로그램을 인바운드 & 아웃바운드 연결 허용할것인지 연결하지 못하도록 연결차단할것인지 선택합니다. 도메인과 개인,공용 규칙에 대해 추가합니다. 해당 규칙에 대해 나중에 확인하기 쉽도록 이름과 설명을 적어놓습니다. 인바운드 아웃바운드 방화벽 포트해제방화벽 포트 TCP 또는 UDP 포트해제프로그램이 아닌 포트를 통해 인바운드 및 아웃바운드 규칙을 추가할 수 있습니다. TCP / UDP 중 선택 후 연결하고자 하는 포트를 입력합니다. 이를 통해 UG NX나 카티아, 카카오톡 등 포트가 막힌 경우 해당포트를 열어줍니다. 프로토콜 종류TCPUDP연결방식연결형 서비스비연결형 서비스패킷 교환방식가산회선 방식데이터그램 방식전송 순서전송순서 보장전송순서 바뀔 수 있음수신여부 확인확인불가능통신방식1:1 통신1:1 통신1:N 통신 N:N 통신신뢰성높음낮음속도느림빠름TCP UDP 차이점 및 특징 해당포트로 연결을 허용할것인지 차단할것인지 선택합니다. 인바운드 포트추가가 완료되었다면 이와 동일하게 아웃바운드도 추가해야 라이센스나 파일을 주고 받는 네트워크 공유폴더 등에서 파일을 업로드와 다운로드 모두 가능하게 됩니다. 이를 확인하기 위해서는 명령프롬프트를 통해 Ping 명령어를 통해 데이터 패킷을 업로드 및 다운로드가 가능한지 확인합니다. 이것으로 방화벽이 설정되어 있더라도 포트를 이용해 서로 연결을 할 수 있도록 규칙 추가 완료되었습니다. 참고 : 프린터,모니터 포트 변경방법 이후 설정환 방화벽 설정이 문제가 발생한다면 기본설정값으로 초기화 합니다. 방화벽 기본값 초기화방화벽을 기본값을 복원방화벽 및 네트워크 보호에서 “방화벽을 기본값을 복원“을 선택하면 기본에 설정된 방화벽이 모두 초기상태로 되돌아 갑니다. 참고 : 윈도우디펜더 및 실시간보호 안켜질때 관리자권한 실행 관련 |