Настройка шлюза на 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 не настроен.
Полезные ссылки:
- Подробное руководство по ipfw nat
- IPFW (FreeBSD): how to
- Руководство FreeBSD. Межсетевые экраны.
- ipfw: порядок прохождения пакетов, сложные случаи
- VPN открыть порт через IPFW для MPD5
- Сборка ядра (c Kernel NAT).
- Настройка Kernel (IPFW) NAT
- Настройка NAT в FreeBSD 8 c помощью ipfw nat
- kernel NAT
- САМЫЙ СЕРЬЕЗНЫЙ ГЕЙТ — Настраиваем ipfw + NAT во FreeBSD
- Настройка FireWall (ipfw) в FreeBSD
- Примеры настройки IPFW
- Настройка Kernel NAT на FreeBSD
- Форум — Настройка ipfw nat
- FreeBSD статьи
- MPD — настройка собственного VPN-сервера
- Настройка Squid 3 в качестве прозрачного прокси в FreeBSD
- Домашний ipfw на сервере с www, dns и natd
Проброс портов через 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