最佳技术支持

由工作人员

如何通过 iptables 防火墙进行 FTP

我一直在尝试配置 iptables 以使其与传入的 SSH 和 FTP 正常工作。 由于某些原因,每次我想从远程站点进行 FTP 时,我都必须禁用 INPUT 链的 POLICY。 您能解释一下如何处理这个问题吗——在不禁用策略的情况下,将 FTP 和 iptables 配置在一起? 我正在运行 Red Hat 8.0。


Ramiro Albarracin


ramiro@sergiolub.com

在没有您的规则列表的情况下,很难找到问题所在,但显然某些规则(在 INPUT 链中)正在阻止流量。 尝试在每个实际规则之前添加 LOG 规则(在 /var/log/messages 中)以查看哪个规则导致数据包停止。 例如

iptables -A INPUT -p TCP -s 0/0 -d 0/0  \
--dport ftp -j LOG --log-prefix  "FTP :"
iptables -A INPUT -p TCP -s 0/0 -d 0/0  \
--dport ftp -j ACCEPT



Mario Bittencourt


mneto@argo.com.br

您应该阅读有关防火墙和 FTP 的资料。 基本上,FTP 是一种难以过滤的协议,实际上它是一个协议中的两个协议,具体取决于客户端。 主动 FTP 在服务器端不太难过滤; 您只需允许端口 21(控制连接)上的传入连接即可。 但是,对于被动 FTP,服务器不会打开到客户端的数据连接; 客户端在一些高 TCP 端口 (>1024) 上打开到您的数据连接。 使用 iptables,您可以利用连接跟踪,它仅打开用于该 FTP 连接的一个端口

iptables -A $IF -p tcp --dport ftp -j ACCEPT
iptables -A $IF -p tcp --dport 1024:65535 \
-m state --state RELATED -j ACCEPT

您还必须加载 ip_conntrack_ftp 模块才能使上述操作生效(modprobe ip_conntrack_ftp).


Marc Merlin


marc_bts@google.com

同步您的时钟

如何手动时间同步我的计算机? 当我安装我的发行版 Mandrake 9.0 时,它让我选择一个 NTP 源,但我不会一直让我的机器开机。 如何手动同步以确保它正在发生?


Rick Shores


rshores@ispwest.com

只需运行ntpdate timeserver。 此命令将您的时间与时间服务器同步,并报告您的时钟偏差有多大。 您可能应该在之后将时间保存到您的硬件时钟,以便在您重新启动时保留它hwclock --systohc.


Chad Robinson


crobinson@rfgonline.com

双启动系统跳过 LILO 菜单

我的 PC 上安装了 Red Hat 7.1,另一个分区用于 Microsoft Windows。 我最近使用以下命令重新安装了 Windowsmssetup。 当系统重新启动时,我没有被询问是否切换到 Windows 或 Linux。 现在系统直接启动到 Windows。 有什么方法可以恢复 Linux 吗?


Kunal S Doddanavar


kunal_s_d@indiatimes.com

Windows 移除或禁用了 Linux 引导加载程序,在 Red Hat 7.1 上是 LILO。 使用您的救援软盘启动,挂载您的 Linux 根分区,例如,mount /dev/hda1 /mnt并运行lilo -R /mnt在重新启动之前。 如果您正在运行 GRUB,grub-install应该可以解决问题。


Marc Merlin


marc_bts@google.com

在更新的 Red Hat 发行版上,它们使用 GRUB 引导加载程序,从救援软盘启动并使用以下命令重新安装 GRUBgrub-install。 如果您没有制作启动盘,请使用第一个安装 CD 在救援模式下启动。


Christopher Wingert


cwingert@qualcomm.com

清理旧内核

我正在使用 Red Hat Network 来升级我的软件并使其保持最新。 我允许 up2date 程序包含我的内核。 现在我的 /boot 分区变得太满了。 如何删除一些旧内核? 我真的不认为我在 /boot 中需要五个不同的内核。


Bob Wooden


bobwooden@netwalk.com

只需删除不需要的启动映像。 您可以运行rpm -qa | grep kernel来查找您已安装的内核软件包,并使用rpm -e来删除较旧的内核。 作为建议,至少保留两个选项,这样如果当前内核出现问题,您还可以有一个备份。


Mario Bittencourt


mneto@argo.com.br

这不仅可以,而且是一个良好的管理习惯。 您应该只保留有用的内核,通常只需要两个:主内核文件和一个备份,以防主内核发生任何问题。 除非您有特殊要求,例如您正在开发和测试内核驱动程序,否则保存您拥有的尽可能多的版本很少是必要的。


Chad Robinson


crobinson@rfgonline.com

USB 闪存盘?

如何挂载 USB 闪存盘? 当我检查 /proc/bus/usb/devices/ 时,我可以看到我的闪存盘。 当我运行硬件浏览器时,它显示为 hda4 (fat32),但我无法挂载它或访问文件。


Callum Benepe


callumb@yahoo.com

看起来您没有加载 usb-storage 驱动程序,这是此设备所必需的。 请查看 Linux USB 指南 www.linux-usb.org 以获取有关如何加载正确的驱动程序和挂载设备的更多信息。


Greg Kroah-Hartman


greg@kroah.com

支持 Intel 视频?

我的显卡是内置的 Intel 82845G/GL,在 Linux (Red Hat 8.0) 中失败。 Linux 在安装过程中探测到它,但无法在图形模式下启动; startx 显示致命错误。


Jafar Borhan


jafar_borhan@yahoo.com

在 Google 上搜索,我找到了一个关于如何配置具有此显卡的系统的页面,www.linuxcare.com/labs/certs/ibm/netvista-m42/rh80-config.epl。 升级列出的软件包,然后运行 Xconfigurator。


Marc Merlin


marc_bts@google.com

连接超时

Telnet 和 SSH 连接似乎超时,我被断开连接。 我使用 tcsh 作为我的 shell,并且我登录的 pty 设备在 /etc/securetty 中列出。 这不是自动注销的问题。 即使我禁用自动注销,连接仍然会在大约一小时后断开。 发生这种情况时,用户仍然被列为已登录,并且 shell 仍然处于活动状态。 必须通过杀死其进程 ID 来终止它。


Floyd Miller


floyd@studiodust.org

这闻起来像是防火墙级别的问题。 在常见的 NAT 和伪装设置中,如果链接上有一段时间没有流量,路由器将忘记该连接,假设它被不正确地关闭了。 这是因为某些客户端没有正确发出关闭请求,并且允许这些陈旧的连接继续占用内核资源是不明智的。


Chad Robinson


crobinson@rfgonline.com

您可能正在通过 NAT 网关,该网关在一小时不活动后会使空闲 TCP 连接过期。 尝试(以 root 身份)

echo 600 > /proc/sys/net/ipv4/tcp_keepalive_time

然后,当您使用 SSH 时,您应该请求 keepalive TCP 数据包以保持连接

ssh -o 'KeepAlive=yes' targethost



Marc Merlin


marc_bts@google.com

您可以节省输入并放入

ProtocolKeepAlives 300
在 ~/.ssh/config 中,使 SSH 每五分钟为所有连接发送 keepalive 数据包。


Don Marti


dmarti@ssc.com
加载 Disqus 评论