Запустить сценарий Bash для настройки iptables при запуске [дубликат]

На этот вопрос уже есть ответ здесь:

Я использую сервер Ubuntu 16.04.

Я хочу использовать сценарий Bash для iptables при запуске, но я не хочу использовать crontab или init.d. Есть ли какой-либо способ добиться этого без них?

#!/bin/bash
IPT="/sbin/iptables"
$IPT --flush
$IPT --delete-chain
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT*
0
задан 27 September 2018 в 23:34

3 ответа

Если Вы не хотите устанавливать дополнительное программное обеспечение, одно возможное обходное решение, которое работает над Ubuntu 16.04, должно создать два тех сценариев, которые сохранят Iptables текущая конфигурация и та, которая восстановит его. Эти сценарии должны быть помещены в (или sim-связаны с), /etc/network/if-post-down.d/ и /etc/network/if-pre-up.d/. Также должен быть исполняемые файлы и не должны иметь никаких расширений, как .sh. Вот то, как эти сценарии считают мою систему:

$ cat /etc/network/if-post-down.d/iptables-save
#!/bin/sh
/sbin/iptables-save > /root/iptables-current-state.dat
exit 0

$ cat /etc/network/if-pre-up.d/iptables-restore
#!/bin/sh
/sbin/iptables-restore < /root/iptables-current-state.dat
exit 0
1
ответ дан 27 October 2019 в 09:56

На моих 16,04 серверах я использую /etc/network/interfaces метод файла:

$ cat /etc/network/interfaces
# interfaces file for smythies.com 2016.01.30
#       attempt to set local DNS herein, as the method
#       used with the old 12.04 server no longer works.
#
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
pre-up /home/doug/init/doug_firewall
dns-nameservers 127.0.0.1

# The primary interface (d-link PCI card)
auto enp4s0
iface enp4s0 inet dhcp

# Local network interface (uses built in ethernet port)
auto enp2s0
iface enp2s0 inet static
  address 192.168.111.1
  network 192.168.111.0
  netmask 255.255.255.0
  broadcast 192.168.111.255

Где Вы видите, что я использую a pre-up директива в локальном интерфейсном определении для выполнения моего (главным образом) iptables сценарий.

Примечание: этот метод не будет работать с более поздними выпусками, которые используют netplan вместо ifup ifdown.

0
ответ дан 27 October 2019 в 09:56

Можно добавить сценарий запуска к приложениям запуска Ubuntu. Существуют подробные инструкции здесь (https://help.ubuntu.com/stable/ubuntu-help/startup-applications.html.en). Помните создание исполняемого файла сценария перед добавлением его к приложениям запуска.

-1
ответ дан 27 October 2019 в 09:56

Другие вопросы по тегам:

Похожие вопросы: