Я так понимаю под дебиан настругал
Цитата:
#!/bin/bash
## Переменные
IFACE="eth0" # Сетевой интерфейс
IPT="/sbin/iptables" # iptables
IFC="/sbin/ifconfig"
G="/bin/grep"
SED="/bin/sed"
AWK="/usr/bin/awk"
ECHO="/bin/echo"
LOCIF="eth0"
LOCIP="`$IFC $EXTIF | $AWK /$EXTIF/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'`" # В силу своей ленивости дергаем ип из ipconfig`а
SAMBA="137,138,139,445" # порты под самбу
FTP="21" # аналогично
SSH="22"
TCP_PORTS=" \
$SAMBA \
$FTP \
$SSH \"
UDP_PORTS=" \
$SAMBA \"
## Скрипт применения правил iptables
start_iptables()
{
## Настройка цепочек
# Очистка всех цепочек от правил
$IPT -F
$IPT -X
# Установка политик цепочек
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP
## Настройка правил приёма пакетов
# Принимать ESTABLISHED пакеты
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить loopback
$IPT -A INPUT -i lo -j ACCEPT
## Открытие портов
# SMB
$IPT -A INPUT -p tcp -m multiport --source $LOCIP --dports $TCP_PORTS -j ACCEPT
$IPT -A INPUT -p udp -m multiport --source $LOCIP --dports $UDP_PORTS -j ACCEPT
$IPT -A INPUT -p udp -m multiport --source $LOCIP --sports $UDP_PORTS -j ACCEPT
}
case "$1" in
start) echo -n "Starting iptables: iptables"
start_iptables
echo "."
;;
stop) echo -n "Stopping iptables: iptables"
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "."
;;
save) echo -n "Saving iptables configuration: iptables"
iptables-save > /etc/iptables.save
echo "."
;;
restart) echo -n "Restarting iptables: iptables"
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
start_iptables
echo "."
;;
reload) echo -n "Reloading iptables configuration: iptables"
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
cat /etc/iptables.save | iptables-restore
echo "."
;;
list) echo "List of iptables rules"
iptables -L
;;
*) echo "Usage: /etc/init.d/iptables.local start|stop|save|restart|reload"
exit 1
;;
esac
exit 0
|
Быстренько поправил... на глаз вроде должно работать