16일차

●16일차(20250110)
#workbench(데이터베이스)에 접속하기 위해서 두가지를 풀어줘야한다

> nano /etc/mysql/mariadb.conf.d/50-server.cnf
127.0.0.1 > 0.0.0.0

> 모든 대역대가 들어오게 백업서버 데이터베이스에 넣어주기 아니면 내 PC IP만 넣어주기
CREATE USER rsyslog@'%' IDENTIFIED BY '123456';
GRANT ALL Syslog.* to rsyslog@'%';
FLUSH PRIVILEGES;

#미션1
st.kr의 메인페이지를 수정하라
(주)산특시큐리티
cd /var/www/html
hosting.conf
default

/var/www/html > root
> ftp로 연결되지 않음
> sda에 /var/www/html이 저장되어있음
> root거라 수정하기가 힘들다 굳이 안쓸거임
> 홈에 계정을 만들어
> sda에 모든 계정이 저장되는데 너무 많은 용량임
> 하드디스크를 붙히자
> 하드디스크에 홈 디렉토리를 옮길것이다

#미션2
log계정을 만들고 log로 메일을 보내자 (알람기능)

sda에는
backup,boot,dev,home,lib64,media,opt,root,sbin,srv,sys,usr,bin,cdrom,
etc,lib,lost+found,mnt,proc,run,snap,swap.img,var,tmp
> 이정도 들어가있음

home과 var, backup은 용량을 많이 차지함
> 하드디스크를 연결해 안에 넣어줄 것이다

fdisk -l
> 하드디스크 상태 확인 명령어
> 지금은 하나밖에 없는 것을 확인할 수 있다

#하드디스크 추가
우분투에 가상머신디스크로 설정후 추가
sbb (3GB)
sbc (1GB)
sbd (2GB)
sbe (2GB)

su
fdisk -l
> 아까 안보였던 하드디스크가 추가되어있다

fdisk /dev/sdb
command : m (메뉴얼)
command : n
select : p
enter
enter
enter
command : p
command : w
> 하나의 디스크에 하나에 파티션을 만듦
> sdc,sdd,sde 또한 해주자
> 물리볼륨
> 묶어서 볼륨 그룹
> 그룹을 볼륨으로 만들것이다 > 논리볼륨

#LVM 구현(p430)
apt -y install lvm2

fdisk /dev/sdb
command : t
> 8e로 변경

fdisk -l
> LVM으로 변경된 것을 볼 수 있음

pvcreate /dev/sdb1
pvcreate /dev/sdc1
>물리볼륨 생성

vgcreate myVG /dev/sdb1 /dev/sdc1
vgdisplay
> 볼륨그룹이 4GB로 생성되어있음

lvcreate -extents 100%FREE --name myLG myVG
> 논리그룹
> myVG가 myLG안에 들어가있다

ls -l /dev/myVG
> cd /dev/myVG/myLG --> ../dm-1

mkfs.ext4 /dev/myVG/myLG
> 포맷
> superblocks done이 뜬다 > 성공
> 여기까지 살집 만든거임
> 이동하면 됨 (홈디렉토리 전체를 옮길것임)

기존 타입을 삭제후 변경도 가능함 (command : d > n)
우리는 볼륨그룹에서 논리그룹으로 안나눌거임
> 용량이 많아서

일단 home을 백업을 해야함(p249)
tar cvzf home.tar.gz ./
c가 묶는거
z는 압축
cp home.tar.gz /backup
> 압축해서 backup에 옮겨놓음(임시저장소)
> mount를 하면 데이터가 날라감

하드디스크에 잠깐 넣어보자
mount /dev/myVG/myLG /home
> cd /home에 다시 들어가보니 안에 없어져있다

nano /etc/fstab
/dev/myVG/myLG /home ext4 defaults 0 0
> mylg에 홈이 들어가야함
> 리눅스가 부팅될 때마다 자동으로 읽는 중요한 파일
> 여기서 오타나면 처음부터 다시 해야함

reboot

cd /home
cp /backup/home.tar.gz ./
tar zxvf home.tar.gz
> 압축풀어서 가져왔다

systemctl restart apache2
> kali에서 st.kr 올라왔는지 확인

#RAID
: 디스크 여러 개를 하나처럼 사용할 수 있다

소프트웨어 레이드중 레이드 1번 mirroring을 쓸것임
하드디스크 하나에 데이터를 백업하면 다른 하나에 미러링 된다
용량이 두개지만 사실상 하나를 쓰는거임
> 하나가 고장나도 데이터가 손상되지 않는다

포트확인
nslookup
/backup > raid1

sdd,sde fd 변환
command : t
> fd로 변환

fdisk -l
>linux raid autodetect

cd /
/backup
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1
mdadm --detail --scan
> 잘됐는지 확인

mkfs.ext4 /dev/md1
> md0 파티션 포맷

nano /etc/fstab
/dev/md1 /backup ext4 defaults 0 0

systemctl daemon-reload
reboot
> 다 해줬는데도 안돼서 수동으로 확인하겠다

#수정
blkid | grep
/dev/mid1: UUID=?
> 본인 컴퓨터의 UUID가 나올 것이다

nano /etc/fstab
/dev/disk/by-uuid/??? /backup ext4 defaults 0 0
> ???에 본인 컴퓨터 UUID를 집어넣자
> md***은 때때로 변함 따라서 UUID로 연결가능

#로그인을 하면 log계정으로 메일이 오도록 할것이다
> 로그인을 하면 /var/log/auth.log에 로그가 온다

1. 데이터베이스 확인
워크벤치에 들어가서
schemas > tables > systemevents > query
select * from Syslog.SystemEvents where FromHost='mail' and Message like like '%user root%';
select * from Syslog.SystemEvents where FromHost='mail' and Message like like '%user master%' order by ID desc limit 10;
> 번개모양 클릭
> 데이터베이스 보임

2. 썬더버드에 메일 추가
이름: 로그관리자
log@mail2.st.kr

3. 로그인 파일 로그인
.bash_logout : 로그인 쉘이 종료될 때마다 읽고 실행한다
bashrc : 사용자별 쉘 환경을 정의
.profile : 로그인 쉘이 시작될때 실행되는 초기화 파일
> 프로그램 실행 가능

bash.profile : 시스템에 로그인할 때마다 읽고 실행함

cd /home/log
cat .bash_logout
cat .profile

su log
echo "test" | mail -s "title" log@mail2.st.kr
> log@mail2.st.kr에 test라는 제목으로 메일이 온다

nano alert.sh
-----------------------------------------------
IP="127.0.0.1
echo ''$IP '' on '' | mail -s '' log@mail2.st.kr
chmod 777 alert.sh
./alert.sh
-----------------------------------------------
> 127.0.0.1 이 옴

-----------------------------------------------
IP="$(echo $SSH_CONNECTION)"
echo ''$IP '' on '' | mail -s '' log@mail2.st.kr
------------------------------------------------
> ip가 옴

[alert.sh]
----------------------------------------------------------------------------------
IP="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
HOSTNAME=$(hostname)
NOW=$(date +"%e %b %Y, %a %r")
echo 'Someone from '$IP' logged into '$HOSTNAME' on '$NOW'.' | mail -s 'SSH Login Notification' log@mail2.st.kr
----------------------------------------------------------------------------------

.profile (log에 있음)
> .bashrc를 불러옴
> .profile이 먼저다
> "$HOME/alert.sh"
> 근데 계정 로그가 로그인 할때만 알려줌
-> etc/profile를 수정해야 모든 사용자가 로그인할 때 이메일 알람이 간다

[etc/profile]
. /tmp/alert.sh 추가

nano /etc/hosts.allow
192.168.0.201 해주고
nano /etc/hosts.deny
ALL:ALL 주석처리

kali에서
ssh master@125.246.95.152 접속
> 메일이 온다
> 이래도 오지 않는다면 tmp가 없는것
> 서버에서 home/log에서 cp alert.sh /tmp