我的目标:在这个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 段。