d.l*_*a38 5 linux debian firewall iptables
我在 Debian 服务器上工作,我试图找出我的 IPTable 规则的存储位置。
通过在互联网上环顾四周,我发现通常有两个位置通常被保存。
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 作为一种不太密集的方法。
通过查看 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`
Run Code Online (Sandbox Code Playgroud)
我不是 100% 确定这是做什么的,但在我看来,这就是它使用文件中的协议 #5 的地方,它/etc/protocols是:
st 5 ST # ST datagram mode
读取某个文件的文件统计信息,然后将其读取的内容映射到内存位置0xb7747000。我不确定它从哪里读取,但随后它关闭了协议,从内存中取消映射,然后将规则写入文件描述符1。
我离正确阅读这篇文章还有多远?以及如何找出由 表示的文件1?
iptables-persistentwheezy 包将规则保存在/etc/iptables/rules.v4.
您可以在此处查看包的来源:https://packages.debian.org/search? keywords=iptables-persistent
| 归档时间: |
|
| 查看次数: |
27835 次 |
| 最近记录: |