BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: правила IPFW
СообщениеДобавлено: Вс 06 мар, 2005 4:12 pm 
Не в сети

Зарегистрирован: Пн 17 янв, 2005 4:22 pm
Сообщения: 91
Я новичок в мире nix. Что нужно сделать чтобы я смог защитить с помощью ipfw компьютер. Мне нужнен доступ по HTTP и FTP. Может быть еще какие-то службы нельзя закрывать. Поиогите сотавить правила для IPFW


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс 06 мар, 2005 4:35 pm 
Не в сети
Newsmaker
Аватара пользователя

Зарегистрирован: Пт 05 мар, 2004 9:34 am
Сообщения: 754
Откуда: Новосибирск
Для затравки. Конфиг не полный. Попробуй сам разобраться что к чему. Документации в инете много.

Код:
#!/bin/sh
fwcmd="/sbin/ipfw -q"
MX=Extrnal_IP
serv_tcp= "порты"
serv_udp= "порты"
${fwcmd} -f flush

###############
#  localhost 127.0.0.1
${fwcmd} add pass all from any to any via lo0

#############################
## Внешний интерфейс

${fwcmd} add deny all from any to not me via xl1

${fwcmd} add pass tcp  from any  to ${MX}  ${serv_tcp}   in  via xl1
${fwcmd} add pass udp from any  to ${MX}  ${serv_udp}  in  via xl1
${fwcmd} add pass  all  from ${MX}  to  any out  via xl1
..........
.........
${fwcmd} add deny all from any to any


И если конфиги правишь удалённо (SSH), то обрати внимание на ключ -q для ipfw :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс 06 мар, 2005 6:36 pm 
Не в сети

Зарегистрирован: Пн 17 янв, 2005 4:22 pm
Сообщения: 91
а где можно посмореть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн 07 мар, 2005 2:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт 21 сен, 2004 2:01 pm
Сообщения: 102
Откуда: Самара
man ipfw конечно же :)
Если в кратце, то так

#!/bin/sh

#сбрасываем все правила и вопросов не задаём
/sbin/ipfw -q flush

#разрешаем весь траффик через loopback интерфейс
/sbin/ipfw add allow all from any to any via lo0

#запрещаем фрагментированные icmp пакеты
/sbin/ipfw add deny icmp from any to any frag

#пропускаем остальные icmp чтоб ping работал
/sbin/ipfw add allow icmp from any to any

#пропускаем DNS запросы
/sbin/ipfw add allow udp from any to any 53
/sbin/ipfw add allow udp from any 53 to any

#открываем http,https порты
/sbin/ipfw add allow tcp from any to any 80,8080,443,563
/sbin/ipfw add allow tcp from any 80,8080,443,563 to any

#открываем ftp
/sbin/ipfw add allow tcp from any to any 20,21
/sbin/ipfw add allow tcp from any 20,21 to any

#если есть желание, можно пропустить асю
/sbin/ipfw add allow tcp from any to any 5190
/sbin/ipfw add allow tcp from any 5190 to any

#всё остальное в лес
/sbin/ipfw deny all from any to any

Информация о том какая служба на каком порту висит находится в /etc/services, бумажка про то как устроен tcp/ip здесь: http://www.networksorcery.com/enp/protocol/ip.htm или здесь: http://www.acnet.ge/networking/net_l/tcp_ip/arh_ip.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн 07 мар, 2005 3:25 pm 
Не в сети
Newsmaker
Аватара пользователя

Зарегистрирован: Пт 05 мар, 2004 9:34 am
Сообщения: 754
Откуда: Новосибирск
Не думаю что изобилие

allow tcp from any to any

есть хорошо :?
Так недолго стать defaultrouter для кого-нить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср 09 мар, 2005 1:15 pm 
Если сидеть на диалапе, то стать дефолтрутером, думаю, не грозит. Ну разве что кто-то напакостить захочет, а так от этого ни какой пользы злоумышленнику нет. Для большей секьюрности можно написать правила в таком виде

/sbin/ipfw add allow tcp from me to any 20,21 out
/sbin/ipfw add allow tcp from any 20,21 to me in

И ещё, чтобы вообще иметь способность стать роутером, в /etc/rc.conf должно быть написано gateway_enable="YES", а писать это туда или нет, зависит от степени собственного желания кормить кого-то инетом.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср 09 мар, 2005 1:19 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт 21 сен, 2004 2:01 pm
Сообщения: 102
Откуда: Самара
это я гость


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт 26 май, 2005 5:40 pm 
Не в сети

Зарегистрирован: Пн 17 янв, 2005 4:22 pm
Сообщения: 91
Дайте пожалуйста свои rc.firewall
охота посмотреть как у умных людей правила прописаны -))

_________________
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт 27 май, 2005 6:17 am 
Не в сети
Newsmaker
Аватара пользователя

Зарегистрирован: Пт 05 мар, 2004 9:34 am
Сообщения: 754
Откуда: Новосибирск
Окончательно перешёл на PF :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт 27 май, 2005 2:04 pm 
Не в сети

Зарегистрирован: Пн 17 янв, 2005 4:22 pm
Сообщения: 91
Ну давай его конфиг

_________________
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт 27 май, 2005 2:20 pm 
Не в сети
Newsmaker
Аватара пользователя

Зарегистрирован: Пт 05 мар, 2004 9:34 am
Сообщения: 754
Откуда: Новосибирск
Пример как умные люди делают лежит тут

http://www.openbsd.ru/files/etc/pf.conf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт 08 июл, 2005 7:41 pm 
Не в сети

Зарегистрирован: Ср 06 июл, 2005 2:09 pm
Сообщения: 14
Откуда: moscow
кстати, интерсная идея насчет заценики правил... вот я вчера наконец-то сделал свой список... правда, есть недостатки, которые, надеюсь, поправить смогу:
1. по ssh я не могу выйти в мир
2. у юзера впн соединение наружу не пашет (идет коннект к серваку, но авторизация подвисает и обламывается)
3. сомнение берет насчет разрешения протоколов, приходится исходящие разрешать с роутера...
4. nmap говорит, что все порты открыты (сканировали снаружи)

вообщем, список буду грейдить. Стандартный роутер, который как раз чаще всего и нужен новичкам типа меня... Покритикуйте меня :)

Хочется ещё сделать защиту от скана и плохих пакетов. Также реализовать защиту от дос-атак... Но это уже после выходных.


#!/bin/sh
out_ip="внешний адрес"
out_iface="fxp0"
vpn_ip="впн адрес"
vpn_iface="tun0"
local_ip="внутренний адрес"
localnet="внутреняя сеть"
local_iface="fxp1"
localback_ip="127.0.0.0/8"
localback_iface="lo0"

#### flush rules ####
/sbin/ipfw -f flush

#### allow localback ####
/sbin/ipfw add 00005 pass all from any to any via ${localback_iface}
/sbin/ipfw add 00006 deny all from any to ${localback_ip}

#### antispoofing ####
/sbin/ipfw add 00007 deny all from ${localback_ip} to any via ${out_iface}
/sbin/ipfw add 00008 deny all from 192.0.0.0 to any via ${out_iface}
/sbin/ipfw add 00009 deny all from 10.0.0.0 to any via ${out_iface}
/sbin/ipfw add 00010 deny all from 172.0.0.0 to any via ${out_iface}

будет у меня впн... но потом :)
#### allow vpn ####
/sbin/ipfw add 00039 deny all from ${localnet} to ${vpn_ip} via ${local_iface}

Думаю в локалке нет хакеров, хотя тут надо делать ужесточение правил...
#### allow localnet ####
/sbin/ipfw add 00050 pass all from ${localnet} to any via ${local_iface}
/sbin/ipfw add 00051 pass all from any to ${localnet} via ${local_iface}

нат с редиректом на прокси, ну чтобы сайты смотреть и обрезать лишнее
#### allow nat ####
/sbin/ipfw add 00060 fwd 127.0.0.1,8888 tcp from ${localnet} to any 80 via ${out_iface}
/sbin/ipfw add 00061 divert natd all from ${localnet} to not ${localnet} via ${out_iface}
/sbin/ipfw add 00062 divert natd all from any to ${out_ip} via ${out_iface}

ПИНГУ ВЕЧНАЯ СВОБОДА!!!
#### eternal freedom for ping :) ####
/sbin/ipfw add 00070 pass ICMP from any to any

разрешаю протоколы....
#### allow FTP ####
/sbin/ipfw add 00096 pass tcp from me 1025-65535 to any 20 via ${out_iface}
/sbin/ipfw add 00097 pass tcp from any 20 to me 1025-65535 via ${out_iface}
/sbin/ipfw add 00098 pass tcp from me 1025-65535 to any 21 via ${out_iface}
/sbin/ipfw add 00099 pass tcp from any 21 to me 1025-65535 via ${out_iface}
/sbin/ipfw add 00100 pass tcp from ${localnet} 1025-65535 to any 20 via ${out_iface}
/sbin/ipfw add 00101 pass tcp from any 20 to ${localnet} 1025-65535 via ${out_iface}
/sbin/ipfw add 00102 pass tcp from ${localnet} 1025-65535 to any 21 via ${out_iface}
/sbin/ipfw add 00103 pass tcp from any 21 to ${localnet} 1025-65535 via ${out_iface}

#### allow SSH ####
/sbin/ipfw add 00118 pass tcp from me 1025-65535 to any 22 via ${out_iface}
/sbin/ipfw add 00119 pass tcp from any 22 to me 1025-65535 via ${out_iface} established
/sbin/ipfw add 00120 pass tcp from ${localnet} 1025-65535 to any 22
/sbin/ipfw add 00121 pass tcp from any 22 to ${localnet} 1025-65535

#### allow SMTP ####
/sbin/ipfw add 00150 pass tcp from me 1025-65535 to any 25 via ${out_iface}
/sbin/ipfw add 00151 pass tcp from ${localnet} 1025-65535 to any 25 via ${out_iface}
/sbin/ipfw add 00152 pass tcp from any 25 to ${localnet} 1025-65535 via ${out_iface} established

#### allow DNS ####
/sbin/ipfw add 00200 pass udp from me 1025-65535 to any 53 out via ${out_iface}
/sbin/ipfw add 00201 pass udp from any 53 to me 1025-65535 in via ${out_iface}
/sbin/ipfw add 00202 pass udp from any 53 to ${localnet} 1025-65535 in via ${out_iface}

#### allow HTTP ####
/sbin/ipfw add 00250 pass tcp from me 1025-65535 to any 80 via ${out_iface}
/sbin/ipfw add 00251 pass tcp from any 80 to me 1025-65535 via ${out_iface} established
/sbin/ipfw add 00253 pass tcp from any 80 to ${localnet} 1025-65535 via ${out_iface} established

#### POP3 ####
/sbin/ipfw add 300 pass tcp from me 1025-65535 to any 110 via ${out_iface}
/sbin/ipfw add 300 pass tcp from ${localnet} 1025-65535 to any 110 via ${out_iface}
/sbin/ipfw add 301 pass tcp from any 110 to ${localnet} 1025-65535 via ${out_iface}
#/sbin/ipfw add 00300 pass tcp from ${localnet} 1025-65535 to any 110 out via ${out_iface}
#/sbin/ipfw add 00301 pass tcp from any 110 to ${localnet} 1025-65535 in via ${out_iface}

#### HTTPS ####
/sbin/ipfw add 00350 pass tcp from me 1025-65535 to any 443 via ${out_iface}
/sbin/ipfw add 00350 pass tcp from ${localnet} 1025-65535 to any 443 via ${out_iface}
/sbin/ipfw add 00351 pass tcp from any 443 to ${localnet} 1025-65535 via ${out_iface} established

Это счетчик..
#### COUNTER ####
#/sbin/ipfw add count tcp from any to <client_ip> in via ${out_iface}
#/sbin/ipfw add count tcp from <client_ip> to any out via ${out_iface}

это тоже на уровне эксперимента :)
#### security ####
#/sbin/ipfw add 65000 pass tcp from me 1025-65535 to any 1025-65535 via ${out_iface}
#/sbin/ipfw add 65501 pass tcp from any 1025-65535 to ${localnet} 1025-65535 via ${out_iface} established

#yanki, go home :)
/sbin/ipfw add 65534 deny all from any to any

эта секця нужна для того, чтобы вернуться к старым настройкам файрвола и при неверных правилах, чтобы не пришлось с монитором и клавой бежать к роутеру... Если в две минуты работает нормально, то можно комментировать.. :)
###############
###############
#sleep 120
#/sbin/ipfw -f flush
#/bin/sh /etc/rc.firewall


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт 12 июл, 2005 3:30 pm 
Не в сети

Зарегистрирован: Чт 28 апр, 2005 12:40 pm
Сообщения: 136
Идея создания пусть не идеальных, а хотя бы оптимальных правил очень правильная. Полностью ее поддерживаю. По результатам обсуждения можно будет написать очень полезную статью по настройкам ipfw на FreeBSD.
Предлагаю начать с главного - определиться, какие функции может выполнять FreeBSD сервер, ну и написать под каждую из них соответствующий набор правил, которые потом можно будет комбинировать в нужных сочетаниях.
Итак, сервер может быть:
1. Web-сервером
2. FTP-сервером
3. DNS-сервером
4. NTP-сервером
5. Шлюзом (с NAT или без)
6. Proxy-сервером
7. ...
Кроме того машина должна сама иметь возможность работать с внешним миром по http, ftp, ntp, ssh, dns, cvsup, ...

Я сейчас настраиваю ftp-сервер совмещенный с DNS-сервером. Находится он напрямую в инете, сетевой интерфейс один. Вот что я написал:
Код:
#!/bin/sh
fwcmd="/sbin/ipfw"
${fwcmd} -q -f flush

# Setup loopback
${fwcmd} add 00100 pass all from any to any via lo0
${fwcmd} add 00200 deny log all from any to 127.0.0.0/8
${fwcmd} add 00300 deny log ip from 127.0.0.0/8 to any

# testing open rules
#${fwcmd} add 00310 pass log logamount 500 all from any to any
#${fwcmd} add 00320 pass all from any to any

${fwcmd} add 00400 check-state

# icmp
${fwcmd} add deny icmp from any to any frag
${fwcmd} add pass icmp from any to any keep-state

# http out
${fwcmd} add pass tcp from any to any 80 out setup keep-state

# dns
${fwcmd} add pass udp from me to any 53 keep-state
${fwcmd} add pass tcp from any to me 53 setup
${fwcmd} add pass udp from any to me 53
${fwcmd} add pass udp from me 53 to any

# ftp server
${fwcmd} add pass tcp from any 1025-65534 to me 20,21 in keep-state
${fwcmd} add pass tcp from me 20,21 to any 1025-65534 keep-state
${fwcmd} add pass tcp from any 1025-65534 to me 1025-65534 in keep-state

# ssh in
${fwcmd} add pass tcp from any to me 22 keep-state
${fwcmd} add pass tcp from me 22 to any keep-state

# ntp out
${fwcmd} add pass udp from me to any 123 keep-state

# log
${fwcmd} add 65534 deny log ip from any to any

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика