请教老鸟:在NIS和NFS服务器上配iptalbes,怎么这么难啊?
我的AS4(2.6.9)上面有NIS和NFS,对于iptables来说怎么办?
以下是我写的,用了之后NIS和NFS都不能用了,取消IPTABLES之后,NIS和NFS就恢复正常,求解.....
#/bin/bash
#20051096 REDHAT AS4 2.6.9
#防火墙设置
#普通端口
open_ports="80 53 5353"
#特殊端口
open_port="22 111 2049 12346 5800 5900 5801 5901 4000 4001 4002"
#特殊IP
ip_add="210.71.165.0/24 192.168.1.0/24"
#初始化防火墙
iptables -F
iptables -X
#丢弃所有进入的数据包
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p ICMP -j DROP
for port2 in $open_ports ; do
iptables -A INPUT -p tcp --dport $port2 -j ACCEPT
iptables -A INPUT -p udp --dport $port2 -j ACCEPT
done
for port1 in $open_port ; do
for ip in $ip_add ; do
iptables -A INPUT -s $ip -p tcp --dport $port1 -j ACCEPT
iptables -A INPUT -s $ip -p udp --dport $port1 -j ACCEPT
done
done
#丢弃所有不匹配的数据包
iptables -A INPUT -j DROP
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
因為 rpc program 都是透過 portmap 來註冊 port number 的, 而且是動態性變更的.
你得跑一下 rpcinfo -p 來確定哪些 port 要開, 然後還要定期檢查, 以作修改.
這些工作, 最好是交給 shell script 來完成了.
大哥,我这是个菜鸟啊,哪里有这样的东西啊,我要晕掉了
可以试着用 state , 我没试过 nfs. 因为很少人在外网用 nfs. 也很少人在内网内设个 firewall 的.
回ql208c:
大侠,你说的这个STATE,是IPTABLES的一个模块吧?
LZ 的 script 沒用 state 是一個缺失,
但對 rpc 的幫助不大.
我參考LZ的原本 script 修改如下:
复制代码
回网中人:
太感谢你了,你的代码我很认同,但有几点不明处,还请相告:
1、iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
这一句是什么意思啊?我太菜了。。。
2、iptables -A INPUT -i lo -j ACCEPT
这句是不是只允许来自“LO”这个设备的数据包啊?我在放在IDC ,我想这个就不必了吧?
1.建议在网上搜索iptables手册看一下.
2.不建议在外网使用NFS/NIS,小心安全问题.
我也知道有危险啊,但是有这样的需要啊,我现在是通过这种方式管理几台同时在IDC的机器,不知哪位有好方法,将几台机器上面的空间融合在一起,达到在逻辑上就像一个目录一样,但实际中却是来自几台机器的空间,听别人说是网络文件系统,不知可行否?
大侠们,快帮我看看,我的防火墙是这样设的,为什么还是不能使用RPC进行通信啊?
open_ports="80 53 5353"
open_port="22 12346 5800 5801 5900 5901"
#rpc_ports=$(rpcinfo -p | awk '{print $4}' | grep -v '[^0-9]' | sort -u)
#rpc_ports=$(rpcinfo -p |grep p|cut -c24-28|sort|uniq)
ip_add="210.11.165.0/24 231.68.0.0/16 192.168.1.0/24"
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p ICMP -j DROP
rpc_ports=$(rpcinfo -p | awk '{print $4}' | grep -v '[^0-9]' | sort -u)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
for port2 in $open_ports ; do
iptables -A INPUT -p tcp --dport $port2 -j ACCEPT
iptables -A INPUT -p udp --dport $port2 -j ACCEPT
done
for port1 in $open_port $rpc_ports ; do
for ip in $ip_add ; do
iptables -A INPUT -s $ip -p tcp --dport $port1 -j ACCEPT
iptables -A INPUT -s $ip -p udp --dport $port1 -j ACCEPT
done
done
iptables -A INPUT -j DROP
另外,我如果要把这个加在后台每过几分钟自动执行一次,为什么加在/etc/crontab里面,总是不能正常执行啊?总有邮件通知IPTABLES命令不存在,难道要在这个iptales.sh脚本里面加上命令地址?