Я работаю на сервере 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`
Я не уверен на 100%, что это делает, но мне кажется, что именно здесь он использует протокол № 5 из файла /etc/protocols
который будет:
st 5 ST # ST datagram mode
чтение статистики какого-либо файла, а затем отображение того, что он читает, в ячейку памяти 0xb7747000
. Я не уверен, откуда он читает, но затем он закрывает протокол, отключает отображение из памяти, а затем записывает правило в дескриптор файла 1
.
Насколько я близок к тому, чтобы правильно это прочитать? и как мне узнать файл, представленный 1
?
iptables-persistent
Пакет wheezy сохраняет правила в /etc/iptables/rules.v4
.
Вы можете просмотреть исходный код пакета здесь: https://packages.debian.org/search?keywords=iptables-persistent
Нужно провести расследование?