从在互联网上四处看看,我发现通常有两个地方通常都会保存.
http://major.io/2009/11/16/automatically-loading-iptables-on-debianubuntu/建议使用/etc/network/if-up.d/iptables,但该目录中不存在该文件.
http://beginlinux.wordpress.com/2009/05/26/saving-changes-for-iptables/ / etc / sysconfig / iptables但是/ etc / sysconfig目录甚至不存在.
据我所知,以前的管理员为了安全起见将常见文件保存到不同的位置并不常见,我想知道是否有办法让我找到iptables-save时保存规则的位置使用命令.此页面还指出使用位于/etc/init.d/iptables的脚本还原文件,但这也不存在.
有关如何继续查找规则保存位置的任何帮助或建议?我知道我可以尝试使用grep来查找一个位于规则中的稀有字符串,但我觉得必须有一个更简单,更直接的方法.
更新:
谢谢你的帮助.我尝试使用grep来搜索/ etc目录但是花了很长时间我不想冒内存耗尽的风险,所以我停止了它.我想我会尝试使用strace作为一种不太密集的方法.
通过浏览我已经到了线(我将IP地址更改为1.1.1.1):
`open("/etc/protocols",O_RDONLY|O_CLOEXEC) = 5 fstat64(5,{st_mode=S_IFREG|0644,st_size=2859,...}) = 0 mmap2(NULL,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0xb7747000 read(5,"# Internet (IP) protocols\n#\n# Up"...,4096) = 2859 close(5) = 0 munmap(0xb7747000,4096) = 0 write(1,"-A net2fw -s 1.1.1.1/32 -p t"...,66) = 66`
我不是100%肯定这是做什么的,但我觉得这就是它使用文件/ etc / protocols中的#5协议,它将是:
st 5 ST#ST数据报模式
读取某个文件的文件统计信息,然后将其读取的内容映射到内存位置0xb7747000.我不确定它从哪里读取,但随后关闭协议,从内存中取消映射,然后将规则写入文件描述符1.
我有多接近正确阅读?以及如何找出由1表示的文件?
解决方法
您可以在此处查看包的来源:https://packages.debian.org/search?keywords=iptables-persistent