Сообщение от
Deem3n®
эт для профи, а так, лучше помоги челу
1. Желозо:
Для "сетнки" не нужно покупать хорошую машинку. Достаточно будет 300 селерона, 64, но можно и меньше мозгов. В качестве HDD и флешка сойдет, но настройка роутера на флешке - отдельная тема, поэтому самый простой винтик на 1Гб с головой. Сеть. Покупаем самый обычный риалтек за 3$.
2. Установка:
Ставим все по минимуму. Если решили поставить 6.1, то нужно обязательно выбрать kernel, иначе после установки система скажет, что нет ядра. (Замутили спецом, для установки на разные архитектуры)
3. Настройка:
Настройка роутера находиться в одном файле /etc/rc.conf - в дальн. просто rc.conf
1) Первая сторка - будет имя роутера.
hostname="myrouter.domain.net"
2) Следующая строчка - сеть
ifconfig - эта команда покажет все сетевые интерфейсы, которые есть в системе. Т.к. поставили два риалтека, то и интерфейсы будут rl0 и rl1. Теперь на эти интерфейсы нужно "натянуть" IP адреса. Пусть rl0 - будет интерфейс, который подключен к провайдеру, его IP будет 192.168.0.2, маска 255.255.255.0(/24) и 192.168.0.1 - это шлюз провайдера. А rl1 - к домашней машине, IP которой пусть будет 10.0.0.1 и маска 255.255.255.252(/30) - это маска на 2 машины.
ifconfig_rl0="inet 192.168.0.2 netmask 255.255.255.0"
или
#ISP
ifconfig_rl0="inet 192.168.0.2/24"
эти записи равны, поэтому буду юзать последнюю, т.к. она короче.
#Home net
ifconfig_rl1="inet 10.0.0.1/30"
#Default gate
defaultrouter="192.168.0.1"
gateway_enable="YES" - говорит о том, что машинка будет роутером.
С настройками сети все. Далее нам нужен ssh, т.к. подключать монитор и клаву будет тогда, когда роутер не работает, а если замутим все верно, то вообще подключать не будем

sshd_enable="YES"
Сохраняем настройки и выходим.
rc.conf
********************************
hostname="myrouter.domain.net"
ifconfig_rl0="inet 192.168.0.2/24"
ifconfig_rl1="inet 10.0.0.1/30"
defaultrouter="192.168.0.1"
gateway_enable="YES"
sshd_enable="YES"
********************************
По умолчанию в FreeBSD идет базовый редактор vi.
Все прописали, а теперь займемся сеткой "динамически"

Пишем в консольке:
ifconfig rl0 192.168.0.2/24
и сразу проверим сеть. ping 192.168.0.1 Если gate ISP ответит, то все ок. Если нет, то проблема может быть с сетью, железом или настройками. Для проверки набьем ifconfig rl0 и enter должно быть что-то типа этого
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::2c1:28ff:fe01:5124%rl0 prefixlen 64 scopeid 0x2
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:c1:28:01:51:24
media: Ethernet autoselect (10baseT/UTP)
status: active
После того, как добились связи с гейтом прова создаем вайлик /etc/resolv.conf и внем пропишим одну строчку
nameserver xxx.xxx.xxx.xxx, где xxx.xxx.xxx.xxx - IP адрес DNS сервера. Save & Exit.
ping mail.ru
ping mail.ru
PING mail.ru (194.67.57.26): 56 data bytes
64 bytes from 194.67.57.26: icmp_seq=0 ttl=116 time=107.987 ms
Ура, работает.
Таким же образом подымаем внутр. сеть
ifconfig rl1 10.0.0.1/30
Этот интерфейс подключен к интерфейсу домашней машинке, но которой прописан IP 10.0.0.2, mask 255.255.255.252 и шлюз 10.0.0.1, а DNS можно оставить xxx.xxx.xxx.xxx, который выдал Вам ISP и который прописан на роутере.
С роутера пингуем 10.0.0.2. Запинговался? Отлично

Все, на этом с сетью окончили.
ReAdmin aka ssh
Идем в vi /etc/ssh/sshd_config и дописываем строчку
ListenAddress 10.0.0.1
Этой строчкой мы говорим демону, а под виндой это звучит сервером, ssh работать тока на внутр. интерфейсе(rl1), т.к. на наружном он не нужен. И запускаем sshd следующей командой:
/etc/rc.d/sshd start
При первом запуске нужно будет сгенерировать ключи, утилиты для генерации запустяться сами, а Вам нужно будет тока понажимать на разные кнопки в течении 60 секунд, вроде.
Как проверить, стартонул ли ssh?
sockstat -4
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root sendmail 535 4 tcp4 127.0.0.1:25 *:*
root sshd 529 4 tcp4 10.0.0.1:22 *:*
root syslogd 371 7 udp4 *:514 *:*
Стартонул

Теперь нам нужно завести учетку, чтобы подключаться к серверу. Можно конечно у рутовую использовать, но я не советую.
adduser
Username: support
Full name:
Uid (Leave empty for default):
Login group [support]: wheel
Login group is wheel. Invite support into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: tcsh
Home directory [/home/support]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : support
Password : *****
Full Name :
Uid : 1001
Class :
Groups : wheel
Home : /home/support
Shell : /bin/tcsh
Locked : no
Длжно получиться что-то типа этого.
После создания новой учетки идем на другую консоль(alt+Fx, где x - это цифры от 1 и до 12 F1,F2, etc..) и логинимся. Если все прошло отлично, значит можно перезагрузить роутер. Это будет наша первая перезагрузка, после установки. Вообще можно и дальше настраивать, но обычно на этом деалю финиш "физике". Дальнейшая настройка будет удаленной

shutdown -r now
После загрузки роутера подключаемся к ниму виндой/other OS и проверяем, все ли работает. Т.е. есть ли связь между роутером и ISP, если да - то переходим к нату и защите, иначе проверяем настройки в rc.conf'е
4. NAT & Firewall aka PF
В качестве ната и фаервола будет юзать пакет фильтр pf, который был портирован с OpenBSD.
Настройки этого "зверька" храняться в /etc/pf.conf
*****************************************
#Макросы
ext_if = "rl0"
int_if = "rl1"
Me = "10.0.0.2"
#NAT
nat pass on $ext_if inet from $Me -> ($ext_if)
# Все, что не разрешино - блочим
block return log
block in from no-route
#quick - говорит о том, что это если это правило выполняется, то дальше не идем. Т.к. lo0 - это я

)), то меня везде пропускаем
pass quick on lo0
#ICMP этот протокол нужен для диагностики сети (ping)
pass in inet proto icmp to {$ext_if $int_if } icmp-type echoreq keep state
#SSH
pass in on $int_if inet proto tcp from $Me to $int_if port ssh keep state
# Разрешим нашему роутеру ходить куда угодно, но тока от рута
pass out inet from {$ext_if $int_if } user 0 keep state
*****************************************
Эти правила делаю следующее:
1. Ваша машина (10.0.0.2) будет выходить в локалку/интернет с IP адреса 192.168.0.2
2. На вход с интерфейса ISP будет доступен тока пинг и тока к роутеру и все.
3. Тока на внутренем интерфейсе и тока с IP адреса 10.0.0.2 будет доступ к роутеру по ssh
4. Тока пользователь рут можешь "выходить" с роутера в любом направлении, обычно использую это для диагностики, а потом оставляю тока icmp
vi /etc/rc.conf и дописываем еще пару строчек в конец это для того, чтобы pf стартовал при старте роутера
***********************
pf_enable="YES" # Set to YES to enable packet filter (pf)
pflog_enable="YES" # Set to YES to enable packet filter logging
***********************
Save & Exit
Ну и стартуем нашего "зверька"
pfctl -e && pfctl -f /etc/pf.conf
На домашней машинке должен появиться инет
PS: Ой, уже Sat Sep 16 00:15:22 EEST 2006. Сорри, если есть ошибки/опечатки, с работы да и день 5-й

)) Если что - поправим
