📘 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 나갈 때 사용
  • NAT : 공인 → 사설 IP 들어올 때 사용 (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
  • 설명: WinServe
R1, R2, kali, Winserver 전원 On → 라우터 OSPF 설정하기
🧪 Kali 점검표
  1. Kali IP 정상 확인
    ip addr 100.100.100.1
    ping 100.100.100.254
    ping 4.4.4.1
    ping 125.246.95.152 (Firewall)
              
  2. 도메인 조회: nslookup geumsol.kr
  3. 문제 발생 시 NAT 정책 및 DNS 설정 확인 - 외부에서 접근할 때 NAT(http, dns, ftp), 내부에서 나갈 때 마스커레이딩, SERVER(DNS 설정)
🌐 Winserver 설정
  • 역할 및 기능 추가 → Web Server(IIS) → 다음 → 다음 → FTP Server → 필요시 체크 → 설치
  • IIS 관리자 → FTP 사이트 추가 → 이름:st, c/inetpub/ftproot, ip 192.168.1.1 → SSL 사용 안함 → 익명, 기본 → 마침
  • 💻 Ubuntu 서버 설치 및 설정
    • 이름: ST_U240402001, ISO 이미지 적용, 무인설치 건너뛰기, 25GB VMDK
    • IP: 10.0.2.15/24, 사용자: master, 비밀번호: 123456(언어: English, Done, Continue 선택)
    • OpenSSH 무조건 체크 및 재부팅
    FILE SYSTEM SUMMARY
    💻 Rocky 서버 설치 및 설정
  • 이름:ST_R10001, ISO 이미지 넣어주기 - 무인 설치 건너뛰기 - 하드 디스크 25GB, VMDK
  • 실행 → Rocky Install → Korea → root 계정 비활성화 → 설치 목적지 완료 → 시스템 재시작
  • ip addr: 10.0.2.15/24, 사용자: master, 비밀번호: 123456(Done, Continue 선택)
  • 설정 - 네트워크 - NAT
  • 📦 Xshell 접속 및 프로그램 설치
  • ubuntu 머신 → 네트워크 → 포트 포워딩 → ssh 2222
  • xshell 192.168.0.207 접속

  • 업데이트 업그레이드
    sudo apt update
    sudo apt upgrade
    
    필수 프로그램 설치
    sudo apt -y install lrzsz net-tools unzip
    
    명령어
    ip addr
    netstat
    netstat -ant
    sz 파일명
    
    서버 프로그램 설치(-y:물어보지 말고 설치하라)
    sudo apt -y install lamp-server^
    => 설치 후 본인 PC IP 접속 → 접속 안되면 virtualbox 머신 → 네트워크 → 포트 포워딩 http(80) 추가해주기
    sudo apt -y install roundcube - 오픈 소스형 웹메일(PHP), 웹에서 바로 메일 확인 가능(선택)
    sudo apt -y install vsftpd - 윈도우 설치할 때 ftp 옵션 넣은 것처럼 해주는 것
    sudo apt -y install sendmail dovecot-pop3d dovecot-imapd - 순서대로 송신, 수신, 수신
          
    🔎 Linux 포트 확인 및 VirtualBox 포트 포워딩
    netstat -ant | grep 21
    netstat -ant | grep 80
          

    VirtualBox 머신 네트워크에서 FTP(21), HTTP(80) 포트 포워딩 설정

    📁 일반 사용자 계정 허용
    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 -> 빈 페이지
    
    📁 Apache 사용자별 웹 디렉토리 설정
    sudo a2enmod userdir
    sudo systemctl restart apache2
    chmod 711 $HOME
    chmod 755 /home/master/public_html
          

    Forbidden 오류 해결 및 호스팅 설정 진행

    📡 Apache 가상호스트 설정
    cd /etc/apache2/sites-available
    sudo nano hosting.conf
    sudo nano /etc/apache2/sites-available/hosting.conf
    
    # create new
    # settings for new domain
    
    <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

    📥 CodeIgniter 설치 및 PHP 설정
    • CodeIgniter 4 다운로드
    • zip 파일 xshell로 업로드 후 압축 및 폴더명 변경
    • PHP 8.3 설치 및 FPM, Apache 연동 설정
    nano index.php
    <?php echo phpinfo(); ?>
    
    sudo apt -y install php8.3-fpm
    sudo a2enmod proxy_fcgi setenvif
    sudo systemctl restart php8.3-fpm apache2
    
    빈 페이지 -> PHP Version 8.3.6 웹페이지 출력
    🖧 Kali-Linux 네트워크 설정
    Ubuntu 추가
    📡 UTM 네트워크 설정
    • Ubuntu IP 고정 (dhcp4 수정 안 함)
    • 새 DHCP 추가 및 네트워크 정의 (ST1, ST2)
    DHCP 설정 네트워크 정의
    🔐 네트워크 보호 및 MAC 주소 정의
    네트워크 보호 NAT 수정 MAC 주소 정의
    🛠️ 주요 서버 프로그램 설치 목록
    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 테스트 명령어 예시:
    docker run hello-world
    docker pull centos
    
    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 error.log