У меня есть правило в iptables, которое вызывает черный список, который я создал с помощью ipset. Мое правило
-A INPUT -m set --match-set blacklist src -m comment --comment "BLACKLISTED TRAFFIC" -j DROP
При перезагрузке не сохраняется. Это приводит к тому, что iptables не запускается при загрузке, так как черный список отсутствует. Для создания списка я использую следующую команду:
/usr/sbin/ipset restore < /etc/ipset-blacklist/ip-blacklist.restore
Чтобы запустить iptables, я настроил /usr/lib/systemd/system/iptables.service следующим образом
[Unit]
Description=IPv4 firewall with iptables
Before=ip6tables.service
After=syslog.target
AssertPathExists=/etc/sysconfig/iptables
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/sbin/ipset restore < /etc/ipset-blacklist/ip-blacklist.restore
ExecStart=/usr/libexec/iptables/iptables.init start
ExecReload=/usr/libexec/iptables/iptables.init reload
ExecStop=/usr/libexec/iptables/iptables.init stop
Environment=BOOTUP=serial
Environment=CONSOLETYPE=serial
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=basic.target
Если я сделаю
systemctl start iptables.service
Я вернусь:
ipset[26566]: ipset v6.38: Unknown argument <
Теперь, если я изменю iptables.service таким образом
[Unit]
Description=IPv4 firewall with iptables
Before=ip6tables.service
After=syslog.target
AssertPathExists=/etc/sysconfig/iptables
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=ipset restore < /etc/ipset-blacklist/ip-blacklist.restore
ExecStart=/usr/libexec/iptables/iptables.init start
ExecReload=/usr/libexec/iptables/iptables.init reload
ExecStop=/usr/libexec/iptables/iptables.init stop
Environment=BOOTUP=serial
Environment=CONSOLETYPE=serial
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=basic.target
Затем я получаю сообщение об ошибке
iptables: Applying firewall rules: iptables-restore v1.4.21: Set blacklist doesn't exist
Похоже, что ExecStartPre не запускается. Какие-нибудь советы?
Пытаться
ExecStartPre=/bin/sh -c "/usr/sbin/ipset restore < /etc/ipset-blacklist/ip-blacklist.restore"