Добрый день, интересует вопрос.
У нас на предприятие в своё время был написан и нормально работал шлюз под gentoo, но его время вышло и сотрудника который этим занимался, уже нету.
Сей вопрос заключается в том что как перенести демон на ubuntu.
#!/sbin/runscript
opts="panic staticarp"
IPTABLES="/sbin/iptables"
WORKDIR="/opt/firewall"
CONFIG="$WORKDIR/firewall.conf"
CHAINS="$WORKDIR/rules.d/chains"
IN="$WORKDIR/rules.d/input"
FW="$WORKDIR/rules.d/forward"
OUT="$WORKDIR/rules.d/output"
ADD="$WORKDIR/rules.d/additional"
depend() {
before net
use logger
}
rules() {
if [ -f "$CONFIG" ]; then
. "$CONFIG"
else
echo "Warning: $CONFIG not found."
exit
fi
#=============================================================================
if [ -f "$CHAINS" ]; then
. "$CHAINS"
else
echo "Warning: $CHAINS not found."
exit
fi
#=============================================================================
if [ -f "$IN" ] & [ -f "$FW" ] & [ -f "$OUT" ] & [ -f $ADD ] || echo "Rulesets not found";
then
. "$IN"
. "$FW"
. "$OUT"
. "$ADD"
fi
einfo "sysctl: Start packet forwarding"
echo "1" > /proc/sys/net/ipv4/ip_forward
}
######## END OF MAIN SECTION
######## ADDITIONAL PROCEDURES
staticarp() {
i="1"
ethers="$WORKDIR/rules.d/arp.map"
#УФЙТБЕН УХЭЕУФЧХАЭЙЕ ЪБРЙУЙ Ч arp-ФБВМЙГЕ
while [ $i -ne 255 ]
do
arp -d 192.168.4.$i &> /dev/null
i=`expr $i + 1`
done
#ХДБМЕН УХЭЕУФЧХАЭЙК ЖБКМ УППФЧЕФУФЧЙК Й ЗЕОЕТЙН nmap'ПН ОПЧХА arp-ЛБТФХ УЕФЙ
rm $ethers &> /dev/null
nmap -sS $LAN1 -p 139 &> /dev/null
#РТПЧЕТСЕФ ЕУФШ МЙ ЖБКМ У arp-ЪБРЙУСНЙ, ЕУМЙ ОЕФХ ФП УПЪДБЕФ ЕЗП ЙЪ ФЕЛХЭЕК arp-ФБВМЙГЩ
#ДБМЕЕ Ч ГЙЛМЕ ЪБЗПОСЕФ УФБФЙЮЕУЛЙЕ ЪБРЙУЙ Ч arp-ФБВМЙГХ ВЕТС ДБООЩЕ ЙЪ ЬФПЗП ЖБКМБ
#рТЙНЕЮБОЙЕ.! ЖБКМ НПЦОП ТЕДБЛФЙТПЧБФШ ЧОПУС ЙЪНЕОЕОЙС
if [ -f $ethers ] || arp |grep -v Address |awk '{ print $1" "$3}' >> $ethers;
then
while read line
do
/sbin/arp -s $line
if [ $? -ne 0 ]; then
echo "WARNING: can't to set $line"
fi
done < $ethers
fi
}
######## BEGIN MAIN PROCEDURES SECTION
start() {
ebegin "Starting firewall"
rules
eend $?
}
stop() {
ebegin "Stopping firewall. INPUT and OUTPUT tables will set to ACCEPT policy now"
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
echo "0" > /proc/sys/net/ipv4/ip_forward
eend $?
}
panic() {
ebegin "Activating Panic - all network connections will droped"
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
echo "0" > /proc/sys/net/ipv4/ip_forward
eend $?
}
Сам шлюз работает через iptables.