Я использую ПК под управлением CentOS 6.7 с двумя сетевыми картами (eth0 и eth1) в качестве прокси-сервера Squid. eth0 (красный интерфейс / 192.168.0.2/24) физически связан с маршрутизатором (192.168.0.1/24), а eth1 (зеленый интерфейс / 192.168.1.1/24) подключен к локальной сети.
eth0:
Connect automatically
Method = Manual
Address = 192.168.0.2
Mask = /24
GW = 192.168.0.1
DNS = 8.8.8.8, 8.8.4.4
eth1:
Connect automatically
Method = Manual
Address = 192.168.1.1
Mask = /24
GW = 192.168.0.2
DNS = 8.8.8.8, 8.8.4.4
При настройке блока CentOS в качестве прокси-сервера я выполнил следующие настройки:
Обновил ням и установил Squid
отредактировал файл /etc/squid/squid.conf, как показано ниже:
#
# Рекомендуемая минимальная конфигурация:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32 :: 1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 :: 1# Пример правила, разрешающего доступ из ваших локальных сетей.
# Адаптируйте список ваших (внутренних) IP-сетей, откуда просматриваете
# должно быть разрешено
#acl localnet src 10.0.0.0/8 # RFC1918 возможная внутренняя сеть
#acl localnet src 172.16.0.0/12 # RFC1918 возможная внутренняя сетьacl localnet src 192.168.1.0/24 # RFC1918 возможная внутренняя сеть
#acl localnet src fc00 :: /7 # RFC 4193 диапазон локальной частной сети
#acl localnet src fe80 :: /10 # RFC 4291 локальные (напрямую подключенные) машины
,
,
. (другие строки остались прежними)Запустил прокси Squid:
# служба запуска squid # chkconfig squid on
Отредактировал файл /etc/sysctl.conf следующим образом
net.ipv4.ip_forward = 1
Отредактировал файл /etc /sysconfig /iptables-config
Изменено "нет" на "да" в следующих строках: И сохранено
IPTABLES_SAVE_ON_STOP = "да" IPTABLES_SAVE_ON_RESTART = "да"
Изменены правила в iptables следующим образом:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -t filter -D INPUT -j REJECT --reject-with icmp-host-запрещено
# iptables -t filter -D FORWARD -j REJECT --reject-with icmp-host-запрещено
# iptables -t filter -A INPUT -p tcp --dport 3128 -j ПРИНЯТЬ
# iptables -A INPUT -j REJECT --reject-with icmp-host-запрещено
# iptables -A FORWARD -i eth1 -p tcp --dport 443 -d www.facebook.com -j DROP
# iptables -A FORWARD -i eth1 -p tcp --dport 443 -d www.youtube.com -j DROP# сервис iptables save
# chkconfig iptables on
# сервис iptables restartУстановил dhcp сервер (ням установить dhcp)
Отключил Селинукс:
# setenforce 0
# vim /etc /sysconfig /selinux and chandge;
SELINUX = принуждение к
SELINUX = отключеноОтредактировал файл /etc /sysconfig /dhcpd и добавил;
DHCPDARGS = eth1
Отредактировал файл /etc/dhcp/dhcpd.conf следующим образом:
# Файл конфигурации DHCP-сервера.
# см. /usr/share/doc/dhcp*/dhcpd.conf.sample
# см "man 5 dhcpd.conf"
#
авторитетный;
подсеть 192.168.1.0 маска сети 255.255.255.0 {
диапазон 192,168,1,50 192,168,1,220;
опция доменных имен-серверов 8.8.8.8, 8.8.4.4;
# опция доменное имя "centos.local"
дополнительные маршрутизаторы 192.168.1.1;
опция широковещательного адреса 192.168.1.255;
время аренды по умолчанию 600;
максимальное время аренды 7200;
}Запустил dhcp сервер
# service dhcpd start
# chkconfig dhcpd onПосле добавления фильтрующих сайтов /правил /расширений файлов в,
а.) /etc/squid/acls.txt
б.) /etc/squid/adult.txt и
c.) Файлы /etc/squid/badsites.txt Я изменил файл /etc/squid/squid.conf:,
. (Выше правил, как chnaged в шаге 2)
,
#
# ВСТАВЬТЕ СВОЕ СОБСТВЕННОЕ ПРАВИЛО (И) ЗДЕСЬ, ЧТОБЫ РАЗРЕШИТЬ ДОСТУП ОТ ВАШИХ КЛИЕНТОВ
#
visible_hostname cetos-server.local
acl social dstdomain -i "/etc/squid/acls.txt"
acl badsites dstdomain -i "/etc/squid/badsites.txt"
acl adult url_regex -i "/etc/squid/adult.txt"
acl нерабочее время SMTWHFS 18: 00-23: 59
acl нерабочее время SMTWHFS 00: 00-06: 00http_access отрицать нерабочий
http_access deny social
http_reply_access запретить злоумышленники
http_reply_access отрицать взрослого# Мы рекомендуем вам использовать по крайней мере следующую строку.
ierarchy_stoplist cgi-bin?# Раскомментируйте и настройте следующее, чтобы добавить каталог кеша диска.
cache_dir ufs /var /spool /squid 10240 16 256
,
. (Другие правила не были изменены)Перезапущенный squid, dhcpd и iptables:
# chkconfig squid on
# сервис squid перезапустить# chkconfig iptables on
# сервис iptables restart# chkconfig dhcpd on
# service dhcpd restart
Как только это сделано, прокси работает очень хорошо. Ни один ПК в локальной сети не может получить доступ к Интернету без прохождения через прокси-сервер (192.168.1.1 Порт: 3128).
НО,
Эта проблема:
После перезапуска компьютера CentOS, хотя все вышеперечисленные конфигурации все еще присутствуют, а Squid, DHCP и iptables работают правильно (так как они работали до перезапуска машины), теперь ПК в моей локальной сети может получить доступ в Интернет без прокси настройки добавляются на этот компьютер. (Например: ПК с 192.168.1.155/24 может выходить в интернет без добавления IP-адреса и порта прокси-сервера в настройках системного прокси.)
Не могли бы вы помочь мне исправить эту проблему?
Спасибо.