linux

[리눅스 서버 구축하기] 4. 아파치 설치 및 설정

소스파일을 이용한 컴파일 설치

1) 설치에 필요한 패키지의 설치

리눅스 상에서 소스파일 다운로드하고, 컴파일을 위하여 필요한 패키지를 설치합니다.

yum -y install wget gcc gcc-c++ pcre-devel openssl-devel

2) 설치파일 다운로드 및 압축해제

# apache 소스 파일 다운로드 및 압축해제

cd /usr/local/src

wget http://mirror.apache-kr.org/httpd/httpd-2.4.18.tar.gz

tar xzvf httpd-2.4.18.tar.gz

# 설치 시 필요한 파일 추가 다운로드 및 압축해제

cd httpd-2.4.18/srclib

wget http://mirror.apache-kr.org//apr/apr-1.5.2.tar.gz

wget http://mirror.apache-kr.org//apr/apr-util-1.5.4.tar.gz

tar xvfz apr-1.5.2.tar.gz

tar xvfz apr-util-1.5.4.tar.gz

mv apr-1.5.2 apr

mv apr-util-1.5.4 apr-util

웹 서버 구축을 위한 apache 소스파일을 이용하기 위해서는 http://httpd.apache.org/download.cgi 사이트를 참고하여 httpd 2.4 최신버전을 다운로드 받습니다. 이 글에서는 리눅스에서 직접 설치를 위해 wget 명령어를 이용하였습니다.

13) apache 소스 컴파일 및 설치

Apache 설치에 필요한 환경이 모두 준비되었으면 configure 명령어를 통해 설치 파일을 구성합니다.

# configure command

./configure –prefix=/usr/local/apache –enable-so –enable-rewrite –enable-ssl –enable-mods-shared=all –enable-modules=shared –enable-mpms-shared=all –with-included-apr –enable-unique-id

2

컴파일이 정상적으로 완료되면 make 명령어를 통해 컴파일 및 설치를 진행합니다.

3

4) 설치 후 설정

설치가 완료되면 서비스 스크립트를 /etc/init.d/ 위치에 복사하여 사용가능 하도록 처리 후

재부팅 시에도 웹 서버가 자동으로 구동될 수 있도록 runlevel에 등록해줍니다.

# httpd 스크립트 복사 및 서비스 runlevel 등재

cp -a /usr/local/apache/bin/apachectl /etc/init.d/httpd

ln -s /etc/init.d/httpd /etc/rc3.d/S99httpd

/etc/init.d/httpd -V

4

아래와 같이 간단한 명령어를 통해 정상 등재되었는지 확인합니다.

5

5) 서비스 확인

/etc/init.d/httpd start

http 스크립트 명령어를 통해 웹서비스를 시작한 후 정상적으로 80 port가 Listen되는지 확인합니다.

6

rpm 설치

1) httpd 패키지 설치

CentOS에서는 RHEL계열에서 처리되는 rpm 방식으로 설치가 가능합니다. 일반적으로 아래 이미지와 같이 yum 명령어를 통해 관련 패키지 및 의존성 패키지를 한 번에 설치할 수 있습니다.

7

httpd패키지 설치를 yum으로 진행 시 httpd와 그 의존성 패키지인 apr, apr-util 를 설치합니다.

8정상적으로 설치가 완료된 화면입니다.

2) 설치 후 확인 사항

설치 완료 후 정상적으로 httpd 가 설치되었는지 점검합니다.

9rpm으로 설치 시 관련 명령어의 path 등 기본 환경 설정이 적용됩니다. systemctl enble httpd.service 명령어를 통해 httpd 서비스를 구동한 후 80포트가 정상적으로 Listen 상태인지 확인합니다.

10

– 웹서비스 확인

1) apache 설정파일 확인

Apache에 설정된 파일을 확인하여 DocumentRoot와 DirectoryIndex를 확인한다. 별도의 수정이 없었다면 결과는 다음과 같습니다.

DocumentRoot “/var/www/html”

DirectoryIndex index.html

2) 테스트 페이지 확인

설정파일에 기재된 내용을 참고하여 해당 위치 해당 파일명으로 테스트할 페이지를 생성합니다.

echo ‘Gabia Test Page ! ! !’ > /var/www/html/index.html

11

3) 방화벽 확인

CentOS를 기본 설치할 경우 외부에서의 80포트 접근이 차단되어있습니다.

아래와 같은 명령어를 이용하여 현재 정책이 존재하는 port를 확인할 수 있습니다.

firewall-cmd –zone=public –list-all

Ports 란이 공란으로 되어있으며 tcp 80포트가 정상적으로 접근되지 않음을 알 수 있습니다.

12

위와 같은 명령어를 통해 80port로의 모든 접근이 가능하도록 정책을 넣은 후 방화벽을 relaod합니다.

# 80 port any open

firewall-cmd –permanent –zone=public –add-port=80/tcp

# 방화벽 리로드

firewall-cmd –reload

정상적으로 허용이 되었는지 확인은 아래 명령어로 확인할 수 있습니다.

# 방화벽 public 영역 모든 리스트 확인

firewall-cmd –zone=public –list-all | grep 80

4) 브라우저 테스트

http://192.168.0.10/ 페이지가 정상적으로 출력되는지 서버 외부의 클라이언트에서 일반 웹 브라우저로 호출해봅니다.

13

보안_취약점진단_프로모션