tftpd-hpa를 사용하여 Ubuntu 서버에 TFTP 서버를 설정하는 방법

우분투의 tftpd-hpa 서버와 tftp-hpa 클라이언트를 설치하세요. 이 설정은 파일을 제공 /srv/tftp하고 업로드된 파일을 별도의 디렉터리에 저장합니다. 우분투 서버 패키지 및 클라이언트 패키지 목록을 확인하세요.

보안: TFTP는 로그인이나 암호화 기능을 제공하지 않습니다. 신뢰할 수 있는 LAN으로 접근을 제한하십시오. 접근 가능한 클라이언트는 사용 가능한 파일을 읽을 수 있으며, 권한이 허용하는 경우 업로드도 가능합니다. 비밀 정보는 전송하지 마십시오. TFTP 사양서에는 보안 한계가 명시되어 있습니다.

TFTP 서버를 설정하세요

1. 서버와 클라이언트를 설치합니다.

APT 메타데이터를 새로 고친 다음 두 패키지를 모두 설치하세요.

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
Ubuntu 서버 터미널에 tftpd-hpa 및 tftp-hpa를 설치하는 명령어가 표시됩니다.
서버 및 클라이언트 패키지를 설치하세요.

2. TFTP 루트를 구성합니다.

패키지 구성 파일을 편집하세요:

sudo nano /etc/default/tftpd-hpa

다음 값을 설정하세요:

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

--secure데몬을 구성된 루트 디렉터리에 제한하고, --create파일 업로드를 허용하며, --umask 027새 업로드 파일을 특정 모드로 제한합니다 0640. Ubuntu tftpd 설명서 에서 이러한 옵션에 대한 정보를 확인할 수 있습니다. Ctrl+O를 눌러 저장하고 Enter를 누른 다음 Ctrl+X를 누르세요.

클라이언트에게 루트 디렉토리를 --secure표시하기 때문에 파일 이름은 루트 디렉토리를 기준으로 상대적입니다. 따라서 `<path> ` 대신 `<path>`를 사용하십시오 . TFTP 클라이언트는 디렉토리를 탐색하지 않으므로 게시된 파일 이름과 해당 경로 목록을 유지해야 합니다./srv/tftphello.txt/srv/tftp/hello.txt

터미널 편집기에서 tftpd-hpa가 /srv/tftp 루트, 보안 모드, 업로드 허용, umask 027로 구성된 것을 보여줍니다.
파일 제한 및 업로드 마스크를 설정합니다.

3. 루트 디렉토리와 업로드 디렉토리를 생성합니다.

루트 폴더의 소유권은 root로 유지하고, 업로드 폴더에만 쓰기 권한을 부여하십시오.

sudo install -d -o root -g root -m 0755 /srv/tftp
sudo install -d -o tftp -g tftp -m 0750 /srv/tftp/upload

데몬은 루트 디렉토리를 읽을 수 있지만, tftp해당 계정만 쓰기 권한을 가집니다 /srv/tftp/upload. 예를 들어 `/etc/required`와 같은 권한 설정을 통해 전체 디렉토리 트리를 모든 사용자가 쓰기 가능하도록 만들지 마십시오 777.

공용 루트 디렉터리에 있는 파일은 허용된 모든 클라이언트가 읽을 수 있도록 처리해야 합니다. 해당 디렉터리에는 부팅 이미지, 펌웨어 또는 해당 네트워크용으로 제작된 기타 자료만 보관하십시오. 개인 데이터 전송에는 인증 및 암호화 기능을 갖춘 프로토콜을 사용하십시오.

우분투 터미널에서 tftp 사용자 및 그룹, 모드 0750으로 /srv/tftp/upload 디렉토리를 생성합니다.
업로드 하위 디렉터리만 쓰기 가능합니다.

4. 제공할 파일을 추가합니다.

루트 디렉터리에 알려진 파일을 생성합니다. TFTP의 기본 읽기 검사는 제공되는 파일이 공개적으로 읽을 수 있어야 하므로 모드를 설정합니다 0644.

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
Ubuntu 서버 터미널에서 hello.txt 파일을 /srv/tftp에 쓰고 파일 권한을 0644로 설정합니다.
다운로드 테스트를 위해 알려진 파일을 생성합니다.

5. 서비스를 활성화하고 다시 시작하십시오.

부팅 시 장치를 활성화하고, 설정을 적용하기 위해 장치를 다시 시작한 다음, 장치 상태를 확인하십시오.

sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager

시작이 실패하면 다음 명령어를 사용하여 서비스 로그를 확인하십시오 sudo journalctl -u tftpd-hpa -b --no-pager.

Ubuntu 서버 터미널 명령어를 사용하여 tftpd-hpa 서비스를 활성화, 재시작 및 점검하는 방법
설정을 변경한 후에는 서비스를 다시 시작하십시오.

6. 방화벽 접근 제한

UFW가 활성화된 경우, 클라이언트 서브넷에서만 초기 요청을 허용하십시오. 예시 네트워크를 신뢰할 수 있는 LAN 범위로 바꾸십시오.

sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status

소스 네트워크 규칙에 대해서는 Ubuntu의 UFW 가이드를 참조하십시오. TFTP는 UDP 포트 69에서 시작하여 프로토콜 사양 에 설명된 대로 서버에서 선택한 UDP 포트를 파일 데이터 전송에 사용합니다 . 엄격한 방화벽, 라우터 또는 NAT 장치는 요청은 허용하지만 전송은 차단할 수 있습니다. 클라이언트 연결 시간이 초과되는 경우 TFTP를 인식하는 연결 추적 또는 적절한 방화벽 정책을 사용하십시오. 모든 UDP 포트를 열거나 TFTP를 인터넷에 노출하지 마십시오. 이 명령은 규칙을 추가하는 것이며 UFW를 활성화하는 것은 아닙니다. SSH를 통해 서버를 관리하고 비활성화된 방화벽을 활성화하려는 경우 원격 액세스를 유지하기 위해 먼저 SSH를 허용하십시오.

예시 서브넷 192.168.1.0/24에서 UDP 포트 69만 허용하는 UFW 명령입니다.
신뢰할 수 있는 서브넷에서의 초기 요청을 허용합니다.

다운로드 및 업로드 테스트

7. 우분투 클라이언트에서 다운로드

서버에서 ip -brief address다음 명령어를 실행하고 접속 가능한 LAN 주소를 기록해 두세요. Ubuntu 클라이언트에서 필요한 경우 클라이언트를 설치하세요. 192.0.2.10아래 주소를 실제 서버 주소로 바꾸세요.

sudo apt install tftp-hpa
tftp 192.0.2.10
tftp> binary
tftp> get hello.txt
tftp> quit

해당 파일은 클라이언트의 현재 디렉터리에 저장됩니다. Ubuntu TFTP 클라이언트 설명서 를 binary참조하십시오 get. 펌웨어, 부팅 이미지 및 바이트 단위 변경이 필요 없는 파일의 경우 바이너리 모드를 사용하는 것이 좋습니다. Linux 파일 이름은 대소문자를 구분하므로 각 원격 이름을 정확하게 입력해야 합니다.

TFTP 클라이언트 터미널이 예제 서버에 연결하여 hello.txt 파일을 바이너리 모드로 다운로드하는 모습입니다.
알려진 파일을 바이너리 모드로 요청합니다.

8. 제한된 폴더에 업로드합니다.

클라이언트 측에서 테스트 파일을 생성한 다음, 서버의 업로드 디렉터리 아래에 있는 경로로 전송합니다.

printf 'Upload test' > upload-check.txt
tftp 192.0.2.10
tftp> binary
tftp> put upload-check.txt upload/upload-check.txt
tftp> quit

서버의 실제 주소를 사용하십시오. 원격 경로는 상대 경로입니다. /srv/tftp서버에서 업로드가 완료되었는지 확인하려면 다음 sudo ls -l /srv/tftp/upload/명령어를 사용하십시오. TFTP 클라이언트는 디렉터리 목록을 탐색하는 대신 알려진 파일 이름을 사용합니다.

TFTP 클라이언트 터미널이 upload-check.txt 파일을 바이너리 모드로 upload/upload-check.txt 경로로 전송합니다.
업로드된 파일은 쓰기 가능한 하위 디렉터리 내에 저장됩니다.

일반적인 오류 해결

  • 파일을 찾을 수 없습니다. 파일 이름이 기준이 되는 위치를 확인 /srv/tftp하고 파일이 존재하는지 확인하십시오.
  • 접근 위반: 제공된 파일을 공개적으로 읽을 수 있도록 설정하십시오. 업로드의 경우 tftp대상의 소유권을 확인하고 --create설정되었는지 확인하십시오.
  • 타임아웃: 클라이언트가 서버에 접근 가능한 주소를 사용하고 있는지, 서비스가 활성화되어 있는지, 방화벽이 협상된 UDP 데이터 흐름을 허용하는지 확인하십시오.

네트워크 문제를 분리하려면 먼저 동일한 LAN에 있는 클라이언트에서 테스트해 보세요. 해당 클라이언트에서는 정상적으로 작동하지만 라우팅된 클라이언트에서 시간 초과가 발생하는 경우, 라우터 또는 방화벽에서 TFTP를 인식하는 데이터 포트 처리 방식을 확인하십시오.

읽기 전용 서비스의 경우, --create해당 항목을 제거 TFTP_OPTIONS하고 다시 시작하십시오 tftpd-hpa.

댓글 남기기

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.

리눅스에 Cisco Packet Tracer를 설치하는 방법

리눅스에 Cisco Packet Tracer를 설치하는 방법

Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.

XFCE 4에서 듀얼 패널을 설정하는 방법

XFCE 4에서 듀얼 패널을 설정하는 방법

각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.