웹사이트 검색

Zentyal 웹 서버에서 UserDir 및 비밀번호 보호 웹 디렉터리 활성화 - 10부


Zentyal PDC Active Directory와 같은 다중 사용자 환경에서 웹서버를 실행하는 것은 각 사용자가 자신의 집에서 호스팅할 수 있는 개인 웹페이지를 갖도록 허용하려는 경우 큰 도움이 될 수 있습니다.

Zentyal 3.4웹서버 모듈은 사용자 공개 HTML을 활성화하고 일부 Linux BASH 스크립트를 사용하여 구성할 수 있습니다. 웹페이지의 일부 콘텐츠를 동적으로 생성하고 사용자에게 도메인 로그온에 필요한 정보를 전송합니다.

또한 Apache는 보안 제공 콘텐츠와 관련된 또 다른 기능, 즉 를 사용하여 가장 간단한 형식 중 하나로 웹 디렉토리를 비밀번호로 보호하는 기능을 오랫동안 제공합니다. .htaccess 파일을 생성하고 리소스에 액세스하는 데 필요한 사용자 목록을 생성하며 검색 엔진 크롤러로부터 웹 콘텐츠를 보호할 수도 있습니다.

요구사항

  1. 젠티알 설치 가이드
  2. Zentyal 서버에 웹 서비스(Apache) 설치

1단계: 사용자 공개 HTML 활성화

1. https://zentyal_ip를 사용하여 Zentyal PDC 웹 관리 도구에 로그인하세요.

2. 웹 서버 모듈로 이동 -> 피어 사용자 public_html 활성화를 선택한 후 변경 버튼을 누르고 변경 사항을 저장하세요. .

3. 브라우저를 열고 URL 필드에 http://mydomain.com/~your_username을 입력하세요.

보시다시피 Apache에는 사용자 디렉터리 또는 인덱스 사용자의 홈별로 액세스할 수 있는 권한이 없습니다. 이 동작을 수정하려면 /home/$USER 디렉터리에 대한 실행 권한이 있는 www-data를 제공하고 사용자 경로 아래에 public_html 폴더를 만들어야 합니다.

작업을 조금 단순화하기 위해 public_html 디렉토리를 생성하고 모든 시스템 사용자에게 올바른 권한을 부여하는 Linux Bash 스크립트를 작성하겠습니다. 자동으로 모든 시스템 사용자에 대한 html 웹 페이지를 생성합니다. 유효한 홈 디렉토리와 또 다른 스크립트(이번에는 Windows Bach 스크립트)가 있는 사용자. 이 스크립트는 이를 기본 도메인 GPO에 연결하여 모든 사용자가 <의 도메인 자격 증명으로 로그인한 후 개인 웹페이지를 표시하게 됩니다. b>Windows 시스템이 도메인에 가입되었습니다.

4. 이 작업을 완료하려면 시스템 설치 시 생성된 Zentyal 관리 계정으로 Putty를 사용하여 Zentyal Server에 로그인하고 즐겨 사용하는 텍스트 편집기를 사용하여 첫 번째 스크립트를 만듭니다. 이름을 "user-dir-creation"으로 지정하겠습니다.

nano user-dir-creation

5. “user-dir-creation” 스크립트에 다음 내용을 추가합니다.

#!/bin/bash

for i in `ls /home | grep -v samba| grep -v lost+found`;  do

        mkdir /home/$i/public_html

## Make world readable and executable, so that www-data can access it  ##

        chmod -R 755 /home/$i

      chgrp -R www-data /home/$i/public_html/

## Next code should be on a single line ##

echo "<html><body style='background-color:#2DC612'><div align='center'><p><H1 style='color:#fff'>Welcome user $i on <a style='color:#fff' href='https://mydomain.com'>`hostname -f` </a></H1></p></div></body></html>" > /home/$i/public_html/index.html

## List /home/$USER permissions and public_html perm optional ##

echo "......................."

ls -all /home/$i

echo "......................"

ls -all /home/$i/public_html

done;

6. 스크립트를 저장하고 실행 가능하게 만든 다음 루트 권한으로 실행합니다.

chmod +x user-dir-creation
sudo ./user-dir-creation

7. 브라우저를 다시 열고 위와 동일한 URL을 지정하세요(3번 항목 참조).

public_html 디렉토리가 생성되었고 모든 사용자를 위한 html 파일이 생성되었으므로 이제 그들은 모두 개인화된 웹 페이지를 소유하게 되었습니다(이것은 단순한 테스트 페이지일 뿐이지만 일부 PHP로 무엇을 할 수 있는지 상상해 보십시오. , MySQL 또는 CGI 스크립트).

8. Zentyal 3.4 서버주 도메인 컨트롤러이기도 하면 사용자가 도메인에 가입한 Windows 호스트에서 로그온할 때 사용자별 웹 페이지가 브라우저에서 자동으로 열리도록 만들 수 있습니다.

이를 활성화하려면 도메인에 가입된 Windows 시스템에 로그온하고 메모장을 사용하여 다음 내용과 함께 "public_html.bat"라는 Windows 배치 스크립트를 생성하십시오.

explorer http://your_domain.tld/~%username%

참고: "~" 특수 문자와 Windows 환경 변수인 %username%를 참고하세요.

9. Zentyal 웹 관리 도구(https://zentyal_IP)를 열고 도메인 -> 그룹 정책 개체 -> 기본값으로 이동합니다. 도메인 정책 -> GPO 편집자.

10. 편집을 클릭하고 사용자 구성 –> 새 로그온 스크립트 추가까지 아래로 스크롤한 다음 스크립트가 생성된 경로를 찾아 <를 누르세요. b>추가.

축하합니다! 이제 다음에 도메인에 로그인하면 기본 브라우저에서 사용자 이름과 관련된 개인화된 웹 페이지가 열립니다.

2단계: 비밀번호로 웹 디렉터리 보호

이 부분에서는 Zentyal 웹 인터페이스 형식으로는 달성할 수 없지만 명령줄과 일부 Zentyal Apache 모듈 템플릿 수정을 통해서만 달성할 수 있는 Apache 모듈에 대한 고급 구성이 필요합니다.

Linux 서버에서 일반적으로 수행하는 것처럼 Apache 구성을 직접 수정하려고 하면 Zentyal이 재부팅 또는 서비스 재시작 후 각 서비스 구성 파일을 다시 작성하는 일부 템플릿 양식을 사용하기 때문에 수행된 모든 구성이 손실됩니다.

실제로 Apache 인증을 사용하여 웹 폴더를 보호하고 변경 사항을 영구적으로 적용하려면 "AllowOverride" 지시문을 수정하고 "auth_basic" 모듈을 Apache 웹 서버에 로드하고 활성화해야 합니다. .

11. 루트 계정으로 Zentyal Server에서 Putty를 사용하여 명령줄을 통해 최초 로그인에 필요한 모든 구성을 활성화합니다.

12. 다음 명령을 실행하여 “auth_basic”을 활성화한 후 zentyal 웹 서비스를 다시 시작합니다.

a2enmod auth_basic
service zentyal webserver restart

13. 모듈이 로드된 후에는 “/usr/share/zentyal/stubs/webserver/” 경로에 있는 Zentyal Apache Vhost 템플릿을 수정하고 “허용 재정의“.

첫 번째 백업 vhost.mas 파일.

cp /usr/share/zentyal/stubs/webserver/vhost.mas  /usr/share/zentyal/stubs/webserver/vhost.mas.bak

그런 다음 편집기를 열고 파일의 맨 아래로 이동하여 스크린샷과 같이 "재정의 허용" 지시문 줄에서 "없음"을 "모두"로 바꿉니다. .

14. 편집을 마친 후 Zentyal Webserver 모듈을 다시 시작하여 새로운 변경 사항을 적용하세요.

service zentyal webserver restart

AllowOverride 지시문의 주요 목표는 다음을 사용하여 경로별로 Apache 루트(/etc/apache2/)에서 사용되는 파일과 다른 파일의 Apache 구성을 동적으로 변경하는 것입니다. .htacess 파일.

15. 이제 비밀번호로 보호된 웹 콘텐츠 디렉터리를 검색할 수 있는 일부 사용자를 생성할 차례입니다. 먼저 .htpasswd 파일이 호스팅되고 보호될 하위 도메인 경로 외부에 있는 디렉터리를 만들어야 합니다.

mkdir /srv/www/htpass
chmod –R 750 /srv/www/htpass
chgrp –R www-data /srv/www/htpass

16. 이제 .htpasswd 파일을 생성하고 htpasswd 명령을 사용하여 일부 사용자를 추가할 차례입니다. 첫 번째 사용자가 생성되면 "–c "(생성) 명령 스위치를 추가하여 파일을 생성하고 사용자를 추가한 다음 사용자 비밀번호를 입력하고 확인합니다.

htpasswd –c /srv/www/htpass/.htpasswd first_user
htpasswd /srv/www/htpass/.htpasswd second_user

17. 이제 .htpasswd 파일이 생성되고 MD5 솔트 알고리즘을 사용하여 암호화되며 웹 폴더 콘텐츠에 액세스하는 데 필요한 사용자를 필요한 만큼 추가할 수 있습니다.

18. 이제 하위 도메인에 액세스하기 위해 htpasswd 파일에 생성된 URL과 다른 사용자로부터 http://www.mydomain.com URL을 보호한다고 가정해 보겠습니다. 이 동작을 활성화하려면 www.mydomain.com 시스템 경로에 .htaccess 파일을 만들고 다음 콘텐츠를 추가하세요.

AuthType basic
AuthName “What ever message you want”
AuthBasicProvider file
AuthUserFile  /path/to/.htpassd file created
Require user  your_user1 user2 userN

또한 .htacces 파일이 단어 판독 가능 보호되어 있는지 확인하세요.

nano /srv/www/www.mydomain.com/.htaccess
chmod 750  /srv/www/www.mydomain.com/.htaccess
chgrp www-data /srv/www/www.mydomain.com/.htaccess

축하합니다! 이제 웹사이트의 www.mydomain.com 하위 도메인이 성공적으로 비밀번호로 보호되었으며 사용자에게 웹사이트 콘텐츠에 액세스하려면 자격 증명을 입력하라는 메시지가 표시됩니다.

또한 이미 생성된 자격 증명으로 서버에 생성된 다른 도메인이나 하위 도메인을 보호하려면 하위 도메인 Apache 경로에 .htaccess 파일을 복사하고 www-data 읽기 권한이 있습니다.

Apache Web Direcory Password Protect의 도움으로 Zentyal Weberver는 도메인에 게시된 민감한 정보 노출에 대한 추가 보안 계층을 구축할 수 있지만 이 방법은 디렉토리만 보호할 뿐 파일과 비밀번호는 전송되지 않는다는 점에 유의하세요. 브라우저에서 명확하게 표시되므로 HTTPS 프로토콜을 사용하여 사용자 자격 증명이 가로채지 않도록 보호해 보세요.