📘 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 설정
    Ubuntu1
  • /etc/netplan/50-cloud-init.yaml 수정
  • /etc/hostnameBACKUP.geumsol.kr

  • 하드디스크 마운트 확인(Ubuntu2):
    df -h
    /dev/sdb1 → /backup (10G)
    /dev/sdd1 → /home (5G)
📜 백업 스크립트 (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 실행 흐름 요약
  1. nano /etc/crontab
  2. date 070803582025
  3. 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