Возможно вы искали: 'Alice: Madness Returns'

May 15 2025 19:43:15
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Интернет шлюз на FreeBSD (freebsd route ipfw nat squid proxy)

Интернет шлюз на FreeBSD (freebsd route ipfw nat squid proxy)

Ключевые слова: freebsd, route, ipfw, nat, squid, proxy, (найти похожие документы)

From: Alchemist <lipovetskiy@yandex.ru.>
Newsgroups: email
Date: Mon, 24 Jul 2008 14:31:37 +0000 (UTC)
Subject: Интернет шлюз на FreeBSD


Построение шлюза в глобальную сеть на FreeBSD - это один из самых частых
случаев использования этой системы. Основные плюсы данного решения это:
стабильность, масштабируемость, устойчивость к высоким нагрузкам и
естественно бесплатность всего используемого ПО. В этой заметке я опишу
свой опыт развертывания Интернет-шлюза на FreeBSD 7.0 RELEASE amd64 с
использованием межсетевого экрана IPFW, демона трансляции сетевых
адресов natd и прокси-сервер squid.

Начнем с установки IPFW. Для этого нужно пересобрать ядро с поддержкой
нескольких функций. Заходим в директорию соответствующую архитектуре нашего
процессора и делаем копию дефолтного ядра в ROUTER:

# cd /usr/src/sys/amd64/conf
# cp GENERIC ROUTER


Редактируем наше новое ядро и добавляем новые функции:

cpu HAMMER
ident ROUTER

makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols

options IPFIREWALL # собственно файрволл
options IPFIREWALL_VERBOSE # логгинг пакетов, если в правиле написано log
options IPFIREWALL_VERBOSE_LIMIT=100 # ограничение логов (повторяющихся)
options IPFIREWALL_DEFAULT_TO_ACCEPT # дефолтное правило - разрешающее
options IPDIVERT # необходимо для NAT
options IPFIREWALL_FORWARD # перенаправление пакетов
options DUMMYNET # ограничение скорости


Собираем и устанавливаем ядро:

# cd /usr/src
# make buildkernel KERNCONF=ROUTER
# make installkernel KERNCONF=ROUTER


Добавляем в rc.conf строки:

firewall_enable="YES"
firewall_type="open"
firewall_logging="YES"
natd_enable="YES"
natd_interface="rl0";


Перезагружаемся. Если все нормально, то в итоге у нас должен получиться
открытый фаервол с NAT. Пока оставим как есть.

Следущим этапом у нас будет установка прокси-сервера.

# cd /usr/ports/www/squid
# make install clean
# rehash


Дальше редактируем конфигурационный файл сквида. У меня сейчас небольшая
офисная сеть без домена, поэтому с авторизацией не занимался - все
ограничения идут по ip:

/usr/local/etc/squid/squid.conf

# порт который слушаем
http_port 3128

# порт прозрачного прокси
http_port 3129 transparent

# список слов, которые будучи обнаруженными в URL
# вызывают обработку без кэширования
hierarchy_stoplist cgi-bin ?

# список ACL которые вызывают несовпадение с кэшем,
# и, запрос с ответом кэшироваться не будут
acl QUERY urlpath_regex cgi-bin ?

# собственно - правило что не кэшируем
no_cache deny QUERY

# сколько отдаём ему памяти
cache_mem 256 MB

# Директория для кэша, числа - размер кэша в Mb,
# число директорий первого уровня, число директорий второго
# уровня в каждой директории первого.
cache_dir ufs /usr/local/squid/cache 50000 64 512

# лог доступа - первый параметр путь, второй - формат
# форматы описаны в дефолтовом файле.
access_log /var/log/squid/access.log

# лог активности менеджера хранилища. Показывает, какие
# объекты были сохранениы/удалены из кэша и как долго.
# мне он не нужен, а места занимает прилично.
cache_store_log none

# файл hosts, проверяемый при запуске. Из него берётся
# доменное имя и добавляется к неполным адресам (которые
# не содержат ни одной точки в имени)
hosts_file /etc/hosts

# директория где хранятся HTML c текстами ошибок
error_directory /usr/local/etc/squid/errors/Russian-1251
cache_log /var/log/squid/cache.log

#debug_options ALL,5
pid_filename /var/log/squid/squid.pid

# порты на которе можно ходить пользователям
acl safe_ports port 80 # http
acl safe_ports port 21 # ftp
acl safe_ports port 443 # ssl
acl icq_ports port 5190 # ICQ

# пользователи у которых просто интернет - с ограничениями
acl inet_users src "/usr/local/etc/squid/inet_users"

# пользователи с полными парвами на доступ в инет
acl inet_full src "/usr/local/etc/squid/inet_full"

# Описываем все сети все IP
acl all src 0.0.0.0/0.0.0.0

# описываем локалхост
acl localhost src 127.0.0.1/255.255.255.255

# запрещённые в URL выражения (для всего УРЛа)
acl deny_url url_regex "/usr/local/etc/squid/deny_url"

# запрещённые доменные имена
acl deny_domains dstdomain "/usr/local/etc/squid/deny_domains"

# пользователи с ограниченным доступом в интернет, только
# определённый набор ресурсов и всё.
acl inet_restrict src "/usr/local/etc/squid/inet_restrict"

# список сайтов для тех у кого их определённый набор
acl domains_for_restrict dstdomain "/usr/local/etc/squid/domains_for_restrict"

# пользователи ICQ
acl inet_icq src "/usr/local/etc/squid/inet_icq"

# Разрешаем доступ ко всему группе inet_full
http_access allow inet_full

# Зарубаем запрещённые куски url, рубим рекламу если надо
#http_access deny deny_url

# Разрешаем асечный порт тем у кого есть аська
http_access allow inet_icq icq_ports

# зарубаем запрещённые домены
http_access deny deny_domains

# зарубаем все порты проме safe_ports
http_access deny !safe_ports

# разрешаем инет обычным пользователям
http_access allow inet_users

# разрешаем инет ограниченным пользователям на разрешённые сайты
http_access allow inet_restrict domains_for_restrict

# блокируем всё лишнее
http_access deny all


Вкратце по конфигу: слушаем как на стандартном порту, так и прикрутили
прозрачный прокси; принимаем запросы http, https ftp, icq; распределение
доступа производится на основе правил и файлов, в которых прописываются
ip нужных компьютеров.

Дальше создаем и заполняем содержимым все файлы, указанные в этом
конфиге, делаем пользователя squid владельцем папки с кэшем, после чего
создаем кэш и запускаем сквид:

# chown -R squid:wheel /usr/local/squid
# squid -z
# /usr/local/etc/rc.d/squid start
# ps -waux | grep squid
squid 965 0,0 0,1 7688 2076 ?? Is 21:37 0:00,00 /usr/local/sbin/squid -D
squid 967 0,0 1,0 28168 20008 ?? S 21:37 0:06,00 (squid) -D (squid)
squid 1008 0,0 0,0 2532 844 ?? Is 21:37 0:00,00 (unlinkd) (unlinkd)
root 7943 0,0 0,1 6928 1428 p0 S+ 16:02 0:00,00 grep squid


Теперь опять вернемся к фаерволу. Он у нас есть, открытый - но толку-то от
такого фаервола ? =) Создаем свой скрипт с правилами. У меня он выглядит
так:


#!/bin/sh
# при работе по SSH, чтобы перечитать конфиг набирать nohup sh /etc/rules

# Прежде, чем мы начнем, сбросим список
ipfw -q -f flush

# Установим префикс команды для набора правил
cmd="ipfw -q add"
skip="skipto 400"
wanip="111.111.111.111" # внешний IP
lannet="192.168.0.0/24" # внутренняя сеть
eif="rl0" # внешний интерфейс

# Нет запретов внутри интерфейса смотрящего в локальную сеть
$cmd 010 allow all from any to any via re0

# Нет ограничений на Loopback интерфейсе
$cmd 020 allow all from any to any via lo0

# Рубим попытки lo0 куда-то лезть и откуда-то лезть на lo0
$cmd 030 deny ip from any to 127.0.0.0/8
$cmd 040 deny ip from 127.0.0.0/8 to any

# отправляем всех на прозрачный squid
$cmd 050 fwd 127.0.0.1,3129 tcp from $lannet to any 21,80,443,5190 out via $eif

# Входящий NAT
$cmd 060 divert natd ip from any to any in via $eif

# Позволяем пакету проходить, если предыдущий был добавлен в
# "динамическую" таблицу правил с разрешением состояния keep-state
$cmd 070 check-state

############## Outgoing ################

# Исходящий PING
$cmd 100 $skip icmp from any to any keep-state

# Исходящий NTP
$cmd 105 $skip udp from any to any 123 out via $eif keep-state

# Разрешаем DNS
$cmd 110 $skip udp from any to any 53 out via $eif keep-state
$cmd 111 $skip tcp from any to any 53 out via $eif setup keep-state

# Выпускаем пользователей в обход сквида
$cmd 140 $skip all from $lannet to any 4899 out via $eif setup keep-state
$cmd 150 $skip all from $lannet to any 3389 out via $eif setup keep-state
$cmd 160 $skip all from $lannet to any 25 out via $eif setup keep-state
$cmd 170 $skip all from $lannet to any 110 out via $eif setup keep-state

# Разрешаем полный выход с сервака
$cmd 190 $skip all from $wanip to any out via $eif setup keep-state

############# Incoming ################

# Запрещаем весь входящий трафик из зарезервированных адресных пространств
$cmd 200 deny all from 192.168.0.0/16 to any in via $eif #RFC 1918 private IP
$cmd 201 deny all from 172.16.0.0/12 to any in via $eif #RFC 1918 private IP
$cmd 202 deny all from 10.0.0.0/8 to any in via $eif #RFC 1918 private IP
$cmd 203 deny all from 127.0.0.0/8 to any in via $eif #loopback
$cmd 204 deny all from 0.0.0.0/8 to any in via $eif #loopback
$cmd 205 deny all from 169.254.0.0/16 to any in via $eif #DHCP auto-config
$cmd 206 deny all from 192.0.2.0/24 to any in via $eif #reserved for docs
$cmd 207 deny all from 204.152.64.0/23 to any in via $eif #Sun cluster
$cmd 208 deny all from 224.0.0.0/3 to any in via $eif #Class D & E multicast

# Запрещаем ident
$cmd 215 deny tcp from any to any 113 in via $eif

# Запрещаем весь сервис Netbios. 137=имя, 138=дейтаграмма, 139=сессия
$cmd 220 deny tcp from any to any 137 in via $eif
$cmd 221 deny tcp from any to any 138 in via $eif
$cmd 222 deny tcp from any to any 139 in via $eif
$cmd 223 deny tcp from any to any 81 in via $eif

# Входящий пинг, несколько типов
$cmd 300 allow icmp from any to $wanip in via $eif icmptypes 0,8,11 limit src-addr 2

# Разрешаем входящую www функцию, если есть вэб сервер
$cmd 310 allow tcp from any to $wanip 80 in via $eif setup limit src-addr 2

# Разрешаем входящие безопасные SSH, номер порта лучше сменить
$cmd 320 allow tcp from any to $wanip 22 in via $eif setup limit src-addr 2

# Разрешаем входящую почту SMTP, если есть почтовый сервер
$cmd 330 allow tcp from any to $wanip 25 in via $eif setup limit src-addr 2

# Разрешаем входящую почту POP3, если есть почтовый сервер
$cmd 340 allow tcp from any to $wanip 110 in via $eif setup limit src-addr 2

# Разрешаем RAdmin, номер порта лучше сменить
$cmd 350 allow tcp from any to $wanip 4899 in via $eif setup limit src-addr 2

# Разрешаем уже установленные соединения
$cmd 360 allow all from any to any established

########### Final ###############

# рубим все, что не ушло в скип
$cmd 399 deny log all from any to any

# Исходящий NAT
$cmd 400 divert natd ip from any to any out via $eif

# Выпускаем пакеты из скипа
$cmd 410 allow all from any to any

# Режем все лишнее с занесением в лог
$cmd 999 deny log all from any to any




Меняем в rc.conf строчку firewall_type="open" на
firewall_script="/etc/rules" и применяем скрипт с правилами:

# nohup sh /etc/rules


Все тщательно проверяем и приходим к выводу, что у нас не работает RAdmin =)

Прокинуть порты на внутренние машины можно стандартными средствами natd,
но лишние проблемы нам не нужны и поэтому мы пойдем другим путем - поставим
из портов rinetd, отвечающий за проброс портов и требующий тривиальной
настройки:

# cd /usr/ports/net/rinetd
# make install clean
# rehash


Правим его конфиг, у меня примерно так выглядит:

/usr/local/etc/rinetd.conf

213.221.56.98 4899 192.168.0.100 4899


Добавляем его в rc.conf и стартуем:

# echo 'rinetd_enable'="YES" > > rc.conf
# /usr/local/etc/rc.d/rinetd start


PS: для создания этой статьи активно использовались материалы с сайта
http://www.lissyara.su, за что ему огромная благодарность!
617 Прочтений •  [Интернет шлюз на FreeBSD (freebsd route ipfw nat squid proxy)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Интернет шлюз на FreeBSD (freebsd r... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка