본문 바로가기

리눅스

리눅스 웹 문제 (리눅스 점검 문제)

- 문제 -

 

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