LinuxForum.Fans
Тема

Куда запилить shell script файрвола?

Автор: Me_Shock 8 сообщений 3454 просмотров
#321435

Всем доброго времени суток.
Нужно чтобы правила iptables применялись сразу после поднятия ВСЕХ сетевых интерфейсов.
делал так:

text
# chmod +x /etc/network/if-up.d/firewall

но это не подходит т.к. они применяется 2 раза (видимо по кол-ву интерфейсов eth0 и eth1 у меня), что видно в /var/log/boot
Возможно, это не критично, т.к. файрвол сначала "себя чистит" но все-же криво. Куда следует положить файлик чтобы было по уму?
Спасибо)

#321442

1)

text
/etc/rc.local

2)

text
auto eth1
iface eth1 inet xxx
  pre-up iptables-restore < /xxx/iptables.rules
#321574

Kettler, у меня нету /etc/rc.local на Linux gw5 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2+deb7u2 x86_64 GNU/Linux
а iptables-restore не подходит т.к. в скрипте еще dns-ы и ntp-серверы меняются.(вплане подходит, но хочется 1м файлом)

#321576
"Me_Shock⇓" написал:
а iptables-restore не подходит т.к. в скрипте еще dns-ы и ntp-серверы меняются.(вплане подходит, но хочется 1м файлом)

Насколько я понимаю, вместо

text
pre-up iptables-restore < /xxx/iptables.rules

можно указать вызов скрипта, в котором и прописать любые нужные вам команды, т.е.

text

pre-up ПУТЬ_К_СКРИПТУ
#321581

"Lupo Alberto⇓" написал:
Насколько я понимаю, вместо
аааа!! Сделал, работает! Не понял, почему в логе загрузки не промелькнуло эхо из скрипта.. Это нормально? # cat /etc/network/firewall
Показать
[console]#! /bin/sh
echo applying firewall rules form file: /etc/network/firewall|ccze -A
TH="192.168.0.65,80.247.XX.XXX,109.202.X.XXX" # Trusted hosts: 1.debug 2.imex 3.avantel
IT="/sbin/iptables"
EX_IF="eth0"
IN_IF="eth1"

GW_IP="194.150.156.115"
N_LAN="192.168.1.0/24"

SQUID="3128"
DS="qwerty.ru"
NS1="192.168.0.5"
NS2="192.168.0.6"

P_WAN_TCP="ssh,www,3333,3335,3336,3389,6666,webmin"
P_LAN_TCP="ftp-data,ftp,smtp,ssh,domain,pop3,ntp,www,https,openvpn,3128,3389,sip,aol,xmpp-client"
P_LAN_UDP="ssh,domain,pop3,ntp,https,openvpn,3128,3389,sip,aol,xmpp-client"

echo 'search '$DS'\nnameserver '$NS1'\nnameserver '$NS2 > /etc/resolv.conf
sed -i '/^server.*/d' /etc/ntp.conf && echo 'server '$NS1'\nserver '$NS2 >> /etc/ntp.conf
echo 1 > /proc/sys/net/ipv4/ip_forward

$IT -t mangle -F && $IT -t filter -F && $IT -t nat -F && $IT -F && $IT -X
$IT -P INPUT DROP && $IT -P OUTPUT ACCEPT && $IT -P FORWARD ACCEPT
# ------------------------------------------------------------------------------------------------------------------------

# -------------------------------------------------------------------------------------------------------------------------
$IT -t nat -A PREROUTING -s $N_LAN -p tcp -m multiport --dport www,aol,xmpp-client -j REDIRECT --to-ports $SQUID
$IT -t nat -A POSTROUTING -s $N_LAN -o $EX_IF -j MASQUERADE
# -------------------------------------------------------------------------------------------------------------------------
$IT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IT -A INPUT -i lo -j ACCEPT
$IT -A INPUT -i $EX_IF -s $TH -p tcp -m multiport --dport $P_WAN_TCP -j ACCEPT # -m tcp --syn -m conntrack --ctstate NEW -j ACCEPT
# -------------------------------------------------------------------------------------------------------------------------
$IT -A INPUT -s $N_LAN -p tcp -m multiport --dport $P_LAN_TCP -j ACCEPT
$IT -A INPUT -s $N_LAN -p udp -m multiport --dport $P_LAN_UDP -j ACCEPT
$IT -A INPUT -s $N_LAN -p icmp --icmp-type any -j ACCEPT
exit 0
[/console]
#321593
"Me_Shock⇓" написал:
не промелькнуло эхо из скрипта

потому что в кавычки надо было заключить все

text

echo "applying firewall rules form file: /etc/network/firewall|ccze -A"
#321641
Me_Shock написал:
Kettler, у меня нету /etc/rc.local на Linux gw5 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2+deb7u2 x86_64 GNU/Linux
а iptables-restore не подходит т.к. в скрипте еще dns-ы и ntp-серверы меняются.(вплане подходит, но хочется 1м файлом)

вы спросили iptables я и показал а так да можно выполнять любой скрипт.

#321650

На это вопрос тут раз сто отвечали я даже написал...тема тут где-то феншуйная была.

Войдите или зарегистрируйтесь, чтобы ответить.