관리 메뉴

IT창고

리눅스 WEB2 설정 본문

서버운영/Linux

리눅스 WEB2 설정

방구석여포 2017. 9. 30. 18:30

리눅스 WEB 설정에서 웹 서버를 구성하는 방법을 알아보았습니다 이번에는 전에 구성했던 아파치에서 아파치인증방법에 대해 알아보겠습니다. 아파치 인증 기법은 특정 디렉토리에 접근 시 ID와 패스워드를 요구하도록 설정하는 방법을 말하는데 가장 많이 사용되는 방법으로 Basic과 Digest를 이용하는 방법이있고 그 외에도 PAM,LDAP,Kerberos 인증 방법도 있습니다.


Basic 인증에 대해 알아보겠습니다.

Basic인증(HTTP Basic Authentication)은 클라이언트가 Web서버로 보내는 인증은 암호화되지 않는 Base64로 인코딩 되어서 평문으로 전달되는 방법입니다 단 안전한 인증방법은 아닙니다. 

vim  /etc/httpd/conf.d/auth_basic.conf 파일안에 아래와 같이 설정합니다.

위의 화면에 내용을 알아보면 <Directory "/var/www/html/basic"> 는 Basic인증을 사용할 디렉토리를 정의하고 AuthType Basic는 인증종류를 설정하고 AuthName "Basic Test"는 사용자가 접속할때 인증화면에 보여줄메세지이며 AuthUserFile /etc/httpd/.htpasswd는 사용자의 패스워드가 저장될 파일의 경로를 지정하고 Require user web-admin 는 소수의 사용자만 인증이 필요할 경우 사용자명을 각각 입력해서 사용하고 #Require valid-user는 주석처리를 했으며 .htpasswd파일에 등록된 사용자 모두를 허용하고 Order deny,allow는 Order지시자를 사용하여 명시된 네트워크에서만 접근이 허용하도록 설정합니다. 


사용자 패스워드를 생성하는 법을 알아보고 간단한 CGI를 만들어보겠습니다.

htpasswd -c /etc/httpd/.htpasswd web-admin 를 입력해서 패스워드를 등록시키고 cat /etc/httpd/.htpasswd 명령어로 잘 등록이 됬는지 확인할수있습니다. service httpd restart로 변경사항을 적용하고 mkdir /var/www/html/basic입력해서 디렉토리를 만든 후에 vim /var/www/html/basic/index.html 파일에 아래와 같이설정합니다.

여기까지 설정했다면 X-Window환경이나 같은 네트워크 대역의 PC로 가서 웹 브라우저를 열고 DNS서버를 설정했다면 도메인으로 안했다면 자신의 IP를 입력하고 접속합니다. ex) 192.168.1.23/basic

인증화면이 나타난다면 정상적으로 동작되는 중입니다. 계정과 패스워드를 입력하고 접속할수있습니다.


Digest 인증에 대해 알아보겠습니다.

Digest인증(HTTP Digest Authentication)은 Basic인증 방법보다 더욱 강화된 인증방법으로 사용자명, 패스워드 등을 조합하여 생성한 MD5값으로 인증을 생성합니다. mod_ayth_digest 모듈을 사용합니다.

vim /etc/httpd/conf.d/auth_digest.conf 파일에 아래와 같이 작성합니다.

Basic과 비슷하면서도 조금 다른데 다른부분에 대해 알아보겠습니다. AuthName "Private Area"는 인증화면에서 사용자에게 보여줄 메세지이며 내용은 사용자 생성시 Realm으로 사용되고 AuthDigestDomain http://www.gsk.com/digest 는 Digest인증이 적용되어 보호가 되어질 URL을 입력하고 AuthUserFile /etc/httpd/.htdigest는 숨김파일안에 사용자패스워드가 저장될 파일의 경로를 입력합니다.

위의 설정을 했다면 htdigest -c /etc/httpd/.htdigest 'Private Area' web-admin 명령어를 입력합니다 중요한점은 반드시 중간에 AuthName부분을 올바르게 작성해야합니다 만약 다를 경우 해당 계정으로 접속이 불가능합니다. cat /etc/httpd/.htdigest 으로 MD5암호화가 됬는지 확인하고 apachectl configtest 명령어를 통해서 아파치 설정 파일의 문법을 검사해봅니다. service httpd restart로 변경사항을 적용합니다. mkdir /var/www/html/digest 로 디렉토리를 만들고 Basci처럼 vim /var/www/html/digest/index

.html 파일에 아래와 같이 설정합니다.

설정이 끝났다면 이번에도 자신의ip/digest를 입력해서 잘 되는지 테스트 해봅니다.


APM에 대해 알아보겠습니다.

APM이란 Web서비스에 필요한 가장 기본적인 프로그램들을 뜻하며 웹 서버를 제공하는 Apache Web Server와 웹 프로그래밍 언어인 PHP 그리고 데이터베이스 관리를 위한 Mysql 혹은 MariaDB를 말합니다.

보통 아파치와 php 그리고 sql 3가지가 함께있는것을 APM이라 합니다. yum -y install httpd mysql mysql-server php php-mysql를 입력해서 패키지를 설치합니다. rpm -qa httpd php mysql으로 설치가 됬는지 확인하고 service httpd start 합니다 단 주의할점은 만약 웹서버의 도메인정보가 없다면 FQDN관련 에러가 뜨는데 무시하셔도 됩니다. 에러를 해결하고 싶다면 vim /etc/httpd/conf/httpd.conf 파일에 :set nu을 입력하고 276라인에 주석을 해제하고 정상적인 도메인을 넣어주면 됩니다.


service mysqld start를 입력해서 mysqld데몬을 시작하고 mysqladmin -u root password 'gsk123' 을 입력해서 계정정보를 등록합니다. 접속은 mysql -u root -p 를 입력해서 접속합니다. 접속하고 잘 작동되는지 아래와 같이 간단하게 테스트를 해봅니다

이번에는 php가 정상적으로 작동이되는지 php -r 'echo "Linux\n";' 를 입력하여 확인해봅니다. 작동에 문제가 없다면 chkconfig httpd on ; chkconfig mysqld on를 입력하여 부팅시 자동으로 활성화되도록 합니다. 

다른 테스트로 텍스트 웹브라우저에 대해 알아보겠습니다.

cd /var/www/html 를 입력해서 해당 디렉토리로 접근후 vi linux.php 파일에 <?php echo 'hello linux;?> 라고 입력합니다. 그리고 yum -y install elinks 를 입력해서 텍스트 웹브라우저 패키지를 설치하고 elinks 도메인혹은자신의ip/linux.php 를 입력해서 접속합니다.

혹시 에러가 나온다면 vi /etc/php.ini 파일에 접근해서 530번 라인에 기존display_errors = Off를 on으로 바꿉니다 다시 elinks로 접속하면 어디에 오류가 있는지 알려줍니다.


XE설치에 대해 알아보겠습니다. 

XE설치를 위해 wget을 사용해도 되고 VMware가상환경을 사용한다면 VMware Tools를 이용해도 좋고 XshellSSH를 사용한다면 lrzsz 패키지를 사용해도 상관없습니다. 저는 yum -y install lrzsz를 입력해서 lrzsz패키지를 사용하겠습니다. 

먼저 https://www.xpressengine.com/ 사이트에있는 XE자료실에서 XE를 다운로드해서 작업할 리눅스에 넣어줍니다.

yum -y install unzip 를 입력하여 패키지를 설치하고 zip압축을 unzip xe.zip으로 풀어줍니다. mysql -u root -p을 입력해서 접속한 후 create database xe; -> show databases; -> flush privileges; 를 입력해서 테이블을 만들고 변경사항을 적용후에 exit로 나갑니다. 우선 chmod 707 xe 를 입력해서 허가권을 주고 나머지 패키지 yum -y install gd php-gd를 입력해서 설치합니다. vi /etc/httpd/conf/httpd.conf 파일에 338라인에 AllowOverride None를 AllowOverride All로 바꿔줍니다. 여기까지 모든 설정을 하고 service httpd restart로 변경사항을 적용후에 테스트를 해보겠습니다.


리눅스 웹 브라우저로 넘어가서 192.168.1.23/xe/admin을 입력하면 아래와 같은 화면이 나옵니다.

XE설치화면이 나오는데 다음버튼을 눌러설치를 진행합니다. 중간에 DB선택이 나오는데 mysql을 선택하면됩니다. 그  다음화면에 mysql정보입력이 있는데 아까 등록한 계정과 xe테이블을 만들었다면 DB이름은 xe로 입력하시면됩니다.

설치를 전부 하셨다면 위와 같은 화면이 나오는데 여기서 간단하게 사이트를 만들어볼수있습니다. 게시판을 만들어도 되고 레이아웃도 공짜로 받을 수있는게 많아서 사용하기에 편합니다. DNS서버를 구성해서 도메인을 만들면 더 완벽하게 만들어 볼수도 있고 포트포워딩을 해서 다른 사람들도 내가 만든 사이트에 접속할수있습니다.






'서버운영 > Linux' 카테고리의 다른 글

리눅스 iptables  (0) 2017.10.15
리눅스 WEB3 설정  (0) 2017.10.15
리눅스 WEB 설정  (0) 2017.09.28
리눅스 Kickstart  (0) 2017.09.28
리눅스 PXE  (0) 2017.09.25
Comments