Многие пользуются для сохранения и восстановления правил iptables парой утилит iptables-save и iptables-restore. Однако по умолчанию текстовый редактор Vim не умеет нормально подсвечивать текст файлов, с которыми работают эти утилиты. К счастью, это легко исправить.

Для начала надо убедиться, что у вас вообще включена подсветка синтаксиса в Vim. За неё отвечает строчка

syntax on

в файле /etc/vim/vimrc.

Если обычный код подсвечивается, то дальше надо скачать с сайта Vim последнюю версию файла с правилами подсветки для iptables:

Файл из скачанного архива нужно положить в каталог /usr/share/vim/vimcurrent/syntax/.

Далее надо включить автоопределение нашего нового типа файлов. Сделать это можно, например, добавив в ~/.vimrc (для текущего пользователя) или в /etc/vim/vimrc (для всех пользователей) строчки:

if has("autocmd")
        " Включаем автоопределение синтаксиса iptables
        au BufNewFile,BufRead * if getline(1) =~ '^#!.*iptables-restore' ||
                \ getline(1) =~ '^# Generated by iptables-save' ||
                \ getline(1) =~ '^# Firewall configuration written by' |
                \ set ft=iptables | endif
endif

Теперь файлы, сохранённые с помощью iptables-save, будут красиво подсвечиваться.

Кроме того, код также будет подсвечиваться если вы используете хитрый трюк указания iptables-restore как интерпретатора для выполнения скрипта с сохранёнными правилами, например:

#!/sbin/iptables-restore
*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
COMMIT
 
*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
# NAT для внутренней сети
-A POSTROUTING -s 192.168.10.0/24 -o eth1 -j SNAT --to-source 192.168.0.2
COMMIT