Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

삐뚜루빠뚜루빼뚜루

[Linux] 계정 / 마운트 / DNS / 웹페이지 실습 본문

실습문제/linux

[Linux] 계정 / 마운트 / DNS / 웹페이지 실습

삐.빠.빼 2025. 3. 8. 19:59


□ 실습 전 확인

1) Server 네트워크 IP 설정
- Server1 : 192.168.10.10 (vmnet8)

- Server2 : 192.168.10.20 (vmnet8)

 

2) Server1 HDD 추가 (1GB , 3GB)


◆ 실습문제

1. HDD 작업

- 작업 전 HDD 인식

find 명령 scan / echo명령으로 디스크 인식
fdisk 명령으로 /dev/sdb, /dev/sdc 확인

1) /dev/sdb (1GB)

- 파티션 분할 : P(100M) , P(100M) , L(200M) , L(200M) , *P*(etc) ※ P : 기본 파티션 / L : 확장 파티션(논리 파티션)

- 포맷 : ext4 (/dev/sdb4)

- 마운트 : /local/sdb (자동마운트설정)

* 자동마운트 후 mount -a는 두번실행 (두번째 실행 시 오류시 /etc/fstab 재확인)

마운트 전 디렉토리 생성 및 uuid 확인
/etc/fstab에서 자동마운트 및 mount -a로 적용

2) /dev/sdc (3GB)

- 포맷 : ext4

- 마운트 : /export/sdb (자동마운트설정)

* 자동마운트 후 mount -a는 두번실행 (두번째 실행 시 오류시 /etc/fstab 재확인)

마운트 전 디렉토리 생성 및 uuid 확인
/etc/fstab에서 자동마운트 및 mount -a로 적용

- 작업 후 확인

 

2. 계정생성 및 환경설정

- 작업 전 디렉토리 생성 * 계정 작업은 skel2에서 진행 (계정생성 시 디렉토리 자동생성 작업을 위해)

 

    1) sevas계정변경

      - 홈 디렉터리 변경 : /export/sdb/home/sevas

      - 디렉터리/파일설정 : ~sevas/public_html/index.html (index.html 안 " www.sevas10.com : UserDir " 입력) 

        - 웹 페이지 설정 : http://www.sevas10.com/~sevas

아래에서 웹 서버 아파치 설정을 위해 사용자와 그룹명 sevas로 변경
하위 그룹까지 sevas로 변경

 

    2) main계정설정  * 계정 작업은 skel2에서 진행

      - 디렉터리/파일설정

         : admin/index.html (index.html 안 " ad.sevas10.com:8080=virtualhost  " 입력)

         : html/index.sevas ( index.sevas 안 " Document "  입력 )

      -  계정 생성 시 홈 디렉터리 : /export/sdb/home/main

계정 생성 및 확인

      - 웹 페이지 설정 : ad.sevas10.com:8080 보안페이지(virtualhost) 설정(sevas로 로그인 접속설정)

 

    3) ftpuser계정설정  * 계정 작업은 skel2에서 진행

      - 디렉터리/파일설정

         ~ftpuser/pub 생성 및 파일생성 압축 : 1.gz, 2.bz2, 3.dd(dd명령어로 100M 파일생성)

pub 디렉토리 생서 및 파일 1,2 생성

dd if=/dev/zero of=3.dd bs=1024 count=100000
// dd:디스크 복사 및 변환 명령
// if=/dev/zero : 파일에 0으로 채워진 데이터를 읽음. (/dev/zero : 무한적으로 0바이트를 출력하는 특수파일)
// of=3.dd bs=1024 : 출력파일은 3.dd , 블록의 크기는 1024(한번에 받고쓰는 데이터량 1024)
// count=100000 : 100mb 크기의 파일

 

압축파일 및 3.dd 생성확인

      - 계정 생성 시 홈 디렉터리 : /export/sdb/home/ftpuser

계정 생성 및 확인

      - 웹 페이지 설정 : ad.sevas10.com:8080 보안페이지(virtualhost) 설정(sevas로 로그인 접속설정)

 

- ftpuser / main 계정 확인

 

    4) korea계정생성

      - 홈 디렉터리 : /export/sdb/home/ftpuser/pub

      - 그룹 : ftpuser

계정생성 및 그룹지정
설정확인

 

    5) alias생성

      -  export/sdb/home 경로 안 alias/a/b/c/index.html 생성 : www.sevas10.com :Aliashost 입력

alias/a/b/c 디렉토리 생성
index.html 생성 후 내용입력

 

      -  웹 페이지 설정 : alias 설정 시 /tomato 로 지정하여 출력 * 계정이 아닌 디렉토리

 

- 디렉토리 권한변경 : korea 접근 및 아파치 웹서버 접근을 위해 변경

권한변경 확인

 

3. DNS 설정

- DNS 설정 전 각 서버 bind 패키지 설치

server1 bind 설치
server2 bind 설치


    1) server1 DNS 설정(주영역 : Master)

      - vi /etc/named.conf 수정

 

 - vi /etc/named.rfc1912.zones 추가 : sevas10.zone

zone "sevas10.zone" IN {
	type master;
    file "sevas10.zone"
    also-notufy { 192.168.10.20; };
    allow-transfer { 192.168.10.20; };
};

 - cd /var/named 접속 후 sevas10.zone 생성(수정)

sevas10.zone 파일 생성 후 확인

sevas10.zone
@ 192.168.10.10 // DNS 존 파일 표기, @은 현재 도메인 이름을 참조하여 DNS 설정
ns.sevas10.com 192.168.10.10
mail.sevas10.com 192.168.10.10
ftp.sevas10.com 192.168.10.10
ad.sevas10.com 192.168.10.10
db.sevas10.com 192.168.10.10
www.sevas10.com (CNAME) 대상 : web.sevas10.com.
web 10 192.168.10.10
	20 192.168.10.20

sevas10.zone 파일내용 수정 후 확인

chmod 660 sevas10.zone
// 보안강화 및 슬레이브 접근을 위해 644 → 660으로 변경

 

 - netstat로 named 서비스의 사용 중인 포트 확인

 

 - 방화벽 DNS PORT  설정 

 

 - nslookup 확인

 


    2) server2 DNS 설정(보조영역 : Slave)

      - vi /etc/named.conf 수정

 

 - vi /etc/named.rfc1912.zones 추가 : sevas10.zone(slave)

 

 - 방화벽 DNS PORT  설정 

 

 - DNS서비스 재실행 후 slave 디렉토리 및 nslookup 확인

서비스 실행 전 slaves 디렉토리 내용 없는것을 확인
slaves 디렉토리 내 seva10.zone 확인 및 nslookup 확인


4. 웹 설정

- sevas 웹 페이지 설정 : http://www.sevas10.com/~sevas

- main 웹 페이지 설정 : ad.sevas10.com:8080 보안페이지(virtualhost) 설정(sevas로 로그인 접속설정)

- main/웹 페이지 설정 : alias 설정 시 /tomato 로 지정하여 출력 * 계정이 아닌 디렉토리

 

* 웹 설정 전 server1 httpd 패키지 설치

 

1) /etc/httpd/conf/http.conf 파일수정

: 아파치 http server 주요 설정파일 중 하나이며,  서버의 동작방식을 제어하는 설정이 포함되어있음.

vi /etc/httpd/conf/httpd.conf //아파치 웹서버의 설정파일

#Listen 12.34.56.78:80
Listen 80 //모든 네트워크 인터페이스에서 80port에 http 요청을 수신
Listen 192.168.10.10:8080 //192.168.10.10 ip주소의 8080포트에서 http 요청을 수신

<Diretory /> //루트 디렉토리 접근설정
	AllowOnerride none
#	Reqire all denied
//주석처리를 하지 않으면 일일히 들어가고자 하는 웹페이지의 디렉토리를 설정해야함
//실제업무에서는 주석금지 (보안상의 문제가 생김)
</Diretory>

#DocumentRoot "/var/www/html"
DocumentRoot "/export/sdb/home/main/html" 
//요청 시 기본적으로 제공하는 디렉토리 경로(해당 파일을 웹 페이지에 제공)

<Diretory "/export/sdb/home">
	AllowOnerride none
	Reqire all granted //접근을 허가함.
</Diretory>

<Directory "/export/sdb/home/main">
    AllowOverride AuthConfig  // 인증 관련 설정을 .htaccess에서 허용
    Require all granted       // 접근을 허용
</Directory>

alias /tomato "/export/sdb/home/alias/a/b/c/"

<IfModule dir_module>
	DirectoryIndex index.html index.sevas 
    //디렉토리 요청 시 보여주는 기본 인덱스 파일의 우선순위 지정
</IfModule>

기본 요청은 80으로 192.168.10.10:8080입력 시 8080에서 처리
루트 디렉토리 접근설정
기본 디렉토리 경로(기준)
디렉토리를 접속하고자 하는 사용자 디렉토리 설정
기본 인덱스 파일

 

2) /etc/httpd/conf.d/userdir.conf 파일수정

: 사용자별로 웹 서버를 통해 개인 웹 디렉토리를 제공할 수 있도록 설정.

ex) 웹 브라우저에서 http://192.168.10.10/~username/로 접근 가능

UserDir disabled // 사용자 디렉토리 기능을 비활성화
UserDir enabled sevas // sevas에 대해서만 UserDir 기능을 활성화
//UserDir ? : 사용자에게 웹 서버를 통해 개인적인 웹 사이트나 파일을 제공할 수 있는 공간을 제공

UserDir public_html
// 사용자의 홈 디렉토리 내에서 public_html이라는 폴더를 사용하여 웹 파일을 호스팅하도록 지정
// 즉, sevas는 http://192.168.10.10/~sevas 라는 주소로 접근이 가능해지며 
// public_html 폴더에 있는 파일을 해당 웹 페이지를 접근이 가능해짐.

 

3) /etc/httpd/conf.d/vir.conf 파일생성

:  virtualhost 설정 시 하나의 서버에서 여러 개의 웹사이트나 애플리케이션을 호스팅이 가능함.

vi vir.conf // 가상호스트 설정

<VirtualHost 192.168.10.10:8080> //192.168.10.10:8080로 들어오는 요청을 처리하는 설정
  ServerAdmin root@sevas10.com 
  //서버에서 문제가 발생하면 이 이메일 주소로 알림이 전송(root@sevas10.com으로 전송)
  DocumentRoot /export/sdb/home/main/admin 
  // 웹 서버가 요청을 처리할 기본 디렉토리를 정의
  // 192.168.10.10:8080/ 주소 접근시 지정한 디렉토리 내의 파일들을 제공함.
  ServerName ad.sevas10.com 
  //가상 호스트에 대한 도메인 이름을 설정
  // ad.sevas10.com으로 접근할 때 이 가상 호스트의 설정이 적용(DNS 설정필요)
  ErrorLog logs/ad-error_log
  //오류시 logs/ad-error_log에 기록됨(파일생성자동)
  TransferLog logs/ad-access_log
  // 클라이언트의 요청과 서버의 응답을 기록 logs/ad-error_log에 기록됨(파일생성자동) 
</VirtualHost>


4) .hraccess 보안 페이지 파일생성

: 위 http.conf에 설정한 보안페이지 접근에 관한 파일생성

vi /home/sevas/admin/.htaccess

authname "sevas-auth" // 로그인 시 창에 "sevas_auth" 메시지가 표시됨.
authtype basic // 기본 인증을 사용 : ID, PW을 확인함.
authuserfile /etc/httpd/conf/my/sevas // 인증 파일의 위치
require valid-user // .htpasswd 파일에 정의된 유효한 사용자만 접근할 수 있도록 설정

mkdir -p /etc/httpd/conf/my // .htaccess에 인증파일 디랙토리 생성
htpasswd -5 -c /etc/httpd/conf/my/sevas sevas 
// .htpasswd 파일 생성되며, 안에 sevas 사용자의 비밀번호가 암호화(-5)된 형태로 저장됨

인증할 sevas 계정의 password를 생성

5) httpd 방화벽 설정

: 접속하는 80port와 8080port 설정

 

6) windows 네트워크 설정

server1의 IP를 VMNET8 DNS에 입력
이더넷4에 DNS 설정

 

7) 접속확인

- sevas 웹 페이지 설정 : http://www.sevas10.com/~sevas

- main 웹 페이지 설정 : ad.sevas10.com:8080 보안페이지(virtualhost) 설정(sevas로 로그인 접속설정)

- main 웹 페이지 설정 : ad.sevas10.com 접속 시 Document

- main/웹 페이지 설정 : alias 설정 시 /tomato 로 지정하여 출력

 

5. ftp 설정

- ftp은 ftpuser와 korea계정만 가능 (그외 sevas,main은 접속불가)

- 설정 전 패키지 설치

 

1) /etc/vsftpd/vsftpd.conf 파일수정

chroot_local_user=yes //각 사용자는 본인 홈 디렉토리만 접근하도록 설정
chroot_list_enable=YES //예외 사용자는 자신의 홈 디렉토리 외의 다른 시스템 디렉토리 접근가능
chroot_list_file=/etc/vsftpd/chroot_list // 예외 사용자 목록
allow_writeable_chroot=yes

pam_service_name=vsftpd //PAM을 사용하여 인증을 처리하도록 설정
//PAM : 리눅스 및 유닉스 시스템에서 인증 기능을 모듈화한 시스템
userlist_enable=YES //사용자 목록 기능을 활성화
userlist_deny=no //'sevas_list' 파일에 있는 사용자만 FTP 서버에 접근 허용
userlist_file=/etc/vsftpd/sevas_list // 사용자 목록 파일 위치

 

2) 예외 사용자 리스트 파일 생성

: /etc/vsftpd/chroot_list , sevas_list 생성

chroot_list : ftpuser // 본인 홈 디렉토리 외 다른 디렉토리 접근가능 예외 사용자 목록
sevas_list : ftpuser , korea //ftp 접근가능 사용자 목록

 

3) ftp 방화벽 설정

 

4) ftp 접속확인

- ftp은 ftpuser와 korea계정만 가능 (그외 sevas,main은 접속불가)

ftpuser 계정접속
ftpuser 접속 시 최상위 / 까지 접근 가능
korea계정 ftp 접속
korea 접속 시 ~ftpuser/pub이 최상위로 존재

 

6. sshd 설정

- sshd 보안설정 : ssh 접속불가하도록설정

- su(다른 사용자로 로그인)사용은 sevas계정만 가능

 

1) sshd_config 파일수정

- /etc/ssh/sshd_config : SSH 서버의 동작을 제어하며, 원격 접속을 허용하고 보안을 설정하는 파일

PermitRootLogin no //root 사용자로 SSH 로그인 차단 , 기본설정은 yes

 

2) /usr/bin/su 파일수정

- su 명령의 그룹과 권한을 바꿔 root와 그룹에 속한 사용자 외 명령을 사용할수없도록 설정

chown root.wheel /usr/bin/su //소유자를 root로, 그룹을 wheel로 변경
usermod -G wheel sevas //sevas 사용자를 wheel 그룹에 추가 *wheel 그룹에 속한 사용자는 su 명령사용가능
chmod 4750 /user/bin/su
//1. '4' : setuid 비트 설정 사용자 su실행 시 root 권한으로 실행
//2. '7' : 소유자(root)는 읽기, 쓰기, 실행 권한
//3. '5' : 그룹(wheel)은 읽기, 실행 권한
//4. '0' : 그외 사용자 권한없음

파일 권한 / 그룹 변경

3) 설정확인

- su(다른 사용자로 로그인)사용은 sevas계정만 가능

- ssh 접속 불가확인

sevas su 사용O(그외 사용자x) / ssh root로 접속시 X

'실습문제 > linux' 카테고리의 다른 글

[Linux] SQL 실습  (0) 2025.03.27
[Linux] DNS 설정실습  (0) 2025.03.02
[Linux]NAT 및 NMAP 스캔 연습  (0) 2025.02.07
[Linux] 리눅스 계정 실습  (0) 2025.01.31
[Linux] 실습문제[24.12.23]  (0) 2025.01.24