The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Вопрос по файрволу"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Сеть. проблемы, диагностика / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Вопрос по файрволу"  +/
Сообщение от Onyx email on 19-Июн-11, 12:00 
wCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
LanOut="tun0"            # внешний интерфейс
LanIn="re0"            # внутренний интерфейс
IpOut="192.168.0.2" # внешний IP адрес машины
IpIn="172.168.90.2"   # внутренний IP машины
ppp="tun0"
NetMask="24"            # маска сети (если она разная для внешней
                        # и внутренней сети - придётся вводить ещё
                        # одну переменную, но самое забавное, что
                        # можно и забить - оставить 24 - всё будет
                        # работать, по крайней мере я пробовал -
                        # работаало на 4-х машинах, в разных сетях,
                        # с разными масками - настоящими разными! но -
                        # это неправильно.)
NetIn="172.168.90.0"    # Внутренняя сеть

# Сбрасываем все правила:
${FwCMD} -f flush

# Проверяем - соответствует ли пакет динамическим правилам:
${FwCMD} add check-state

#${fw} add divert natd all from ${innet} to any out via ${outif}
#${fw} add divert natd all from any to ${outip} in via ${outif}
#${fw} add allow tcp from ${initp},${outip} to any xmit ${outif} setup
${PFwCMD} add deny ip from any to any

# Разрешаем весь траффик по внутреннему интерфейсу (петле)
# Вообще я во многих местах читал что без него может ничё не заработать вообще
# и прочие страшилки. Работает - почта, апач, .... А вот squid - не работает :)
# так что без него и правда - никуда.
${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


# Вводим запреты:
# режем частные сети на внешнем интерфейсе - по легенде он у нас
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 192.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 240.0.0.0/4 in via ${LanOut}
# рубим фрагментированные icmp
${FwCMD} add deny icmp from any to any frag
#${FwCMD} add deny icmp from 172.168.90.0/24 to any via ${LanOut}
# рубим широковещательные 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}

# а тут собственно файрволл и начался:

#${FwCMD} add allow tcp from ${IpIn},${IpOut} to any out xmit ${LanOut} setup
#${fw} add divert natd all from ${} to any out via ${LanOut}
#${fw} add divert natd all from any to ${IpOut} in via ${LanOut}
# отправляем всех на frox
#${FwCMD} add fwd ${IpIn},2121 tcp from ${NetIn}/${NetMask} to any 21 via ${LanOut}
# отправляем всех на squid (в данном случае - прокси прозрачный)
#${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
${FwCMD} add fwd 127.0.0.1,80 tcp from ${NetIn}/${NetNask} to any 80 via ${LanOut}

# пропускаем траффик через трансляцию сетевых адресов (NAT)

${FwCMD} add divert natd ip from any  to 172.168.90.1 out via ${LanOut}
${FwCMD} add divert natd ip from 172.168.90.1 to any in via ${LanOut}
#${FwCMD} add allow icmp from any to 172.168.90.1/255.255.255.0 in via ${LanOut}
#${FwCMD} add allow icmp from 172.168.90.1/255.255.255.0 to any out via ${LanOut}

# рубим траффик к частным сетям через внешний интерфейс
# заметтьте - эти правила отличаются от тех что были выше!
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 192.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}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}


# разрешаем все установленные соединения (если они установились -
# значит по каким-то правилам они проходили.)
#${FwCMD} add allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно? :))
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
${FwCMD} add allow udp from any to any 53 via ${LanOut}
# разрешаем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}
# разрешаем 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} 21 via ${LanOut}
#Можно изгалиться примерно так, если есть желание, но я предпочитаю руками
#${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}
# разрешаем некоторые типы ICMP траффика - эхо-запрос,
# эхо-ответ и время жизни пакета истекло
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 80 порт - если у нас есть WWW сервер на машине
${FwCMD} add allow tcp from any to ${IpOut} 80 via ${LanOut}
# открываем снаружи 25 порт (SMTP) если на машине крутится почта
#${FwCMD} add allow tcp from any to ${IpOut} 25 via ${LanOut}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${FwCMD} add allow tcp from any to ${IpOut} 2233 via ${LanOut}
${FwCMD} add deny tcp from any to any 22 via ${LanOut}
# открываем снаружи 143 порт(если надо смотреть почту снаружи по IMAP)
${FwCMD} add allow tcp from any to ${IpOut} 143 via ${LanOut}
# открываем снаружи 110 порт(если надо смотреть почту снаружи по POP)
${FwCMD} add allow tcp from any to ${IpOut} 110 via ${LanOut}
# по поводу следующих трёх правил, для tcp, udp и icmp - их можно
# заменить одним правилом:
#${FwCMD} add allow ip from any to any via ${LanIn}
# но для удобства наладки и контроля происходящего я предпочитаю три отдельных
# правила, хотя могут быть грабли - например протокол gre не пройдёт -
# придётся стругать отдельное правило для него, типа
#${FwCMD} add allow gre from any to any via ${LanIn}
# итак:
# разрешаем весь tcp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow tcp from any to any via ${LanIn}
# разрешаем весь udp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow udp from any to any via ${LanIn}
# разрешаем весь icmp траффик внутри локалки (на внутреннем интерфейсе)
${FwCMD} add allow icmp from any to any via ${LanIn}
# запрещаем всё и всем. Если тип файрволла не open то это правило добавится
# автоматически, но всё-же ну его. Лучше сам. Надёжней.
#${FwCMD} add deny ip from any to any
#${FwCMD} add deny icmp from any to any
#${FwCMD} add allow icmp from any to 172.168.90.1 in via ${LanOut}
#${FwCMD} add allow icmp from 172.168.90.1 to any out via ${LanOut}
#${FwCMD} add allow tcp from any to 172.168.90.1 in via ${LanOut}
##${FwCMD} add allow tcp from 172.168.90.1 to any out via ${LanOut}
#${FwCMD} add allow udp from any to 172.168.90.1 in via ${LanOut}
#${FwCMD} add allow udp from 172.168.90.1 to any out via ${LanOut}

как мне разрешить впн из внутренней сетки в наружу с люого компа
как запретить все порты кроме перечисленных в конфе!
Спспио всем отклинувшимся!

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Вопрос по файрволу"  +/
Сообщение от Aquarius (ok) on 19-Июн-11, 13:22 

что есть "впн"?
> как мне разрешить впн из внутренней сетки в наружу с люого компа

все порты где?
> как запретить все порты кроме перечисленных в конфе!
> Спспио всем отклинувшимся!

P.S. откуда взялось то, что у вас уже есть?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Вопрос по файрволу"  +/
Сообщение от Onyx email on 19-Июн-11, 14:06 
> что есть "впн"?
>> как мне разрешить впн из внутренней сетки в наружу с люого компа
> все порты где?
>> как запретить все порты кроме перечисленных в конфе!
>> Спспио всем отклинувшимся!
> P.S. откуда взялось то, что у вас уже есть?

Имеется ввиду меня все устравиет кром етого что с компьютера каторый в нат сети немогу подключиться к серверу файрвол стоящий на проксе не пропускает! незнаю какие порты у впн и как жто в правилах прописать!
и например с внешки на проксю ломлюсь на порт 2233 эт у мня ссш он пускает но мне нужно чтобы он был закрыт файрвоом :) Вот Сэнкс

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Вопрос по файрволу"  +/
Сообщение от Onyx email on 19-Июн-11, 14:08 
>[оверквотинг удален]
>>> как запретить все порты кроме перечисленных в конфе!
>>> Спспио всем отклинувшимся!
>> P.S. откуда взялось то, что у вас уже есть?
> Имеется ввиду меня все устравиет кром етого что с компьютера каторый в
> нат сети немогу подключиться к серверу файрвол стоящий на проксе не
> пропускает! незнаю какие порты у впн и как жто в правилах
> прописать!
> и например с внешки на проксю ломлюсь на порт 2233 эт у
> мня ссш он пускает но мне нужно чтобы он был закрыт
> файрвоом :) Вот Сэнкс

А да конф переделал взяв информацию http://www.lissyara.su/

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Вопрос по файрволу"  +/
Сообщение от Aquarius (ok) on 19-Июн-11, 16:14 
>> что есть "впн"?
>>> как мне разрешить впн из внутренней сетки в наружу с люого компа
>> все порты где?
>>> как запретить все порты кроме перечисленных в конфе!
>>> Спспио всем отклинувшимся!
>> P.S. откуда взялось то, что у вас уже есть?

ЧТО ЗА ВПН?! PPTP?

> Имеется ввиду меня все устравиет кром етого что с компьютера каторый в
> нат сети немогу подключиться к серверу файрвол стоящий на проксе не
> пропускает! незнаю какие порты у впн и как жто в правилах
> прописать!
> и например с внешки на проксю ломлюсь на порт 2233 эт у
> мня ссш он пускает но мне нужно чтобы он был закрыт
> файрвоом :) Вот Сэнкс

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Вопрос по файрволу"  +/
Сообщение от Pahanivo (ok) on 19-Июн-11, 18:02 
>[оверквотинг удален]
>>> как запретить все порты кроме перечисленных в конфе!
>>> Спспио всем отклинувшимся!
>> P.S. откуда взялось то, что у вас уже есть?
> Имеется ввиду меня все устравиет кром етого что с компьютера каторый в
> нат сети немогу подключиться к серверу файрвол стоящий на проксе не
> пропускает! незнаю какие порты у впн и как жто в правилах
> прописать!
> и например с внешки на проксю ломлюсь на порт 2233 эт у
> мня ссш он пускает но мне нужно чтобы он был закрыт
> файрвоом :) Вот Сэнкс

в первом ответе вам вполне конкретно намекнули, что для того чтобы что-то разрешить в фаере надо хотя бы знать что разрешать ...
а посты типа "а вот тут наковырял по какому то хау-ту, но сам нихрена не понимаю что происходит" оставте для детсада.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру