목차
1. CentOS6를 사용한 IPtables 설정
2. 구성도
3. AWS를 사용한 DB 연동
4. PHP 7.2 설치
5. WORDPRESS-DB 연동
CentOS6를 사용한 IPtables 설정
- Host-Only 카드만 가진 CentOS6-1이 외부와 통신이 되도록 설정
- CentOS6외에는 NAT, Host-Only 카드 2개를 가진다
- 이 테스트를 통해 AWS 설정시 NGW를 WEB-A 둬야하는지 생각!
- NAT 카드는 10.0.0.0/24로 설정되어있다
- 패킷 포워딩 : 라우터에 패킷이 들어온 포트에서 패킷이 나가는 포트로 이동시키는 것
- 즉, 선택된 경로를 저장하기 위해 사용
- /etc/sysctl.conf에서 수정 가능
- eth0를 게이트웨이 역할로 사용
- eth0가 Host-only의 게이트웨이 역할을 함으로 10.10.10.0/24 대로 잡아준다
- 설정 후에 Host PC의 Host-Only 카드에도 설정이 된 것을 확인
- CentOS6에서는 systemctl 명령어가 먹히지 않으므로
/etc/init.d/network restart를 통해 재부팅 해줘야 한다
- eth1 NAT 설정(외부와의 통신)
- CentOS6의 eth0(GW 역할)의 IP을 GW로 설정
- CentOS6-0의 GW를 통해 CentOS6-0의 NAT카드를 사용하여 외부와 통신
- iptables에 filter 테이블에 미리 정의된 FORWARD 정책 변경 및 삭제
- iptables에 FORWARD에 새로운 규칙 추가
- 입출력 인터페이스를 eth0로 변경하고 패킷을 받아들인다
- 여기서 eth0는 게이트웨이 역할을 하는 CentOS6의 Host-Only카드!
- NAT 테이블 선택하여 라우팅 후 출발지 주소변경(NAT카드로 출력을 위해)
- MASQUERADE : 조건에 일치하는 패킷의 출발지 주소를 변환
- 지정한 eth1 인터페이스 방향을 제외한 네트워크는 출발지 주소변환의 대상
- 설정 완료 후, service iptables save로 라우팅 설정 저장
구성도
- WEB_A를 제외한 서브넷은 전부 Private
- DB같은 경우는 업데이트를 위해 NAT GW 연결
- Bastion을 사용하여 다른 인스턴스에 접속하기
- DB-A : 10.0.2.174 / WEB-A : 10.0.0.40 / WEB-C : 10.0.1.204 / DB-C : 10.0.3.125
AWS를 사용한 DB 연동
- Bastion을 통해 내부접속하여 각각의 인스턴스 설정 진행
- Bastion은 외부에서 접속하여 설정을 위해 Public IP가 필요
- WEB-A는 php파일 연동 테스트를 위해 Public IP 할당(설정 다 마친 후 할당)
- php파일 설정 진행
- DB 서버는 DB-A의 Private IP 대입
- Person1.php에서는 WEB-A의 Public IP 대입
- 인스턴스 생성시 userdata 사용하여 설치 진행
- 내용이 제대로 들어가져 있는지 확인
PHP 7.2 설치
WORDPRESS-DB 연동
- Docker로 Wordpress 설치
- wget으로 파일 wordpress tar파일 받기
- WEB-C에서 Wordpress 설치 및 설정을 진행하였으므로 테스트를 위해 Public IP를 부여
- 구성도에서 수정하게 되면, NGW의 연결을 떼어 Router에 붙여 공인 IP를
받아 외부에서 접속할 수 있도록 설정한 상태로 바뀐다
- WordPress 생성 때 포트포워딩을 해줬으므로 해당 포트 보안 그룹에서 Open