Так как я не очень то и хорошо разбираюсь в FreeBSD(тока учусь)))) но необходимость заставила поставить сервак
есть несколько вопросов:
Стоит FreeBSD 6.2 пересобрал ядро с поддержкой ipfw(поставил автоматом правило allow ip from any to any)
+удалил ненужные устройства
собираюсь в дальнейшем поставить bind и squid
Есть локалка 192.168.0.0/24(em0)
Есть 2 выхода в интернет
надо раздать их в локалку
1 основной через PPPoE(rl0+DHCP модем стоит бриджом)
2 запасной+через него ходит почта(25 110 порты) и так как у него большие бесплатные внутренние ресурсы как-то закачка mp3 видео и всего такого разного(ed0)
не работает ета связка ни в какую
с сервака пингуется все нормано DNS прова и все такое тока NAT не выдает нет в локалку
Подскажите что делать и как
конфиг pppoe (коннект через простой ppp)(нашел в интернете)
Код: Выделить всё
/etc/ppp/ppp.conf
default:
set tun command
set device PPPoE:rl0
set MTU 1492
set MRU 1492
set dial #??что
set crtscts off #??означают
set speed sync #??эти
accept lpr #??строки
disable deflate #??объясните
disable pred1 #??пожалуйста
disable vjcomp #??так как
disable acfcomp #??не сильно разбираюсь
disable protocomp #??в PPPoE
set log Phase LCP IPCP CCP Warning Error Alert #?????
set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0
add default HISADDR #вроде должна прописывать дефолтовый маршрут но не прописывает его
set login
set authname ppp@ppp
set authkey password
set server /var/run/ppp/ppp.pid "" 0117 #не понял что за строчка поэтому не вставил в конфиг
если линк не появляется то переходит автоматом на другой канал
конфиг /etc/rc.conf
Код: Выделить всё
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
ppp_mode="ddial"
ppp_nat="YES"
natd_enable="YES"
natd_interface="rl0"
natd_interface="ed0"
при установления PPPoE соединения нет выхода в интернет так как по дефолту стоит маршрут внутренней локалки первого прова ета проблема решается корявым путем
запуском routed
убийством процессов ppp
удаление дефолтового маршрута route delete default
запуск ppp
после етого выход в нет через 1 провайдера есть но NAT не работает из локалки не пингуются никакие ресурсы
в чем моя ошибка подскажите пожалуйста
Еще пара вопросов у 1 провайдера диапазон внтуренних адресов типа 10.8.7.0/24 и локалка 1 мбит/с(бесплатно)
можно ли будет одновременно использовать и PPPoE и локальные ресурсы я подумал поставить типа ADSL-роутера с 4 портами Ethernet
тогда на серваке поставить 2 сетевушки смотрящие на него 1 будет использоваться для PPPoE другая для внутренних ресурсов
как Вы думаете ето возможно?
Еще вопрос если несколько логинов у 1 провайдера как их использовать или вручную менять в ppp.conf?
можно ли будет их одновременно использовать как бы объединение каналов?
и еще последний вопрос если отключится один провайдер как можно автоматически перейти на другой приэтом обрезав скорость и отключив от нета некоторых некритичных
пользователей и при появлении линка переключится обратно
Код: Выделить всё
конфиг etc/rc.firewall(взят с сайта http://www.lissyara.ru переделан под мои нужды)
cmd="/sbin/ipfw" #
lanout1="rl0" #внешний интерфейс1
lanout2="ed0" #внешний интерфейс2
lanin="em0" #внутренний интерфейс
ipout1= ??????? #внешний ip машины от 1 прова выдается по DHCP(адрес типа 10.9.7.8)не знаю что прописать
ipout2="192.168.1.1" #внешний ip машины от 2 прова
ipin="192.168.0.250" #внутренний ip машины
netmask="24" #маска сети
netin="192.168.0.0" #внутренняя сеть
# Сбрасываем все правила:
${cmd} -f flush
# Проверяем - соответствует ли пакет динамическим правилам:
${cmd} add check-state
# Разрешаем весь траффик по внутреннему интерфейсу (петле)
# Вообще я во многих местах читал что без него может ничё не заработать вообще
# и прочие страшилки. Работает - почта, апач, .... А вот squid - не работает :)
# так что без него и правда - никуда.
${cmd} add allow ip from any to any via lo0
# рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0 (вот честно - ни
# одного пакета по этим правилам не зарубилось за всё время... Может в этом
# моё счастье? :))
${cmd} add deny ip from any to 127.0.0.0/8
${cmd} add deny ip from 127.0.0.0/8 to any
# Вводим запреты:
# режем частные сети на внешнем интерфейсе - по легенде он у нас
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти
${cmd} add deny ip from any to 172.16.0.0/12 in via ${lanout1}
${cmd} add deny ip from any to 172.16.0.0/12 in via ${lanout2}
${cmd} add deny ip from any to 192.168.0.0/16 in via ${lanout1}
${cmd} add deny ip from any to 192.168.0.0/16 in via ${lanout2}
${cmd} add deny ip from any to 0.0.0.0/8 in via ${lanout1}
${cmd} add deny ip from any to 0.0.0.0/8 in via ${lanout2}
# рубим автоконфигуреную частную сеть
${cmd} add deny ip from any to 169.254.0.0/16 in via ${lanout1}
${cmd} add deny ip from any to 169.254.0.0/16 in via ${lanout2}
# рубаем мультикастовые рассылки
${cmd} add deny ip from any to 240.0.0.0/4 in via ${lanout1}
${cmd} add deny ip from any to 240.0.0.0/4 in via ${lanout2}
# рубим фрагментированные icmp
${cmd} add deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${cmd} add deny log icmp from any to 255.255.255.255 in via ${lanout1}
${cmd} add deny log icmp from any to 255.255.255.255 out via ${lanout1}
${cmd} add deny log icmp from any to 255.255.255.255 in via ${lanout2}
${cmd} add deny log icmp from any to 255.255.255.255 out via ${lanout2}
# а тут собственно файрволл и начался:
# отправляем всех на squid (в данном случае - прокси прозрачный)
#(закомментировал ети строки но в дальнейшем сниму коммент так как надо побыстрее сделать шлюз а потом сквид)
#${cmd} add fwd 127.0.0.1,3128 tcp from ${netin}/${netmask} to any 80 via ${lanout}
# пропускаем траффик через трансляцию сетевых адресов (NAT)
${cmd} add divert natd ip from ${netin}/${netmask} to any out via ${lanout1}
${cmd} add divert natd ip from any to ${ipout} in via ${lanout1}
# рубим траффик к частным сетям через внешний интерфейс
# заметтьте - эти правила отличаются от тех что были выше!
${cmd} add deny ip from 172.16.0.0/12 to any out via ${lanout1}
${cmd} add deny ip from 172.16.0.0/12 to any out via ${lanout2}
${cmd} add deny ip from 192.168.0.0/16 to any out via ${lanout1}
${cmd} add deny ip from 192.168.0.0/16 to any out via ${lanout2}
${cmd} add deny ip from 0.0.0.0/8 to any out via ${lanout1}
${cmd} add deny ip from 0.0.0.0/8 to any out via ${lanout2}
# рубим автоконфигуреную частную сеть
${cmd} add deny ip from 169.254.0.0/16 to any out via ${lanout1}
${cmd} add deny ip from 169.254.0.0/16 to any out via ${lanout2}
# рубаем мультикастовые рассылки
${cmd} add deny ip from 224.0.0.0/4 to any out via ${lanout1}
${cmd} add deny ip from 224.0.0.0/4 to any out via ${lanout2}
# рубаем мультикастовые рассылки
${cmd} add deny ip from 240.0.0.0/4 to any out via ${lanout1}
${cmd} add deny ip from 240.0.0.0/4 to any out via ${lanout2}
# разрешаем все установленные соединения (если они установились -
# значит по каким-то правилам они проходили.)
${cmd} add allow tcp from any to any established
# разрешаем весь исходящий траффик (серверу-то в инет можно? :))
${cmd} add allow ip from ${ipout1} to any out xmit ${lanout1}
${cmd} add allow ip from ${ipout2} to any out xmit ${lanout2}
# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${cmd} add allow udp from any 53 to any via ${lanout1}
${cmd} add allow udp from any 53 to any via ${lanout2}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
${cmd} add allow udp from any to any 53 via ${lanout1}
${cmd} add allow udp from any to any 53 via ${lanout2}
# разрешаем UDP (для синхронизации времени - 123 порт)
${cmd} add allow udp from any to any 123 via ${lanout1}
${cmd} add allow udp from any to any 123 via ${lanout2}
# разрешаем некоторые типы ICMP траффика - эхо-запрос,
# эхо-ответ и время жизни пакета истекло
${cmd} add allow icmp from any to any icmptypes 0,8,11
# открываем снаружи 25 порт (SMTP) она будет проходить через 2 прова
#${cmd} add allow tcp from any to ${ipout2} 25 via ${lanout2}
# открываем снаружи 22 порт - если надо будет ходить на машину по ssh
${cmd} add allow tcp from any to ${ipout1} 22 via ${lanout1}
${cmd} add allow tcp from any to ${ipout2} 22 via ${lanout2}
# открываем снаружи 110 порт(если надо смотреть почту снаружи по POP)
${cmd} add allow tcp from any to ${ipout2} 110 via ${lanout2}
#разрешаем всем аську
${cmd} add allow tcp from ${netin} to any 5190 in via ${LanIn} setup
# по поводу следующих трёх правил, для tcp, udp и icmp - их можно
# заменить одним правилом:
#${cmd} add allow ip from any to any via ${lanin}
${cmd} add allow tcp from ${netin} to any 5190 in via ${lanin} setup
${cmd} add deny ip from any to any