Day 9(2025.07.02.WED) - 하드 디스크, Ubuntu 설치(최종본)
[교재. 이것이 우분투 리눅스이다]
p. 357
- Ubuntu2 서버 설치(최종본) -
이름:ST_U240402002, ISO 이미지 넣어주기 - 무인 설치 건너뛰기 - 하드 디스크 25GB, VMDK
● 하드 디스크 3개 만들기(5+5+10 => 묶어서 /home으로 사용) ●
- /var - 새로 장착한 하드에 연결(sdb) : 5G
- /home - 새로 장착한 하드에 연결(sdb) : 5G
- /backup- 새로 장착한 하드에 연결(sdb) : 10G
- /etc
설정 - 저장소 - 하드 디스크 추가 - 만들기
설정 - 저장소 - 하드 디스크 추가 눌러줘서 하드 디스크 달아주기
실행 - Ubuntu Install - English - Done - Done - IP 10.0.2.15/24 - Done - Done - Done - Continue
- master, 123456 - Continue - OpenSSH 무조건 체크 - Done - Reboot - Enter - master 123456
sudo apt update
sudo apt upgrade
=> 완료 후 스냅샷 걸기!(20250702001)
● 하드 디스크 추가 명령어(기존 거는 있는데 새로 장착한 하드 디스크로 연결) ●
fdisk -l
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /home
cat /etc/fstab : 리눅스가 부팅될 때마다 자동으로 읽는 중요한 파일(안해주면 옛날 PC에 연결됨)
- sda에 만들어진 파일 시스템 공간이 부족할 경우 -
- /home
- /var
- /backup
=> 저장용량이 증가함 -> 만약에 용량이 부족하면? -> 로그인이 불가해서 해킹 당한 걸로 착각 => 파일 지우면 해결!
p. 430
● LVM(Logical Volume Manager) ●
여러 개의 디스크를 합쳐서 한 개의 파티션으로 구성한 후 다시 필요에 따라 나누는 것
● 쿼터 ●
파일 시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 개수를 제한하는 것
● xshell로 접속하기(에러 뜰시 reboot) ●
Virtualbox - NAT, 포트 포워딩(7개) 해주기
또다른 ubuntu 서버가 켜져있을 시 전원 Off - xshell 207 접속
sudo passwd root - su - fdisk -l - cd / - ls
bin home mnt sbin.usr-is-merged usr
bin.usr-is-merged lib opt snap var
boot lib64 proc srv
cdrom lib.usr-is-merged root swap.img
dev lost+found run sys
etc media sbin tmp
home(sda) -> /dev/sdb1 -> /home
fdisk /dev/sdb - m for help - n - p - w
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty MBR (DOS) partition table
s create a new empty Sun partition table
mkfs.ext4 /dev/sdb1 - cd /home - ls
mount /dev/sdb1 /home - cd /home - ls(새로 달은 하드 디스크랑 연결되어 있어 master 안뜸, a의 용량이 부족해서 b랑 연결해줌)
reboot(원래 home으로 보임) -> /etc/fstab 해줘야함
● blkid : block id ●
nano /etc/fstab 수정(오타 없이 매우 중요!!) - reboot
- root -
cd /home - ls - lost+found 뜨면 성공
- 미션 1 -
backup 디렉토리 생성해서 sdd(10GB)에 연결
연결 확인 mount | grep '^/dev'
mkdir /backup - 위와 똑같이 작업
- 미션 2 -
/etc/skel에 일반 사용자 홈페이지 운영 가능하도록 설정
필수 프로그램 설치
sudo apt -y install lrzsz
sudo apt -y install net-tools
sudo apt -y install unzip
cd /etc/skel
touch backup.sh
chmod 777 backup.sh
mkdir public_html
cd public_html
touch index.html
touch index.php
CI4 넣기
- 미션 3 -
- root -
apt -y install lamp-server^
- 일반사용자 홈페이지 운영 가능하도록 설정 -
sudo a2enmod userdir
sudo systemctl restart apache2
하드 장착 후 home 작업은 어떻게 해야 하는가?(sdb 안에 계정은 있으므로 root에서 mkdir master 해주기)
cd /home - ls(lost+found) - mkdir master - cd master - mkdir public_html - cd public_html/ - ls - mkdir logs - cd logs - touch access.log - touch error.log - cd /etc/skel - ls - cd public_html - ls - mkdir logs - cd logs - touch access.log - touch error.log - cd /home
- 호스팅 설정 -
cd /etc/apache2/sites-available
sudo nano hosting.conf
sudo nano /etc/apache2/sites-available/hosting.conf
- nano 붙여넣기 -
# create new
# settings for new domain
<VirtualHost *:80>
DocumentRoot /home/master/public_html
ServerName st.geumsol.kr
ServerAdmin master@st.geumsol.kr
ErrorLog /home/master/public_html/logs/error.log
CustomLog /home/master/public_html/logs/access.log combined
</VirtualHost>
a2ensite hosting
systemctl reload apache2
sudo apt -y install php8.3-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
sudo systemctl restart php8.3-fpm apache2
apm 설치
- 미션 4 -
메일 구축
sudo apt -y install sendmail
sudo apt -y install dovecot-pop3d
sudo apt -y install dovecot-imapd
보안 설정
리눅스용 AntiVirus
apt -y install clamav
sed -i -e "s/^NotifyClamd/#NotifyClamd/g" /etc/clamav/freshclam.conf
IDS(Intrusion Detection System)
apt -y install fail2ban
[R1한방설정(OSPF)]
config t
interface FastEthernet0/0
ip address 192.168.0.254 255.255.255.0
no shutdown
exit
interface Serial1/0
ip address 1.1.1.1 255.255.255.252
no shutdown
exit
router ospf 1
network 192.168.0.0 0.0.0.255 area 0
network 1.1.1.0 0.0.0.3 area 0
router-id 1.1.1.1
exit
ip dhcp excluded-address 192.168.0.1 192.168.0.254
ip dhcp pool hacker
network 192.168.0.0 255.255.255.0
default-router 192.168.0.254
dns-server 192.168.1.1
lease 1 0 0 !
exit
[R2한방설정(OSPF)]
config t
interface FastEthernet0/0
ip address 192.168.1.254 255.255.255.0
no shutdown
exit
interface Serial1/0
ip address 1.1.1.2 255.255.255.252
no shutdown
exit
router ospf 1
network 192.168.1.0 0.0.0.255 area 0
network 1.1.1.0 0.0.0.3 area 0
router-id 2.2.2.2
exit
ip dhcp excluded-address 192.168.1.1 192.168.1.254
ip dhcp pool st
network 192.168.1.0 255.255.255.0
default-router 192.168.1.254
dns-server 192.168.1.1
lease 1 0 0 !
exit
ping 1.1.1.2, ping 1.1.1.1
p.275(ip 수동 설정)
nano /etc/netplan/50Tab
addresses: [192.168.1.1/24]
gateway4:192.168.1.254
nameservers:
addresses: [192.168.1.2]
sudo netplan apply(실행해도 ip 안들어감)
- kali -
192.168.0.1, 192.168.0.254, 192.168.1.2
- winserver -
IP, DNS 설정 192.168.1.2
DNS 관리자 - 우클릭 - 메일 교환기 - 찾아보기 - 상위 폴더
서비스 - world - 사용 안 함 - 중지 - 확인
- kali -
nslookup st.geumsol.kr
와이어샤크를 통해 ping
서버는 해커로부터 ping, 즉 icmp가 오는지 알고 있는가?
● tcpdump : 들어오는 데이터 보여줌 ●
- tcpdump(막아주기) -
root: sysctl -w net.ipv4.icmp_echo_ignore_all=1
sysctl -a | grep icmp
- 공격 순서(Kali) -
nslookup st.geumsol.kr 192.168.1.1
- 정보 수집(Kali) -
Applications - information gathering - nmap
nmap -v -A st.geumsol.kr(열려있는 포트 확인)
- 22(ssh) : ID, passwd만 알면 바로 해킹 가능
- 80(http) : 80번만 노출됨(필요한 포트만 열어놓음)
- 110, 993, 995 : 메일 관련 포트
terminal 2분할(위-공격/아래-방어)
- 위 -
1. nmap -v -A st.geumsol.kr
4. ssh -l master 192.168.1.1
5. exit
8. ssh -l master 192.168.1.1(막기 성공)!
- 아래 -
2. ssh -l master 192.168.1.1
3. su - cd /var/log - tail -f auth.log
6. nano /etc/hosts.allow(sshd : 192.168.0.2 넣어주기, 허용해주는 IP, 저장하는 순간 바로 적용됨)
7. nano /etc/hosts.deny, 추가해주기 - ALL : ALL
● TCP Wrapper : Linux/Unix 시스템에서 네트워크 서비스를 보호하기 위해 사용하는 보안 도구(ubuntu에서 사용하나 Rocky, Kail 사용 안함) ●
nmap -v -sn 192.168.1.1/32
nmap -v -iR 1000 -Pn -p 80
nano Attack.py