📘 Day 14 (2025.07.08.TUE) - rsync, cron
🔧 header.php에 Backup 메뉴 추가
header.php에 Backup 메뉴 항목을 직접 추가
📂 백업 경로 이동
backup.geumsol.kr (192.168.0.95) 서버 사용
🕒 Crontab 설정
@IP100에서 crontab 확인:
cd /backup
cat /etc/crontab
📌 서버별 역할 정리
- 91번: ownCloud, 외부 백업용 rsync
- 94번: Samba를 통한 윈도우-리눅스 공유, rsync 미동기화 상태 확인
- 95번: 복구 연습, backup.geumsol.kr 도메인 설정 (포트 8095)
- 100번:
/backup 경로로 로그/데이터 저장
📋 rsync 기본 개념
Ubuntu1에서 rsync로 백업 및 로그 수집 수행
🕵️♀️ Kali - Web Scanning
dirbuster - http://st.geumsol.kr
🖥️ Ubuntu 설정
📜 백업 스크립트 (backup.sh)
/home/master/backup.sh 작성:
#!/bin/bash
set $(date)
tar -czpf /backup/master/master_`date +%Y%m%d%H%M%S`.tgz /home/master/public_html 1>/dev/null 2>/dev/null
mysqldump --extended-insert=FALSE -umaster -p123456 master > /backup/master/master_`date +%Y%m%d%H`.sql
find /backup/ -type f -mtime +10 | sort | xargs rm -f
🗃️ MySQL 데이터베이스 및 사용자 생성
show databases;
create database master;
CREATE USER 'master'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON master.* TO 'master'@'localhost';
flush privileges;
dvwa, word, gnu 계정 및 DB도 아래와 같이 생성:
mkdir dvwa; chown dvwa:dvwa dvwa;
create database dvwa;
CREATE USER 'dvwa'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost';
flush privileges;
🕓 crontab 자동 실행 설정
cron 자동 실행 설정 후 한국 시간 설정:
nano /etc/crontab
sudo timedatectl set-timezone Asia/Seoul
timedatectl set-time "2025-07-08 03:58:00"
date 070803582025
systemctl restart cron
📚 rsync 매뉴얼 및 사용 예시
빠르고 유연한 파일 복사 툴
rsync -avz --exclude-from=/etc/rsync_exclude.lst /backup 192.168.1.3::backup
백업을 보내는데 rsync_exclude.lst 얘만 제외:
rsync: [client] failed to open exclude file /etc/rsync_exclude.lst: No such file or directory (2)
rsync error: error in file IO (code 11) at exclude.c(1482) [client=3.2.7]
파일이 없으므로 생성해주기:
touch /etc/rsync_exclude.lst
rsync: [sender] failed to connect to 192.168.1.3 (192.168.1.3): Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(139) [sender=3.2.7]
🗓️ Crontab 실행 흐름 요약
- nano /etc/crontab
- date 070803582025
- systemctl restart cron
🌐 U1 연결 설정
- 네트워크 정의: ST3 - 192.168.1.3
- 서비스 정의: IP003 - 포트 22003
- NAT : Any_To_DMZ(22003) Any IP003 Outside(address) ST3 SSH 체크 두 개
- 접속:
ssh -l master geumsol.kr -p 22003
📄 /etc/rsyncd.conf 설정
[backup]
path = /backup
comment = test
uid = root
gif = root
use chroot = yes
read only = false
host allow = 192.168.1.1
max connections = 10
timeout = 30
systemctl restart rsync
systemctl enable rsync
📁 백업 디렉토리 구성
mkdir /backup
cd /backup/master
📡 포트포워딩 NAT 설정
- 서비스 정의: IP003, 포트 22023
- ST3 호스트: 192.168.1.3
- NAT : Any_To_DMZ(22023) Any IP003 Outside(address) ST3 SSH 체크 두 개
- 접속:
ssh master@192.168.1.5 -p 22003