본문 바로가기

리눅스

우분투에서 TFTP 서버를 구축하는 방법

728x90

우분투에서 TFTP 서버를 구축하는 방법

TFTP 서버는 작은 크기의 파일을 네트워크를 통해 전송하는 간단한 파일 전송 프로토콜을 제공합니다.

테스트 환경

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.1 LTS
Release:	22.04
Codename:	jammy

APT 리포지토리 패키지 업데이트

apt update

tftpd-hpa 패키지 설치

apt install -y tftpd-hpa

TFTP 계정 정보(그룹/계정)

$ cat /etc/group | grep tftp
tftp:x:118:
$ cat /etc/passwd | grep tftp
tftp:x:113:118:tftp daemon,,,:/srv/tftp:/usr/sbin/nologin

TFTP 서버 설정일

TFTP 서버 설정 파일(/etc/default/tftpd-hpa)을 편집하여 TFTP 서버를 구성합니다.

vim /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

TFTP(tftpd-hpa) 서비스 시작

systemctl --now enable tftpd-hpa

TFTP(tftpd-hpa) 서비스 상태 확인

systemctl status tftpd-hpa
$ systemctl status tftpd-hpa
● tftpd-hpa.service - LSB: HPA's tftp server
     Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
     Active: active (running) since Sun 2022-12-11 20:35:57 KST; 16s ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 1 (limit: 4575)
     Memory: 536.0K
        CPU: 21ms
     CGroup: /system.slice/tftpd-hpa.service
             └─3340 /usr/sbin/in.tftpd --listen --user tftp --address :69 --secure /srv/tftp

Dec 11 20:35:57 kube-control1 systemd[1]: Starting LSB: HPA's tftp server...
Dec 11 20:35:57 kube-control1 tftpd-hpa[3332]:  * Starting HPA's tftpd in.tftpd
Dec 11 20:35:57 kube-control1 tftpd-hpa[3332]:    ...done.
Dec 11 20:35:57 kube-control1 systemd[1]: Started LSB: HPA's tftp server.

TFTP(tftpd) 서비스 포트 확인

netstat -anlp | grep -v grep | grep tftp

t1

TFTP(tftpd) 서버 프로세스 확인

ps -ef | grep -v grep | grep tftpd
$ ps -ef | grep -v grep | grep tftpd
root        3340       1  0 20:35 ?        00:00:00 /usr/sbin/in.tftpd --listen --user tftp --address :69 --secure /srv/tftp
728x90

TFTP 디렉터리 생성

mkdir -pv /apps/tftproot

TFTP 디렉터리 소유자 및 그룹 설정

sudo chown tftp:tftp /apps/tftproot

TFTP 디렉터리 권한 설정

sudo chmod -R /apps/tftproot

TFTP 설정 편집

vim /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/apps/tftproot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create"

TFTP 서비스 재시작

systemctl restart tftpd-hpa

방화벽 설정 (선택 사항)

방화벽을 사용하는 경우 TFTP 포트 69을 열어야 합니다.

sudo ufw allow 69/udp

TFTP 클라이언트 패키지 설치

apt install -y tftp
touch bb.txt
tftp 192.168.0.51
put bb.txt
quit
$ tftp 192.168.0.51
tftp> put bb.txt
tftp> quit

tftp 서버(/apps/tftproot)에서 파일 확인

$ ls -l /apps/tftproot
total 0
-rw-rw-rw- 1 tftp tftp 0 Dec 11 20:59 bb.txt

 

참고URL

- TFTP 서버 구성 방법 : https://scbyun.com/552

 

728x90