iptables 규칙을 사용하면 클라이언트가 모든 서버에서 tftp 다운로드를 수행할 수 있습니다.

iptables 규칙을 사용하면 클라이언트가 모든 서버에서 tftp 다운로드를 수행할 수 있습니다.

내 목표는 이 Linux 시스템에서 iptables 관련 작업을 하나만 허용하는 것입니다. 이것이 모든 서버에서 tftp 다운로드를 가능하게 하는 것입니다. 이것이 내 규칙이지만 작동하지 않는 것 같습니다. 이것이 내 Linux 상자가 서버라는 의미는 아니라는 점을 강조해야 합니다. 내 상자는 TFTP 서버에서 다운로드를 시도하는 클라이언트입니다.

#iptables -S 
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state RELATED -j ACCEPT
-A INPUT -p udp -m udp --dport 69 -m state --state NEW -j ACCEPT

tftp 다운로드를 시도하면 시간이 초과됩니다.

tftp -g -r /asd.txt  10.0.0.148 

tftp 다운로드가 이러한 규칙을 준수하는지 확인했습니다.

root@kp3:~# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

TFTP 다운로드를 허용하도록 내 규칙을 수정하도록 도와주실 수 있나요?

답변1

TFTP를 허용하는 것은 별 의미가 없습니다.”어느 서버에서나". 하지만 그것이 당신이 원하는 것이라면 여기에 필요한 것이 있습니다.

iptables -I INPUT -p udp -j ACCEPT
iptables -I OUTPUT -p udp -j ACCEPT

하지만 내 생각엔 당신이 그것을 좋아하지 않을 것 같아요.

에서 따온 설명입니다https://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol#Overview(강조는 내 것)

TFTP는 UDP를 전송 프로토콜로 사용합니다. 전송 요청은 항상 포트 69에 대해 시작되지만데이터 전송 포트는 전송 초기화 중에 송신자와 수신자가 독립적으로 선택합니다.이러한 포트는 일반적으로 다양한 임시 포트 중에서 네트워크 스택의 매개변수를 기반으로 무작위로 선택됩니다.

이는 좀 더 공식적인 정의입니다.RFC 1350 섹션 4 단락 2.

관련 정보