
Я пишу скрипт, чтобы найти все детали брандмауэра, информацию о маршрутизации и важные сетевые данные через командную строку. Я могу получить конфигурацию брандмауэра с помощью 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