31

 Консоль:

# ls /etc/sysconfig
/bin/ls: невозможно получить доступ к /etc/sysconfig: Нет такого файла или каталога
И какого чуда вы от него хотите?
Хотите, чтоб лежал файл с сохранёнными правилами внутри /etc/sysconfig, создайте этот каталог.
Хотите, чтобы лежал в другом месте -- пропишите вывод/загрузку в/из другого места.

Никакой магии, всё честно.

32

bormant,
подскажи пожалуйста, чтобы добавить защиту от SYN-flood нужны эти значения?

$IPT -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
$IPT -A INPUT -p tcp --syn -j DROP

и если да, в эту часть скрипта добавить ?

$IPT  -A  INPUT -m  state --state  RELATED,ESTABLISHED -j  ACCEPT
$IPT  -A  INPUT -p  icmp -j  ACCEPT
+ открыть спойлер

#!/bin/bash
# IPTables Location
IPT="/usr/sbin/iptables"
IPTS="/usr/sbin/iptables-save"
IPTR="/usr/sbin/iptables-restore"

# Save and Restore arguments handled here
if [ "$1" = "save" ]
then
    echo -n "Saving firewall to /etc/rc.d/init.d/iptables ... "
    $IPTS > /etc/rc.d/init.d/iptables
    echo "done"
    exit 0
elif [ "$1" = "restore" ]
then
    echo -n "Restoring firewall from /etc/rc.d/init.d/iptables ... "
    $IPTR < /etc/rc.d/init.d/iptables
    echo "done"
    exit 0
fi

#flush policy
$IPT  -F
$IPT  -X

#default policy
$IPT  -P  FORWARD ACCEPT
$IPT  -P  OUTPUT ACCEPT
$IPT  -P  INPUT DROP

#create custom chain
$IPT  -N  POLICY

# INPUT policy
$IPT  -A INPUT -i lo -j ACCEPT
$IPT  -A OUTPUT -o lo -j ACCEPT

$IPT  -A  INPUT -s  127.0.0.1 -j  ACCEPT
$IPT  -A  INPUT -d  127.0.0.1 -j  ACCEPT

$IPT  -A  INPUT -m  state --state  RELATED,ESTABLISHED -j  ACCEPT
$IPT  -A  INPUT -p  icmp -j  ACCEPT

#jump to chain
$IPT  -A  INPUT -j  POLICY

#chain policy
##$IPT  -A  POLICY -p  tcp -m  tcp --dport  53  -j  ACCEPT
##$IPT  -A  POLICY -p  udp -m  udp --dport  53  -j  ACCEPT
##$IPT  -A  POLICY -p  tcp -m  tcp --dport  22  -j  ACCEPT
##$IPT  -A  POLICY -p  tcp -m  tcp --dport  80  -j  ACCEPT
##$IPT  -A  POLICY -p  tcp -m  tcp --dport  443 -j  ACCEPT

#dobavit kogo nuzhno, kakie seti ili ip ne ukazani sdes dostupa ne imeut
#deaggregated 192.168.115.0 - 192.168.221.255
$IPT  -A  POLICY  -s 10.116.15.192/30 -j  ACCEPT
$IPT  -A  POLICY  -s 10.116.15.196/31 -j  ACCEPT
$IPT  -A  POLICY  -s 10.60.15.155/32 -j  ACCEPT
NET_OK="192.168.115.0/24 192.168.116.0/22 192.168.120.0/21 192.168.128.0/18 192.168.192.0/20 192.168.208.0/21 192.168.216.0/22 192.168.220.0/23 192.168.221.0/32"

for N in $NET_OK ; do
  $IPT -A POLICY -p ALL -s $N -j ACCEPT
  done

33

после перезагрузки правила iptables так и не восстанавливаются  ac приходится заново запускать rc.firewall а затем iptables-save

34

 Консоль:

# ls -l /etc/rc.d/rc.firewall
-rwxr-xr-x 1 root root 28562 2011-09-19 07:53 /etc/rc.d/rc.firewall

# grep /rc.firewall /etc/rc.d/rc.inet2
if [ -x /etc/rc.d/rc.firewall ]; then
  /etc/rc.d/rc.firewall start

# ls -l /etc/rc.d/rc.inet2
-rwxr-xr-x 1 root root 4914 2010-11-11 12:30 /etc/rc.d/rc.inet2

# grep rc.inet2 /etc/rc.d/rc.M
if [ -x /etc/rc.d/rc.inet2 ]; then
  . /etc/rc.d/rc.inet2

# grep -F /rc.M /etc/inittab
rc:2345:wait:/etc/rc.d/rc.M

При старте системы запускается init, который читает inittab, на 2345 уровнях запуска стартует /etc/rc.d/rc.M, который при наличии атрибута исполнения запускает /etc/rc.d/rc.inet2, который при наличии атрибута исполнения запускает /etc/rc.d/rc.firewall start.

"rc.firewall save" и "rc.firewall restore" в системных скриптах изначально не используются.

Проверяйте, что у вас не так.

35 (26.01.2012 16:12:24 отредактировано mil612)

ввел представленные выше команды, результат следующий

 Консоль:
# ls -l /etc/rc.d/rc.firewall
-rwxr-xr-x 1 admin users 2385 2012-01-26 12:56 /etc/rc.d/rc.firewall

# grep /rc.firewall /etc/rc.d/rc.inet2
if [ -x /etc/rc.d/rc.firewall ]; then
  /etc/rc.d/rc.firewall start

# grep /rc.firewall /etc/rc.d/rc.inet2
if [ -x /etc/rc.d/rc.firewall ]; then
  /etc/rc.d/rc.firewall start

# ls -l /etc/rc.d/rc.inet2
-rwxr-xr-x 1 root root 4847 2007-09-18 02:07 /etc/rc.d/rc.inet2

# grep rc.inet2 /etc/rc.d/rc.M
if [ -x /etc/rc.d/rc.inet2 ]; then
  . /etc/rc.d/rc.inet2

# grep -F /rc.M /etc/inittab
rc:2345:wait:/etc/rc.d/rc.M


и в скрипе я вроде указал что и откуда брать

# Save and Restore arguments handled here
if [ "$1" = "save" ]
then
    echo -n "Saving firewall to /etc/rc.d/init.d/iptables ... "
    $IPTS > /etc/rc.d/init.d/iptables
    echo "done"
    exit 0
elif [ "$1" = "restore" ]
then
    echo -n "Restoring firewall from /etc/rc.d/init.d/iptables ... "
    $IPTR < /etc/rc.d/init.d/iptables
    echo "done"
    exit 0
fi

36 (26.01.2012 16:30:46 отредактировано bormant)

Ваш скрипт содержит действия только на "save" и "restore", но не содержит реакции на "start".
При старте машины вызывается /etc/rc.d/rc.firewall с параметром "start", при таком вызове ваш скрипт ничего не делает (если он тут приведён целиком).

if [ "$1" = "save" ]       # "start" = "save"? нет
elif [ "$1" = "restore" ]  # "start" = "restore"? нет
fi

А как уже говорил выше

bormant пишет:

"rc.firewall save" и "rc.firewall restore" в системных скриптах изначально не используются.

Что делать - решать вам. Можно поправить /etc/rc.d/rc.inet2 на предмет вызова с параметром "restore" вместо start. Можно поправить скрипт, дописав реакцию на start как на restore. Можно ещё что угодно. Но решать вам.

37

Не слушай их. Из 4-5 графических настройщиков файерволов самый доходчивый оказался kguarddog.
Файервол в Юниксе должен быть обязательно!
Зайди на фтр сайт ftp://nobody:nobody@109.87.162.170/pub/linux/kguarddog/kguarddog-2.5-i486-1.tgz скачай и установи.
Он требует qt3. Версия 2.6 изменила знак галок.

38 (29.02.2012 19:56:45 отредактировано mil612)

SOS!
Подскажите как правильно написать логирование, чтобы там были записи о всех резаных пакетах?
Я так понял, что нужно прописать это

 Консоль:
iptables  -A  INPUT  -m limit  --limit  3/minute  --limit-burst  3  -j  LOG  --log-level  DEBUG  --log-prefix  "INPUT packet:  "

и что нужно добавить в syslog-ng.conf?
сам скрипт ниже

+ открыть спойлер

#!/bin/bash

# rc.firewall script started
firewall_start() {
if [ -x /etc/rc.d/rc.firewall ]; then
   echo "Starting rc.firewall: /etc/rc.d/rc.firewall"
   . /etc/rc.d/rc.firewall start
   fi
}

# IPTables Location
IPT="/usr/sbin/iptables"
IPTS="/usr/sbin/iptables-save"
IPTR="/usr/sbin/iptables-restore"

# Save and Restore arguments handled here cat /etc/rc.d/init.d/iptables
if [ "$1" = "save" ]
then
    echo -n "Saving firewall to /etc/rc.d/init.d/iptables ... "
    $IPTS > /etc/rc.d/init.d/iptables
    echo "done"
    exit 0
elif [ "$1" = "restore" ]
then
    echo -n "Restoring firewall from /etc/rc.d/init.d/iptables ... "
    $IPTR < /etc/rc.d/init.d/iptables
    echo "done"
    exit 0
fi

# flush policy
$IPT  -F
$IPT  -X

# default policy
$IPT  -P  FORWARD ACCEPT
$IPT  -P  OUTPUT ACCEPT
$IPT  -P  INPUT DROP

# create custom chain
$IPT  -N  POLICY

# INPUT policy
$IPT  -A INPUT -i lo -j ACCEPT
$IPT  -A OUTPUT -o lo -j ACCEPT

$IPT  -A  INPUT -s  127.0.0.1 -j  ACCEPT
$IPT  -A  INPUT -d  127.0.0.1 -j  ACCEPT

$IPT  -A  INPUT -m  state --state  RELATED,ESTABLISHED -j  ACCEPT
$IPT  -A  INPUT -p  icmp -j  ACCEPT

# jump to chain
$IPT  -A  INPUT -j  POLICY

# chain policy
#$IPT  -A  POLICY -p  tcp -m  tcp --dport  53  -j  ACCEPT
#$IPT  -A  POLICY -p  udp -m  udp --dport  53  -j  ACCEPT
#$IPT  -A  POLICY -p  tcp -m  tcp --dport  22  -j  ACCEPT
#$IPT  -A  POLICY -p  tcp -m  tcp --dport  80  -j  ACCEPT
#$IPT  -A  POLICY -p  tcp -m  tcp --dport  443 -j  ACCEPT

# dobavit kogo nuzhno, kakie seti ili ip ne ukazani sdes dostupa ne imeut
# deaggregated 192.168.115.0 - 192.168.221.255
$IPT  -A  POLICY  -s 10.116.15.192/30 -j  ACCEPT
$IPT  -A  POLICY  -s 10.116.15.196/31 -j  ACCEPT
$IPT  -A  POLICY  -s 10.60.15.155/32 -j  ACCEPT
$IPT  -A  POLICY  -s 10.60.16.37/32 -j  ACCEPT
$IPT  -A  POLICY  -s 192.168.38.137/32 -j  ACCEPT
$IPT  -A  POLICY  -s 192.168.15.62/32 -j  ACCEPT
NET_OK="192.168.115.0/24 192.168.116.0/22 192.168.120.0/21 192.168.128.0/18 192.168.192.0/20 192.168.208.0/21 192.168.216.0/22 192.168.220.0/23 192.168.221.0/32"

for N in $NET_OK ; do
  $IPT -A POLICY -p ALL -s $N -j ACCEPT
  done

# Включить перенаправление пакетов через ядро
echo "1" > /proc/sys/net/ipv4/ip_forward