리눅스 Centos에서 아파치 서버를 설치하고 설정해 보려 합니다.
yum install httpd -y
아파치 웹서버 패키지를 설치하겠습니다.
Complete! 가 나온다면 바르게 설치된 것입니다.
rpm -qa httpd
를 통해 아파치 서버가 설치되어 있는지 확인해 보겠습니다.
systemctl status httpd
아파치 서버의 상태를 확인해보겠습니다. 현재 inactive 되어 있습니다. 꺼져있다는 말이죠.
systemctl start httpd
systemctl status httpd
를 통해 웹서버를 액티브하고 상태를 보겠습니다. active 가 되어 있는 것을 알 수 있습니다. 즉 웹서버가 작동하고 있습니다.
ip addr
를 통해 현재 이 웹서버의 ip 주소가 10.10.20.160 인 것을 확인 했습니다. 그럼 다른 클라이언트에서 이 웹서버에 접속해 보겠습니다.
웹서버에 접속되지 않습니다. 웹서버 방화벽 포트를 개방하지 않았기 때문입니다.
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
80 번 포트를 개방시키고 리로드 했습니다.
systemctl enable httpd
이제 이 서버를 껏다 켜더라도 자동으로 httpd 가 active 되도록 설정했습니다.
클라이언트에서 웹서버의 ip 주소 10.10.20.160으로 접속했더니 미리 설정되어 있는 기본 페이지가 나타나는 것을 볼 수 있습니다.
vi /var/www/html/index.html
를 처보니 없는 파일이기에 파일을 새로 만들고 아무것도 없는 빈 페이지에 들어갔습니다.
s, a, i를 치면 입력 모드로 들어가게 되며 "This is web page."라고 입력한 뒤 :wq를 입력해 저장하고 종료하겠습니다.
웹 페이지를 새로고침 해보니 이렇게 변했습니다. 이제 웹페이지 디자인은 여기서 하면 됩니다.
이제 웹서버 설정에 대해 알아보겠습니다.
vi /etc/httpd/conf/httpd.conf
문서 편집기로 httpd.conf 파일에 들어 가겠습니다.
httpd.conf 파일입니다. # 로 주석 처리 된 부분과 그렇지 않은 텍스트들이 보입니다.
31번 라인에 ServerRoot 는 웹서버의 설정 파일, 로그 파일 등이 저장되는 최상위 디렉토리의 경로입니다. 현재 이파일도 /etc/httpd/conf 디렉토리 안에 위치해 있는 httpd.conf 파일이죠.
다시 cmd 입력창으로 나가 아래를 입력하겠습니다.
curl --head http://10.10.20.160 (10.10.20.160 은 저의 웹서버의 ip 주소입니다.)
서버의 헤더정보를 알 수 있습니다. 모든 정보가 다 노출되기에 악용될 우려가 있기에 중요한 정보는 노출되지 않는 설정이 필요합니다.
32번 라인에 ServerTokens Prod 를 추가했습니다.
Prod 는 웹서버의 이름만 알려주는 모드 입니다 (Apache)
기존의 버전과 OS 정보까지 나오던 것과 다르게 5번째 라인에 Server: Apache 라고 오직 웹서버의 종류만 나오는 것을 확인했습니다.
Prod |
웹서버의 이름만 알려준다. (ex Apache) |
Major |
웹서버 이름과 Major 버전만 알려준다. (Apache/2) |
minor |
웹서버의 이름과 Major,minor 버전까지 보여준다. (Apache/2.4) |
min |
웹서버의 이름과 Major,minor,mini 버전까지 보여준다. (Apache/2.4.6) |
OS |
웹서버의 이름과 Major,minor,mini, OS이름까지 보여준다. (Apache/2.4.6/CentOS) |
Full |
모든 정보를 보여준다. |
ServerTokens 에 대한 다른 설정들입니다.
더 많은 설정에 대한 내용들이 있지만 분량조절 실패로 다음 글에서 작성하겠습니다.
이렇게 웹페이지 구축이 끝났습니다. 이 웹페이지에 접속하기 위해서는 ip 주소를 입력해야 합니다. 하지만 우리는 google에 접속하기 위해 주소창에 google.com을 입력하지 108.177.125.94를 입력하지 않습니다. 다음 글에서는 ip 주소 대신 google.com을 통해 접속 가능케 하는 DNS (Domain Name System)을 구축해 보겠습니다.
'리눅스, 서버' 카테고리의 다른 글
DNS 서버 master-slave 설정 리눅스(Centos) (0) | 2020.02.15 |
---|---|
DNS 서버 구축 리눅스(Centos) (0) | 2020.02.14 |