Документация по ОС FreeBSD
Воскресенье, 16.11.2025, 02:55
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
Apache
[58]
DNS
[25]
FTP
[27]
Mail
[74]
Samba
[24]
Squid
[46]
SSH
[23]
VPN
[35]
РРР
[20]
Net
[173]
Главная
»
Статьи
»
Сеть
»
Net
Настройка шлюза на FreeBSD 5.4 [2005]
Задача
1) организовать доступ в Интернет пользователям локальной сети
2) Вести учёт трафика: всего + отдельно web (кто, сколько и где был в Интернете)
3) Сократить затраты на Интернет путём использования прокси сервера.
# команды
// коментарии
* примечание
Часть 1 Начнём с установки FreeBSD
Вставим установочный диск в CD-ROM, в BIOS выставим загрузку с CDROM.
После загрузки выберем Express -> Kernel-Developer
Ответим положительно на вопрос является ли машина шлюзом в Интернет
Ответим положительно на о запуске INETD
После установки извлечём диск из CDROM и перегрузимся.
Часть 2 Сборка ядра.
* в версии FreeBSD 6.x пересборка ядра не требуеться
После перезагрузки войдём в систему как root
Изменим пароль root
# passwd
Перейдём в каталог /usr/src/sys/i386/conf
# cd /usr/src/sys/i386/conf
Создадим копию конфигурационного файлы ядра
# cp GENERIG GATEWAY
Отредактируем файл под наши нужды
# ee GATEWAY
Добавляем следующие опции в файл GATEWAY
//Firewall
options IPFIREWALL //firewall
options IPFIREWALL_DEFAULT_TO_ACCEPT //allow everything by default
//IPDIVERT система NAT
options IPDIVERT //divert sockets
Собираем
# config GATEWAY
# cd ../compile/GATEWAY
# make depend all install
# shutdown -r now
Устанавливаем временную зону во FreeBSD и точное время в BIOS
Редактируем файл /etc/rc.conf
# ee /etc/rc.conf
defaultrouter="192.168.5.1" //Шлюз провайдера
hostname="gate.plc.net" //Имя компьютера
gateway_enable="YES" // Компьютер являеться шлюзов в интреннет
ifconfig_rl0="inet 192.168.0.250 netmask 255.255.255.0" //Внутренний интерфейс
ifconfig_rl1="inet 192.168.5.15 netmask 255.255.255.0" //внешний интерфейс
firewall_enable="YES" //Включение firewall
#firewall_type="OPEN" //Если не хотите его настраивать или не нет в этом необходимости можно сделать его открытым т.е. пропускающим все пакеты
firewall_script="/etc/firewall.sh" //Настройки firewall (либо firewall_type="OPEN")
natd_enable="YES" // Включаем NAT
natd_interface="rl1" // NAT вешаем на внешний интерфейс
natd_flags=""
sendmail_enable="NONE" //отключаем sendmail
usbd_enable="YES" //Включаем поддержку USB если нужно
linux_enable="YES" //Включаем поддержку Linux если нужно
trafd_enable="YES" // Включаем поддержку trafd
trafd_ifaces="rl0 rl1" //Вешаем его на внутренний и внешний интерфейс
trafd_flags=""
trafd_log="/usr/local/var/trafd.log" //логи trafd
inetd_enable="YES" //Включаем суперсервер INETD
отключим sendmail
!!! Так лучше не делать!!! # chmod -x /etc/rc.d/sendmail!!! Так лучше не делать!!!
!!! Правильно отключить sendmail: /etc/rc.conf sendmail_enable="NONE"
Создадим /etc/firewall.sh
#ee /etc/firewall.sh
Содержание файла /etc/firewall.sh
#!/bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add 1000 pass all from any to any via lo0
/sbin/ipfw add 1100 deny all from any to 127.0.0.0/8
/sbin/ipfw add 1200 deny icmp from any to any frag
/sbin/ipfw add 1300 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
/sbin/ipfw add 1400 deny tcp from any to any not established tcpflags fin
/sbin/ipfw add 1500 deny tcp from any to any tcpflags fin,syn,rst,psh,ack,urg
/sbin/ipfw add 1600 deny tcp from any to any tcpflags !fin,!syn,!rst,!psh,!ack,!urg
/sbin/ipfw add 4000 deny udp from any 137-139 to any via rl0
/sbin/ipfw add 4100 deny udp from any to any 137-139 via rl0
/sbin/ipfw add 5000 divert natd ip from 192.168.0.0:255.255.255.0 to any out xmit rl1
/sbin/ipfw add 5100 divert natd ip from any to 192.168.5.15
#/sbin/ipfw add 5200 deny all from 192.168.0.0/24 to not 192.168.0.0/24 80
/sbin/ipfw add 5500 deny all from 192.168.0.0/24 to not 192.168.0.0/24 80,21,443 //закрываем порты , чтобы
//пользователи не ходили в обход прокси
/sbin/ipfw add 6000 allow all from any to any
Сделаем файл исполняемым
# chmod 100 /etc/firewall.sh
Часть 4 Настройка FTP (отчеты будем забирать по FTP)
Редактируем /etc/inetd.conf
# ee /etc/inetd.conf
Раскоментируем строчку
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
Создадим файл /etc/ftpchroot
//Туда пишем пользователей чтобы они не вышли за пределы домашнего каталога
# ee /etc/ftpchroot
Добавим в него пользователя stat
Добавим пользователя stat в систему
# adduser
Часть 5 Установка приложений
* при установке другим способом(пакеты, исходники) возможно другое расположение конфигурационных файлов
* например /usr/local/squid/etc/squid.conf вместо /usr/local/etc/squid/squid.conf
Далее ставим прокси сервер SQIOD
# cd /usr/ports/www/squid
# make
# make install
Базовая настройка прокси сервера
Для этого отредактируем файл /usr/local/etc/squid/squid.conf
* сдесь приводяться изменения которые долны быть проведены в файле настроек, а не сам файл настроек squid.
#ee /usr/local/etc/squid/squid.conf
http_port 192.168.0.250:8080
cache_mem 64 MB
cache_dir ufs /usr/local/squid/cache 3072 16 256
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log
//Access control
//если acl выноситься в отдельный файл то необходимо указывать путь к файлу в кавычках.
//Вид файла InternetUsers
//
//192.168.0.0/24 //если мы хотим вывесли всю сеть
//или так
//192.168.0.1
//192.68.0.5
// если отдельные компьютеры.
acl InternetUsers src "/usr/local/etc/squid/InternetUsers"
//http access
http_access allow InternetUsers
http_access deny all
//And finally deny all other acces to this proxy
http_access allow InternetUsers
http_access deny all
Добавим параметр
visible_hostname InternetServer // В имени не использовать пробелы.
Далее поменяем страницу с ошибками
//error_directory
error_directory /usr/local/etc/squid/errors/Russian-1251
Теперь создадим файл с пользователями Интернет
# ee /usr/local/etc/squid/InternetUsers
добавим в него нашу локальную сеть 192.168.0.0/24
Создадим swap директорию
# /usr/local/sbin/squid -z
Добавим SQUID в автозагрузку (в /etc/rc.conf)
squid_enable=YES
Добавим записи о DNS серверах
# ee /etc/resolv.conf
nameserver 82.1.2.3 // DNS провайдера
Запустим squid
# /usr/local/sbin/squid -D
После перезагрузки прокси сервер и шлюз должны работать.
Для получения данных о всех прошедших пакетах через ваш шлюз воспользуемся trafd
# cd /usr/ports/net-mgmt/trafd
# make
# make install
#
Соберем генератов отчетов по работе SQUIDа
# cd /usr/ports/www/sarg
# make
# make install
Настроим SARG
#ee /usr/local/etc/sarg/sarg.conf
//Установим язык который будет использоваться в отчётах
language Russian_windows1251
//Лог по которому строиться отчёт
access_log /usr/local/squid/logs/access.log
//Заголовок отчётов
title "Internet Statistic Server"
//Директория где будут храниться отчёты
output_dir /usr/ftp/html/squid-reports
//Дата в формате день месяц год
date_format e
//Топ 200 сайтов
topsites_num 200
//Заменим IP адреса именами пользователей
usertab /usr/local/etc/sarg/usertab
//Установим кодировку отчёта
charset Windows-1251
Настроим сохранения статистики trafd и генерации отчетов SARG
//Crontab это планировщик заданий.
//Параметры минута, час, число, месяц, день недели, выполняемый скрипт или команда.
//Crontab -e начало редактирование планировщика для выполнения заданий с правами текущего пользователя.
#crontab -e
0 8,12,16,20 * * 1-7 /usr/local/bin/trafsave rl0 rl1
10 9,17 * * 1-7 /usr/local/bin/sarg
Включаем ротацию логов squid первого числа каждого месяца
//Crontab -u squid -e начало редактирование планировщика для выполнения заданий с правами пользователя squid.
# crontab -u squid -e
0 0 1 * * /usr/local/sbin/squid -k rotate
Просмотр информации собранной trafd и сохранённой trafsave существляеться программой traflog
P.S. прошу не судить строго это первый опыт написание статьи
Источник:
http://www.opennet.ru/base/net/freebsd_gateway_setup.txt.html
Категория:
Net
| Добавил:
oleg
(07.02.2008) | Автор:
Shapovalov Victor
Просмотров:
1346
| Рейтинг:
0.0
/
0
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2025