Это старая версия документа.


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

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

syntax on

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

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

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

После чего в конец файла /usr/share/vim/vimcurrent/scripts.vim нужно добавить:

if getline(1) =~ "^# Generated by iptables-save" ||
        \ getline(1) =~ "^# Firewall configuration written by" ||
        \ getline(1) =~ "^#!/sbin/iptables-restore"
        setfiletype iptables
        set commentstring=#%s
        finish
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