lug-bg: скрипт за спиране/пускане на защитната стена и допълнителни мрежови настройки
- Subject: lug-bg: скрипт за спиране/пускане на защитната стена и допълнителни мрежови настройки
- From: Валентин Стойков <valentin_st@xxxxxxx>
- Date: Sun, 18 Sep 2005 18:19:07 +0300
- Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
- Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx
Написах един скрипт, който стартира скриптовете, генерирани от Guarddog и
Guidedog (това са програми за защитна стена и допълнителни мрежови настройки
(маршрутизиране, пренасочване)) и също така анулира настройките, които
последните правят.
Във файла rc.M (след частта, където се стартира rc.inet1) сложих:
# Turn on firewall, routing and IP forwarding
if [ -x /etc/rc.d/rc.inet1.1 ]; then
/etc/rc.d/rc.inet1.1 start
fi
Това е скрипта:
--- начало
-------------------------------------------------------------------------------------------------
#!/bin/sh
#
# rc.inet1.1 Стартиране/спиране на защитната стена, маршрутизирането
# и пренасочването на портове (firewall, routing, IP
forwarding).
# Този скрипт е написан за дистрибуцията VS Live. Служи за
# стартиране на скриптовете, генерирани от Guarddog и Guidedog и
# за анулиране на настройките, които тези скриптове правят.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details:
# http://www.gnu.org/licenses/gpl.html
#
RETVAL=0
case "$1" in
start)
echo -n "Starting firewall... "
if [ -x /etc/rc.firewall ]; then
/etc/rc.firewall
else
echo "/etc/rc.firewall not found. Doing nothing."
fi
echo -n "Starting guidedog... "
if [ -x /etc/rc.guidedog ]; then
/etc/rc.guidedog
else
echo "/etc/rc.guidedog not found. Doing nothing."
fi
;;
stop)
echo -n "Stopping firewall, routing and forwarding..."
/sbin/sysctl -w net.ipv4.ip_forward=0
# Спиране на защитната стена (преписано от
http://projectfiles.com/firewall/):
iptables -t filter -F > /dev/null 2>&1
iptables -t filter -X > /dev/null 2>&1
iptables -t nat -F > /dev/null 2>&1
iptables -t nat -X > /dev/null 2>&1
iptables -t mangle -F > /dev/null 2>&1
iptables -t mangle -X > /dev/null 2>&1
iptables -t filter -P INPUT ACCEPT > /dev/null 2>&1
iptables -t filter -P OUTPUT ACCEPT > /dev/null 2>&1
iptables -t filter -P FORWARD ACCEPT > /dev/null 2>&1
iptables -t nat -P PREROUTING ACCEPT > /dev/null 2>&1
iptables -t nat -P POSTROUTING ACCEPT > /dev/null 2>&1
iptables -t nat -P OUTPUT ACCEPT > /dev/null 2>&1
iptables -t mangle -P POSTROUTING ACCEPT > /dev/null 2>&1
iptables -t mangle -P OUTPUT ACCEPT > /dev/null 2>&1
iptables -t mangle -P PREROUTING ACCEPT > /dev/null 2>&1
iptables -t mangle -P INPUT ACCEPT > /dev/null 2>&1
iptables -t mangle -P FORWARD ACCEPT > /dev/null 2>&1
for MODULE in ipt_TTL iptable_mangle ipt_mark ipt_MARK
ipt_MASQUERADE ip_nat_irc ip_nat_ftp ipt_LOG \
ipt_limit ipt_REJECT ip_conntrack_irc ip_conntrack_ftp
ipt_state iptable_nat iptable_filter ip_tables; do
if (( `lsmod | grep -c "$MODULE"` )); then
rmmod $MODULE > /dev/null 2>&1
fi
done
echo "Firewall disabled."
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit $RETVAL
---
край------------------------------------------------------------------------------------------------------------------
--
Част от скрипта преписах от http://projectfiles.com/firewall/.
Не съм сигурен дали тази част, която се изпълнява при [ "$1" = stop ] е пълна.
Валентин Стойков
http://vstoykov.hit.bg/
|