我在Debian服务器上工作,我正试图弄清楚我的IPTable规则存储在哪里.
从在互联网上四处看看,我发现通常有两个地方通常都会保存.
据我所知,以前的管理员为了安全起见将常见文件保存到不同的位置并不常见,我想知道是否有办法让我找到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表示的文件?