13일차 : SELK / BACKUP

스노트 룰 : Action,Header,Option

-----
미션
도메인 세팅과 데이터베이스 세팅
word.st.kr  계정 : word
dvwa.st.kr  계정 : dvwa
web.st.kr   계정: web1
web.st.kr   계정: web2

계정 추가하기
adduser word
adduser dvwa
adduser web1
adduser web2

압축파일 각각 넣어주고 풀기

chmod 711 $HOME
cd
cd ~/public_html
chmod 755 ~/public_html/

백업 및 파일 이중화 작업
로그 데이터 저장

mysql 

CREATE DATABASE word;
CREATE USER 'word'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'localhost';
FLUSH PRIVILEGES;

#외부접속허용(엄청 위험한 행위)
CREATE USER 'word'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'%';
FLUSH PRIVILEGES;

#외부접속허용(본인의  IP만 추가)
CREATE USER 'word'@'192.168.0.208' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'192.168.0.208';
FLUSH PRIVILEGES;

CREATE DATABASE dvwa;
CREATE USER 'dvwa'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost';
FLUSH PRIVILEGES;

CREATE DATABASE web1;
CREATE USER 'web1'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON web1.* TO 'web1'@'localhost';
FLUSH PRIVILEGES;

CREATE DATABASE web2;
CREATE USER 'web2'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON web1.* TO 'web2'@'localhost';
FLUSH PRIVILEGES;

word 설정
cd /wordpress
cp wp-config-sample.php wp-config.php
nano wp-config.php

dvwa 설정
cd /config
cp config.inc.php.dist config.inc.php 
nano config.inc.php > 비밀번호 변경



SELK 
포트 포워딩 설정 (NAT 설정 후)
22 
5601
9200
514

rsyslog 시스템 구축
hostname > log
3대 서버로부터 전송된 로그를 분석 및 저장함
nano /etc/rsyslog.conf
서버는 포트(514)를 열고 3대 서버로부터 데이터가 전송되는 것을 기다림
module(load"imtcp")
input(type="imtcp" port="514")
$AllowedSender TCP,10.0.2.0/24 st.kr

apt -y install net-tools
systemctl restart rsyslog
netstat -ant | grep 514

apt -y install mariadb-server
apt -y install rsyslog-mysql
123456

mysql
use Syslog;
desc SystemEvents;
select * from SystemEvents;

#Rsync 설정
# create new
# any name you like
[backup]
# target directory to copy
path = /backup
# hosts you allow to access
hosts allow = 10.0.2.15
hosts deny = *
list = true
uid = root
gid = root
read only = false

systemctl start rsync

3대 서버
rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /backup log.st.kr::backup

#데이터가 전송되기 때문에 
/backup 디렉토리는 저장 공간이 많이 필요함
LVM : 각각의 용량을 합쳐서 하나로 사용하는 것(log 등의 내용을 여기에 넣을 예정)
3G 1G

RAID : 각각의 저장공간을 나누어서 사용하는 것(데이터베이스, 웹사이트 등 중요한 자료를 백업할 때 사용)
2G 2G

#데이터베이스 복제 기능 활성화 시키기

#TCP/IP를 이용해 저장 공간을 원격지의 클라이언트에게 제공하는 iSCCI서버 활성화
apt -y install targetcli-fb
apt -y install tgt

apt -y install open-iscsi

public_html에 있는 php 파일
데이터베이스 .sql 파일

프로그램이 필요함
cron은 주기적으로 반복되는 일을 하도록 하는 서비스

#3대 서버
데이터 백업하기
cd /
mkdir /backup
chmod 777 /backup

nano backup.sh
#!/bin/sh
set $(date)
fname="backup-dvwa-$1$2$3.tar.gz"
tar cvzf /backup/$fname /home/dvwa/public_html

chmod 755 backup.sh
./backup.sh

nano /etc/crontab
10 16 * * * root /home/dvwa/backup.sh
(분)(시)

sysetemctl restart cron



3대서버
rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /backup log.st.kr::backup
언제 해야하는가? >

#시간 동기화
date 010717222025
sysetemctl restart cron


dvwa 활성화 방법
su
123456
find / -name php.ini
	

2025 산대특