IP FW

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
openx
рядовой
Сообщения: 17
Зарегистрирован: 2007-07-18 14:59:21

IP FW

Непрочитанное сообщение openx » 2007-08-10 9:00:35

Прикрутил IP FW. При настройке использовал статью http://www.lissyara.su/?id=1127 по второму варианту.
Так вот вопрос , если использовать последнюю строку - ${FwCMD} add deny ip from any to any
то IE, icq и т.д. Начинают работать только при явном указании прокси - ххх.ххх.ххх.ххх:3128. А хотелось бы чтобы работало все без явного указания и только то что разрешено в файере.

И еще вопрос если я убираю ${FwCMD} add deny ip from any to any - то все что я прописываю в rc.firewall не действует?

Ядро собрано с опциями

Код: Выделить всё

options         IPFIREWALL              
options         IPFIREWALL_VERBOSE       
options         IPFIREWALL_VERBOSE_LIMIT=5 
options         IPFIREWALL_FORWARD 
options         IPDIVERT           
options         DUMMYNET     
options         IPFIREWALL_DEFAULT_TO_ACCEPT

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35092
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: IP FW

Непрочитанное сообщение Alex Keda » 2007-08-10 9:38:10

это проблема не файровлла - у тя прокси непрозрачный.
оба файрволла заточены под прозрачный.
Убей их всех! Бог потом рассортирует...

openx
рядовой
Сообщения: 17
Зарегистрирован: 2007-07-18 14:59:21

Re: IP FW

Непрочитанное сообщение openx » 2007-08-10 9:48:34

из squid.conf

http_port 3128 transparent

Вроде бы здесь устанавливается прозрачность, или я что-то упустил? :)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35092
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: IP FW

Непрочитанное сообщение Alex Keda » 2007-08-10 9:59:02

openx писал(а): Начинают работать только при явном указании прокси - ххх.ххх.ххх.ххх:3128.
это - однозначно непрозрачный.
а синтаксис конфига зависит от версии
Убей их всех! Бог потом рассортирует...

openx
рядовой
Сообщения: 17
Зарегистрирован: 2007-07-18 14:59:21

Re: IP FW

Непрочитанное сообщение openx » 2007-08-10 10:03:30

Пересобрал ядро с options IPFIREWALL_DEFAULT_TO_ACCEPT

Работает как и раньше без явного указания. Только если добавить как и писал ${FwCMD} add deny ip from any to any - то только с явным указанием.

6.0 - так что http_port 3128 transparent....

В чем еще может быть загвоздка?

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: IP FW

Непрочитанное сообщение schizoid » 2007-08-10 10:07:20

если с IPFIREWALL_DEFAULT_TO_ACCEPT и без ${FwCMD} add deny ip from any to any работает значить скорее всего у тя траф идет не через сквид
ядерный взрыв...смертельно красиво...жаль, что не вечно...

openx
рядовой
Сообщения: 17
Зарегистрирован: 2007-07-18 14:59:21

Re: IP FW

Непрочитанное сообщение openx » 2007-08-10 10:18:41

http точно через сквид, т.к. логи присутствует и по статистике видно....
т.е. ты хочешь сказать что не работает ? ${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn} to any 80 via ${LanOut}

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: IP FW

Непрочитанное сообщение schizoid » 2007-08-10 10:26:02

а хз, ты ж фаервол не показал ;)
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35092
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: IP FW

Непрочитанное сообщение Alex Keda » 2007-08-10 10:29:12

он вообще ничё не показал :)
==========
зависит от весии свкида, а не ОС
Убей их всех! Бог потом рассортирует...

openx
рядовой
Сообщения: 17
Зарегистрирован: 2007-07-18 14:59:21

Re: IP FW

Непрочитанное сообщение openx » 2007-08-10 10:29:39

Код: Выделить всё

#!/bin/sh

FwCMD="/sbin/ipfw - q "       # Бинарник IpFw; -q - подавляем вывод команд в консоль
LanOut="bge0"                # Внешняя сетевуха
NetOut="xxx"   # Внешняя сеть
IpOut="xxx"       # Внешний IP

LanIn="bge1"                  # Внутренняя сетевуха
NetIn="xxx"       # Внутренняя сеть
ip_lan="xxx"           # Шаблон внутреннегго интерфейса, нужен для разрешений на инет
IpIn="xxx"	     # Внутренний IP сервака

# сбрасываем все правила
${FwCMD} -f flush
# сбрасываем все pipe
${FwCMD} -f pipe flush
# сбрасываем очереди
${FwCMD} -f queue flush

####### DUMMYNET - Ограничиваем пропускную способность сети

${FwCMD} add pipe 1 ip from ${IpOut} to ${NetIn}
${FwCMD} pipe 1 config bw 100Mbit/s
${FwCMD} add pipe 2 ip from ${IpIn} to ${NetIn}
${FwCMD} pipe 2 config bw 100Mbit/s
# Спецтруба для мелких пакетов типа ack, если они теряются то повторные пакеты будут большего размера
${FwCMD} add pipe 3 ip from any to any tcpflags ack iplen 0-128
${FwCMD} pipe 3 config bw 100Mbit/s
# Пропускаем следующие трубы - чтобы мелкие пакеты не лимитировались
${FwCMD} add skipto 39999 ip from any to any tcpflags ack iplen 0-128

# Запускаем счетчик

i=1
while  [ $i = 252 ]
do
# Добавляем трубу для IP адреса
${FwCMD} add pipe $i ip from not ${NetIn} to 192.168.0.${i}

if [ $i -eq 110 -o $i -eq 106 ]
then
    ${FwCMD} pipe $i config bw 100 Mbit/s
# Тут позволяем кому-то до 256 Kb/s
elif [ $i -eq 18 -o $i -eq 38 ]
then
#    ${FwCMD} pipe $i config bw 256 Kbit/s
# Тут позволяем кому-то до 128 Kb/s
elif [ $i -eq 18 -o $i -eq 38 ]
then
    ${FwCMD} pipe $i config bw 128 Kbit/s
# А тут скорость всем остальным :)
else
    ${FwCMD} pipe $i config bw 128 Kbit/s
fi
#Увеличиваем i на единичку
i=i+1
done

# Проверяем временные правила (перед этим правилом возвращаются мелкие пакеты в файерволл) :
${FwCMD} add 40000 check-state

################ ENF OF DUMMYNET


# Ночью трафик ограничивем (скорость) причем жестоко режем :)
# для этого в конфиге ядра должна быть строка options DUMMYNET
# соответственно в crontab надо добавить запись типы sh /etc/rcfirewall
# с запуском вв 22.01 и в 8.01.
# Также не забыть поставить в sysctl переменную net.inet.ip.fw.one_pass в 0,
# иначе все пакеты будут выпадать из файервола после трубы а это КОСЯК !

#chour=`date '+%H'`
#
#if [ ${chour} -lt 8 ]
#then
#    ${FwCMD} add pipe 1 ip from not ${NetIn} to ${NetIn}
#    ${FwCMD} pipe 1 config bw 33600 bit/s
#fi
#if [ ${chour} -ge 22 ]
#then
#    ${FwCMD} add pipe 1 ip from not ${NetIn} to ${NetIn}
#    ${FwCMD} pipe 1 config bw 33600 bit/s
#fi

# Разрешаем весь трафик по внутреннему интерфейсу (петля)
${FwCMD} add allow ip from any to any via lo0

# Вводим запреты:


# рубим попытки lo0 лезть куда-то и откуда-то на lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

# рубим пакеты типа от внутренней сети, но на внешнем интерфейсе
${FwCMD} add deny ip from ${NetIn} to any in via ${LanOut}
# рубим пакеты типа от внешней сети, но на внутреннем интерфейсе
${FwCMD} add deny ip from ${NetOut} to any in via ${LanIn}

# режем частные сети на внешнем интерфейсе. Раз он у нас смотрит в инет,
# то им там взяться неоткуда.
# рубим частные сети
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
# рубим автоконфигуренную частную сеть
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
# рубим мультикастовые рассылки
${FwCMD} add deny ip from any to 224.0.0.0/4 in via ${LanOut}
# рубим фрагментированные ICMP
${FwCMD} add deny icmp from any to any frag
# рубим широковещательные ICMP на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}

# Отправляем всех на squid
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn} to any 80 via ${LanOut}
#${FwCMD} add fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 via ${LanOut}

# Делаем NAT (трансляцию сетевых адресов) всему, что не ушло на squid
${FwCMD} add divert natd ip from ${NetIn} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

# рубим трафик к частным сетям через внешний интерфейс
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
# рубим автоконфигуренную частную сеть
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
# рубим мультикастовые рассылки
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}

# Разрешаем некоторые типы ICMP трафика эхо-запрос,
# эхо ответ и время жизни истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11

# Разрешаем трафик на внутреннем интерфейсе (входящий)
${FwCMD} add allow ip from any to ${NetIn} in via ${LanIn}
# Разрешаем трафик на внутреннем интерфейсе (исходящий)
${FwCMD} add allow ip from ${NetIn} to any out via ${LanIn}

# Разрешаем tcp-пакеты по уже установленым соединениям
${FwCMD} add allow tcp from any to any established

# DNS - 4 правила. (если на машине есть DNS сервер - иначе надо 2)
${FwCMD} add allow udp from any to ${IpOut} 53 in via ${LanOut}
${FwCMD} add allow udp from ${IpOut} 53 to any out via ${LanOut}
${FwCMD} add allow udp from any 53 to ${IpOut} in via ${LanOut}
${FwCMD} add allow udp from ${IpOut} to any 53 out via ${LanOut}

# Разрешем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}

# Разрешаем снаружи соединяться с 53 портом (TCP DNS)
${FwCMD} add allow tcp from any to ${IpOut} 53 in via ${LanOut} setup
# Открываем снаружи 80 порт - если у нас есть WWW сервер на машине
${FwCMD} add allow tcp from any to ${IpOut} 80 in via ${LanOut} setup
# Открываем снаружи 20,21 порты - для активного FTP
${FwCMD} add allow tcp from any to ${IpOut} 20,21 in via ${LanOut} setup

# Разрешаем входящую почту
${FwCMD} add allow tcp from any to ${IpOut} 25 in via ${LanOut} setup
# Разрешаем SSH
${FwCMD} add allow tcp from any to ${IpOut} 22 in via ${LanOut} setup

# Пассивный FTP
# Для определения портранджа по которому будет работать, лезем в
# /usr/home/lissyara/>sysctl net.inet.ip.portrange.first
# net.inet.ip.portrange.first: 49152
# /usr/home/lissyara/>sysctl net.inet.ip.portrange.last
# net.inet.ip.portrange.last: 65535
# Можно поизгаляться примерно так,если есть желание, но мы ручками :)
#${FwCMD} add allow tcp from any to ${IpOut} \
#`sysctl net.inet.ip.portrange.first | awk '{print $2}'`-\
#`sysctl net.inet.ip.portrange.last | awk '{print $2}'` via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}

# COUNTER-STRIKE (БЕЗ КОМЕНТАРИЕВ :))))
${FwCMD} add allow udp from any 27015-27025 to ${NetIn} in via ${LanOut}
${FwCMD} add allow udp from any 27015-27025 to ${NetIn} out via ${LanIn}
${FwCMD} add allow udp from ${NetIn} to any 27015-27025 in via ${LanIn}
${FwCMD} add allow udp from ${IpOut} to any 27015-27025 out via ${LanOut}

# Блокируем все остальные соединения с занесением в логи
${FwCMD} add deny log tcp from any to ${IpOut} in via ${LanOut} setup
${FwCMD} add allow tcp from ${IpOut} to any out via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} in via ${LanIn} setup

######################## BEGIN USERS   ###############################

# Разрешаем всем (ICQ)
${FwCMD} add allow tcp from ${NetIn} to any 5190 in via ${LanIn} setup

# Пользователи которым разрешен интернет
${FwCMD} add allow tcp from any to not ${NetIn} in via ${LanIn} setup
#${FwCMD} add allow tcp from ${ip_lan}.153 to not ${NetIn} in via ${LanIn} setup
#${FwCMD} add allow tcp from ${ip_lan}.154 to not ${NetIn} in via ${LanIn} setup

############# END USERS #################################

# Запрещаем все и всем. Если тип файерволла не open то это правило добавится
# автоматически, но все таки. Лучше прописать. Надежнее!
#${FwCMD} add deny ip from any to any

############## Баним подозрительных
${FwCMD} add deny ip from 220.178.4.124 to any
${FwCMD} add deny ip from 203.223.152.214 to any

openx
рядовой
Сообщения: 17
Зарегистрирован: 2007-07-18 14:59:21

Re: IP FW

Непрочитанное сообщение openx » 2007-08-10 12:13:22

Заработало изменением правила

Код: Выделить всё

${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn} to any 80 via ${LanOut} на ${FwCMD} add fwd ${IpIn},3128 tcp from ${NetIn} to any 80 via ${LanIn}
Только вопрос, при ipfw show последние две строчки

Код: Выделить всё

deny ip from any to any
allow ip from any to any
т.е. первая строчка пропускается.... так? :)

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

Re: IP FW

Непрочитанное сообщение schizoid » 2007-08-10 12:31:16

а ты счетчик посмотри и станет ясно
ядерный взрыв...смертельно красиво...жаль, что не вечно...