Samba服务器安全指南

发表于:2012-2-20 10:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Sean A. Walberg    来源:51Testing软件测试网采编

  您可以通过在端口层过滤来获得更加精细的粒度。前一个示例过滤源地址,因此会阻塞所有服务。如果在您的主机上有一个 web 服务器,您想让它对一般的 Internet 开放访问,那么之前的策略就不起作用了。

  回想一下 “学习 Linux,302(混合环境):配置 Samba”,Samba 使用了四种不同的端口:

  ● 137 UDP。 网络基本输入/输出系统 (NetBIOS) 名称服务。
  ● 138 UDP。 NetBIOS 数据报服务。
  ● 139 TCP。 NetBIOS 会话服务。
  ● 445 TCP。 直接托管(TCP 上的 Common Internet File System [CIFS])。

  清单 1 演示了一个策略,允许从 10.0.0.0/8 网络连接到 Samba 服务,也允许 web 服务器没有任何限制地进行操作。

  清单 1. 在端口层操作的策略

iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/8 --dport 137 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/8 --dport 138 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -s 10.0.0.0/8 --dport 139 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -s 10.0.0.0/8 --dport 445 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

  清单 1 的策略比之前的策略复杂得多,因为它对不同的应用程序进行了设置,每个都有不同的策略。前两条规则匹配所有作为新会话(-m state --state NEW)的一部分,并且发送到端口 80 或端口 443(--dport 80、 --dport 443)的传入的 TCP 数据包(-p tcp)。对于源地址没有任何限制,因此会支持所有人。

  接下来的两行匹配所有从内部网络(-s 10.0.0.0/8)发送到端口 137 或端口 138(--dport 137、--dport 138)的 UDP 数据包(-p udp)。UDP 没有状态,因此无需担心连接是新的还是已建立的。

  第 5 行和第 6 行结合状态匹配器和源地址过滤器,仅仅允许端口 139 和端口 445 上来自内部网络的新连接。

  最后两行与之前策略的操作相同。如果数据包与当前连接有关,则支持它。其他的将会被丢弃。

  排除防火墙故障

  防火墙问题很常见,因为会遇到没有想到的的需求或发现应用程序并没有按您预计的方式运行。规则本身的错误也很常见,尤其是处理一长串端口号和 IP 地址时。但也不是所有问题都与防火墙有关,因此您应该了解一些基本的网络故障排除步骤。

  查看策略

  使用 iptables 命令查看策略。-L 选项会列出策略,而 verbose(-v)选项会添加额外的细节信息,比如数据包计数器。清单 2 显示了 清单 1 的策略。

  清单 2. 查看详细策略

# iptables -L -v
Chain INPUT (policy DROP 47 packets, 5125 bytes)
pkts bytes target  prot opt in   out  source      destination
    0     0 ACCEPT  tcp  --  any  any  anywhere    anywhere     state NEW tcp dpt:http
    0     0 ACCEPT  tcp  --  any  any  anywhere    anywhere     state NEW tcp dpt:https
    0     0 ACCEPT  udp  --  any  any  10.0.0.0/8  anywhere     udp dpt:netbios-ns
    0     0 ACCEPT  udp  --  any  any  10.0.0.0/8  anywhere     udp dpt:netbios-dgm
    0     0 ACCEPT  tcp  --  any  any  10.0.0.0/8  anywhere     state NEW tcp dpt:139
    0     0 ACCEPT  tcp  --  any  any  10.0.0.0/8  anywhere     state NEW tcp dpt:445
  214 15216 ACCEPT  all  --  any  any  anywhere    anywhere     state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 292 packets, 35009 bytes)
pkts bytes target     prot opt in     out     source               destination

  明细统计数据会显示匹配头两列规则的数据包数目和字节数目。对于清单 2,您会看到该数据包只匹配最后一条规则。仔细看输出的第一行,您会看到默认的目标也有一个数据包数目。有 45 个数据包被丢弃,因为它们不匹配任何一条规则;这表示或者是未授权的用户试图访问主机,或者是合法的流量被不正确的防火墙策略所阻塞。

  查看防火墙策略的另一用途是完整地了解策略。由于处理会在第一次匹配后停止,因此您应该从策略开头处开始,一直往下看,确定是否有一条规则会丢弃您的流量。

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号