Установка и настройка прокси сервера SQUID и DHCP сервера
Установка производится на виртуальный сервер на WmWare (172.16.107.39 ; login:root ; pass:tjDmz900). Ипользуется два интерфейса - один получает интернет (сеть 172.16.121.0/24 ; порт Fa44 - Access VLAN 221), через другой происходит обращение к самому прокси (сеть 172.16.116.0/24; порт Fa43 - Trunk). Установка самой операционки производится с параметрами по-умолчанию (минимальная установка сервера без установки всего стороннего ПО). Управление происходит через 172.16.110.33(login: us ; pass: kSiva007). После установки обновляем систему
sudo dnf update & sudo dnf upgrade
Настройки виртуальной машины
https://wiki.rich650.ru/uploads/images/gallery/2024-11/Crzizobrazenie.png
Настройка сетевых интерфейсов в RedOS
nmtui
https://wiki.rich650.ru/uploads/images/gallery/2024-11/RMUizobrazenie.png
Проверяем настройки
ip a
Вывод
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defaul t qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP gro up default qlen 1000
link/ether 00:0c:29:9b:c7:7c brd ff:ff:ff:ff:ff:ff
altname enp2s0
3: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP gro up default qlen 1000
link/ether 00:0c:29:9b:c7:86 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 172.16.121.17/24 brd 172.16.121.255 scope global dynamic noprefixroute ens33
valid_lft 34772sec preferred_lft 34772sec
4: ens32.206@ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue sta te UP group default qlen 1000
link/ether 00:0c:29:9b:c7:7c brd ff:ff:ff:ff:ff:ff
inet 172.16.110.33/24 brd 172.16.110.255 scope global noprefixroute ens32.20 6
valid_lft forever preferred_lft forever
6: ens32.200@ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue sta te UP group default qlen 1000
link/ether 00:0c:29:9b:c7:7c brd ff:ff:ff:ff:ff:ff
inet 172.16.116.8/24 brd 172.16.116.255 scope global noprefixroute ens32.200
valid_lft forever preferred_lft forever
Обновляем систему
sudo dnf update & sudo dnf upgrade
Настройка DHCP
Устанавливаем DHCP:
dnf install dhcp-server
Теперь откроем на редактирование конфигурационный файл:
nano /etc/dhcp/dhcpd.conf
Вставляем настройки
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp-server/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 172.16.116.0 netmask 255.255.255.0 {
# range 172.16.116.240 172.16.116.253;
# option domain-name-servers 77.88.8.88,8.8.8.8,8.8.4.4;
# option domain-name "gts.ru";
option routers 172.16.116.4;
# option broadcast-address 172.16.116.255;
default-lease-time 600;
max-lease-time 7200;
}
#Nastraivaem log
log-facility local6;
#Nastraivaem lease
host PerelyginMV_Proxy { hardware ethernet 4c:ed:fb:69:b3:86; fixed-address 172.16.116.186;
}
host AgafonovIS_Proxy { hardware ethernet 90:e6:ba:0b:3c:ad; fixed-address 172.16.116.187;
}
host Avtograf_Proxy { hardware ethernet 00:17:42:67:4b:41; fixed-address 172.16.116.102;
}
host Krasiuk_Proxy { hardware ethernet 64:31:50:06:2a:e9; fixed-address 172.16.116.105;
}
host Kozlov_Proxy { hardware ethernet 00:25:b3:5b:c7:1d; fixed-address 172.16.116.106;
}
host Lohmacheva_Proxy { hardware ethernet 00:25:b3:5e:a4:bd; fixed-address 172.16.116.107;
}
host Dispetchers_Proxy { hardware ethernet 6c:62:6d:5f:fb:e6; fixed-address 172.16.116.108;
}
host Ershov_Proxy { hardware ethernet 60:eb:69:db:b7:56; fixed-address 172.16.116.109;
}
host Malugina_Proxy { hardware ethernet 00:1d:92:00:ae:32; fixed-address 172.16.116.110;
}
host SafarovaLV_Proxy { hardware ethernet d8:d3:85:0e:fb:77; fixed-address 172.16.116.111;
}
host SokolovaES_Proxy { hardware ethernet 2c:4d:54:9b:d1:2c; fixed-address 172.16.116.112;
}
host Luchinin_Proxy { hardware ethernet 54:a0:50:b7:c2:8b; fixed-address 172.16.116.113;
}
host Beloglazova_Proxy { hardware ethernet 00:1a:92:92:79:6f; fixed-address 172.16.116.114;
}
host Soloveva_Proxy { hardware ethernet 00:0f:EA:4C:85:BD; fixed-address 172.16.116.115;
}
host Satkanov_Proxy { hardware ethernet e4:11:5b:fe:b1:70; fixed-address 172.16.116.118;
}
host Kutyakov_Proxy { hardware ethernet 00:1e:ec:c2:15:d6; fixed-address 172.16.116.119;
}
host Chernopazov_V_Proxy { hardware ethernet 54:a0:50:6b:a3:fe; fixed-address 172.16.116.122;
}
host Soboleva_Proxy { hardware ethernet 00:23:5a:cf:e6:42; fixed-address 172.16.116.124;
}
host Ovchinnikov_Proxy { hardware ethernet 78:2b:cb:cf:69:18; fixed-address 172.16.116.125;
}
host Tairov_Proxy { hardware ethernet 2c:44:fd:68:b6:c6; fixed-address 172.16.116.127;
}
host Milutin_Proxy { hardware ethernet 64:31:50:06:2b:12; fixed-address 172.16.116.128;
}
host Kislov_Proxy { hardware ethernet 64:31:50:06:2b:23; fixed-address 172.16.116.129;
}
host Zaharkin_Proxy { hardware ethernet 00:16:ec:5c:ab:d7; fixed-address 172.16.116.132;
}
host Idunov_Proxy { hardware ethernet 6c:4b:90:7a:fd:a5; fixed-address 172.16.116.134;
}
host Reshuhin_Proxy { hardware ethernet 24:b6:fd:3e:7c:1d; fixed-address 172.16.116.135;
}
host Petrov_Proxy { hardware ethernet 64:31:50:06:2b:3d; fixed-address 172.16.116.136;
}
host Slepchenko_Proxy { hardware ethernet 00:11:95:c0:a6:dc; fixed-address 172.16.116.139;
}
host Chubarov_Proxy { hardware ethernet 00:25:b3:5a:74:2c; fixed-address 172.16.116.140;
}
host Esipov_Proxy { hardware ethernet 18:a9:05:f7:5a:53; fixed-address 172.16.116.143;
}
host Trushkin_Proxy { hardware ethernet 00:25:b3:5b:b6:b3; fixed-address 172.16.116.144;
}
host Aleksandrova_Proxy { hardware ethernet 00:24:54:01:c5:65; fixed-address 172.16.116.145;
}
host Zvereva_Proxy { hardware ethernet 54:a0:50:b7:c0:40; fixed-address 172.16.116.91;
}
host Savin_Proxy { hardware ethernet 6c:62:6d:5f:fa:e9; fixed-address 172.16.116.147;
}
host Kremena_Proxy { hardware ethernet 00:17:f2:0d:57:1a; fixed-address 172.16.116.148;
}
host Nefedova_Proxy { hardware ethernet 6c:62:6d:5f:fb:18; fixed-address 172.16.116.149;
}
host Shambarova_Proxy { hardware ethernet f4:4d:30:11:80:2d; fixed-address 172.16.116.150;
}
host Shevchenko_Proxy { hardware ethernet 2c:44:fd:67:e5:7c; fixed-address 172.16.116.151;
}
host Zhiltsov_Proxy { hardware ethernet 2c:76:8a:d7:a1:56; fixed-address 172.16.116.152;
}
host Meldianov_Proxy { hardware ethernet 00:17:a4:e1:73:e2; fixed-address 172.16.116.153;
}
host Moskvin_Proxy { hardware ethernet 6c:62:6d:5f:fa:f7; fixed-address 172.16.116.154;
}
host Zotov_Proxy { hardware ethernet 78:24:af:b1:1e:ed; fixed-address 172.16.116.155;
}
host Mixeeva_Proxy { hardware ethernet 00:26:6c:5d:b3:8b; fixed-address 172.16.116.156;
}
host Skirda_Proxy { hardware ethernet 68:b5:99:eb:44:20; fixed-address 172.16.116.157;
}
host Neverova_Proxy { hardware ethernet 2c:56:dc:37:56:26; fixed-address 172.16.116.93;
}
host Goncharova_Proxy { hardware ethernet 54:a0:50:b5:c2:44; fixed-address 172.16.116.95;
}
host Radevich_Proxy { hardware ethernet A4:5D:36:59:98:B2; fixed-address 172.16.116.96;
}
host ProfSouyz_Proxy { hardware ethernet 2c:56:dc:37:56:1e; fixed-address 172.16.116.160;
}
host Golov_Proxy { hardware ethernet 00:22:15:60:D2:48; fixed-address 172.16.116.161;
}
host Gubanov_Proxy { hardware ethernet 1c:c1:de:fd:64:9a; fixed-address 172.16.116.162;
}
host Cacti_Proxy { hardware ethernet 00:0c:29:ef:75:da; fixed-address 172.16.107.30;
}
host Gavrilova_Proxy { hardware ethernet 1c:c1:de:fb:bb:c5; fixed-address 172.16.116.166;
}
host Chechneva_Proxy { hardware ethernet 00:25:b3:5b:36:a4; fixed-address 172.16.116.167;
}
host Dragun_Proxy { hardware ethernet 30:65:ec:4a:ef:28; fixed-address 172.16.116.168;
}
host Minina_Proxy { hardware ethernet 00:17:42:74:71:52; fixed-address 172.16.116.169;
}
host Solovieva_Proxy { hardware ethernet 74:46:a0:be:e8:fe; fixed-address 172.16.116.170;
}
host Pytilin_Proxy { hardware ethernet b0:99:28:c8:86:37; fixed-address 172.16.116.171;
}
host Kypriev_Proxy { hardware ethernet 00:25:b3:5b:f5:61; fixed-address 172.16.116.172;
}
host Zverev_Proxy { hardware ethernet 00:1b:38:43:97:49; fixed-address 172.16.116.173;
}
host Utkova_Proxy { hardware ethernet 00:24:21:b0:52:c4; fixed-address 172.16.116.174;
}
host Konovalov_Proxy { hardware ethernet 6c:62:6D:5F:fa:CC; fixed-address 172.16.116.248;
}
host Konovalov2_Proxy { hardware ethernet 78:2b:cb:cf:6a:46; fixed-address 172.16.116.175;
}
host Sergeev_Proxy { hardware ethernet 2c:44:fd:68:b5:b5; fixed-address 172.16.116.176;
}
host Lazareva_Proxy { hardware ethernet 88:d7:f6:79:b3:88; fixed-address 172.16.116.177;
}
host Mamaeva_Proxy { hardware ethernet 6c:62:6d:5f:fa:f3; fixed-address 172.16.116.178;
}
host Kren_Proxy { hardware ethernet 6c:62:6d:5f:fb:62; fixed-address 172.16.116.179;
}
host arm_inet_umt1403_Proxy { hardware ethernet 88:d7:f6:79:bd:66; fixed-address 172.16.116.181;
}
host Auditor_Proxy { hardware ethernet 54:A0:50:B7:B9:17; fixed-address 172.16.116.180;
}
host Derkach_Proxy { hardware ethernet 48:5b:39:ef:75:76; fixed-address 172.16.116.225;
}
host Studia_MTR_Proxy { hardware ethernet a4:5d:36:59:94:bc; fixed-address 172.16.116.215;
}
host Krasnoshekov_Proxy { hardware ethernet 2c:4d:54:9b:d2:7e; fixed-address 172.16.116.216;
}
host Stepanenko_Proxy { hardware ethernet 88:d7:f6:79:a3:69; fixed-address 172.16.116.201;
}
host Rybakov_Proxy { hardware ethernet 78:2B:CB:CF:69:C0; fixed-address 172.16.116.182;
}
host Shakurova_Proxy { hardware ethernet a4:5d:36:58:c5:16; fixed-address 172.16.116.226;
}
host Fin_otdel_Proxy { hardware ethernet 6C:62:6D:5F:FA:CC; fixed-address 172.16.116.248;
}
host reshuhin_Proxy { hardware ethernet f8:0d:ac:23:55:21; fixed-address 172.16.116.208;
}
host Pavlov_Proxy { hardware ethernet 54:A0:50:6B:A3:F1; fixed-address 172.16.116.199;
}
host GP_Museum_Proxy { hardware ethernet 54:bf:64:03:b0:c1; fixed-address 172.16.116.183;
}
host Lisicina_Proxy { hardware ethernet 08:97:98:85:f1:3c; fixed-address 172.16.116.184;
}
host Kab_307_Proxy { hardware ethernet 00:24:21:b0:52:7d; fixed-address 172.16.116.244;
}
host Kab_201_Proxy { hardware ethernet 00:24:21:b0:52:6a; fixed-address 172.16.116.243;
}
host Kab_206_Proxy { hardware ethernet 00:24:21:b0:52:3c; fixed-address 172.16.116.245;
}
host KolibasovAV_Proxy { hardware ethernet 6c:62:6d:5f:fa:ef; fixed-address 172.16.116.126;
}
host KiriakovA_Proxy { hardware ethernet 54:a0:50:b5:c2:57; fixed-address 172.16.116.185;
}
Далее, указываем конкретный интерфейс, через который нужно раздавать DHCP (можно посмотреть через
ip a
)
nano /etc/sysconfig/dhcpd
Указываем
DHCPDARGS=ens32.200
Разрешаем автозапуск сервиса:
systemctl enable dhcpd
и запускаем его:
systemctl start dhcpd
Для того чтобы сервер сохранял записи в отдельный файл, открываем на редактирование rsyslog.conf:
nano /etc/rsyslog.conf
И добавляем следующее:
local6.* /var/log/dhcp.log
Далее открываем конфигурационный файл dhcp:
nano /etc/dhcp/dhcpd.conf
И добавляем:
log-facility local6;
Перезапускаем сервисы:
systemctl restart dhcpd systemctl restart rsyslog
Итак, мы добавили управляющий VLAN 206, так же добавили Пользовательский VLAN 200. Назначили этим интерфейсам IP адреса. Так же подняли DHCP сервер с ручным резервированием пользователей по MAC адресам, при этом DHCP не раздает ни шлюз, ни DNS сервера, а только IP адреса и маску.
Настройка SQUID
Установите прокси-сервер следующей командой:
# sudo dnf install squid
Открываем файл настроек:
# sudo nano /etc/squid/squid.conf
Вставляем
#
# Recommended minimum configuration:
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
#acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
#acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
#acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.121.0/24 # RFC 1918 local private network (LAN)
acl localnet src 172.16.116.0/24
acl localnet src 172.16.113.0/24
#acl 172_16_116_7 localip 172.16.116.7
#tcp_outgoing_address 172.16.121.17 172_16_116_7
#acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
#acl localnet src fc00::/7 # RFC 4193 local private network range
#acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
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
#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
http_access allow all
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager
# This default configuration only allows localhost requests because a more
# permissive Squid installation could introduce new attack vectors into the
# network by proxying external TCP connections to unprotected services.
http_access allow localhost
# The two deny rules below are unnecessary in this default configuration
# because they are followed by a "deny all" rule. However, they may become
# critically important when you start allowing external requests below them.
# Protect web applications running on the same server as Squid. They often
# assume that only local users can access them at "localhost" ports.
http_access deny to_localhost
# Protect cloud servers that provide local users with sensitive info about
# their server via certain well-known link-local (a.k.a. APIPA) addresses.
http_access deny to_linklocal
#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
# For example, to allow access from your local networks, you may uncomment the
# following rule (and/or add rules that match your definition of "local"):
# http_access allow localnet
# And finally deny all other access to this proxy
http_access deny all
# Squid normally listens to port 3128
http_port 3128
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 4096 32 256
# Leave coredumps in the first cache dir
#coredump_dir /var/spool/squid
#
# Add any of your own refresh_pattern entries above these.
#
#refresh_pattern ^ftp: 1440 20% 10080
#refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
#refresh_pattern . 0 20% 4320
Здесь добавили три наших сети с которых будет доступ к прокси серверу
acl localnet src 172.16.121.0/24 # RFC 1918 local private network (LAN)
acl localnet src 172.16.116.0/24
acl localnet src 172.16.113.0/24
Добавляем фильтр-правило на доступ из всех объявленных сетей
http_access allow all
Оставляем порт доступа по-умолчанию
http_port 3128
Отключаем кеширование файлов закомментировав все остальное
Отключаем Selinux (Переводим в режим только журналирования)
Для перевода SELinux в режим уведомлений в файле /etc/selinux/config замените строку SELINUX=enforcing на SELINUX=permissive. SELinux при этом перейдет в режим уведомлений. Откройте файл конфигурации в редакторе nano от пользователя root или от пользователя с правами администратора.
sudo nano /etc/selinux/config
В файле замените текст SELINUX=enforcing на SELINUX=permissive
Перезагружаем систему и запускаем squid:
# sudo systemctl start squid
Проверяем работоспособность squid:
# sudo systemctl status squid
Squid должен быть активен.
Добавляем squid в автозагрузку:
# sudo systemctl enable squid
Установка Cockpit
dnf install cockpit systemctl enable cockpit.socket systemctl start cockpit.socket
Заходим на https://172.16.110.33:9090/
Настройка FirewallD
Заходим в Cockpit - Сеть - Активировать межсетевой экран или через терминал
sudo dnf install firewalld
После инсталляции активируйте сервис firewalld.service:
sudo systemctl start firewalld.service
Убедитесь, что сервис запущен:
firewall-cmd --state running
Создаем новые зоны и перезапускаем Firewall
sudo firewall-cmd --permanent --new-zone=ProxyManager
sudo firewall-cmd --permanent --new-zone=ProxyUser
sudo firewall-cmd --reload
Далее настраиваем Зоны в соответствии со скриншотами
https://wiki.rich650.ru/uploads/images/gallery/2024-11/SMXizobrazenie.png
Далее необходимо закрепить за каждым интерфейсом необходимую Зону, что бы после перезагрузки они не сбросились. Для этого
nano /etc/NetworkManager/system-connections/ens33.nmconnection
Приводим к следующему виду
[connection]
id=ens33
uuid=81f46b96-32cc-31f9-926b-719c21ff0ff5
type=ethernet
autoconnect-priority=-999
interface-name=ens33
timestamp=1731995031
zone=public
[ethernet]
[ipv4]
dns=8.8.8.8;8.8.4.4;
method=auto
[ipv6]
addr-gen-mode=eui64
method=disabled
[proxy]
Так же с другими интерфейсами
nano /etc/NetworkManager/system-connections/ens32.206.nmconnection
[connection]
id=Manager
uuid=39bf558b-f922-43ad-9405-5b6bcc068375
type=vlan
interface-name=ens32.206
timestamp=1731999811
zone=ProxyManager
[ethernet]
[vlan]
flags=1
id=206
parent=ens32
[ipv4]
address1=172.16.110.33/24,172.16.110.4
method=manual
[ipv6]
addr-gen-mode=default
method=disabled
[proxy]
Для первого созданного интерфейса VLAN почему то не применятся изменение интерфейса к файлу, поэтому меняем настройки в первоначальном названии файла
nano /etc/NetworkManager/system-connections/VLAN\ connection\ 1.nmconnection
[connection]
id=LAN
uuid=cda7388a-2f07-4595-9991-a4cc3f716d4f
type=vlan
interface-name=ens32.200
timestamp=1732006739
zone=ProxyUser
[ethernet]
[vlan]
flags=1
id=200
parent=ens32
[ipv4]
address1=172.16.116.8/24
method=manual
[ipv6]
addr-gen-mode=default
method=disabled
[proxy]
Перезапускаем сетевые интерфейсы командой
systemctl restart NetworkManager
Перезагружаем сервер
reboot
Настройка браузера
И ОБЯЗАТЕЛЬНО перезагружаем браузер.
Итоги
Теперь в VLAN200 должна раздаваться сеть 172.16.116.0/24, но только тем устройствам, которые прописаны в настройках DHCP сервера. При этом не должен раздаваться ни шлюз, ни DNS сервера. В этой же сети должна работать прокся. Из этой сети не должно быть доступа в самой проксе для конфигурирования по SSH.
Из под сети 172.16.121.0/24 и 172.16.113.0/24 должна работать и прокся и доступ для ее конфигурирования через SSH.









