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