📘 Day 16 (2025.07.10.THU) - 계정 추가(word, gnu, dvwa), Win7

🔐 보안 설정 및 계정 추가

header.php에 보안 설정 추가 및 확인용 페이지 구축

dvwa.geumsol.kr
gnu.geumsol.kr
word.geumsol.kr
🖥️ DNS 설정 (Win)

DNS 관리자에서 word, gnu, dvwa 도메인 추가

🐧 Kali - 네트워크 확인(Terminal 2분할)
- 위 - ping word, gnu, dvwa geumsol.kr
nslookup word, gnu, dvwa geumsol.kr
firefox - dvwa.geumsol.kr (apache 웹서버, 한글 깨짐 해결)
- 아래(ssh -p 2222 master@geumsol.kr) - su
cd /home
ls (계정 확인)
cd /etc/apache2/sites-available
ls (디폴트 기능 내리고 hosting.conf에 넣기)

계정별 hosting.conf 구성

<VirtualHost *:80>
  DocumentRoot /home/dvwa/public_html
  ServerName dvwa.geumsol.kr
  ServerAdmin dvwa@st.geumsol.kr
  ErrorLog /home/dvwa/public_html/logs/error.log
  CustomLog /home/dvwa/public_html/logs/access.log combined
</VirtualHost>

(word, gnu 도 동일하게 설정)
a2dissite 000-default.conf
a2ensite hosting.conf
systemctl restart apache2

에러 발생 시

dvwa, gnu, word 각 계정마다 public_html/logs 안에 log 생성

📁 로그 및 권한 설정

계정별 로그 디렉토리 생성 후 권한 부여

mkdir logs
cd logs
touch access.log error.log

chmod 711 $HOME
chmod 755 /home/계정명/public_html
⚠️ Apache 보안 설정 문제

/home/competition 경로에 사내 PC만 접근 가능하도록 설정

<Directory "/home/competition">
  Options Indexes MultiViews
  AllowOverride None
  Order Deny,Allow
  Allow from 192.168.123.112
  Deny from all
</Directory>
🏢 competition 계정 추가 및 설정(Win)
adduser competition

nano /etc/apache2/sites-available/hosting.conf
<VirtualHost *:80>
  DocumentRoot /home/competition/public_html
  ServerName competition.geumsol.kr
  ServerAdmin competition@st.geumsol.kr
  ErrorLog /home/competition/public_html/logs/error.log
  CustomLog /home/competition/public_html/logs/access.log combined
</VirtualHost>

chmod 711 $HOME
chmod 755 /home/competition/public_html
systemctl restart apache2
💿 Win7 IP 설정(PC1에서 교체)
Windows 7 IP 설정
📡 Kali(1.1 master) - DNS 확인 및 해커 탐지
nslookup st.geumsol.kr
ping st.geumsol.kr
nmap -v -A st.geumsol.kr

와이어샤크 포트 스캔 → GNS 와이어샤크 캡처 재시작

🛡️ UTM 방화벽 설정

게이트웨이 ping 응답은 허용하되, ICMP 응답은 막도록 설정합니다.

방화벽 - ICMP
게이트웨이 ping 응답 허용
반응은 차단
🔍 포트 스캔 탐지 및 분석

nmap을 사용하여 포트 스캔을 실행하고, UTM 장비(R2)에서 와이어샤크 통계를 활용해 분석합니다.

nmap -v -A st.geumsol.kr

와이어샤크의 통계 → 대화 탭에서 포트 스캔 흔적 확인 (1번부터 스캔)

와이어샤크 포트 스캔 통계
🧪 DisBuster 활용

GNS에서 와이어샤크 캡처를 멈춘 후, Kali에서 DisBuster 사용을 위한 파일 준비

Kali - DisBuster 실행
사전 파일: 2.3-small.txt 사용
📁 워드프레스 설치 (Win7, word 계정)
mkdir blog auth admin board
word@st:~$
cd public_html
ls (wordpress.zip 확인)
unzip wordpress.zip

nano /etc/apache2/sites-available/hosting.conf
<VirtualHost *:80>
  DocumentRoot /home/word/public_html
  ServerName word.geumsol.kr
  ServerAdmin word@st.geumsol.kr
  ErrorLog /home/word/public_html/logs/error.log
  CustomLog /home/word/public_html/logs/access.log combined
</VirtualHost>

systemctl restart apache2
cp wp-config-sample.php wp-config.php
워드프레스 사이트 설정 워드프레스 wp-config.php 편집
🗃️ MySQL 계정 및 권한
create database word;
CREATE USER 'word'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'localhost';
flush privileges;
관리자 (workbench용)

CREATE USER 'word'@'192.168.0.1' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'192.168.0.1';
flush privileges;

※ 모든 대역 허용 시 해커도 접속 가능하므로 주의

CREATE USER 'word'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'%';
flush privileges;
MySQL 사용자 권한 설정
📦 GNU 설치
cd public_html
ls (gnu.zip 확인)
unzip gnu.zip

nano /etc/apache2/sites-available/hosting.conf DocumentRoot /home/word/public_html/gnuboard-gnuboard5-327e7ba mkdir data
chmod 707 data
🔓 DVWA 설치
cd public_html
ls (dvwa.zip 확인)
unzip dvwa.zip

nano /etc/apache2/sites-available/hosting.conf
DocumentRoot /home/word/public_html/DVWA-master
cp config/config.inc.php.dist config/config.inc.php
nano config/config.inc.php
DVWA config.inc.php 편집
📑 웹 에러 코드 정리
1xx 정보 응답
100 Continue - 요청 진행 중, 계속 진행 가능
101 Switching Protocols - 프로토콜 변경 승인

2xx 요청 성공
200 OK - 요청 성공
201 Created - 새 리소스 생성됨 (POST 등)
204 No Content - 응답 내용 없음 (예: 삭제 성공)

3xx 리디렉션
301 Moved Permanently - 영구 이동
302 Found - 임시 이동
304 Not Modified - 캐시된 내용 사용

4xx 클라이언트 오류
400 Bad Request - 잘못된 요청 (문법 오류 등)
401 Unauthorized - 인증 필요 (로그인 안 됨)
403 Forbidden - 접근 거부 (권한 없음)
404 Not Found - 페이지 없음
405 Method Not Allowed - 허용되지 않은 요청 방식
408 Request Timeout - 응답 대기 시간 초과

5xx 서버 오류
500 Internal Server Error - 서버 내부 오류 (PHP, 설정 문제 등)
501 Not Implemented - 미지원 기능
502 Bad Gateway - 게이트웨이/프록시 오류
503 Service Unavailable - 서버 점검 중 또는 과부하
504 Gateway Timeout - 게이트웨이 응답 지연