Авторизация

Вы можете войти через одну из учетных записей:

ИЛИ



Напомнить пароль
Регистрация

Блог им. BUMDebian файрвол и прокси

Настройка кэширующего прокси-сервера на основе Debian Lenny GNU/Linux.

Для выполнения последующего, вам понадобится стандартная минимальная установленная система. Лично я ставил с образа netinstall. Здесь я не буду описывать установку, ибо в сети предостаточно подобных мануалов. Google вам в помощь, другими словами =)
Далее, предполагается, что вы имеете:
сетевую карту, смотрящую во внешнюю сеть – у меня это интерфейс eth0
карту, которая соединяет с внутренней сетью, пользователей которой мы будем выпускать во внешнюю – eth1
доступ в интернет (желательно безлимит ;) ), либо установочные диски. Мною описывается установка с интернета.
компьютер с монитором (желательно), либо же компьютер во внешней или внутренней сети, с которого дистанционно можно будет устанавливать или настраивать.
Итак, мы загрузились в пользователя свежеустановленного дебиана.
Первое, что нам предстоит сделать – это настроить сетевые интерфейсы на взаимодействие с сетями, если вы не сделали это при установке. В моем случае, оба и-фейса eth0 и eth1 имеют статический адрес.
«Заходим» в рута:
$ su -


Редактируем файл интерфейсов:
# nano /etc/network/interfaces

Приводим его к подобному виду:
# The loopback network interface
auto lo
iface lo inet loopback
# address - айпи адрес, выданный нам провайдером/администратором (для внешнего интерфейса)
# или внутрисетевой адрес будущего шлюза/прокси (для внутреннего)
# netmask - маска подсети
# gateway - адрес шлюза. Также получаем у провайдера или администратора
#
# Первичный интерфейс, у меня он смотрит во внешнюю сеть.
allow-hotplug eth0
iface eth0 inet static
address 192.168.56.39
netmask 255.255.255.0
gateway 192.168.56.254
auto eth0
# Вторичный интерфейс, у меня он смотрит во внутреннюю сеть.
allow-hotplug eth1
iface eth1 inet static
address 192.168.222.254
netmask 255.255.255.0
auto eth1


Как здесь видно, мы установили на внешний интерфейс адрес 192.168.56.39, и для того чтоб нам выйти из внешней сети наружу (простите за тавтологию), мы будем проходить через машину 192.168.56.254. Для внутренней же сети, у нас будет адрес 192.168.222.254. Чтоб не путаться, представляйте шлюз как двери между улицей и квартирой, где снаружи написан номер вашего дома (внешний айпи), а внутри – надпись «выход» (внутренний айпи) (=
Сохраняем файл (Ctrl+O), отвечаем на вопрос, (Ctrl+X). Рестартуем сеть (мы еще под рутом, помните?):
# /etc/init.d/networking restart

Теперь пинганите внешний шлюз (погуглите как пинговать, лень описывать). Предполагаем, что пинг прошел удачно, иначе где-то вы уже накосячили. Айпишник правильно вписали, точно? Ну, я уверен, вы разберетесь (=
Далее, прописываем в файле /etc/resolv.conf выданный нам адрес ДНС (дескать сервер имен…)
# nano /etc/resolv.conf

Вписываем туда «nameserver ххх.хх.ххх.х» без кавычек, где вместо иксов айпишник угадайте чего.
Сохраняем файл (если такового не было, вводим при сохранении его имя).
Проверяем интернет стандартной ддос-аттакой на яндекс (=:
# ping ya.ru
PING ya.ru (213.180.204.8) 56(84) bytes of data.
64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=56 time=70.9 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=2 ttl=56 time=78.3 ms


…… прерываем эту радость нажатием Ctrl+C и начинаем наконец установки и настройки!
Устанавливаем сетевые репозитории Ленни в apt’е (если же вы пользуетесь дисками, гуглите по apt-cdrom и добавляйте диски)
# nano /etc/apt/sources.list

Вот мой sources.list, выбрать зеркало вы можете любое другое из доступных на debian.org:
deb http://security.debian.org/ lenny/updates main contrib
deb-src http://security.debian.org/ lenny/updates main contrib
deb http://ftp.de.debian.org/debian lenny main contrib non-free
deb-src http://ftp.de.debian.org/debian lenny main contrib non-free


Сохраняем файл. Выполняем обновление системы:
# apt-get update
# apt-get dist-upgrade


Ждем пока загрузятся и установятся пакеты, отвечаем на вопросы при необходимости). Возможно, есть смысл перезагрузиться в новое ядро (если таковое было автоматически установлено), в таком случае нужно повторить первую команду, мною в этом руководстве указанную (su -).
Устанавливаем sudo, ибо под рутом постоянно сидят только камикадзе, имбецилы и такие личности, до которых нам с вами еще расти и расти (=.
# apt-get install sudo


Ждем окончания установки, затем разрешаем нашему пользователю, от имени которого мы в дальнейшем будем работать, пользоваться этой программой:
# nano /etc/sudoers

Ищем строчку «root ALL=(ALL) ALL» и дублируем ее, подставив имя своего пользователя вместо «root». Сохраняем изменения.
Для тех, кто будет в дальнейшем использовать SSH для доступа извне, нужно установить пакет ssh. Чтоб подключиться затем к настраиваемой машине, можно будет воспользоваться на клиенте командой
$ ssh -l user 192.168.222.254

или
$ ssh user@192.168.222.254

Естественно, можно пользоваться и любим подручным софтом типа putty.

Теперь приступим к установке и настройке кеширующего прокси-сервера Squid (в дальнейшем – сквид). Чтоб установить его, выполните команду
$ sudo apt-get install squid


и дождитесь пока программа установки скачает сквид и все его зависимости и установит их.
Примечание: установится сквид стабильной второй версии. Если вы хотите установить третий сквид, указывайте squid3. У меня были с ним некоторые проблемы, однако, полагаю, что дело было или в кривизне моих рук (чего у вас, возможно, нет), либо в криво собранном пакете (что вскоре могут исправить).
На этом этапе нам было бы очень полезно (читай – необходимо) иметь еще один компьютер, который можно бы было подключить к внутреннему интерфейсу сервера и на котором мы бы могли проверить соединение с интернетом.
После окончания установки, начинаем редактировать файл конфигурации сквида. Не знаю как вам, лично мне удобнее когда в файле конфига нет ничего лишнего, то есть присутствуют только непосредственно параметры конфигурации. Для этого бекапнем оригинальную конфигурацию сквида (чтоб было где искать описания всех параметров):
$ sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
и выжмем из оригинальной конфигурации всё, не закоментированное:
$ sudo cat /etc/squid/squid.conf.original | grep -v '^\(#\|$\)' > /etc/squid/squid.conf
В итоге заимеем дефолтный конфигчик без ничего нишнего. Но всё же очень советую кинуть взор в оригинальный конфиг и почитать его на досуге – там очень много интересного!
Ну, наконец, приступим к редактированию:
$ sudo nano /etc/squid/squid.conf

Редактировать начинаем со строк с такими комментариями: # RFC1918 possible internal network
Заменяем указанные сети (сеть) на свои внутренние сети, которые мы будем выпускать. У меня это выглядит так:
# обычные пользователи с ограниченной скоростью
acl lim_access src 192.168.222.0-192.168.223.0/255.255.255.0

# необычные пользователи =)
acl full_access src 192.168.222.38/255.255.255.255
Теперь разрешим ходить им на http. Ищем последнюю строчку http_access deny all и добавляем перед ней такие строчки:
http_access allow full_access
http_access allow lim_access
Не забываем сделать то же самое и для icmp_access. Меняем localnet на наши сети:
icmp_access allow full_access
icmp_access allow full_access

Следующим шагом будет установка порта прокси и указание его прозрачности. Редактируем строчку http_port 3128 к следующему виду (порт можете указать и свой, но этот стандартен и желателен):
http_port 3128 transparent

Что такое прозрачность прокси? Это когда пользователи не обязаны явно указать прокси сервер в своих приложениях, чтоб выйти в интернет. То есть сервер сам перенаправляет запросы с 80 порта (и других указанных) на свой 3128. Так вот, следует заметить, что прозрачность у нас появится не сразу, а только после того как мы соответствующим образом настроим файрвол. Пока что пускай будет так как есть – не прозрачно.
Затем, после «hierarchy_stoplist cgi-bin ?» добавляем настройки кеша (о параметрах почитайте оригинальный squid.conf, забекапленный нами ранее):
cache_mem 64 MB
cache_dir ufs /var/spool/squid 1024 16 256
cache_mgr admin@mail.ua

После строчек с refresh_pattern начинаем настраивать пулы (по сути ограничения на ранее созданные группы сетей; помните acl?):
# указываем количество правил
delay_pools 2

# регистрируем 2 пула 3 класса (о классах читаем знаете где — в комментах исходного конфига)
delay_class 1 3
delay_class 2 3

# указываем кто есть кто и указываем доступ
delay_access 1 allow full_access
delay_access 1 deny all
delay_access 2 allow lim_access
delay_access 2 deny all
# указываем параметры скорости для первого пула (нет ограничений)
delay_parameters 1 -1/-1 -1/-1 -1/-1
# второго пула (это у нас lim_access) - режем скорость примерно до 10 кбайт/с после первого Мб
delay_parameters 2 -1/-1 -1/-1 10000/1024000
Всё! Сохраняем файл и перезапускаем сквид:
$ sudo /etc/init.d/squid restart
Однако, не спешим радоваться, ибо мы еще не настроили файрвол.

Далее описание настройки фаервола и прочих вкусностей
  • +1
  • BUM
  • 15 мая 2010, 10:47
  • add twitter 

Комментарии (0) Вконтакте (0) facebook (0)

Комментарии (0)

rss свернуть / развернуть

Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.