#20250110

/var/www/html은 루트 소유이기 때문에 root 권한으로 작업해야한다.
그러므로 ftp도 접속이 안되고, 작업하기 힘들다.
기본적으로 sda에 디렉터리들이 저장이 되어있다. 하지만 일반 계정을 생성하여 각각의 페이지를 만들면 용량이 점점 늘어나 부족해지기 때문에, 하드디스크를 달아서 많은 용량을 차지하는 /var, /home, /backup 디렉터리를 분리 해준다.

log 계정 생성 (adduser log)

디스크 확인하기.
> fdisk -l

아직 디스크가 하나밖에 존재하지 않는다.

메인 서버 전원 종료 후 virtualbox > Ubuntu24101 설정 > 저장소에 가서 하드 디스크를 달아준다.
HDD1 > 3GB
HDD2 > 1GB
HDD3 > 2GB
HDD4 > 2GB


다시 서버 접속 후 fdisk -l로 확인하면 하드디스크가 늘어난 것을 확인가능하다.


파티션 설정
> fdisk /dev/sdb
n
p
enter
enter
enter


w 입력하여 저장 빠져나온다.

똑같이 sdc ~ sde까지 반복한다.
다음 fdisk -l로 확인해보면 파티션이 생성된 것을 확인할 수 있다.


LVM 기능 설정
파티션의 파일 시스템 유형을 8e로 지정해야 LVM을 사용할 수 있다.
> fdisk /dev/sdb , sdc
d
n
p
enter
enter
enter
t
8e
p
w

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

볼륨 그룹 생성 (이름 : myVG)
> vgcreate myVG /dev/sdb1 /dev/sdc1
> vgdisplay
4GB로 합쳐진 것 확인


> lvcreate --extents 100%FREE --name myLG myVG
> cd /dev
> ls -al | grep myVG
> cd myVG
> ls -al


> mkfs.ext4 /dev/myVG/myLG

---

파일 압축
> cd /home
> tar cvzf home.tar.gz ./

> cp home.tar.gz /backup/

> mount /dev/myVG/myLG /home
마운트를 하고 /home에 들어가보면 존재했던 파일들이 없어지고 lost+found만 남는다.

> nano /etc/fstab
/dev/myVG/myLG   /home   ext4   defaults   0   0

> reboot

---

RAID 1 구축

> fdisk /dev/sdd , sde
d
n
p
enter
enter
enter
t
fd
p
w

raid 구성
> mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd1 /dev/sde1
> mdadm --detail --scan

> cd /dev
ls -al | grep md

> mkfs.ext4 /dev/md127

> blkid | grep md
/dev/md127: UUID="???"

> nano /etc/fstab
/dev/disk/by-uuid/???   /backup   ext4   defaults   0   0
> mount /dev/mk1 /backup

> systemctl daemon-reload
> reboot



누군가가 로그인을 하면 메일 알림이 가는 시스템 만들기.

계정 생성 시 기본적으로 만들어지는 파일
> cd /home/log
> ls -al


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

> echo "Test" | mail -s "title" log@mail2.st.kr

정상적으로 수신 되는 지 확인한다.


먼저 프로그램을 실행했을 때 정상적으로 메일이 수신되는지 테스트한다.
log > cd /home/log
> nano alert.sh
IP='127.0.0.1'
echo '' $IP '' on '' | mail -s '' log@mail.st.kr
> chmod 777 alert.sh
> ./alert.sh


그 다음 IP가 정상적으로 찍히는지 확인한다.
> nano alert.sh
IP="$(echo $SSH_CONNECTION)"
echo '' $IP '' on '' | mail -s '' log@mail.st.kr


HOSTNAME 추가
> nano alert.sh
IP="$(echo $SSH_CONNECTION)"
HOSTNAME=$(hostname)
echo 'Someone from' $IP 'logged into' $HOSTNAME on '' | mail -s 'notice' log@mail.st.kr


> nano 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'


> nano .profile을 해보니, 로그인 될 때 .profile 파일에서 .bashrc 파일을 실행시키는 것을 확인할 수 있었다.
그러므로 그 밑에 alert.sh 파일도 실행되게끔 수정한다.


반응을 하는 것을 볼 수 있다.
하지만, 이렇게 하면 log 계정으로 로그인 할때만 반응을 하기 때문에 다른 계정으로 로그인 할때는 메일이 오지 않는다.
그러므로 /etc/profile에 넣어주어야 한다.

root > nano /etc/profile


> cd /home/log
> cp alert.sh /tmp

후 아무 계정으로 로그인을 해보면 메일로 반응이 오는 것을 볼 수 있고, 해커(kali)에서 ssh 접속을 해본다.