pfsense 인스턴스와 LAN 인터페이스 작업까지 진행했다. 내부 웹서버 인스턴스를 생성하고 pfsense와 연결하자 4. 인스턴스 생성 (내부 웹서버) 서브넷 > 생성한 Private 서브넷 보안그룹 > 웹 서비스 포트(80/443)과 ssh를 any open 5. pfsense 포트포워딩 외부에서 유입되는 트래픽이 내부 웹 서버까지 이어지게하기 위해 포트포워딩을 작업을 해준다. pfsense web-gui > Firewall > NAT > Port Forward 이전 세팅에서 pfsense 보안그룹 설정 당시 2222 포트를 내부 인스턴스 ssh 연결용으로 열어두었다. WAN으로 들어온 2222포트 연결을 LAN의 내부 인스턴스의 22번 포트로 포워딩해주자 따라서, Destination > WAN ..
전체 글
어차피 이 세상은 아만보취약환경 구성 및 테스팅을 위해 AWS를 배우게 되었고, 얼마 지나지 않아 IPS 탐지 관련 테스팅을 하게 되었다. 여기서 pfsense를 처음 보게 되었는데, 그 당시 클라우드를 만진지 얼마되지 않아서 인지 네트워크 지식이 모자라서인지 꽤나 구축에 애를 먹었던 기억이 난다. pfsense freebsd 기반의 오픈소스 타입의 방화벽/라우터, web-gui를 지원해 간단하게 구축할수 있다. 이번에 pfsense를 통해서 구축할 인프라는 다음과 같다. VPC안에 public/private 서브넷을 구축하고 웹서버는 private 서브넷에 넣어 public 서브넷의 pfsense를 타고 접근하도록 하는 구성이다. 1. VPC 구성 인프라 구성은 VPC부터 시작한다. VPC 생성에서 생성할 리소스를 VPC등으..
AWS에서는 간간히 온/오프라인 세미나, 이벤트 등을 통해 AWS 서비스에서 사용할 수 있는 Credit을 제공한다. 매달 청구된 비용에서 보유한 Credit 만큼 차감 시켜주는 방식이다. AWS에서 제공하는 설문조사에 참여해 처음으로 Credit을 받았다. 이 Credit을 등록하는 방법에 대해 적어둔다. 1. 관리 콘솔 우측 메뉴 > 결제 대시보드 2. 좌측 메뉴 > 크레딧, 크레딧 사용 3. 받은 크레딧 코드, 보안코드 입력 등록이 완료된 경우, 리스트에 등록된 크레딧을 볼 수 있다. 만료기간과 남은 크레딧을 확인 그리고 해당 크레딧을 사용할 수 있는 서비스 목록을 확인해야한다. (모든 서비스에 적용되지 않음) 겉으로 보기에는 모든 서비스에 적용되는 것 같이 보인다. Route53이 적혀있긴 하지만..
인스턴스를 올리고 구성까지 마쳤으니 도메인을 연결해보자 Route53 AWS에서 제공하는 DNS 서비스 (Route53의 의미는 DNS 포트 53에서 유래됐다고 함) Route53를 통해 네임서버 등록, 레코드 관리, 도메인을 구매까지 할 수 있으며, 모니터링도 가능하다 가장 눈에 띄는 특징은 AWS 서비스(EC2, ELB, S3 등)과의 연결이 매우 편리하다는 점이다. 다만, kr 도메인은 구입할 수 없다. (kr도메인은 가비아 등 다른 도메인 등록기관에서 구매) 도메인을 연결하기 전에 도메인을 구입해야한다. Route53/가비아 등에서 도메인을 구입하는 방법도 있지만, 학습/테스트 용도로 무료도메인을 이용하는 방법도 있다. 이 글에서는 Freenom을 통해 무료 도메인을 가져와 진행한다. (유료 도메..
NAT? 외부 인터넷에서 Private Subnet으로의 통신은 막고, Private Subnet에 있는 객체가 외부 인터넷 통신이 필요한 경우 인터넷 게이트웨이와 private subnet과의 연결을 담당하는 객체 보안을 위해 인스턴스를 내부로 놓는 것 까지는 좋았으나, 이 내부 인스턴스에서 인터넷이 필요한 경우가 있다. (ex. apt install, SES 이메일 전송 등) AWS에서는 이러한 상황에 대해 자체적 서비스인 NAT Gateway를 지원한다. (이 서비스가 있기 전에는 NAT instance를 두어 사용했다고 함) 구축 환경도 이전 글과 동일하게 가져간다. VPC > NAT 게이트웨이 > NAT 게이트웨이 생성 생성할 서브넷은 퍼블릭, 연결 유형도 퍼블릭으로 준다 (Private Sub..
이전 글에서 Private Subnet의 접근에 대해 Bastion host를 언급하고 끝맺었다. Bastion Host? Public Subnet에 위치해 직접 접근 불가능한 Private Subnet을 접속할 수 있게하는 게이트 역할의 호스트 -> 침입을 최소화 시키기 위한 목적의 호스트라고 보면된다, 특정 IP만 접근 가능하게 제어 할수 있고, Private 서버로 접근한 로그를 남길 수 있어, 접속자 확인에 편리하다. Private Subnet의 인스턴스로 접근하기 위한 과정은 다음과 같다. 1. Bastion host로 SSH 접속 2. 연결한 Bastion host에서 Private Subnet의 인스턴스로 SSH 접속 이번에 구성할 내용 기본적인 세팅은 이전 글과 동일하게 가져간다. bast..
CVE-2021-41773 [Apache HTTP Server Path Traversal & RCE] 요약 : 경로 탐색 공격에 쓰이는 문자열에 대한 미흡한 정규화 조치로 인한 경로탐색 및 추가적인 잘못된 환경 설정으로 인한 원격 코드 실행 취약한 버전 Apache HTTP Server 2.4.49 선행조건 httpd.conf내의 Directory directive 설정이 Required all denied 되어있지 않음 (Required all granted거나 Require 구문이 없음), RCE의 경우 mod_cgi가 enable되어 있어야함 mod_cgi - Apache HTTP Server Version 2.4 httpd.apache.org 분석 [Path Traversal] path trave..
Docker hub에서 이미지를 pull해와서 컨테이너를 관리하는 부분까지 해봤다. 이제는 Dockerfile로 직접 내 이미지를 만들어보자 Dockerfile Docker 이미지를 생성하기위한 스크립트 파일로, Dockerfile 작성 후 build하면, 파일의 내용대로 한 명령어씩 실행되어 환경을 갖춘 이미지가 생성된다. Dockerfile만 작성해두면 어느 환경에서든 빌드를 통해 같은 이미지를 생성할 수 있고, 이미지 구축에 어떤 명령어가 실행되었는지도 파악하기 편리하다. tomcat, APM, Spring 등 웹서비스를 띄울 때, Dockerfile의 편리성이 드러난다. docker hub에 배포된 설치 이미지를 받아 내가 작성한 App을 바로 Copy하도록 Dockerfile을 작성만 해두면 빠..