삐뚜루빠뚜루빼뚜루
[Linux] 계정 / 마운트 / DNS / 웹페이지 실습 본문
□ 실습 전 확인
1) Server 네트워크 IP 설정
- Server1 : 192.168.10.10 (vmnet8)
- Server2 : 192.168.10.20 (vmnet8)
2) Server1 HDD 추가 (1GB , 3GB)
◆ 실습문제
1. HDD 작업
- 작업 전 HDD 인식
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 재확인)
2) /dev/sdc (3GB)
- 포맷 : ext4
- 마운트 : /export/sdb (자동마운트설정)
* 자동마운트 후 mount -a는 두번실행 (두번째 실행 시 오류시 /etc/fstab 재확인)
- 작업 후 확인
2. 계정생성 및 환경설정
- 작업 전 디렉토리 생성 * 계정 작업은 skel2에서 진행 (계정생성 시 디렉토리 자동생성 작업을 위해)
1) sevas계정변경
- 홈 디렉터리 변경 : /export/sdb/home/sevas
- 디렉터리/파일설정 : ~sevas/public_html/index.html (index.html 안 " www.sevas10.com : UserDir " 입력)
- 웹 페이지 설정 : http://www.sevas10.com/~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 파일생성)
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 크기의 파일
- 계정 생성 시 홈 디렉터리 : /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 설정 시 /tomato 로 지정하여 출력 * 계정이 아닌 디렉토리
- 디렉토리 권한변경 : korea 접근 및 아파치 웹서버 접근을 위해 변경
3. DNS 설정
- DNS 설정 전 각 서버 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
@ 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
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 확인
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>
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)된 형태로 저장됨
5) httpd 방화벽 설정
: 접속하는 80port와 8080port 설정
6) windows 네트워크 설정
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은 접속불가)
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 접속 불가확인
'실습문제 > 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 |