Fedora linux forum

Форум русской поддержки ОС Fedora linux

 

#1 2008-10-24 21:38:40

Nomad-71
Member
Зарегистрирован: 2008-07-06
Сообщений: 275

HowTo: Шлюз на Fedora 9 быстро и грязно

когда-то на форуме поднималась тема, о том как собственно это сделать, возможно это не самый верный варинант, но зато быстро и просто. Надеюсь если я где-то ошибся меня поправят -).
Для создания шлюза будем использовать: Fedora 9 (c установленной графической оболочкой Gnome), Firestarter, Squid (вот тут отдельное спасибо oNe3).
Eth0 — Локальная сеть
Eth1 — Наш интернет smile

Загрузившись, заходим "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)


Live is only memory...

Неактивен

 

#2 2008-11-06 11:30:02

oNe3
Member
Зарегистрирован: 2008-09-18
Сообщений: 36

Re: HowTo: Шлюз на Fedora 9 быстро и грязно

Хочу добавить что при включении 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

И еще несколько примечаний wink
Чтобы настроить из консоли запуск squid при запуске системы достаточно выполнить команду:
chkconfig squid on

Чтобы разрешить переброс пакетов с одного интерфейса на другой (на сервере) необходимо отредактировать файл /etc/sysctl.conf изменив строку
net.ipv4.ip_forward=0
на
net.ipv4.ip_forward=1
а затем выполнить команду:
#sysctl -w net.ipv4.ip_forward="1"

Неактивен

 

#3 2008-12-08 23:17:24

nik_user
Member
Зарегистрирован: 2007-11-03
Сообщений: 47

Re: HowTo: Шлюз на Fedora 9 быстро и грязно

не работает

Неактивен

 

#4 2008-12-09 11:22:20

oNe3
Member
Зарегистрирован: 2008-09-18
Сообщений: 36

Re: HowTo: Шлюз на Fedora 9 быстро и грязно

Убедительный довод smile

Неактивен

 

#5 2008-12-10 21:36:39

Nomad-71
Member
Зарегистрирован: 2008-07-06
Сообщений: 275

Re: HowTo: Шлюз на Fedora 9 быстро и грязно

nik_user написал:

не работает

обожаю эти слова big_smile особенно когда еще на возникающий в таком случае вопрос "А что именно?" отвечают "Всё"
Что именно не получилось, давайте попробуем разобраться..


Live is only memory...

Неактивен