- 문제 -
1. IP 설정
공통 : VMnet 8
Rocky 1 (server)
Rocky 2 (Client)
2. 하드 디스크 추가
# server만 추가
- SCSI 1G
- SCSI 3G
3. 파티션
- 하드 디스크 인식
- 파티션
SCSI 1G 파티션
물리 파티션
확인
논리 파티션
(extended로 나눈 파티션 크기만큼 논리 파티션 나누기 가능)
물리 파티션 2
파티션 최종 확인
- w로 저장하고 나가기
4. 포멧 & 자동 마운트
포멧 확인
포멧한 하드디스크 UUID를 복사 후 자동 마운트 진행
- 자동 마운트
마운트 포인트
자동 마운트
확인
5. sevas 계정 설정
mkdir -p /export/sdb/home
usermod -md /export/sdb/home/sevas sevas
tail -3 /etc/passwd
passwd sevas
cd /export/sdb/home/
mkdir public_html
cd public_html/
cat > index.html
www.sevas10.com : UserDir
^C
6. 스켈 복사
mkdir -p /skel2
cp -a /etc/skel/ /skel2/main
cd /skel2/
cp -a main/ ftpuser
7. main 설정
cd main/
mkdir admin
cat > index.html
ad.sevas10.com:8080 =vitualhost
mkdir html
ls -l
cd html/
cat > index.html
Document
8. ftpuser 설정
cd ..
cd ftpuser/
mkdir pub
cd pub
touch 1 2
gzip 1
bzip2 2
ldd if=/dev/zero of=3.dd bs=1024 count=100000
## dd 명령 : 0으로 채워진 파일 생성
/ if=/dev/zero : 파일(if)를 /dev/zero(읽을 때마다 0바이트를 반환하는 특수 파일)로 지정
/ of=3.dd : 3.dd에 데이터 기록 / bs=1024 : dd가 한 번에 읽는 블록 크기 (bs) 1024 비트로 설정
/ count=100000 : 1,00,000개 블록 사용 각 블록은 1024 비트이다 즉 3.dd 는 102,4 MB 크기 파일 생성
9. 계정 생성
- main 계정
useradd -d /export/sdb/home/main -mk /skel2/main main
passwd main
- ftpuser 계정
useradd -d /export/sdb/home/ftpuser -mk /skel2/ftpuser ftpuser
passwd ftpuser
확인
10 . 권한 설정
cd /export/sdb/home
chmod 755 main ## 외부에서 웹사이트 접속 사용하기 때문에 권한 755
chmod 755 sevas ## 외부에서 웹사이트 접속 사용하기 때문에 권한 755
chmod 750 ftpuser ## 외부 사용 x 때문에 other 권한 x
11. alias 디렉터리 생성
mkdir -p alias/a/b/c
cat > alias/a/b/c/index.html
www.sevas10.com :Aliashost
12. 패키지 설치 & 방화벽 설정
dnf install vsftpd* -y ## ftp 패키지
dnf install bind bind-chroot ## named 패키지(dns)
dnf install httpd* -y ## http 패키지
- 데몬 실행
service vsftpd restart
service named restart
service httpd restart
- 확인
(아무것도 안나오면 비정상)
netstat -lntup | grep httpd
netstat -lntup | grep named
netstat -lntup | grep vsftpd
rpm -ql httpd
rpm -ql vsftpd
rpm -ql named ## 데몬 및 설정 파일 확인
13. DNS 설정파일
vi /etc/named.conf
listen-on port 53 { any; }; ## 외부 서버 연결 전부 허용
allow-query { any; }; ## 외부 nslookup 전부 허용
recursion yes; ## forward를 통한 인터넷 사용 및 연결된 dns 검색 가능 여부
dnssec-enable no; ## dnssec 암호화 여부 (허용 x)
dnssec-validation no; ## dnssec 암호화 키 여부 (허용 x)
14. DNS zone 파일
vi /etc/named.rfc1912.zones
zone "sevas10.com" IN {
type master; ## zone 파일 type master (서버)
file "sevas10.zone"; ## zone 파일 위치
allow-update { none; };
};
15. sevas10.zone 설정
cd /var/named/
cp -a named.empty sevas10.zone ## dns 서버 설정 (dns 레코드 설정이 안되있는 파일)
ls -l
chmod 660 sevas10.zone
vi sevas10.zone
- 데몬 재실행해서 이상 없음 확인
확인
16 .ftp 설정
vi /etc/vsftpd/vsftpd.conf
- 설정 내용 중
chroot_local_user=YES ## 사용자 ftp 접속 시 홈 디렉터리로 이동 그 이상의 디렉터리 외 이동 제한
chroot_list_enable=YES ## chroot_list 사용 허가 (list에 있는 사용자만 홈디렉터리 외 이동 가능)
chroot_list_file=/etc/vsftpd/chroot_list ## chroot_list 위치
allow_writeable_chroot=yes ## 쓰기 권한 허가
pam_service_name ## vsftp/sevas_list 사용자만 pam을 통해 사용자 인증 처리 ftp 접속 허가
userlist_enable=YES ## ftp 서버 로그인 사용자 허가
userlist_deny=no ## sevas_list에 있는 사람만 ftp 접속 허용 나머지 접속 허용 x
userlist_file=/etc/vsftpd/sevas_list ## sevas_list(임의 사용자 목록) 생성 list 위치
사용자 목록 생성
cd /etc/vsftpd
cat > chroot_list
ftpuser
cat > sevas_list
ftpuser
korea
데몬 재실행해서 이상 없음 확인
17. korea 계정 생성
useradd korea
passwd korea
usermod -G ftpuser korea ## ftpuser 그룹에 korea 가입
tail -5 /etc/group
cd /export/sdb/home
usermod -md ~ftpuser/pub korea
tail -3 /etc/passwd
18. 방화벽 설정
firewall-cmd --permanent --add-port 80/tcp ## http 접속 허용
firewall-cmd --permanent --add-port 53/udp ## dns 접속 허용
firewall-cmd --permanent --add-port 8080/udp ## 사용자 포트
firewall-cmd --reload
firewall-cmd --list-all ## 방화벽 허용 리스트
19. 네트워크 설정
20. ftp 접속 확인
<korea, ftpuser만 접속 가능 나머지 계정 불가능>
korea 홈 디렉터리 /export/sdb/home/ftpuser/pub이다 그 하위 파일인 1,2,3 압축 파일을 확인할 수 있으며
그 외 디렉터리 이동을 제한한다
korea 계정과 달리 홈디렉터리 외 다른 디렉터리 이동이 자유롭다
21 http 설정
cd /etc/httpd/conf
vi httpd.conf
Listen 192.168.10.10:8080 ## 192.168.10.10 ip 8080 포트에서 html 받겠다
<Directory />
AllowOverride none
# Require all denied ## 디렉터리 접근 허용한다 / 실제 주석 금지
</Directory>
DocumentRoot "/export/sdb/home/main/html" ## 웹 페이지에 표시할 파일 경로
<Directory "/export/sdb/home">
AllowOverride None
Require all granted
</Directory>
<Directory "/export/sdb/home/main/admin">
AllowOverride AuthConfig ## .htaccess 에서 인증 (웹 페이지 보안)
Require all granted
</Directory>
alias /tomato "/export/sdb/home/alias/a/b/c" ## 도메인옆에 /tomato를 치면 해당 경로에 html 웹페이지 요청
<IfModule dir_module>
DirectoryIndex index.html index.sevas
</IfModule>
## 위 설정은 웹사이트에서 요청 시 자동으로 파일을 찾아준다 예를 들어 sevas10.com 입력시 그 안에 html 파일을 찾아 웹페이지에 표시
index.html이 없다면 index.sevas 파일을 찾아준다 즉 우선순위에 기존에 index.html과 함께 index.sevas 추가
## /etc/httpd/conf.d/userdir.conf은 apache 웹 서버 설정 파일 사용자가 특정 폴더 안에 웹 파일(html)을 만들었다면
http://도메인/~특정사용자 와 같은 식으로 웹 서버에 요청 웹페이지에 만들어둔 웹 파일이 표시된다
http://sevas10.com/~sevas
cd /etc/httpd/conf.d
vi userdir.conf
UserDir enabled sevas ## sevas 사용자가 홈디렉터리 내 웹 파일 생성 허가 (웹 페이지를 만들어 표시 가능)
UserDir public_html ## sevas사용자가 웹파일을 올릴 디렉터리 이름 (웹 페이지를 만들어 표시 가능)
22. vir 파일 생성
<VirtualHost 192.168.10.10:8080> ## 가상 호스트 설정 / 하나의 서버에 여러 웹사이트 허용
ServerAdmin root@sevas10.com ## 웹서버 관리자 이메일
DocumentRoot /export/sdb/home/main/admin ## 웹 페이지 위치
ServerName ad.sevas10.com ## 도메인 이름
ErrorLog logs/ad-error_log ## 에러 로그 기록
TransferLog logs/ad-access_log ## 접속 로그 기록
23. 웹페이지 보안 인증 설정
## 웹 페이지 보안 인증 설정
authname "sevas-auth" ## 인증창 제목
authtype basic ## 기본 인증 방식
authuserfile /etc/httpd/conf/my/sevas ## 사용자 이름과 비밀번호 저장
require valid-user ## 유효한 사용자만 접근
mkdir -p /etc/httpd/conf/my
tpasswd -5 -c /etc/httpd/conf/my/sevas sevas
## 웹서버 사용자 id pw 설정 -5는 비밀번호 암호화 저장 (MD5해시 방식) -c는 새 파일 생성 옵션
24. SSH 설정
vi /etc/ssh/sshd_config
PermitRootLogin no ## 루트 계정 로그인 차단
25 /usr/bin/su 설정
chown .wheel /usr/bin/su ## .wheel은 /usr/bin/su 파일 그룹 wheel로 설정
chmod 750 /usr/bin/su ## su 권한 설정
usermod -G wheel sevas ## wheel 그룹에 sevas 사용자 가입
chown 4750 /usr/bin/su ## setuid 권한 부여 su 명령 실행 시 파일 소유자 권한으로 실행한다
26 웹 페이지 확인
'리눅스' 카테고리의 다른 글
리눅스_Selinux (0) | 2025.04.08 |
---|---|
리눅스_PAM (0) | 2025.04.08 |
Promisc 모드 & 포트 미러링 (0) | 2025.02.03 |
Rocky & Kali 설치 초기 설정 (0) | 2025.01.28 |
리눅스 마운트 & 권한 계정 문제 (0) | 2025.01.27 |