The OpenNET Project / Index page

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



"ipfw + nat"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"ipfw + nat"  +/
Сообщение от Rus email(??) on 06-Июн-18, 07:00 
Добрый день!
Пытаюсь настроить файрвол таким образом что бы по умолчаию у него стоял запрет и разрешить только нужные порты!
Так же сервер является шлюзом в интернет т.е. я включаю нат ! Но у меня не получается настроить!
Я облазил весь интернет делал как написано и свой конф состовлял !
Проблема следующая работает если файрвол открытый, но это не то что нужно по моей задаче, лиюо закрытый но тогда перестает работать нат!
Помогите с моим конфигурационным скриптом:
#!/bin/sh
####  Источник https://www.freebsd.org/doc/ru/books/handbook/firewalls-ipfw...
############### Начало файла с правилами IPFW ###############################
# Сброс всех правил перед началом работы скрипта.
/sbin/ipfw -q -f flush
/sbin/ipfw -q -f nat flush

# Префикс для создания правил
CMD="/sbin/ipfw add"        # команда

PIF_OUT="em0"        # имя сетевой карты, которая смотрит в Интернет
PIF_IN="em1"         # имя внутренней карты

########################
# Секция безопасности
########################
# Запрет X-сканирования

/sbin/ipfw nat 1 config if ${PIF_OUT} log
echo start
ipfw list
echo go
#${CMD} 00006 nat 1 ip from any to any via ${PIF_OUT} keep-state

${CMD} 00030 reject log tcp from any to any tcpflags fin, syn, rst, psh, ack, urg via ${PIF_OUT}
## Запрет N-сканирования:
${CMD} 00040 reject log tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg via ${PIF_OUT}
## Запрет FIN-сканирования:
${CMD} 00050 reject log tcp from any to any not established tcpflags fin via ${PIF_OUT}
## Защита от спуфинга (подмена адреса отправителя)
${CMD} 00060 deny log ip from any to any not verrevpath in via ${PIF_OUT}
# Ограничение числа одновременных соединений:
${CMD} 00070 allow ip from any to any setup limit src-addr 50
###    ${CMD} 00060 allow ip from any to any via ${PIF_IN}
###    ${CMD} 00070 nat 1 ip from any to any via ${PIF_OUT} keep-state

# Разрешаем исходящую функцию отправки и приема почты
#${CMD} 00225 allow tcp from any to any 25 out via ${PIF_OUT}
#${CMD} 00227 allow tcp from any to any 110 out via ${PIF_OUT}
# Разрешаем исходящий пинг
${CMD} 00250 allow icmp from me to any via ${PIF_OUT} keep-state
# Разрешаем исходящий Time
${CMD} 00255 allow all from any to any 123 out via ${PIF_OUT}

# Разрешить исходящий трафик к DNS серверу провайдера
# Продублируйте эти строки, если у вас больше одного DNS сервера
# Эти IP адреса можно взять из файла /etc/resolv.conf
${CMD} 00110 allow tcp from me to any 53 via ${PIF_OUT} keep-state
${CMD} 00111 allow udp from me to any 53 via ${PIF_OUT} keep-state

#### разрешить ДНС
#${CMD} 00100 allow udp from me to any 53 out via ${PIF_OUT}
# разрешить http
${CMD} 00200 allow tcp from any to any 80 out via ${PIF_OUT} setup keep-state
#  разрешить https
${CMD} 00300 allow tcp from any to any 443 out via ${PIF_OUT} setup keep-state
# разрешить ssh
${CMD} 00400 allow tcp from any to any 22 out via ${PIF_IN} setup keep-state
${CMD} 00401 allow tcp from any to any 2233 via ${PIF_IN} setup keep-state

# Запрещаем весь входящий траффик из зарезервированных адресных пространств по внешней сети
${CMD} 01301 deny all from 192.168.0.0/16 to any in via ${PIF_OUT} #RFC 1918 private IP
${CMD} 01301 deny all from 172.16.0.0/12 to any in via ${PIF_OUT}  #RFC 1918 private IP
${CMD} 01302 deny all from 10.0.0.0/8 to any in via ${PIF_OUT}     #RFC 1918 private IP
${CMD} 01303 deny all from 127.0.0.0/8 to any in via ${PIF_OUT}    #loopback
${CMD} 01304 deny all from 0.0.0.0/8 to any in via ${PIF_OUT}      #loopback
${CMD} 01305 deny all from 169.254.0.0/16 to any in via ${PIF_OUT} #DHCP auto-config
${CMD} 01306 deny all from 192.0.2.0/24 to any in via ${PIF_OUT}   #reserved for docs
${CMD} 01307 deny all from 204.152.64.0/23 to any in via ${PIF_OUT} #Sun cluster interconnect
${CMD} 01308 deny all from 224.0.0.0/3 to any in via ${PIF_OUT}    #Class D & E multicast
# ${CMD} 01309 check-state
# запретить все  по умолчанию
# Запрещаем и заносим в журнал все пакеты для дальнейшего анализа


# Запрещаем пинг извне
#${CMD} 00310 deny icmp from any to any in via ${PIF_OUT}:!

# Запрещаем ident
#${CMD} 00315 deny tcp from any to any 113 in via $pif

# Запрещаем все Netbios службы. 137=name, 138=datagram, 139=session
# Netbios это MS/Windows сервис обмена.
# Блокируем MS/Windows hosts2 запросы сервера имен на порту 81
${CMD} 00320 deny tcp from any to any 137 in via ${PIF_OUT}
${CMD} 00321 deny tcp from any to any 138 in via ${PIF_OUT}
${CMD} 00322 deny tcp from any to any 139 in via ${PIF_OUT}
${CMD} 00323 deny tcp from any to any 81 in via ${PIF_OUT}

# Запрещаем любые опоздавшие пакеты
${CMD} 00330 deny all from any to any frag in via ${PIF_OUT}

# Запрещаем ACK пакеты, которые не соответствуют динамической таблице правил.
#${CMD} 00332 deny tcp from any to any established in via ${PIF_OUT}


# Ра�азре�шить НАТ
${CMD} 00021 allow ip from any to any via ${PIF_IN}
${CMD} 00020 nat 1 ip from xxx.xxx.xxx.xxx/24 to any via ${PIF_OUT} keep-state # вместо xxx у меня ip
#${CMD} 00011 deny ip from any to any via ${PIF_OUT}
#${CMD} 10000 deny log ip from any to any
#${CMD} 00060 nat 1 ip from any to any via ${PIF_OUT} keep-state
################ Конец файла правил IPFW ###############################

В какую сторону копать ? (Что бы был запрет по умалчанию deny any to any но при этом с локалки я бы ходил в интернет по 443 и 80 порту - кончено и 53!)

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

Оглавление

  • ipfw + nat, Pahanivo, 09:39 , 06-Июн-18, (1)  
    • ipfw + nat, fx, 11:58 , 06-Июн-18, (3)  
      • ipfw + nat, Pahanivo, 14:52 , 06-Июн-18, (4) +1  
        • ipfw + nat, fx, 15:35 , 06-Июн-18, (5)  
          • ipfw + nat, Pahanivo, 17:02 , 06-Июн-18, (6)  
            • ipfw + nat, fx, 17:36 , 06-Июн-18, (7)  
              • ipfw + nat, Pahanivo, 22:14 , 06-Июн-18, (8)  
  • ipfw + nat, arachnid, 11:53 , 06-Июн-18, (2)  

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


1. "ipfw + nat"  +/
Сообщение от Pahanivo (ok) on 06-Июн-18, 09:39 
> Добрый день!
> Пытаюсь настроить файрвол таким образом что бы по умолчаию у него стоял
> запрет и разрешить только нужные порты!

хм?!
> Так же сервер является шлюзом в интернет т.е. я включаю нат !

шлюз может быть и без НАТа.
> Проблема следующая работает если файрвол открытый, но это не то что нужно
> по моей задаче, лиюо закрытый но тогда перестает работать нат!

Хинт. Фаервол работает в друх режимах: 1) открыть все - закрыть выборочно 2) закрыть все - открыть выборочно
начни с осознания этого.

> ${CMD} 00030 reject log tcp from any to any tcpflags fin, syn,
> rst, psh, ack, urg via ${PIF_OUT}

мда, видимо ipfw rules для тебя лишь загадочные символы.

> ## Запрет N-сканирования:
> ## Запрет FIN-сканирования:
> ## Защита от спуфинга (подмена адреса отправителя)

из хауту всяких понадергал?

> keep-state

мож сначала научится поднимать примитивный статический фаер?


> В какую сторону копать ? (Что бы был запрет по умалчанию deny
> any to any но при этом с локалки я бы ходил
> в интернет по 443 и 80 порту - кончено и 53!)

копать нужно:
1)в сторону матчасти по сетевым протоколам для начала, с основ
2) потом копать с сторону мануалов конкретного фаервола, ipfw в данном случае
3) дергать рецепты из хауту и пытаться переставлять их местами с надеждой, что случится чудо, не стоит

ПыСы: ipfw настолько облизанная, обсосанная, разжеванная, переваренная тема, что объяснять ее с нуля никто не будет, особенно учитывая твои потуги по копипасту конфигов.

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

3. "ipfw + nat"  +/
Сообщение от fx (ok) on 06-Июн-18, 11:58 
> ПыСы: ipfw настолько облизанная, обсосанная, разжеванная, переваренная тема, что ...

простите, что встряну... но не настолько. когда во фре окончательно сломали ipnat - пришлось разбираться с непривычным ipfw nat и модифицировать свои правила разрешений/запретов, проброса портов, one/two pass, порядок правил, и т.д., и т.п. - я бы не сказал, что всё обсосано и есть универсальные рецепты. пришлось разбираться и перепиливать конфиг несколько раз, убеждаясь, что половина хауту не работает как надо.

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

4. "ipfw + nat"  +1 +/
Сообщение от Pahanivo (ok) on 06-Июн-18, 14:52 
>> ПыСы: ipfw настолько облизанная, обсосанная, разжеванная, переваренная тема, что ...
> простите, что встряну... но не настолько. когда во фре окончательно сломали ipnat
> - пришлось разбираться с непривычным ipfw nat и модифицировать свои правила
> разрешений/запретов, проброса портов, one/two pass, порядок правил, и т.д., и т.п.
> - я бы не сказал, что всё обсосано и есть универсальные
> рецепты. пришлось разбираться и перепиливать конфиг несколько раз, убеждаясь, что половина
> хауту не работает как надо.

${ipfw_cmd} nat 1 config ip ${oip} unreg_only \
   redirect_port tcp 192.168.0.2:8081 8081
${ipfw_cmd} add nat 1 all from any to any via ${oif}

действительно, ядреный нат во фре это сложно ...

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

5. "ipfw + nat"  +/
Сообщение от fx (ok) on 06-Июн-18, 15:35 
> действительно, ядреный нат во фре это сложно ...

а, так Вы о сферическом нате в вакууме... я и не понял сразу. и звените :)

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

6. "ipfw + nat"  +/
Сообщение от Pahanivo (ok) on 06-Июн-18, 17:02 
>> действительно, ядреный нат во фре это сложно ...
> а, так Вы о сферическом нате в вакууме... я и не понял
> сразу. и звените :)

решение таки линейное, а не сферическое, и снято с реального железа :)
ваши задачи не решаются подобным образом?

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

7. "ipfw + nat"  +/
Сообщение от fx (ok) on 06-Июн-18, 17:36 
мои задачи решались не этими двумя простейшими правилами, а перелопачиванием остальной сотни строк с pass/deny/fwd/skipto вокруг этих двух.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "ipfw + nat"  +/
Сообщение от Pahanivo (ok) on 06-Июн-18, 22:14 
> мои задачи решались не этими двумя простейшими правилами, а перелопачиванием остальной
> сотни строк с pass/deny/fwd/skipto вокруг этих двух.

думаю что это были сотни простейших правил, логика да, может, а правила всегда простейшие в ipfw ....

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

2. "ipfw + nat"  +/
Сообщение от arachnid (ok) on 06-Июн-18, 11:53 
и да, хочу дополнить предыдущий комментарий - конфигурационный скрипт - это здорово, хорошо и замечательно. но! написанный скрипт и текущие правила - не есть одно и то же. так что лучше приводить вывод ipfw show и ipfw nat show config.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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


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