Firewall - iptables_실습 환경 구축 (4)

실습 환경 구축 - DMZ zone 설정하기


방화벽이란 일련의 보안정책을 통해 네트워크를 보호하고 접근통제하는 보안 시스템이다.

방화벽은 일반적으로 내부 네트워크와 외부 네트워크 간의 장벽을 구성한다.


  • 네트워크 구성도

iptables1_0


DMZ를 구성하기 위해 CentOS를 다운받아 설치한다. 설치 과정은 ‘(1) 가상 머신 설치하기’와 거의 유사하므로 생략한다.


이제 웹서버를 구축해보자. 터미널을 실행시킨 후 먼저 패키지가 설치되어있는지 확인한다.

rpm -qa httpd php mariadb-server	// 패키지가 설치되어있는지 확인


httpd는 존재하지만 php와 mariadb는 설치되어 있지 않으므로 설치하자.

yum -y install mariadb-server mariadb php php-mysqlnd


정상적으로 설치가 완료되었는지 확인한다.

rpm -qa php
rpm -qa mariadb-server

iptables4_2


httpd를 실행한다.

systemctl start httpd
systemctl status httpd

iptables4_3


같은 방식으로 mariadb도 실행시킨다.

systemctl start mariadb


먼저 DB 비밀번호를 설정한 후, DB에 접속하자.

mysqladmin -u root password '비밀번호'
mysql -u root -p -h localhost mysql


이제 데이터베이스와 테이블을 만들어주자.

create database myServer;
show databases;
use myServer;

iptables4_3-2


CREATE TABLE inhye(id varchar(20), name varchar(20), email varchar(30));
show tables;

iptables4_3-3


이제 테이블에 정보를 넣어줄 것이다.

INSERT INTO inhye VALUES('inhye', 'Park Inhye', 'angelainhye@naver.com');
SELECT * FROM inhye;

iptables4_3-4


그리고 아파치 서비스가 정상적으로 작동하는지 알아보기 위해 웹사이트를 열어서 확인한다. localhost를 입력했을 때 다음과 같은 화면이 나온다면 성공이다.

localhost

iptables4_4


간단한 페이지를 만들어보자.


아파치 웹서버 기본 경로(/var/www/html)에 php파일을 생성한다.

cd /var/www/html
vi index.php

<!DOCTYPE html>
<html>
	<head>
		<meta charset "utf-8">
	</head>
	<body>
		<h1>Welcome to Inhye World!</h1>
	</body>
<html>

<?php
	$conn = mysqli_connect('localhost', 'root', '비밀번호', 'myServer');
	$sql = "SELECT * FROM inhye";
	$result = mysqli_query($conn, $sql);
	$row = mysqli_fetch_array($result);
	
	echo '<h2>'.$row['id'].'</h2>';
	echo '<h3>'.$row['name'].'</h3>';
	echo '<h4>'.$row['email'].'</h4>';
?>


php가 정상적으로 작동하는지 다시 한번 웹사이트를 열어 확인한다.

localhost/index.php

iptables4_5


이제 외부에서 웹서버로의 접근이 가능하도록 방화벽을 설정할 것이다.

firewall-config

iptables4_6


그리고 옵션에서 firewalld 다시 불러오기를 클릭한다.

iptables4_7


host PC에서도 확인할 수 있다.

192.168.20.150/index.php

iptables4_8


모두에게 접속을 허용하기 위해 httpd.conf의 수정이 필요하다.

vi /etc/httpd/conf/httpd.conf
AllowOverride All	// 151번째 줄 (None->All)


이제 Server를 종료하고 Network Adapter를 Host-only로 변경한다.

iptables4_9


방화벽을 켜준 후 다시 Server를 실행시켜 방화벽으로 ping을 보내면 잘 보내지는 것을 확인할 수 있다.

ifconfig
ping 192.168.35.10	// 방화벽으로

iptables4_10


모두 확인했으니 종료 후 스냅샷을 찍어준다.

iptables4_11


그리고 조금 더 유동적으로 사용하기 위해 내부zone IP도 설정해준다.

Network Adapter는 다시 NAT로 변경하고, IP주소는 내부zone IP대역(192.168.10.X) 중 원하는 주소로 설정한다.

cd /etc/sysconfig/network-scripts
vi ifcfg-ens33


재시작 후 ping을 보내 확인해본다. 외부로는 가지 않는 것이 정상이다.

ifconfig ens33
ping 192.168.35.10	// 방화벽으로
ping 8.8.8.8		// 외부로

iptables4_12


역시 종료 후 스냅샷을 찍으며 마무리한다.

iptables4_13