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 часа


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

Зарегистрированные пользователи: Bing [Bot], Google [Bot]


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

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