가로선 2022. 3. 23. 16:44

 

   목차   

 

1. 서버 세팅

    - 손에 반드시 익히자!

2. Virtual Host

3. 접근제한

    - IP 대역

    - 사용자별

 

 

   서버 세팅   

 

세팅 / WEB 가상호스트, 접근 제한은 배우기 전이므로 기본세팅 이후에 포스팅

 

   CentOS7-1 세팅   

 

주 DNS서버이므로 master로 설정

    - 보조 DNS서버인 2, 3의 IP를 넣는다

 

정방향 레코드파일 설정

    - DNS에 등록한 네임서버, 메일서버는 반드시 처리해줘야한다!

 

역방향 레코드 파일 설정

    - 레코드 파일 생성 후, 권한 변경하는 것 잊지 말자!

 

방화벽 개방 포트 확인

 

nslookup으로 설정된 것 확인

 

/var/www/html/index.html 수정

    - 초기 페이지 서비스를 위해 수정

    - 저번 세팅과 다르게 index.html을 사용하였음

        - 따로 httpd 설정파일 건드릴 필요 없다

 

웹 서버의 초기페이지가 잘 출력되는지 확인

 

   CentOS7-2 세팅   

 

DHCP 서버 세팅

 

W10-1 DHCP로 IP할당

 

W11-1 DHCP로 IP할당

 

보조 DNS 서버 세팅

    - 보조 DNS이므로 slave type으로 설정

    - 주 DNS의 IP를 넣어준다

    - 보조 DNS는 주 DNS의 레코드 파일을 바로 복사하므로 따로 설정해줄 필요 없다

        - systemctl restart named후, 확인!

 

방화벽 개방 포트 확인

 

CentOS7-1 처럼 WEB 서버 설정 후 확인

 

   CentOS7-3 세팅   

 

passive mode 사용하므로 설정파일에 작성

    - 세팅값대로 설정파일 설정들 수정

    - 사용자 a, b 생성

 

ftp 접속 확인

 

보조 DNS 서버 세팅

 

방확벽 개방 포트 확인

 

CentOS7-1 처럼 WEB 서버 설정 후 확인

 

 

   가상 호스트(Virtual Host)   

 - 하나의 IP와 Port를 갖고 여러 웹사이트를 서비스 하는 방법
 - 여러 웹사이트를 서비스 하는 방법
    - 여러개의 IP가 있는 경우
    - 여러개의 Port를 사용하는 경우
        - 사용자들이 Port를 입력해야하는 번거로움 발생
 -> 가상 호스트를 사용하여 동일한 IP와 동일한 Port를 이용
    - 대부분의 사이트에서 사용하는 방법

 ex) tistory.com에서 다수의 고객들이 개별 사이트를 운영할 수 있는 방법
    - https://kyunam1012.tistory.com/
        - kyunam1012 : 사용자마다 이 부분이 다르다
        - naver.com 역시 blog.naver.com, cafe.naver.com 등을 운영하는데 
        -> 이 방법이 가상호스트 방식이다

 

/var/www/blog 디렉터리 생성

 

index.html 생성

 

blog 서비스 페이지 만들기

    - 시작페이지 처럼 확인해보기 위함이니 간단히 만들자

    - 역할 세팅에선 CentOS7-1, CentOS7-2가 블로그 웹 서버 역할을 함으로

      2군데 모두 똑같이 만들어줘야 한다

 

/var/www/intra 디렉터리 생성

 

index.html 생성

 

intra 서비스 페이지 만들기

    - 역할 세팅에선 CentOS7-2, CentOS7-3가 인트라 웹 서버 역할을 함으로

      2군데 모두 똑같이 만들어줘야 한다

 

/etc/httpd/conf/httpd.conf 설정파일 마지막줄에서 부터 설정

    - NameVirtualHost *:80 : 모든 아이피에 대해서 80으로 서비스하겠다

    - DocumentRoot : 컨텐츠의 위치(index.html을 찾는 것이라 생각)

    - ServerAlias : www를 사용하지 않고 접속하는 사용자를 위해 사용

    - ServerAdmin은 굳이 사용안해도 된다

    - 메인페이지도 반드시 가상호스팅을 해야 페이지 출력이 가능하다

        - 안하게 되면 블로그 페이지만 출력이 된다

    - 나머지 설정들은 httpd.conf의 설정을 참조하므로 안건드려도 무방하다

    - ServerName에서 HostName을 찾으면 그 해당 이름의

      DocumentRoot을 찾아서 뿌려준다고 생각하자!

 

CentOS7-2 설정

 

CentOS7-3 설정

 

레코드 파일의 가상호스팅한 페이지들도 선언해준다

    - 원래 1라인당 serial이 1 올라간다고 생각하면 되지만, 그냥 2로 하였다

 

정방향 레코드 파일이 해당 실습을 하던 시간인 13:25으로 변경

 

W10-1에서 Test

    - BLOG 서비스 페이지가 열리는 것을 확인할 수 있다

 

W10-1에서 Test

    - INTRA 서비스 페이지가 열리는 것을 확인할 수 있다

W10-1에서 Test

    - 메인페이지도 이상없이 잘 열리는 것을 확인할 수 있다

 

 

   접근 제한   

 

   IP 대역 접근 제한   

 

/etc/httpd/conf/httpd.conf에서 설정

    - 권한 세팅에서 BLOG는 W10-1만 접근가능하므로 설정   

    - 권한 설정은 Directory 지시자를 사용한다

    - Order 지시자는 뒤에있는게 먼저 적용된다

        - deny, allow 순이므로 deny를 먼저 다음 줄에 선언해도 allow부터 적용 

 

 

W10-1에서는 이상없이 blog 접근 가능

 

W11-1에서는 서비스 페이지가 나오지 않고 Apache의 welcome 페이지가 출력된다

 

정확한 테스트를 위해 welcome 페이지를 다른 곳으로 백업

 

W11-1에서는 blog페이지에 접근이 안되는 것을 확인

 

   사용자별 접근제어   

 

CentOS7-2 설정

    - 인증 유형을 사용할 수 있도록 허용하기 위해

      AllowOverride의 옵션인 AuthConfig 사용

 

.htaccess 파일 생성

    - .htaccess : 웹서버에서 브라우저같은 클라이언트에서 접근할 때

                            어떤 식으로 서비스를 제공할 지 가상 호스트 설정 파일을 통해 결정하는데,

                            이 때 서비스할 파일이 위치한 곳의 디렉토리 경로를 지정

    - httpd.conf에서 .ht로 시작하는 파일에 접근 권한을 막은 이유

 

.htaccess 옵션 설정

    - AuthName : 인증 영역에 대한 이름 지정(중요하지 않음)

    - AuthType : 인증 타입 설정(Basic, Diget이 있지만 Basic만 현재 지원중)

    - AuthUserFile : 인증 사용자와 패스워드를 가진 패스워드 파일을 지정

    - Require user : 지정한 유저만 디렉터리 접근이 허용

        - 여기서 a와 b는 로컬 유저가 아니라 따로 생성해줘야한다

 

a, b 사용자 생성

    - htpasswd -c옵션은 처음만들때만 사용한다

        - 사용 후, 또 사용하게 되면 덮어쓰기가 되어 b만 생성된다

 

CentOS7-3 설정

 

.htaccess 옵션 설정

 

a, b 사용자 생성

 

intra 페이지 접근할 때 사용자 이름과 암호를 입력해야 접근이 되는 것을 확인

    - a와 b를 제외하면, 다른 사용자는 모두 접근이 불가