웹 서버 구축을 위해 우분투를 하나 별도로 생성한다. 우분투 홈페이지에서 현재 안정화된 버전인 20.04 LTS 버전의 ISO 파일을 다운로드 받았다. 이후 해당 이미지를 이용하여 VM을 생성해 볼 것이다.

VMware의 좌측 상단 메뉴에서 File - New Virtual Machine을 클릭한다. 그러면 New Virtual Machine Wizard가 나올 것이다. 이때, Custom으로 Next를 눌러 준다.

New VM Wizard

이후 Next를 누르다 보면, Install할 ISO를 고르는 창을 확인할 수 있다. 이때, Installer disk image file을 클릭하고, Browse를 통해 다운로드 받았던 우분투 ISO 이미지를 클릭한다.

우분투 이미지 선택

Next를 눌러서 리눅스 초기 계정 설정을 진행해 준다. 여기서 Username과 Password는 실제로 우분투에 들어가는 정보이기 때문에, 필히 기억해 두길 바란다.

계정 설정

이후 VM의 이름과 위치를 지정해 준다.

이름과 위치 설정, 원하는 대로 하면 된다.

이후 프로세서와 코어, 메모리, 네트워크, I/O 컨트롤러, 디스크 타입, 사이즈 등을 설정해 준다. 나중에 변경할 수 있으니 넘어가도 괜찮다. 마지막으로, 아래의 창이 뜨고, Finish를 누르면 설정이 끝난다.

설정 완료

이후 자동으로 부팅이 시작되고, 우분투가 설치되며, 자동으로 부팅까지 완료된다.

이후 웹 서버 형태를 갖추기 위해, apache2를 이용하여 웹 서버를 만들어 준다. apache2를 설치하면 자동으로 실행 및 서비스 등록까지 마치기 때문에, /var/www/html 내부의 파일만 변경하여 웹을 운용할 수 있다.

VI 편집기를 이용해 간단하게 HTML 하나를 만들고, 접속해서 확인해 본다.

웹 서버 구동 확인

웹 서버가 정상적으로 구동되는 것을 확인하였다.

이후 IPS와 웹 서버를 연동한다. IPS에는 별도의 정책을 넣지 않을 예정이며, 추후 룰을 추가해 줄 예정이다.

우리는 Suricata를 이용하여 IPS를 활용한다. 우선, 평소처럼 Suricata가 포함되어 있는 CentOS의 네트워크 인터페이스 설정을 변경해 준다. 이때, VMnet을 바꾼 뒤, 해당 VMnet에 맞게 수동으로 이더넷 설정을 변경해 줘야 한다.

변경하기 위해서, /etc/sysconfig/network-scripts/ifcfg-{Ethernet name} 형태의 파일을 이용한다.

ifcfg 파일

해당 파일을 열면, 이더넷 IP와 서브넷마스크, 게이트웨이 등을 변경할 수 있다. 우리는 eth0과 eth1을 사용할 예정이기 때문에, 두 파일을 각각 수정해 준다.

이후, service network restart를 해주게 되면, 네트워크가 재시작되면서 정상적으로 ip주소가 변경된다.

IP 변경 확인

이후, iptables에 FORWARD 정책을 NFQUEUE로 넣어 준다. 이를 통해, Suricata 프로그램을 통해 정상적으로 포워딩을 진행할 수 있다. 이때, NAT 설정까지 해 주면 Suricata를 통해서 완벽하게 포워딩이 진행되지만, 중간 방화벽 구간에서 확인하기 어렵다는 단점이 있다. 따라서 우리는 방화벽에서 직접 라우팅을 진행해 줄 예정이다. 우선 지금은 해당 정책까지만 넣고, Suricata를 실행시켜 준다.

Suricata 실행

Suricata가 실행되고, Web Server의 IP를 위치에 맞게 재설정해 준다. 그러면 당연하게, 웹 서버가 외부와 연결이 되지 않을 것이다. 그 이유는 돌아오는 패킷에 대해 NAT설정을 Suricata에서 안 해줬기 때문인데, 이를 위해 방화벽에서 정적 라우팅을 수행해 준다.

우리가 필요한 라우팅은 방화벽으로 192.168.60.0/24 대역의 Dest IP가 들어왔을 경우, 이를 IPS쪽으로 념겨줘야 한다. 따라서 방화벽에서 정적 라우팅을 진행한다.

Untangle에서 Config - Network - Routes에 들어가면 정적 라우팅을 수행할 수 있다.

정적 라우팅 수행

이렇게 정적 라우팅을 수행하면 웹 서버가 다시 외부와 연결이 가능해진 것을 확인할 수 있다.

또한, 외부에서 접속이 가능하도록, VMware 내에서 포트포워딩 설정을 진행해야 하는데, 이는 Virtual Network Editor의 NAT 설정에서 진행할 수 있다.

NAT Settings 위치

해당 버튼을 클릭하면, Port Forwarding 정책을 추가할 수 있다. 필자는 5050포트로 들어오는 IP를 우선 방화벽의 특정 포트로 보내주고, 방화벽은 그 특정 포트에서 받은 정보를 웹 서버의 80포트로 전달해 주도록 포트포워딩을 구성해 주면 된다.

방화벽에서는 6060포트를 사용하도록 하자. 5050포트로 들어오는 IP를 방화벽의 80포트로 보내주고, 방화벽에서 80포트로 정보를 받으면 웹 서버의 80포트로 전달해 주도록 포트포워딩을 구성해 본다.

우선 VMware의 NAT Settings에서 5050포트로 들어오는 정보를 방화벽의 6060포트로 전달하도록 포트포워딩을 구성한다.

1차 포트 포워딩

이후 방화벽에서 6060포트로 들어오는 정보를 웹 서버의 80포트로 전달해 줘야 한다. Untangle에서 Config-Network-Port Forward Rules에 들어간다. 여기서 포워딩 관련 룰을 추가할 수 있다. 이때, Switch to Advanced 버튼을 통해 디테일한 설정을 추가해 준다.

2차 포트 포워딩

이렇게 포트 포워딩을 수행해 준 뒤, Host PC의 5050포트만 열어 주면 외부에서도 Host PC의 5050 포트를 이용하여 웹 서버에 접속할 수 있다.

 

이렇게 인프라 구축은 완료하였다.

반응형

+ Recent posts