我正在编写一个脚本,通过命令行查找所有防火墙详细信息、路由信息和重要的网络相关信息。我可以使用 获取防火墙配置iptables -nvL
,但不确定其余配置。我应该使用哪些命令来收集其他所有信息?
答案1
您可以通过以下方式获取接口状态:
ifconfig
或者更好的是,使用“ip”命令,例如:
ip addr
要获取路线信息,请使用下列方法之一:
route
route -n #no ptr resolving
ip route
对于防火墙规则,使用:
iptables -L # you can add -n to prevent name resolving
对于 IPv6,您可以将“-6”添加到“ip”命令:
ip -6 addr
ip -6 route
...
您还可以检查“ethtool”来获取链接状态和速度/双工:
ethtool eth0
答案2
routel
列出大量信息,尽管形式不太可读,但它是主机所有路由表的完整转储,并提供足够的信息来重建主机上的 IP 配置。此信息不够完整,无法重建策略路由。如果您碰巧使用它,您还需要ip rule
。无论如何,作为 IPv4 的示例(即使也列出了 IPv6):
# list all interfaces addresses (unicast/broadcast/anycast)
routel | grep "local"
# list all (except ipv6 link-local) addresses of interfaces
routel | grep "local" | grep "host"
# list all broadcast addresses of interfaces
routel | grep "local" | grep "link"
# list all routing entries
routel | grep -v "local" | grep -v "unspec"
# list all on-link routing entries
routel | grep -v "local" | grep -v "unspec" | grep "link"
# list all on-link routing entries that are added by the kernel,
# (which also matches the netmask of the IP addresses).
routel | grep -v "local" | grep -v "unspec" | grep "link" | grep "kernel"
# list non-on-link routes (aka gatewayed or routed)
routel | grep -v "local" | grep -v "unspec" | grep -v "link"
ip route
与1999 年的不同route
,routel 会列出所有路由表,而另一个只列出路由main
表。如果有人使用策略路由,使用 时您将得不到任何线索ip route
,而 routel 会拼写出路由表的名称。
此外,您可能希望转储 sysctl 旋钮,以了解是否有人启用了转发、ARP 代理或其他一些奇怪的功能。只需转储sysctl -a
如果你想要更完整的标志或接口信息,也可以 dump ip addr
。真正特殊的配置可能需要更多,例如ip link
或ip tunnel
。
至于防火墙配置,有iptables-save
或iptables-save -c
如果您还需要计数器。这将列出所有表(而不仅仅是filter
像 iptables -L 或 iptables -S)您甚至可以使用iptables-restore
它来获取 iptables-save 的输出并恢复其配置。
答案3
打印现有 iptables 规则的命令如下:
iptables -L
答案4
您可以查看是否安装了 CSF 防火墙。
/etc/csf/csf.conf