Day 5(2025.06.27.FRI) - NAT, 포트 포워딩
● NAT(Network Address Translation) ●
- Kali~Winserver 접속
- Port(0~65535) 이해
● UTP~Winserver 연결 시켜주기 ●
- 왼쪽에서(http, ftp) 서비스 요청하는냐에 따라 UTP에서 그에 맞는 포트 열어줘야함
- 잘 알려진 포트 번호(열어주기) -
- 21 : FTP
- 22 : SSH
- 23 : TELNET
- 25 : SMTP
- 53 : DNS
- 80 : HTTP
- 110 : POP3
- 143 : IMAP
- 3306 : MySQL
- 포트 포워딩(NAT) : 방화벽이 보고 있다가 네트워크에서 특정 포트를 통해 들어오는 요청을 다른 IP 주소로 전달하는 작업(공유기에 기능 있음), 내부 네트워크 안에서는 사설 IP 사용 가능
- 마스커레이딩(aka.가출) : 안쪽(사설)에서 바깥쪽(공인)으로 나갈 때 사용(라우팅이 되어있지 않기 때문)
- NAT : 바깥쪽(공인)에서 안쪽(사설)으로 들어올 때 사용(포트로 들어옴, http, ftp 등)
- VirtualBox : NAT 기능 탑재
● 포트 포워딩 ●
UTP 접속 - 네트워크 보호 - NAT - 새 NAT 규칙 - 이름:Any_To_WinServer, 사용 서비스:HTTP, 트래픽 목적지:Outside(Address)
목적지를 다음으로 변경:WinServer, 서비스 변경:HTTP 자동 방화벽 규칙, 시작 패킷 기록 체크(FTP(최하위), DNS(nslookup) 생성)
- WinServer 서비스 추가해주기 -
정의 및 사용자 - 네트워크 정의 - 새 네트워크 정의 - 이름:WinServer, 유형:호스트, IPv4:192.168.1.1, 설명:WinServer
R1, R2, kali, Winserver 전원 On - 라우터 OSPF 설정하기
- Kali -
가까운 곳부터 ping - ping 100.100.100.1, nslookup geumsol.kr(192.168.1.1 라고 떠서 Winserver에서 수정해줘야함) - 125.246.95.15 접속
● 점검표 ●
1. Kali IP는 정상인가?
- ip addr 100.100.100.1
- ping 100.100.100.254
- ping 4.4.4.1, 4.4.4.2, 125.246.95.254(Router)
- ping 125.246.95.152(Firewall)
2. 도메인 조회
- nslookup geumsol.kr
- 문제 발생 시! -
방화벽(NAT 정책) - 외부에서 접근할 때 NAT(http, dns, ftp), 내부에서 나갈 때 마스커레이딩
, SERVER(DNS 설정)
3. 설치 완료(Ubuntu)
역할 및 기능 추가 - Web Server(IIS) - 다음 - 다음 - FTP Server - 필요시 체크 - 설치
IIS 관리자 - FTP 사이트 추가 - 이름:st, c/inetpub/ftproot, ip 192.168.1.1 - SSL 사용 안함 - 익명, 기본 - 마침
Winserver-DNS
Webserver-Linux(mail, ftp, dns)
- Ubuntu 서버 설치 -
이름:ST_U240402001, ISO 이미지 넣어주기 - 무인 설치 건너뛰기 - 하드 디스크 25GB, VMDK
- Rocky 서버 설치 -
이름:ST_R10001, ISO 이미지 넣어주기 - 무인 설치 건너뛰기 - 하드 디스크 25GB, VMDK
- 설정 -
네트워크 - NAT
- Ubuntu 서버 설치 -
실행 - Ubuntu Install - English - Done - Done - IP 10.0.2.15/24 - Done - Done - Done - Continue
- master, 123456 - Continue - OpenSSH 무조건 체크 - Done - Reboot - Enter - master 123456
▲ FILE SYSTEM SUMMARY
- Rocky 서버 설치 -
실행 - Rocky Install - Korea - root 계정 비활성화 - 설치 목적지 완료 - 사용자 계정 master, 123456 - 시스템 재시작 - ip addr, 10.0.2.15/24
- xshell 접속 -
ubuntu 머신 - 네트워크 - 포트 포워딩 - ssh 22 22
xshell 192.168.0.207 접속 -
3-1. 업데이트 업그레이드
sudo apt update
sudo apt upgrade
3-2. 필수 프로그램 설치
sudo apt -y install lrzsz
sudo apt -y install net-tools
sudo apt -y install unzip
3-2-1. 명령어
ip addr
netstat
netstat -ant
sz 파일명
3-3. 서버 프로그램 설치(-y:물어보지 말고 설치하라)
sudo apt -y install lamp-server^
설치 후 본인 PC IP 접속 - 접속 안되면 virtualbox 머신 - 네트워크 - 포트 포워딩 http(80) 추가해주기
sudo apt -y install roundcube - 오픈 소스형 웹메일(PHP), 웹에서 바로 메일 확인 가능(선택)
sudo apt -y install vsftpd - 윈도우 설치할 때 ftp 옵션 넣은 것처럼 해주는 것
- Linux Port 열어주기 -
netstat -ant | grep 21
netstat -ant | grep 80
본인 PC -> ftp 접속 : ftp 192.168.0.207 접속 안됨
virtualbox 머신 - 네트워크 - 포트 포워딩 ftp(21) 추가해주기
sudo apt -y install sendmail(송신)
sudo apt -y install dovecot-pop3d(수신)
sudo apt -y install dovecot-imapd(수신)
[교재. 이것이 우분투 리눅스다]
655p.
● APM(Apache, PHP, MySQL), LAPM(Linux, Apache, PHP, MySQL)
690p.
- 일반사용자 계정 허용하기 -
http://192.168.0.207
http://geumsol.kr/~master => http://geumsol.kr - 일반 사용자 계정에서도 작동되게 하기
http://192.168.0.207
http://geumsol.kr
기본 경로 : /var/www/html (주인:root)
sudo a2enmod userdir
sudo systemctl restart apache2
Not found -> Forbidden
ls
mkdir public_html
chmod 711 $HOME
chmod 755 /home/master/public_html
cd public_html
touch index.html
Forbidden -> 빈 페이지
- 호스팅 설정 -
cd /etc/apache2/sites-available
sudo nano hosting.conf
sudo nano /etc/apache2/sites-available/hosting.conf
# create new
# settings for new domain
- nano 붙여넣기 -
<VirtualHost *:80>
DocumentRoot /home/master/public_html
ServerName geumsol.kr
ServerAdmin master@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
- 프레임워크(PHP가 작동되어야 돌아감) 설치 -
https://codeigniter.com/download - CI4 받기
zip 파일 xshell 끌어오기 - unzip c+TAB - 엔터
mv c+TAB d+TAB CI4(CI4로 이름 바꿔주기)
nano index.php(종료:Ctrl+x, Enter) - 추가설정
<?php echo phpinfo(); ?>
- 추가설정(php 정상 작동해주기) -
sudo apt -y install php8.3-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm
sudo systemctl restart php8.3-fpm apache2
빈 페이지 -> PHP Version 8.3.6 웹페이지 출력
ownCloud - 192.168.0.91(백업 연습하기)
● Kali-Linux 연결하기 ●
▲ Ubuntu 추가
1. Ubuntu IP 넣어주기(p.274)
- Ubuntu -
127.0.0.xx 정상 - sudo nano /etc/netplan/50Tab(-cloud-init.yaml) - dhcp4 수정x(UTM에서 Ubuntu IP 수정 1.2)
- UTM -
새 DHCP 추가 - DMZ, 192.168.1.2~192.168.1.253, 1:192.168.1.1, GW:192.168.1.254
정의 및 사용자 - 네트워크 정의 - 새 네트워크
ST1, 호스트, 192.168.1.1, DNS
ST2, 호스트, 192.168.1.2, HTTP, EMAIL, FTP
- ST1 -> ST2 -
네트워크 보호 - NAT - 수정
정의 및 사용자 - 네트워크 정의 - MAC 주소 정의
3. 서버 프로그램 설치
sudo apt -y install xinetd telnetd
sudo apt -y install openssh-server
sudo apt -y install xrdp
sudo apt -y install bind9 bind9utils
[v]sudo apt -y install sendmail
[v]sudo apt -y install dovecot-pop3d
[v]sudo apt -y install dovecot-imapd
[v]sudo apt -y install lamp-server^
[v]sudo apt -y install roundcube
sudo apt -y install mariadb-server mariadb-client
[v]sudo apt -y install vsftpd
sudo apt -y install proftpd
sudo apt -y install nfs-kernel-server
sudo apt -y install nfs-common
sudo apt -y install samba
sudo apt -y install isc-dhcp-server
sudo apt -y install squid
sudo apt -y install isc-dhcp-server tftpd-hpa inetutils-inetd prelinux
sudo apt -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt -y install docker-ce docker-ce-cli containerd.io
docker run hello-world
docker pull centos
4. ELK, SPLUNK
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg -y
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt install elasticsearch -y
sudo apt install kibana -y
sudo apt install logstash -y
cd /etc/skel
mkdir public_html
cd public_html
touch index.php
touch index.html
mkdir auth
mkdir includes
mkdir logs
cd logs
touch access.log
touch error.log