Сервер в кармане, или просто о сложном!

главная -



Простой DHCP-сервер + прозрачный прокси на Squid

Теги: Настройка прокси Squid

Для начала опишу ситуацию, почему я установил у себя на компьютере связку dhcp-сервера и прозрачного прокси на squid. Все дело в том, что мне частенько приходится дома работать с несколькими компьютерами одновременно (что-нить настроить и т.п.), но постоянно каждому компьютеру прописывать ручками ip, а так же прописывать настройки прокси очень не удобно, можешь забыть, что ты уже использовал какой-то ip - поэтому и получаешь конфликты ip-адресов.

Хочу сразу предупредить, что описал лишь только те параметры конфигурационных файлов, которые необходимы для простой работы dhcp-сервера и прокси Squid. Так как этих параметров уйма, предлагаю вам самим с ними поразбираться, а не упрекать меня в том, что я что-то не описал.

Установка DHCP-сервера

1. Устанавливаем dnsmasq

$sudo apt-get install dnsmasq

2. Редактируем файл /etc/dnsmasq.conf

$sudo nano /etc/dnsmasq.conf

3. Ищем закомментированную строку (что то вроде этого):

#interface=eth0

и раскомментируем ее

interface=eth0

при этом не забываем поменять название сетевой карты - eth0 на название вашей сетевой карты, к которой будут конектиться другие компьютеры из вашей сети.
4. Дальше, в этом же файле, раскомментируем или добавляем свою строку: dhcp-range= . К примеру, вот как она выглядит у меня:

dhcp-range=192.168.0.2,192.168.0.15,12h

данная запись означает, что всем компьютерам подключающимся к моей сети, будут автоматически выдаваться ip-адреса, c 192.168.0.2 по 192.168.0.15. И аренда этих адресов будет составлять 12 часов.
5. Перезапускаем сервис dnsmasq:

$sudo /etc/init.d/dnsmasq restart

6. Подключаем в сеть какой-нить компьютер, при этом не забываем поставить ему в сетевых настройках, получение ip-адреса автоматически. Если все верно - то компьютеру присвоится ip-адрес из заданного нами в настройках диапазона.

Установка прозрачного прокси.

1. Устанавливаем squid (и если потребуется, другие нужные пакеты, которые он запросит автоматически):

$sudo apt-get install squid

2. Редактируем файл настроек squid:

$sudo nano /etc/squid/squid.conf

3. Ищем параметр http_port , и выставляем ему следующее значение (к примеру, как у меня):

http_port 3128 transparent

ключевое слово здесь - это transparent, в результате его мы и получим "прозрачный" прокси. А 3128 - это порт для протокола http.
4. В этом же файле ищем параметр visible_hostname и выставляем ему следующее значение:

visible_hostname (название прокси)

где (название прокси) - можете заменить на любое слово или словосочетание. Если вы не заполните данный параметр - squid будет очень сильно ругаться )) 5. Ищем дальше. Теперь ищем параметр acl our_networks заменяем его на такие строки (вот как к примеру у меня):

acl our_networks src 192.168.0.0/255.255.0.0
http_access allow our_networks


Данными строками мы разрешили доступ к прокси для компьютеров из нашей сети 192.168.0.0.
6. Перезапускаем сервис squid:

$sudo /etc/init.d/squid restart

7. Ну и наконец-то завершающий аккорд. Добавим правило перенаправления портов в наш файервол.

$sudo iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

8. Теперь компьютеры в вашей сети смогут выходить в интернет через ваш "прозрачный" прокси, при этом нам нигде не надо прописывать настройки прокси вручную !! Все работает автоматом.

P.S. Чтобы снова, при каждом включении компьютера, не запускать по новой правило для файервола, проделываем следующее:
1. Запускаем правило для файервола:

$sudo iptables -t nat -A PREROUTING -i eth0 -d ! 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128

2. Сохраняем список всех правил файервола в файл:

$iptables-save /etc/iptables.rules

3. Редактируем файл /etc/network/interfaces

$sudo nano /etc/network/interfaces

и после блока про сетевую карту eth0 (к примеру, у меня так), вставляем строку

pre-up iptables-restore < /etc/iptables.rules

Вот собственно и все ))

Автор: leolik
blog: http://leolik.blogspot.com
email: leolikua at gmail.com



Авторизуйтесь для добавления комментариев!


    забыли пароль?    новый пользователь?