Данная инструкция написана в связи с производственной необходимостью контролировать трафик (http и https) пользователей, а также распределять доступ по белым и черным спискам.
За основу были взяты следующие статьи: этот И Вот этот , в котором использовалась технология просмотр и сращивание .
В этих статьях конфигурация предполагает использование хоста со squid в качестве шлюза; после доработки конфига мы имеем полноценный прокси-сервер с возможностью раздавать права доступа группам из Active Directory. По завершению настройки встал вопрос о передаче настроек прокси-сервера пользователям.
Ввиду того, что в офисе ноутбуки часто забирают домой, вся затея зашла в тупик.
Изначально рассматривался вариант с выдачей настроек прокси-сервера по DHCP, но он не самый лучший, так как офисы находятся в разных подсетях и имеют разное оборудование.
WPAD стал выходом из этой ситуации.
Кратко об этой технологии можно сказать так: клиентские машины на ОС Windows ищут хост с именем wpad.example.ru (вплоть до доменов третьего уровня), чтобы запросить файл настроек для работы в сети.
Исходя из этого принципа, нужно поднять веб-сервер, который бы просто обслуживал файл wpad.dat. Можно поднять веб-сервер на хосте с прокси-сервером (что и было сделано), и создать имя wpad на прокси-сервер.
Лучше использовать прокси-сервер с возможностью сбора и просмотра статистики, благо выбор большой.
По некоторым консервативным соображениям было решено выбрать SARG. Он прост в настройке и имеет вполне приемлемую статистику для офиса до 100 сотрудников.
Содержание
- 1. Введение
- 2 Настройка операционной системы и установка Squid
- 2.1 Варианты сборки кальмара
- 2.2 Установка пакетов из официальных репозиториев
- 2.3 Ручная установка Squid и дополнительных пакетов
- 2.4 Настройка прав доступа к каталогу подкачки для squid
- 2.5 файл конфигурации кальмара
- 2.6 Настройка файла /etc/hosts
- 2.7 Настройка Селинукса
- 2.8 Генерация свопа
- 2.9 Включение демона squid, проверка файла конфигурации
- 2.10 Переадресация трафика
- 3 Интеграция с контроллером домена Active Directory 2012R2
- 3.1 Конфигурация Кербероса
- 3.2 Создание записи DNS
- 3.3 Варианты интеграции домена
- 3.3.1 Интеграция с помощью Windows
- 3.3.2 Интеграция с использованием Linux
- 3.4 Рекомендуемые разрешения для файла krb5.keytab
- 3.5 Группы в Active Directory для регулирования доступа в Интернет
- 3.6 Проверка авторизации в Active Directory с помощью файла krb5.keytab
- 4 ВПАД
- 5 Статистика трафика
- 6 Групповые политики
1.1 Упрощенная схема работы WPAD
— Клиент на ОС Windows обращается к DNS-серверу с запросом к хосту wpad.example.ru , а соответствующая запись имени DNS-сервера указывает, куда идти.Далее клиент обращается к wpad.example.ru с запросом файла настроек.
Получив его, он начинает действовать согласно инструкциям в нем.
1.2 Чем хороша эта технология
Плюсы: — нет необходимости назначать всем клиентам прокси-адрес через GPO — Мобильность сотрудников (доступ в Интернет за пределами офиса) — Чтобы отключить использование этой технологии, достаточно отключить в «Параметры браузера» — «Автоматически получать настройки» Минусы: — «Автоматическое получение настроек» может отключить любой пользователь, поэтому лучше оставить эту функцию включенной и запретить ее изменение через GPO1.3 Squid Peek-n-splice – как это работает
Сотрудник пытается зайти на сайт по https через прокси.При установке зашифрованного соединения происходит «привет», который отправляется в открытом виде, прокси-сервер перехватывает его, и в зависимости от конфигурации squid разрешает или запрещает соединение.
Те.
перехватил, чтобы увидеть «приветствие», разрешил или разорвал соединение.
1.4 Плюсы и минусы Peek-n-splice
Плюсы: — Это не MITM-атака, и проблем с клиентами банка не будет — Отображение доменных имен в статистике сайтов, запрошенных по https Минусы: — К сожалению, невозможно полностью просмотреть, какая интернет-страница была открыта, как при MITM-атаке.
— Эта конфигурация работала хорошо только на CentOS (на Debian были проблемы, через некоторое время случилась паника ядра)
1.5 И так, теперь стоит отметить, что дано
— Хост с Active Directory 2012R2 (метод авторизации пользователя — Kerberos) 10.0.0.9 — Хост с CentOS 7 (x64) (он же веб-сервер для отправки wpad.dat, он же прокси-сервер) 10.0.0.10 — Тестовый хост с ОС Windows для проверки работы 10.0.0.11«Поехали» Гагарин Ю.А.
2 Настройка операционной системы и установка Squid
Описывать процесс установки CentOS нет смысла.
Итак, давайте иметь в виду, что у нас только что установленная CentOS 7 x64. Итак, чтобы Squid одинаково хорошо работал с http и https трафиком, вам необходимо следующее:
2.1 Squid должен быть собран с этими параметрами
кальмар -v $кальмар -v Кэш кальмара: версия 3.5.16 Имя службы: кальмар параметры настройки: '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec- prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr /include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' ' --infodir= /usr/share/info' '--verbose' '--exec_prefix=/usr' '--libexecdir=/usr/lib64/squid' '--localstatedir=/var' '--datadir=/usr/share/ squid' '--sysconfdir=/etc/squid' '--with-logdir=$(localstatedir)/log/squid' '--with-pidfile=$(localstatedir)/run/squid.pid' '--disable -dependent-tracking' '--enable-follow-x-forwarded-for' '--enable-auth' '--enable-auth-basic=DB,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL, SMB,getpwnam,fake' '--enable-auth-ntlm=smb_lm,fake' '--enable-auth-digest=file,LDAP,eDirectory' '--enable-auth-negotiate=kerberos,wrapper' '-- Enable-external-acl-helpers=wbinfo_group,kerberos_ldap_group,LDAP_group,delayer,file_userip,SQL_session,unix_group,session,time_quota' '--enable-cache-digests' '--enable-cachemgr-hostname=localhost' '--enable -delay-pools' '--enable-epoll' '--enable-icap-client' '--enable-ident-lookups' '--enable-linux-netfilter' '--enable-removal-policies=heap, lru' '--enable-snmp' '--enable-storeio=aufs,diskd,ufs,rock' '--enable-wccpv2' '--enable-esi' '--enable-ssl-crtd' '-- Enable-icmp' '--with-aio' '--with-default-user=squid' '--with-filedescriptors=16384' '--with-dl' '--with-openssl' '--with- pthreads' '--with-included-ltdl' '--disable-arch-native' '--enable-ecap' '--without-nettle' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64- redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fExceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches - m64 -mtune=generic' 'LDFLAGS=-Wl,-z,relro ' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fExceptions -fstack-protector-strong --param=ssp-buffer -size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig' —enable-ltdl-convenience Или вы можете скачать архив с собранным кальмаром и его зависимостями.
2.2 Установка необходимых пакетов из официальных репозиториев
Стоит отметить, что для установки squid требуются некоторые зависимости.К сожалению, официальные репозитории CentOS довольно скудны, поэтому некоторые пакеты приходится скачивать из неофициальных.
Установка необходимых пакетов из официальных репозиториев:
# yum install -y libtool-ltdl perl-DBI perl-Digest-MD5 cyrus-sasl-gssapi krb5-workstation
2.3 Ручная установка Squid и дополнительных пакетов
# rmp -Uvh squid-3.5.8-4.el7.centos.x86_64.rpm libecap-1.0.0-3.el7.centos.x86_64.rpm squid-helpers-3.5.8-4.el7.centos.x86_64.rpm perl-Crypt-OpenSSL-X509-1.803-4.el7.x86_64.rpm
Если что-то не так, терминал покажет, чего не хватает.
2.4 Установка разрешений для каталога подкачки
# chown squid:squid /var/spool/squid
2.5 файл конфигурации /etc/squid/squid.conf
squid.conf ###согласование Kerberos auth_param программа согласования /usr/lib64/squid/negotiate_kerberos_auth -s HTTP/[email protected] auth_param согласовать детей 60 auth_param согласовать Keep_alive выключен external_acl_type inet_medium ttl=300 negate_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected] external_acl_type inet_full ttl=300 отрицательный_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected] external_acl_type inet_low ttl=300 отрицательный_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected] источник локальной сети acl 10.0.0.0/24 источник локальной сети ACL 192.168.0.0/24 acl my_full внешний inet_full acl my_medium внешний inet_medium acl my_low внешний inet_low acl auth proxy_auth ОБЯЗАТЕЛЬНО # в дополнение к стандартному 443, для серебряного бизнеса онлайн вам понадобятся дополнительные.порт 9443 acl SSL_ports порт 443 9443 acl Safe_ports порт 80 # http acl Safe_ports порт 21 # ftp acl Safe_ports порт 443 # https acl Safe_ports порт 70 # gopher acl Safe_ports порт 210 # wais acl Safe_ports порт 1025-65535 # незарегистрированные порты acl Safe_ports порт 280 # http-mgmt acl Safe_ports порт 488 # gss-http acl Safe_ports порт 591 # создатель файлов acl Safe_ports порт 777 # multiling http метод acl CONNECT CONNECT #В данной конфигурации белый список - это список разрешенных сайтов для группы пользователей [email protected] (доступ только к тем сайтам, которые есть в whitelist.txt) #Ablock_http.txt - список заблокированных сайтов для группы [email protected] (доступны все сайты, кроме тех, что находятся в Blocked_http.txt) acl white_list dstdomain "/etc/squid/whitelist.txt" acl black_list dstdomain "/etc/squid/blocked_http.txt" DNS_nameservers 10.0.0.9 # правило доступа http_access Deny !Safe_ports http_access Deny CONNECT !SSL_ports http_access разрешить диспетчер локального хоста http_access менеджер запрета доступа http_access запретить!auth http_access запретить мой_средний черный_список http_access разрешить my_medium http_access разрешить мой_низкий белый_список http_access запретить my_low все http_access разрешить my_full # Разрешить локальный хост http_access разрешить локальный хост # Запрещаем все остальное http_access запретить все #Непрозрачный порт, через который клиентские хосты взаимодействуют с прокси-сервером http_port 10.0.0.10:3130 опции=NO_SSLv3:NO_SSLv2 Always_direct разрешить все sslproxy_cert_error разрешить все sslproxy_flags DONT_VERIFY_PEER #Эта опция необходима для корректной работы функции «peek-n-splice».
Сам файлblock_https.txt ни на что не влияет, но и пустым он быть не должен.
Магия.
# acl заблокировал SSL::server_name "/etc/squid/blocked_https.txt" acl шаг1 at_step SslBump1 ssl_bump просмотр шаг 1 #прерываем соединение, если клиент обращается к запрещенному ресурсу завершение ssl_bump заблокировано ssl_bump соединить все coredump_dir /var/spool/squid обновить_паттерн ^ftp: 1440 20% 10080 обновить_паттерн ^гофер: 1440 0% 1440 обновить_шаблон -i (/cgi-bin/|\?) 0 0% 0 обновить_шаблон.
0 20% 4320
cache_dir aufs /var/spool/squid 20000 49 256
max_object_size 61440 КБ
min_object_size 3 КБ
#httpd_suppress_version_string включен
#visible_hostname ПРОКСИСЕРВЕР
кэш_своп_low 90
cache_swap_high 95
max_object_size_in_memory 512 КБ
Memory_replacement_policy лру
logfile_rotate 4
2.6 Сначала необходимо предоставить файл /etc/хосты к этому контенту
127.0.0.1 localohost
10.0.0.10 sq.example.ru sq
2.7 Настройка Селинукса
В файле /etc/селинукс/конфигурация должно быть значение: SELINUX=enforcing
Установите пакет для работы с selinux:
# yum install policycoreutils-python
Добавляем правила selinux Разрешение подключений к кальмару:
# setsebool -P squid_connect_any on
Разрешение Kerberos:
# setsebool -P allow_kerberos on
Разрешаем подключения сквиду по порту 3130:
# semanage port -a -t squid_port_t -p tcp 3130
После изменения параметров selinux необходимо перезагрузить систему, чтобы они вступили в силу.
# reboot
2.8 генерация подкачки
# squid -z
2.9 Включение демона squid, проверка файла конфигурации
# systemctl enable squid
# squid -k parse
Никаких предупреждений и ошибок быть не должно.
Если что-то есть, нужно проверить настройки.
2.10 Разрешить переадресацию трафика
# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Примените настройку «на лету»:
# sysctl -p
3 Интеграция с контроллером домена Active Directory 2012R2
Интеграция с контроллером домена необходима, чтобы пользователи домена могли проходить аутентификацию на прокси-сервере с использованием протокола Kerberos. Самое разумное решение — оставить только Kerberos, поскольку этот метод наиболее безопасный, авторизация происходит автоматически.Что касается клиентских машин, находящихся вне домена, то и здесь проблем нет; логин и пароль можно ввести вручную во всплывающем окне авторизации.
Проверено, работает.
3.1 Файл конфигурации /etc/krb5.conf
Конфигурационный файл /etc/krb5.conf необходимо привести к следующему виду: krb5.conf [libdefaults] default_realm = EXAMPLE.RU Ticket_lifetime = 24 часа default_keytab_name = /etc/krb5.keytab [царства] ПРИМЕР.РУ = { kdc = dc1.example.ru admin_server = dc1.example.ru default_domain = example.ru } [область_домена] .
example.ru = EXAMPLE.RU
example.ru = EXAMPLE.RU
3.2 Создание записи DNS
Всем прекрасно известно, что Active Directory тесно связана с DNS, и для корректной работы авторизации необходимо создать узел (А или ААА) с указанием имени хоста и его IP-адреса (Получается запись sq.example.ru с IP-адресом 10.0.0.10 ).
3.3 Варианты интеграции домена
И так, есть два варианта интеграции с доменом.Первый вариант — использование Windows ( ктпасс ), второй вариант — использование Linux ( Мсктутил ).
Вариант Windows хорош тем, что вы можете отключить срок действия пароля для пользователя.
кальмар .
Плюс версии для Linux заключается в том, что вы можете войти в домен, создав учетную запись компьютера.
3.3.1 Интеграция с помощью Windows
Создаем пользователя в AD, например кальмар Теперь мы генерируем krb5.keytab .
В командной строке на контроллере домена с правами администратора необходимо выполнить такую команду: C:\Windows\system32> ktpass -princ HTTP/[email protected] -mapuser [email protected] -crypto rc4-hmac-nt -pass Pa$$wd12 -ptype KRB5_NT_PRINCIPAL -out C:\
Сам файл krb5.keytab переместить (можно сделать с помощью WinSCP) в sq.example.ru в каталог /и т. д .
3.3.2 Интеграция с использованием Linux
В архиве со сквидом и зависимостями также есть msktutil, устанавливаем его: # rpm -Uhv msktutil-0.5.1-2.el7.x86_64.rpm
Теперь выполните следующую команду:
# msktutil -c -b "CN=COMPUTERS" -s HTTP/sq.example.ru -k /etc/krb5.keytab --computer-name sq-k --upn HTTP/sq.example.ru --server dc1.example.ru --verbose --enctypes 28
В случае успеха вывод команды будет большим; Копировать сюда не вижу смысла.
Никаких ошибок и предупреждений быть не должно.
Стоит обратить внимание на --имя-компьютера sq-k это не опечатка.
Имя хоста должно быть другим.
Ввиду необходимости обновить пароль учетной записи компьютера, это можно сделать через cron. # crontab -e
В него нужно добавить задачу: 00 3 * * * msktutil --auto-update --verbose --computer-name sq-k
3.4 Рекомендуемые разрешения для файла krb5.keytab
После переезда krb5.keytab , рекомендуется снизить права доступа к файлам # chown squid:squid /etc/krb5.keytab && chmod 644 /etc/krb5.keytab
3.5 Группы доступа AD
В ActiveDirectory в OU Users нужно создать три группы, по которым будет распределяться доступ в Интернет: Интернет-полный, Интернет-среда , Интернет-низкий .
3.6 Проверка авторизации
Проверка авторизации в Active Directory с помощью файла /etc/krb5.keytab # kinit -V -k -t /etc/krb5.keytab HTTP/[email protected]
Вывод команды должен быть примерно таким:
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/[email protected]
Using keytab: /etc/krb5.keytab
Authenticated to Kerberos v5
А клист должно отображаться следующее: клист Кэш билетов: ФАЙЛ:/tmp/krb5cc_0 Участник по умолчанию: HTTP/[email protected]. Действительный начальный субъект службы Expires Service 09.10.2016 22:19:20 10.10.2016 08:19:20 krbtgt/[email protected] продлить до 10.10.2016 22:19:20 На этом этапе настройка Squid практически завершена; теперь перезагружаем хост, чтобы применить настройки.
После перезагрузки для теста можно вручную прописать прокси в настройках sq.example.ru указание порта 3130 .
4 ВПАД
4.1 Установка и настройка веб-сервера apache2
Установка веб-сервера: # yum install -y httpd
После установки включите в автозагрузку:
# systemctl enable httpd
Запустим:
# systemctl start httpd
Если вы попытаетесь открыть доменное имя sq.example.ru в браузере, должна открыться тестовая страница apache2. Далее вам нужно создать/ вар/www/html/wpad.dat файл следующего содержания: wpad.dat функция FindProxyForURL(url, хост) { // вар ip_host = dnsResolve(хост); // var localnet = "192.168.0.0"; // var localhost = "127.0.0.0"; // var localnet = "10.0.0.0"; if (isInNet(хост, "192.168.0.0", "255.255.255.0") || isInNet(хост, "10.0.0.0", "255.255.255.0") || isInNet(хост, "127.0.0.0", "255.0.0.0") || shExpMatch(хост, "*.
example.ru")) { вернуть "ПРЯМОЕ"; } if (dnsDomainIs(host, "*.
inet-example.ru" ))
{ вернуть "ПРЯМОЕ"; }
вернуть «ПРОКСИ sq.exmaple.ru:3130»;
}
4.2 Описание файла wpad.dat
По умолчанию в каталоге /var/www/html/wpad.dat файл дается всем без дополнительных настроек apache2, а это как раз необходимо для корректного взаимодействия с клиентскими машинами на ОС Windows. Швы if (isInNet( host, "192.168.0.0", "255.255.255.0") ||
isInNet( host, "10.0.0.0", "255.255.255.0") ||
Это означает, что обращения к хостам в подсетях 192.168.0.0/24, 10.0.0.0/24 и 127.0.0.0/8 (последнее необходимо для корректной работы сервисов при обращении к локальному хосту) передаются напрямую, а прямое подключение к Хосты домена .
example также сделаны .
ru:
Линии: if (dnsDomainIs( host, "*.
inet-example.ru" ))
{ return "DIRECT"; }
Укажите, что при доступе к доменному имени .
inet-example.ru
Если запрошенный ресурс не подпадает под вышеуказанные условия, происходит следующее: return "PROXY sq.exmaple.ru:3130";
4.3 Создание CNAME
На DNS-сервере Active Directory необходимо создать имя wpad (полное доменное имя wpad.example.ru) на sq.example.ru. Для проверки нужно открыть его в браузере wpad/wpad.dat и файл wpad.dat должен загрузиться автоматически.Таким образом, все хосты загружают этот файл и действуют в зависимости от его содержимого.
Для загрузки файла рекомендуется перерегистрировать или перезагрузить все компьютеры в домене под управлением ОС Windows.
5 Статистика
5.1 Установка SARG из исходников
Если вы еще не установили gcc, сейчас самое время: # yum install -y gcc gd gd-devel make wget
# wget http://liquidtelecom.dl.sourceforge.net/project/sarg/sarg/sarg-2.3.10/sarg-2.3.10.tar.gz
# tar -xvzf sarg-2.3.10.tar.gz
# cd sarg-2.3.10
# .
/configure
# make
В файле po/Makefile.in.in версия gettext указана как 0.18, чтобы не было ошибок при make install, нужно изменить ее на 0.19:
# make install
5.2 Настройка SARG
Лучше сделать резервную копию стандартного файла конфигурации /usr/local/etc/sarg.conf: # mv /usr/local/etc/sarg.conf /usr/local/etc/sarg.conf.default
Теперь создадим файл sarg.conf со следующим содержанием:
access_log /var/log/squid/access.log
output_dir /var/www/html/squid-reports
date_format e
overwrite_report yes
language UTF-8
5.3 Расписание создания отчетов с помощью cron
# crontab -e
Добавьте строку:
55 23 * * * /usr/local/bin/sarg -xd day-0
В этой строке указано, что отчеты будут формироваться каждый день и за текущий день в 23:55.
5.4 Конфигурация веб-сервера
Ранее установленному веб-серверу также можно поручить задачу отображения отчетов, с просьбой ввести логин и пароль для авторизации.Создать файл /etc/httpd/conf.d/sarg.conf со следующим содержанием: sarg.conf Псевдоним /reports /var/www/html/squid-reports/ Тип аутентификации Базовый AuthName «Базовая аутентификация» AuthUserFile /etc/httpd/conf/.
htpasswd
требуется действительный пользователь
Добавить по умолчаниюCharset UTF-8
5.5 Авторизация на сайте со статистикой
Генерация файла логина и пароля для авторизации # htpasswd -c /etc/httpd/conf/.
htpasswd administrator
Перезапуск apache2 :
# systemctl restart httpd
Когда вы пытаетесь открыть sq.example.ru/reports Вам будет предложено ввести имя пользователя и пароль.
Если авторизация прошла успешно, вы можете просмотреть статистику.
6 Групповые политики
Здесь все неоднозначно и может зависеть от некоторых особенностей.В текущей задаче было разумным решением исключить возможность установки пользовательского прокси-сервера, либо отключить «Автоматическое определение параметров».
6.1 Редактирование объекта групповой политики
Чтобы запретить вход в прокси-сервер или изменение настроек автоматического определения параметров, вы можете использовать групповую политику.Создаём и связываем групповую политику с OU, например офисом.
Редактирование групповой политики:
Пользователь → Политики → Административные шаблоны → Компоненты Windows → Internet Explorer.В этом каталоге найдите параметры и измените их на статус.
"Включено" :
«Запретить изменение настроек прокси» «Отключить изменение автоматических настроек»В заключение могу сказать следующее: данная конфигурация успешно работает по сей день с весны 2016 года и отлично зарекомендовала себя.
Буду рад ответить на все вопросы.
УПД №1: 12.11.16 1 Из конфига сквида убраны лишние строки портов 3128 и 3129. 2 включил selinux и добавил правила.
3 Из мануала убрана генерация сертификата (работает и без него) 4 Мелкие исправления УПД №2: 20.11.16 1 Из конфига krb5.conf удалены лишние строки 2 Добавлен метод интеграции с AD через Msktutil. 3 Добавлена переадресация 4 Обновлен архив со сквидом и зависимостями В опросе могут участвовать только зарегистрированные пользователи.
Войти , Пожалуйста.
Вам помогла данная статья? 67,39% Да, это то, что я давно искал! 31 26,09% Интересно, но сам не буду 12 8,7% Нет 4 Проголосовали 46 пользователей.
4 пользователя воздержались.
Теги: #Системное администрирование #Конфигурация Linux #active каталог #Active Directory #squid #wpad
-
Забота
19 Oct, 24 -
Чек-Лист Для Подготовки К Ux-Собеседованию
19 Oct, 24 -
Подготовка Продуктовой Стратегии.
19 Oct, 24 -
Кнопка Rss Для «Нового» В Адресной Строке.
19 Oct, 24