Форум русской поддержки ОС Fedora linux
когда-то на форуме поднималась тема, о том как собственно это сделать, возможно это не самый верный варинант, но зато быстро и просто. Надеюсь если я где-то ошибся меня поправят -).
Для создания шлюза будем использовать: Fedora 9 (c установленной графической оболочкой Gnome), Firestarter, Squid (вот тут отдельное спасибо oNe3).
Eth0 — Локальная сеть
Eth1 — Наш интернет
Загрузившись, заходим "System->Administration->Network Devices". Там настраиваем парметры наших сетевых карт, например Eth0 (192.168.1.1 netmask 255.255.255.0 gtw "оставляем пустым") Eth1 (123.222.12.4 netmask 255.255.255.248 gtw 123.222.12.5), дале в вкладке DNS прописываем адреса днс-серверов.
Ставим каждую карту на автозагрузку при старте *к сожалению с networkmanager подружить их мне не удалось.
Проверяем интернет на самом шлюзе — должен быть. Если нету — значит что-то сделали не так.
Далее: "System->Administration->Firewall" Там вкладка masquerading (Руский перевод — Маскарад) Выбираем пункт
Eth1, после чего этот фаервол оставляем в покое.
Устанавливаем Firestarter и Squid ( так же можно установить SARG для анализа логов squid`а и создания детализированных отчетов)
Запускаем Firestarter выбираем раздел policy, там:
Edit->Preferences ->Policy и ставим галочку напротив Apply policy changes immideatly (таким образом внесённые вами изменения вступят в силу сразу).
Outbound policy - выбираем Restrictev by default, whitelist traffic (всё, что не разрешено — запрещено)
- Открываем следующие порты для всех:
3128 Squid
25 Pop3
110 smtp
993 imap
137-139 445 samba
53 DNS
- Открываем следующие порты для Firewall host:
443 icq
80 http
Inboud policy:
3128 Squid
25 Pop3
110 smtp
993 imap
137-139 445 samba
Теперь переходим к Squid`у:
Приводим squid.conf к примерно следующему виду (тут уж всё зависит от ваших целей, впрочем, как и в случае с Firewall)
acl BANNER url_regex banner bannerid reklama linkexch banpics marketgid us\.yimg\.com[\./]ad[s]?[\./]
# здесь мы режем баннеры далеко не все, но некоторые попадуться, таким же образом можно порезать и не угодные вам / начальству сайты, хотя думаю, что squidguard подойдёт для этих целей лучш.
acl all src all
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80 # http
#acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
#acl Safe_ports port 70 # gopher
#acl Safe_ports port 210 # wais
#acl Safe_ports port 1025-65535 # unregistered ports
#acl Safe_ports port 280 # http-mgmt
#acl Safe_ports port 488 # gss-http
#acl Safe_ports port 591 # filemaker
#acl Safe_ports port 777 # multiling http
#acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
# восклицательный знак означает булево "не" т.е. правила типа http_access deny CONNECT !SSL_ports означают #запретить все, кроме, тех, что подпадают под правило SSL_ports
#Так же можно задавать правила типа
#acl dima src 192.168.1.15
#acl pron url_regex "любимые Димины ччч-сайты"
# http_access deny pron dima
#таким образом порнухи лешиться только пользователь Дима.
acl razr url_regex "список разрешенных сайтов"
http_access razr localnet
#Разрешили пользователям локальной сети бороздить простора интернета
http_access allow purge localhost
http_access deny purge
#Запрещаем неизвестные порты
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny BANNER
# Запрещаем, то что подпадает под правило BANNER
deny_info error BANNER
#Здесь мы выводим сообщение для правила banner, для создания собственного сооьщения создайти html в папке #/usr/share/squid/errors/Russian-1251
http_access allow localhost
#Запретили всё, что не разрешено
http_access deny all
icp_access allow localnet
icp_access deny all
hierarchy_stoplist cgi-bin, chat ?
#Не кэшируем чаты
cache_mem 512 MB
#максимальное количество памяти которое может скушать squid
cache_dir aufs /usr/local/Squid/cache 4048 16 256
#создайте дерикторию для кэша, не забудьте сменить на неё права chmod 777
/usr/local/Squid -R
maximum_object_size 64000 KB
#максимальный размер сохраняемого обьекта
access_log /var/log/squid/access.log squid
negative_ttl 1 minutes
#время жизни страничек с ошибкой
positive_dns_ttl 6 hours
# Время жизни удачного преобразования DNS-имён в ip-адреса
negative_dns_ttl 1 minute
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
delay_class 1 1
#создаём 1 пул 1го класса (на всю сеть
delay_parameters 0/113246208 #
#ограничиваем обьём трафика, в байтах
delay_access 1 deny !all
#после того как трафик кончился всем все отрубаем
error_directory /usr/share/squid/errors/Russian-1251
иректория из которой получаються странички с теми или иными ошибками, туда же стоит класть и свои
coredump_dir /var/cache/squid
Теперь сохраняем, закрываем конфиг и запускаем прокси /etc/init.d/squid start
не забудте добавить squid в автозагрузку.
Вот кажеться и все на данный момент.
Отредактированно Nomad-71 (2008-10-24 21:40:33)
Неактивен
Хочу добавить что при включении NAT (маскарад) у клиентов в локалке будут работать торренты. Если необходимо запретить использование торрентов то нужно запретить маскарадинг, либо как было в моем случае разрешить пользователям пользоваться только электронной почтой то нужно открыть файл /etc/sysconfig/iptables для правки и привести секцию nat к следующему виду:
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -p tcp -m tcp -m multiport --ports 25,110 -j MASQUERADE
COMMIT
После перезапуска iptables командой
#service iptables restart
работа торрентов будет невозможна. Будет возможность работать только через squid.
Также для ускорения работы squid советую увеличить объем памяти под кэш добавив(изменив) в /etc/squid/squid.conf параметр
cache_mem 32 MB
И еще несколько примечаний
Чтобы настроить из консоли запуск squid при запуске системы достаточно выполнить команду:
chkconfig squid on
Чтобы разрешить переброс пакетов с одного интерфейса на другой (на сервере) необходимо отредактировать файл /etc/sysctl.conf изменив строку
net.ipv4.ip_forward=0
на
net.ipv4.ip_forward=1
а затем выполнить команду:
#sysctl -w net.ipv4.ip_forward="1"
Неактивен
не работает
Неактивен
Убедительный довод
Неактивен
nik_user написал:
не работает
обожаю эти слова особенно когда еще на возникающий в таком случае вопрос "А что именно?" отвечают "Всё"
Что именно не получилось, давайте попробуем разобраться..
Неактивен