我需要哪些端口才能让kinit工作?

时间:2013-11-08 15:52:21

标签: kerberos iptables arp

我正在尝试设置客户端计算机,以便只有kinit流量才能正常工作。到目前为止,我的规则看起来像

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i eth0 -s 192.168.1.130 -p tcp -m tcp --sport kerberos -j ACCEPT
-A INPUT -i eth0 -s 192.168.1.130 -p udp -m udp --sport kerberos -j ACCEPT
-A OUTPUT -i eth0 -d 192.168.1.130 -p tcp -m tcp --dport kerberos -j ACCEPT
-A OUTPUT -i eth0 -d 192.168.1.130 -p udp -m udp --dport kerberos -j ACCEPT

按原样,当我运行“kinit remuser”时,我不断收到错误

kinit: Cannot contact any KDC for realm 'EXAMPLE.COM' while getting initial credentials

如果我跑

iptables -P INPUT ACCEPT

然后“kinit remuser”按预期工作。在第一次成功之后,如果我跑了

iptables -P INPUT DROP

它仍在继续工作。

我尝试过使用wireshark来查看我最初禁用的内容。它似乎与arp相关,但我不能一直看到......而且我认为iptables不应该与arp混乱。我没有看到任何遗漏“arp -n”或“ip -s neigh”。

我已经将客户端和服务器配置得足以正常工作,但我仍然对这些东西太新,以了解我需要允许其他端口才能使其工作。如果有人能给我一些提示,我会很感激。

更新 虽然我的适配器声称处于混杂模式,但事实并非如此。我最终在服务器上运行wireshark,并且看不到需要其他端口号。为了验证这一点,我更新了规则以包含

-A INPUT -s 192.168.1.130 -j ACCEPT

并且成功的kinit wireshark捕获建议,它没有帮助。只有当我打开它所有的INPUT时才会这样。

感谢。 赫克托耳

2 个答案:

答案 0 :(得分:2)

默认情况下,Kerberos通常是udp。我对IP表并不熟悉,但是在定义服务器上的端口号时,客户端上的端口号是完全随机的。因此任何基于ip的过滤器都必须允许带有任意客户端端口号的传入udp数据包。

同样在传出方面,您需要能够在客户端发送具有任意udp端口的数据包。对于kinit,您只需要kerberos端口,但更改密码等,您还需要kadmin端口。

说完所有这些并且最好地猜测了ip表规则的含义,我认为这就是你所实现的。但是,您还需要访问DNS srv记录或工作krb5.conf。

http://wiki.unixh4cks.com/index.php/Using_DNS_SRV_records_to_find_Kerberos_realm_servers

当您允许传入的DNS记录查找时,可能是kinit开始工作。这也可以解释为什么它在第一次连接后继续工作,因为DNS记录可能缓存在系统上。服务器是否在/ etc / hosts文件中的krb5.conf中列出?如果不是那样可以解释这种行为。

考虑到这一点,你得到它之后你对这张票的期望是什么? kerberos的重点是通过保护端点来实现开放网络的安全性,而不是通过实施防火墙。

答案 1 :(得分:1)

我明白了。也许这仅适用于我或使用HW VPN的任何其他人。需要从网关接收ICMP类型3分组以继续krb5事务。我在工作网络上测试类似内容的同事没有看到这个问题,所以我们需要弄清楚我的情况有什么特别之处,以及它是否适用于其他事情。

所有这一切中最困难的部分是找到真正支持混杂模式的有线适配器。

相关问题