FreeBSD 9.1 AMD64: nat, ipfw, squid, vpn, mpd5. Настройка.

Настройка шлюза на FreeBSD 9.1.

Сборка ядра

Для пересборки ядра у Вас должны быть установлены его исходные тексты. Заходим в каталог /usr/src, если там пусто, то надо их установить.

#mount_cd9660 /dev/cd0 /mnt
#cd /mnt/usr/freebsd-dist/src.txz

с помощью mc распаковал в /usr/src

копируем /usr/src/sys/amd64/conf/GENERIC в mykernel

добавляем

options IPFIREWALL
 options IPFIREWALL_VERBOSE
 options IPFIREWALL_VERBOSE_LIMIT=10
 options IPFIREWALL_NAT
 options IPFIREWALL_FORWARD
 options LIBALIAS
 options DUMMYNET
 options IPDIVERT
 options HZ=1000
options TCP_DROP_SYNFIN

Пересобираем ядро: #cd /usr/src #make buildkernel KERNCONF=MYKERNEL
#make installkernel KERNCONF=MYKERNEL #reboot now — перегружаемся

Обновление портов через portsnap

Для первого запуска:

$ portsnap fetch
$ portsnap extract

Для всех последующих запусков:

$ portsnap fetch
$ portsnap update

Хорошая статья Обновление FreeBSD от и до 

Список часто используемых команд ipfw

ipfw list — показывает список правил

ipfw show — показывает список правил, но с числом пакетов и байт, что попали под это правило. удобно при отладке

ipfw zero — обнуление всех счетчиков.

ipfw zero №_правила — обнуление счетчика для одного правила

Перечитать правила ipfw без перезагрузки:

/bin/sh /etc/firewall.conf

где /etc/firewall.conf  — ваш файл с правилами для ipfw

Жестко со всеми сетевыми службами и с вылетом с удаленной консоли:

/etc/netstart

Вход по SSH на FreeBSD

ssh <имя_пользователя>@<ip-адрес> -p <port>

mpd5 Настройка VPN на FreeBSD

В ссылках ниже, подробно все написано. Напишу пару заметок, по стандартному конфигу.

Веб-интерфейс VPN http://<адрес_сервера>:5006/

Порт прописывается в конфигах, там где про веб-сервер.

Подключение к командной строке

# telnet 127.0.0.1 5005

Создаем подключение в Windows, либо настраиваем на удаленной стороне MPD-клиент и пробуем подключиться. При настройке клиентского подключения в Windows, чтобы предотвратить туннелирование всего интернет трафика в удаленную сеть, в дополнительных настройках протокола TCP/IP, необходимо отключить флажок «Использовать основной шлюз в удаленной сети». В этом случае будет туннелироваться только трафик удаленной подсети в соответствии с ее классом.

В случае проблем используем tcpdump. Мониторим физический канал, вместо $pif задаем имя физического интерфейса:

tcpdump -ni $pif tcp port 1723 or proto gre

Мониторим туннель:

tcpdump -ni ng0

Для того, чтобы вы могли пользоваться ресурсами сети «Organization», возможно вам понадобиться настроить роутинг. Делается это так. В командной строке windows наберите:

route add 192.168.100.0 mask 255.255.255.0 192.168.100.N

где N – последняя цифра выданного вам ip-адреса.

SQUID — http://itadept.ru/posts/freebsd-squid/

Проверяем включено ли перенаправление пакетов командой:

 grep ipfw /var/run/dmesg.boot

Получаем следующий результат:

 ipfw2 (+ipv6) initialized, divert loadable, nat loadable, rule-based forwarding disabled, default to deny, logging disabled

Если видим rule-based forwarding disabled, форвардинг отключен, необходимо пересобрать ядро. Если сообщение отсутствует, значит IPFW не настроен.

Полезные ссылки:

 

 

Проброс портов через SSH

Как обойти фаервол и подключиться к удаленным машинам за фаерволом.

Есть, например, виндовый терминал в сети с ip, например, 192.168.0.10, но доступа извне к нему никакого нет.

Есть маршрутизатор с FreeBSD(Linux) с адресом внутри сети 192.168.0.1 и внешним адресом 222.222.222.222.

И знаете что? А то, что можно подключиться к удаленному терминалу извне, и вот как:

$ssh -L 3389:192.168.0.10:3389 222.222.222.222

после аутентификации появится обычное, на первый взгляд, соединение по ssh, но и дополнительно пробросится порт на 192.168.0.10:3389 (напомню, 3389 — это rdp порт).оставляем наш удаленный терминал просто висеть, пока он висит — порт проброшен.

Теперь мы можем сделать вот так (напомню, мы сейчас запускаем это все извне):

rdesktop -a16 -g1024x768 127.0.0.1:3389

да-да, мы коннектимся к себе же на 127.0.0.1 порт 3389.. и вот терминал загрузился … да-да, у нас загрузился терминал 192.168.0.10!

Без всяких NAT и на фаерволе был на вход открыт только ssh!

Статические маршруты во FreeBSD

Маршруты во FreeBSD, да собственно и в любой другой Unix like операционной системе добавляются с помощью команды route, допустим добавить маршрут к сети 192.168.1.0/24 , находящейся за маршрутизатором 192.168.0.10:

route add -net 192.168.1.0/24 192.168.0.10

Или можно добавить маршрут через интерфейс em1 к сети 192.168.10.0/24:

route add -net 192.168.10.0/24 -interface em1

Добавлять маршруты не сложно, но добавленный таким образом маршрут будет существовать только до перезагрузки сервера, а для того что бы они восстановились после перезагрузки, их необходимо прописать в /etc/rc.conf:

static_routes=»office1 office2″

route_office1=»-net 192.168.1.0 192.168.0.10″

route_office2=»-net 192.168.10.0 -interface em1″

Как не разбирая корпус посмотреть модель материнской платы

Воспользоваться утилитой dmidecode