Nov. 20th, 2016



vpn pptp openvpn centos7
Настройка L2TP
http://hww.ru/wp/2019/04/ustanovka-i-nastrojka-vpn-servera-na-centos-7/
https://github.com/hwdsl2/setup-ipsec-vpn

cp /etc/sysctl.conf /etc/sysctl.conf.bak
можно так



но достаточно и так (здесь я отключил ip6)



на самом деле нужен лишь один параметр
net.ipv4.ip_forward=1

Перечитываем конфигурацию.
sysctl -p

cat /proc/sys/net/ipv4/ip_forward

Настройка firewall-cmd
по настройке подробно тут vpn pptp openvpn centos7
надо лишь добавить порты для l2tp

firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --list-all-zones
firewall-cmd --get-active-zones
firewall-cmd --direct --get-all-rules
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=external --list-services
firewall-cmd --zone=external --list-ports
firewall-cmd --zone=public --list-ports
firewall-cmd --list-rich-rules

firewall-cmd --zone=public --remove-interface=enp3s0 --permanent
firewall-cmd --zone=external --change-interface=enp3s0 --permanent

firewall-cmd --zone=external --add-port=500/udp --permanent
firewall-cmd --zone=external --add-port=4500/udp --permanent
firewall-cmd --zone=external --add-port=1701/udp --permanent

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --add-masquerade
firewall-cmd --query-masquerade

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -j DROP
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j DROP

firewall-cmd --reload
firewall-cmd --direct --get-all-rules


cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.orig
nano /etc/xl2tpd/xl2tpd.conf



Для использования сервера RADIUS или DHCP, оставьте отключенными опции ip range и local ip. Если соединение нестабильно, попробуйте добавить length bit = yes в раздел lns default. Чтобы не использовать PPP аутентификацию, замените require authentication = yes на refuse authentication = yes.

mcedit /etc/ppp/options.xl2tpd




Настройка IPsec
Есть несколько вариантов и пакетов для настройки IPsec: ipsec-tools, LibreSwan (OpenSwan) и strongSwan. ipsec-tools (racoon) наименее функционален, но для тех, кто пришёл из *BSD, он может быть более близок. Однако, в отличие от *BSD, Linux не использует отдельный интерфейс для IPsec. strongSwan – это ответвление от FreeS/WAN. LibreSwan – ответвление от Openswan (который сам является ответвлением от FreeS/WAN) с сохранением его оригинальных разработчиков. Мы будем использовать именно LibreSwan, который мы уже ранее установили. Обход NAT установлен по умолчанию в файле конфигурации LibreSwan, таким образом никаких особых этапов настройки не требуется.

Желательно иметь каждую настройку VPN в своём собственном файле, что может быть сделано раскомментированием последней строки в /etc/ipsec.conf:
#include /etc/ipsec.d/*.conf

Основные конфигурационные файлы для LibreSwan это:
/etc/ipsec.conf – определяет параметры IPSEC-соединений и параметры подключений в целом;
/etc/ipsec.secrets – ключи и пароли для шифрования

Файл /etc/ipsec.conf разбит на разделы:
config setup – глобальные параметры и опции
conn %default – параметры ipsec-соединений по-умолчанию. Если в отдельных параметрах соединений не указан параметр, то используются параметры отсюда.
Например: conn SomeTunnel – раздел с параметрами соединения SomeTunnel

Файл /etc/ipsec.secrets содержит неограниченное количество типов ключей (паролей).

Основные параметры команды ipsec, которая управляет подключениями LibreSwan:
start|restart|stop;
ipsec status|statusall — для просмотра состояния IPSEC-соединений;
up|down|route|unroute — для управления IPSEC-соединений.

Логи хранятся в /var/log/auth.log и /var/log/daemon.log.

Создаем файл настроек с таким содержимым:

mcedit /etc/ipsec.d/l2tp-ipsec.conf



где 1.1.1.1 заменяем на ваш внешний IP.
conn L2TP-PSK-NAT – служебное слово conn означает название соединения. После него будут параметры, которые характеризуют соединение.
left= и right= – адреса хостов. Слова символизируют то, что хосты находятся с разных сторон. Не имеет значения, в какой из них вы впишете свой адрес, система автоматически определит, какой из адресов относится к ее интерфейсу. Поэтому на разных хостах вполне можно использовать одинаковый конфиг. Вместо адреса можно использовать ключевое слово %any в виде right=%any. Тогда можно будет подключаться с любого адреса. Так выглядит общая конфигурация, которую можно использовать:
left=%defaultroute
leftprotoport=udp/l2tp
leftid=@vpn.example.com
right=%any
rightprotoport=udp/%any
type=tunnel – тип соединения. Может принимать значения tunnel, transport или passthrough.
authby=secret – что будет использоваться в качестве ключа: PSK (парольное слово) или RSA (ключ)
auto=start – опция определяет, когда включать соединение. Может принимать значения: start (автоматически стартовать), add (стартовать в ответ на инициацию от другого хоста), ignore (игнорировать соединение), manual (стартовать вручную), route (назначение мне осталось непонятно, используется крайне редко).
Ну и так как мы задали тип авторизации с помощью PSK, то давайте запишем секретное слово в файл ipsec.secrets.

vim /etc/ipsec.d/default.secrets
: PSK "SecretKey"

Ключ может быть задан строкой в кавычках или шестнадцатеричным числом. В следующем примере PUT_VPN_SERVER_IP должен быть заменён на IP-адрес сервера. Можно использовать доменное имя, но оно не рекомендовано разработчиками LibreSwan. Опция %any позволяет любым клиентам использовать этот PSK. Также можно IP не указывать как в нашей конфигурации выше. Примеры:

PUT_VPN_SERVER_IP %any : PSK 0x87839cfdab5f74bc211de156d2902d128bec3243
# Или используйте простой текстовый ключ вместо шестнадцатеричного:
# PUT_VPN_SERVER_IP %any : PSK "password_pass"
Прописываем в /etc/ppp/chap-secrets свои логины и пароли

vim /etc/ppp/chap-secrets
"user1" "xl2tpd" "pass1" *
"user2" "xl2tpd" "pass2" *

Настроим logrotate для /var/log/xl2tpd.log



Запускаем и тестируем.

systemctl enable ipsec
systemctl enable xl2tpd
systemctl start ipsec
systemctl start xl2tpd

смотрим логи
tail -f /var/log/xl2tpd.log


vpn l2tp centos7
посмотреть
настройка pptp
1 отключаем Selinux
# nano /etc/sysconfig/selinux
меняем значение
SELINUX=disabled



После перезагрузки проверьте статус SELinux командой «sestatus»
sestatus

Переходим к установке PPTP VPN сервера и добавлении его в автозагрузку:
# yum install -y ppp pptp pptpd pptp-setup
# chkconfig pptpd on

или systemctl enable pptpd

2 Настройка конфигов

Файл /etc/pptpd.conf



localip — ip адрес из выбранной вами подсети, который будет являться локальным шлюзом для клиентов VPN.
remoteip - пул ip адресов для раздачи клиентам VPN.
Если на вашей машине несколько внешних IP адресов, то вы можете указать конкретный IP, по которому будет доступно подключение к VPN серверу. В конце файла добавьте:

listen внешний_ip

Файл /etc/ppp/options.pptpd



добавлен метод mschap2
гугловские DNS, заменить на свои.
ms-dns 8.8.8.8
ms-dns 8.8.4.4

Файл /etc/ppp/chap-secrets



В файле /etc/ppp/chap-secrets указываются аутентификационные данные пользователей для CHAP аутентификации:

client server Pa$$word *
client - логин
server - указывается имя сервера к которому можно подсоединиться (параметр name), можно заменить на *
Pa$$word - пароль клиента
* - Разрешает соединения с любых IP

Устанавливаем права на файл паролей, чтобы только root его мог читать:
chmod 600 /etc/ppp/chap-secrets

Файл /etc/sysctl.conf



изменение значения «0» на «1» net.ipv4.ip_forward = 1 и отключение ipv6
Перечитываем конфигурацию.

sysctl -p

cat /proc/sys/net/ipv4/ip_forward

ps ax | grep pptpd
ip a | grep ppp0
lsof -i TCP:1723
netstat -an | grep -i listen
systemctl status pptpd

смотрим логи
systemctl status pptpd
cat /var/log/messages |grep pptp
last |grep ppp0
tail /var/log/secure
grep -i pptp /var/log/messages
grep -i pptp /var/log/pptpd.log

кто логинился в систему
Команда  Журнал логов	  Описание
last	/var/log/wtmp	  История успешных входов/выходов
lastb	/var/log/btmp	  История неудавшихся попыток входа
lastlog	/var/log/lastlog  Список последних подключавшихся пользователей

изменение времени файлов, удаление истории посещения и команд в linux

опции /etc/ppp/options.pptpd
Создание PPTP-сервера для реализации защищенного доступа к домашней сети в операционных системах семейства Linux

Опция ppp
По умолчанию эта опция закомментирована символом “#”. Ее функция заключается в указании точного местоположения сервиса pppd, который является управляющим для PPTP-сервера. Путь по умолчанию — /usr/sbin/pppd.

Опция option
Этот тэг указывает демону pptpd на путь к файлу с остальными настройками PPTP-соединения, такими как используемое шифрование канала и способ авторизации PPTP-пользователей. По умолчанию эта строка указывает на файл /etc/ppp/options.pptpd, который создается при установке.

Опция debug
Раскомментирование этого тэга служит для отладки PPTP-сервера при неполадках. В логах сервера будет приведена более подробная информация о действиях как сервера, так и клиентов. По умолчанию эта опция отключена. Рекомендуется включать ее только в случае возникновения неполадок, поскольку в системных логах будет много лишней информации.

Опция stimeout х
Данная опция служит для указания точного времени ожидания PPTP-пакетом, прежде чем он попадет в управляющую программу pptpctrl и будет передан клиенту. По умолчанию этот показатель равен 10 с. Параметр X — время в секундах. Таким образом осуществляется защита от DoS-атак.

Опция noipparam
По умолчанию этот тэг отключен. При включении данного параметра IP-адрес клиента не передается скриптам ip-up через демон pppd. То есть pppd не будет знать реальный адрес PPTP-клиента.

Опция bcrelay interface
Данная опция позволяет PPTP-клиентам рассылать бродкасты, которые сервер получает по сетевому интерфейсу с названием interface. По умолчанию этот тэг закомментирован. Примером интерфейса может служить eth0 или ham0.

Опция connections n
По умолчанию максимальное количество соединений с PPTP-сервером может быть не более 100. Эта опция вручную указывает на количество соединений, где “n” — цифровое значение. Отметим, что максимальное количество соединений ограничивается также списком IP-адресов в опции remoteip, но эта функция работает лишь в том случае, если опция delegate неактивна.

Опция delegate
По умолчанию эта опция отключена. Ее включение автоматически отключает опцию remoteip, через которую демон pptpd выдает адреса PPTP-клиентам, таким образом заставляя выдавать виртуальные внутрисетевые адреса с помощью radius сервера или файла chap-secrets.

Опция listen ip
Указывает на определенный IP-адрес, на котором PPTP-сервер будет прослушивать 1723-й порт, где “ip” — указываемый IP-адрес. По умолчанию PPTP-сервер работает на всех локальных интерфейсах операционной системы (eth0, ppp0, ham0 и т.п.).

Опция localip ip-address
Данная опция позволяет явным образом указать диапазон IP-адресов или отдельный IP-адрес, который будет использоваться в качестве адреса PPTP-сервера в виртуальной сети. Если указан один IP-адрес, то он применяется для всех PPTP-клиентов, в противном случае (если указан диапазон адресов) каждому клиенту назначается свой виртуальный адрес сервера, поэтому их количество должно совпадать со значением, описанным в опции remoteip. Задавать несколько IP-адресов сервера необходимо в тех случаях, когда для каждого клиента указывается персональный IP-адрес (например, в файле chap-secrets), благодаря чему можно ограничить доступ каждого клиента в определенный участок локальной сети на основании правил iptables. Параметр ip-address может выглядеть следующим образом: 192.168.0.1, когда указан один адрес для всех клиентов, либо 192.168.0.2-254, когда указывается диапазон адресов.

Опция remoteip ip-address
В этом параметре указывается диапазон IP-адресов, которые будут получать PPTP-клиенты. Функция работает только в том случае, когда опция delegate неактивна, то есть закомментирована. Количество IP-адресов ограничивает и количество максимальных соединений с PPTP-сервером. Параметр ip-address может выглядеть так: 192.168.0.1, когда указан один адрес для одного-единственного клиента (в этом случае к PPTP-серверу может подключиться лишь один клиент), либо 192.168.0.2-254, если указывается диапазон адресов.

Опция speed x
Данный параметр отвечает за максимальную скорость соединения, с которой происходит обмен данными между сервером и клиентом. По умолчанию эта опция (параметр “x”) имеет значение 115 200 байт/с и является также максимально допустимой для pppd. В реальности скорость может быть значительно выше, но только если указано именно это значение.

Опция logwtmp
Раскомментирование этой строки позволит передавать PPTP-серверу лог аутентификации пользователей через стандартную функцию logwtmp, что даст возможность автоматизировать процесс сбора информации по заходам клиентов. Однако в некоторых случаях этот модуль не устанавливается и его (файл pptpd-logwtmp.so) необходимо переписать вручную из дистрибутива pptpd в папку /usr/lib/pptpd/. В противном случае сервер будет генерировать дополнительную лишнюю информацию о том, что модуль не загружен, а в некоторых экспериментальных версиях он просто не будет загружаться.
Все опции описаны на английском языке, прочесть их можно, набрав команду “man pptpd.conf”. Для того чтобы организовать доступ к нескольким компьютерам в локальной сети, необходимо отредактировать конфигурационный файл pptpd.conf следующим образом:

option /etc/ppp/options.pptpd
debug
localip 192.168.193.1
remoteip 192.168.193.234-238

IP-адрес 192.168.193.1 — это адрес сервера, а диапазон адресов от 192.168.193.234 до 238 — это адреса, которые будут выдаваться клиентам PPTP-сервера. Опция debug включена для возможной отладки сервера. Этот конфигурационный файл предполагает раздачу адресов самим демоном pptpd. После редактирования файла pptpd.conf необходимо изменить параметры аутентификации и шифрования в файле /etc/ppp/options.pptpd. Рассмотрим все возможные параметры, которые можно прописать в этом файле.

Параметр name
Данная опция отвечает за название сервиса, которое прописывается в файле аутентификации /etc/ppp/chap-secrets. По умолчанию название соответствует названию сервиса — pptpd.

Параметры refuse-pap, refuse-chap, refuse-mschap
Данные параметры запрещают авторизацию по старым протоколам аутентификации, таким как PAP, CHAP и MS CHAP v1, но, если использование этих протоколов необходимо, строки должны быть закомментированы. Аналогичными являются опции -pap, -chap, -chapms (они применяются в том случае, если pptpd установлен на компьютере с ОС семейства BSD). Для активации аутентификации по этим протоколам вместо знака “–” должен стоять знак “+”.

Параметр require-mschap-v2, +chapms-v2
Данная опция разрешает аутентификацию пользователей по самому защищенному из протоколов — MS CHAP v2. По умолчанию в конфигурационном файле разрешен только этот протокол аутентификации пользователей.

Параметр require-mppe-128, mppe-128, mppe-40, mppe-stateless, “mppe required, stateless”
Названные параметры относятся к шифрованию MPPE, которое может быть использовано лишь совместно с протоколом аутентификации MS CHAP v2. Каждая из опций строго определяет наличие шифрования и не позволяет установить связь PPTP-клиентам, у которых оно отключено. Цифры 40 и 128 отвечают за стойкость шифрования, рекомендуется шифрование со 128-битным ключом. Для того чтобы PPTP-клиенты могли подключаться к серверу без использования шифрования, которое увеличивает трафик, а также нагрузку на процессор как клиента, так и сервера, необходимо закомментировать все эти строки.

Параметр ms-dns ххх.ххх.ххх.ххх
Всего в конфигурационном файле может существовать две записи этой опции. С ее помощью можно указать первичный и вторичный DNS сервера для PPTP-клиентов.

Параметр proxyarp
Включение этого параметра позволяет PPTP-клиентам работать с локальной сетью без добавления правил маскарадинга (NAT) в цепочки брандмауэра iptables. Данная функция действует через средства ARP (Address Resolution Protocol) и его таблицы. Однако таким образом нельзя регулировать доступ в разные подсети клиентов и доступ конкретных клиентов. Чтобы эта функция работала, необходимо, чтобы осуществлялось перенаправление пакетов ядром (чтобы функция ip_forward была равна единице). Если используются цепочки iptables, этот параметр следует закомментировать. По умолчанию данная опция включена.

Параметры debug и dump
Для получения дополнительной информации о ходе соединения клиентов, а также о включенных опциях используются параметры debug и dump соответственно. В стадии построения сервера и его отладки эта функция очень полезна, затем ее можно отключить, поскольку объем log-файлов будет возрастать с каждым новым соединением. По умолчанию обе функции отключены.

Параметр logfile x
Данная опция указывает точное местоположение файла (“x”), в который будет записываться отладочная информация. По умолчанию эта функция отключена, а все записи по соединению заносятся в системный журнал. Для ее работы необходимо также закомментировать параметр “nologfd”, который запрещает ее использование.

Параметр nologfd
Данная опция блокирует запись в системный журнал через системную функцию stderr. По умолчанию она активна. Для получения отладочной информации ее необходимо закомментировать.

Параметры novj и novjccomp
Названные параметры запрещают компрессию, которая используется в ранних клиентах Windows 9x/Mе. По умолчанию опция включена.

Параметр nobsdcomp
Если в качестве операционной системы применяется платформа Linux, а не BSD (OpenBSD, FreeBSD), то необходимо раскомментировать эту функцию.

Параметр nodefaultroute
Данная функция отключает автоматическое изменение таблицы маршрутизации при установлении PPTP-соединения. По умолчанию pppd при установлении соединения PPTP-клиента с сервером меняет IP-адрес используемого по умолчанию шлюза на IP-адрес PPTP-клиента. В этом случае Интернет на компьютере-сервере просто пропадет. Поэтому если используется PPTP-сервер, то данную опцию следует указать.
О других опциях, которые применяются реже, можно прочесть, набрав в командной строке “man pppd”, поскольку options.pptpd относится не только к демону pptpd, но и к основному управляющему пакету pppd, который и устанавливает соединение по VPN-туннелю.

3 настройка фрайвола
firewall-cmd настройка брадмаузера

firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --list-all-zones
firewall-cmd --get-active-zones
firewall-cmd --direct --get-all-rules
firewall-cmd --zone=external --list-services
firewall-cmd --zone=external --list-ports
firewall-cmd --zone=public --list-ports
firewall-cmd --list-rich-rules

firewall-cmd --zone=public --remove-service=dhcpv6-client --permanent
firewall-cmd --zone=public --add-port=1723/tcp --permanent

firewall-cmd --zone=public --remove-interface=enp3s0 --permanent
firewall-cmd --zone=external --change-interface=enp3s0 --permanent
firewall-cmd --zone=external --add-port=1723/tcp --permanent
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --add-masquerade
firewall-cmd --query-masquerade

firewall-cmd --reload
systemctl restart firewalld

для удаления правила --add- меняется на --remove-

в случаях проблем с firewalld Перечитать правила и сбросить текущие подключения
firewall-cmd --complete-reload


firewall-cmd --permanent --new-ipset=IP-users --type=hash:net
firewall-cmd --ipset=IP-servers --add-entry=192.168.0.0/24 --permanent
firewall-cmd --ipset=IP-servers --add-entry=192.168.200.12 --permanent
firewall-cmd --ipset=IP-servers --add-entry=192.168.200.200 --permanent

firewall-cmd --ipset=IP-servers --remove-entry=192.168.20.0/24 --permanent

firewall-cmd --ipset=IP-servers --get-entries
firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset="IP-servers" service name="ssh" accept'

firewall-cmd --remove-rich-rule='rule source ipset=IP-users service name="http" drop' --permanent

firewall-cmd --permanent --zone=public --list-rich-rules

чтобы все пользователи (список ipset IP-users) ходили через squid несмотря на net.ipv4.ip_forward=1
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -m set --match-set IP-servers src -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -m set --match-set IP-servers src -j ACCEPT

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -j DROP
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j DROP

firewall-cmd --reload
systemctl restart firewalld

iptables -S

cat /etc/firewalld/direct.xml

ls /usr/lib/firewalld/services/
cat /usr/lib/firewalld/services/ipsec.xml

/etc/firewalld/services/l2tp.xml




/etc/firewalld/services/pptp.xml




chmod 640 /etc/firewalld/services/*.xml restorecon /etc/firewalld/services/*.xml

Контексты SELinux - Маркирование файлов

firewall-cmd варианты
firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o enp3s0 -j MASQUERADE
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT

узнать
firewall-cmd --direct --get-all-rules
удалить
firewall-cmd --direct --permanent --remove-rule .....

firewall-cmd ошибки
# firewall-cmd --reload
Error: list index out of range

nano /etc/firewalld/direct.xml
исправить ошибочную запись

fail2ban
https://github.com/fail2ban/fail2ban/tree/master/config/action.d

----------------------------------------------------------------------------------------------------------------------------
Файл(ы)
Описание
/etc/fail2ban/fail2ban.conf
/etc/fail2ban/fail2ban.local
Глобальные настройки службы и настройки "по умолчанию"
/etc/fail2ban/filter.d/*.conf
/etc/fail2ban/filter.d/*.local
Фильтры, определяющие действия для обнаружения неудачных попыток аутентификации. В общем случае, это правила анализа системных журналов.

/etc/fail2ban/action.d/*.conf
/etc/fail2ban/action.d/*.local
/etc/fail2ban/action.d/*.py

Действия, определяющие порядок блокировки/разблокировки.
В том числе, действия могут быть заданы как сценарии на языке Python (*.py).

/etc/fail2ban/jail.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.d/*.local

Определения комбинаций фильтров и действий.Фильтры и действия идентифицируются по именам файлов без расширений .conf/.local.

----------------------------------------------------------------------------------------------------------------------------

Сервис Fail2ban хранит настройки в каталоге /etc/fail2ban.
файл jail.conf, содержит стандартные настройки он перезаписывается при обновлении пакета Fail2ban, потому его редактировать нельзя
Файл jail.conf содержит раздел [DEFAULT], после которого следует раздел для индивидуальных сервисов. Файл jail.local может переопределить любое из этих значений. Файлы применяются в алфавитном порядке:

/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf,
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local,

sudo yum install epel-release
yum -y install ipset systemd-python
yum --disablerepo=* --enablerepo=epel -y install fail2ban fail2ban-systemd
(можно проще без отключения реп)
yum -y install fail2ban fail2ban-systemd

вместе с ним установятся также и зависимые утилиты,
# такие как: fail2ban-firewalld, fail2ban-sendmail, fail2ban-server

yum update -y selinux-policy*

systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban

Чтобы получить более подробный вывод, введите:
sudo fail2ban-client status sshd

nano /etc/fail2ban/jail.local



nano /etc/fail2ban/jail.d/sshd.local



nano /etc/fail2ban/filter.d/pptp.conf



nano /etc/fail2ban/jail.d/pptpd.local



Конфигурация одним файлом

nano /etc/fail2ban/jail.local



systemctl restart pptpd
systemctl restart firewalld
systemctl restart fail2ban

enable = true — проверка ssh активна.
action Ссылается на соответствующий файл действия в /etc/fail2ban/action.d/ используется для получения IP-адреса, который необходимо заблокировать, используя фильтр, доступный в /etc/fail2ban/action.d/firewallcmd-ipset.conf.
ignoreip — используется для установки списка IP-адресов, которые не будут забанены. Список IP-адресов следует указывать через пробел.
bantime — время блокировки, в секундах.
maxretry — количество попыток перед перед блокировкой.
findtime — время, на протяжении которого рассчитывается количество попыток перед баном (maxretry).
logpath = /var/log/messages путь к файлу лога. Но если у вас не включен режим debug в настройках конфигурации pptp, то нужно это сделать, просто раскомментировать строчку с debug в файле /etc/ppp/options.
filter - Ссылается на соответствующий файл фильтра в /etc/fail2ban/filter.d/
usedns : определяет, используется ли обратный DNS для реализации запретов. Установка этого значения в «no» приведет к запрету самих IP-адресов вместо имен хостов. Параметр «warn» будет пытаться использовать обратный DNS для поиска имени хоста и забанить таким образом, но будет регистрировать активность для просмотра.
destemail : это адрес, на который будет отправлено уведомление по электронной почте, если вы настроили свое действие на почтовые оповещения.
sendername : это будет использоваться в поле email from для сгенерированных уведомлений


смотрим пишется ли что-то в логи fail2ban
tail /var/log/fail2ban.log
fail2ban-client -vv -d 2>&1 | grep sshd | grep -Ev "'addfailregex'|'addignoreip'|'action'"

https://www.fail2ban.org/wiki/index.php/MANUAL_0_8

Отслеживание записей неудачного входа
cat /var/log/secure | grep 'Failed password'
tail /var/log/secure


iptables -vnL

fail2ban-client status
fail2ban-client status sshd
fail2ban-client status pptp

Разблокировка IP-адреса
Чтобы удалить IP-адрес из списка запрещенных, для параметра IPADDRESS задан соответствующий IP-адрес, который необходимо разблокировать.
fail2ban-client set sshd unbanip IPADDRESS
fail2ban-client set pptp unbanip IPADDRESS
или
firewall-cmd --direct --permanent --remove-rule ipv4 filter f2b-sshd 0 -s 188.134.7.221

Если вы часто подключаетесь к своему серверу по pptp, и возможно забудете пароль или еще что-то, и не хотите быть забанеными, внесите свой ip адрес (или несколько, или подсеть) в файл /etc/fail2ban/jail.local строчкой через пробел

ignoreip = 127.0.0.1/8 192.168.6.0/24 123.123.123.123

sudo firewall-cmd --direct --get-all-rules
sudo ipset list fail2ban-sshd

sudo /etc/ppp/options.pptpd
раскомментируем debug (снять #)

снятие блокировки
Linux удаляет IP из fail2ban f2b

firewall-cmd --direct --get-all-rules
ipv4 filter f2b-pptp 0 -s 192.168.107.99 -j REJECT --reject-with icmp-port-unreachable

cat /etc/firewalld/direct.xml

проверьте, не заблокирован ли ваш IP:
iptables -L -n

Если ваш IP был заблокирован, найдите номер строки вашего IP-адреса в списке запрещенных

iptables -L f2b-pptp -v -n --line-numbers
1 278 16680 REJECT all -- * * 192.168.107.99 0.0.0.0/0 reject-with icmp-port-unreachable
2 390K 19M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

Теперь вы можете использовать `iptables -D chain rulenum`, чтобы удалить запись с вашим IP-адресом.
iptables -D f2b-pptp 1

Это удалит строку 1:
iptables -L f2b-pptp -v -n --line-numbers
1 390K 19M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

Если вам нужно удалить другой IP-адрес из списка запрещенных IP-адресов ssh / sshd, вам нужно снова запустить `iptables -L f2b-sshd -v -n --line-numbers`, так как номера строк меняются каждый раз, когда вы удаляете одну запись


у fail2ban нет способа отличить неудачный вход в систему от разрыва соединения PPTP-регулятора из-за причудливого формата журналирования pptpd. Таким образом, регулярные входы в систему будут считаться неудачными, и IP-адрес в конечном итоге будет заблокирован. (Вам нужно будет снять запрет вручную, используя SSH, или просто хитро спроектировать значения bantime / findtime / maxretry, чтобы разрешить регулярное использование, одновременно предотвращая перебор)

Если необходимо отправлять почту, то надо установить и настроить пакет ssmtp


разное
https://unixhow.com/3707/kak-ustanovit-pptp-vpn-klient-na-centos-rhel
https://www.prado.lt/how-to-set-up-pptp-client-on-debian-9
https://wiki.ubuntu.com/VPN
modprobe ppp-generic

lsmod | grep pptp
grep -i pptp /var/log/*
grep -i pptp /var/log/messages
grep -i pptp /var/log/syslog

https://linuxconfig.org/how-to-establish-pptp-vpn-client-connection-on-centos-rhel-7-linux
pppd[32087]: LCP: timeout sending Config-Requests
modprobe nf_conntrack_pptp
modprobe nf_conntrack_proto_gre

http://pptpclient.sourceforge.net/howto-debian.phtml
http://pptpclient.sourceforge.net/howto-diagnosis.phtml#lots_of_data
https://www.adminsehow.com/2010/04/connect-to-pptp-vpn-from-linux-only-by-one-command/
https://askubuntu.com/questions/590114/pptp-client-doesnt-connect-by-command-line
pppd pty "pptp IP_OR_FQDN_VPN_SERVER --nolaunchpppd" file /etc/ppp/options.pptp user USERNAME password PASSWORD

замените IP_OR_FQDN_VPN_SERVER на IP или DNS вашего VPS-сервера.
замените USERNAME своим именем пользователя VPN.
замените ПАРОЛЬ своим паролем VPN.
подождите примерно 10-15 секунд, затем запустите команду ifconfig, вы увидите там интерфейс ppp0, если его нет, вы можете устранить неполадки, заглянув в системный журнал вашего linux
Если у вас есть какие-либо пользовательские настройки, вам может понадобиться отредактировать файл /etc/ppp/options.pptp.
чтобы отключить форму VPN, используйте следующую команду:

killall pppd

проверить порты
netstat -ntulp
netstat -ntlp | grep LISTEN
ss -ltupn
lsof -nP -i | grep LISTEN
nmap localhost
получить ip адрес
curl ipinfo.io/ip
wget -O - -q icanhazip.com
nmap адрес

ошибки
http://blog.inelsis.ru/?p=165
VPN не подключается.
LOG
pptpd[16913]: GRE: read(fd=8,buffer=6097c0,len=8260) from network failed: status = -1 error = Protocol not available
pptpd[16913]: CTRL: GRE read or PTY write failed (gre,pty)=(8,6)
pppd[16914]: Modem hangup
Решение.
настроить options.pptpd
Добавить.
mtu 900
mru 900
Провайдер чтото сделал.


настройка OpenVPN
OpenVPN-Server на Centos 7

Устанавливаем репозиторий EPEL (если нет)
# yum install epel-release

Устанавливаем NET-Tools (если нет)
# yum install net-tools

Установка OpenVPN-Server и Easy-RSA
# yum install openvpn easy-rsa

Создаем директорию для генерации сертификатов и копируем туда Easy-RSA
# mkdir /etc/openvpn/easy-rsa
# cp -rf /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa

Переходим в директорию и создаем файл vars
# cd /etc/openvpn/easy-rsa
# vi vars

Записываем в файл vars



Делаем файл исполняемым
# chmod +x vars

Создание ключа и сертификата для OpenVPN Сервера


Инициализация каталог PKI



Создать ключ CA
# ./easyrsa build-ca

будет запрошен пароль, его будет запрашивать в дальнейшем при создании сертификатов

Создадим ключ сервера (название сервера srv-openvpn)
# ./easyrsa gen-req srv-openvpn nopass
опция nopass — отключение пароля для srv-openvpn

Подпишем ключ srv-openvpn используя наш CA-сертификат
# ./easyrsa sign-req server srv-openvpn

на вопрос: Confirm request details: — ответить: yes
в процессе у нас спросят пароль, который мы задавали CA

Проверим файлы сертификата, что бы убедится, что сертификаты сгенерировались без ошибок
# openssl verify -CAfile pki/ca.crt pki/issued/srv-openvpn.crt
pki/issued/srv-openvpn.crt: OK

Создание ключа клиента


# cd /etc/openvpn/easy-rsa

Сгенерируем ключ клиента client-01
# ./easyrsa gen-req client-01 nopass

Подпишем ключ client-01, используя наш CA сертификат
# ./easyrsa sign-req client client-01

на вопрос: Confirm request details: — ответить: yes
в процессе у нас спросят пароль, который мы задавали CA

Проверим файлы сертификата
# openssl verify -CAfile pki/ca.crt pki/issued/client-01.crt
pki/issued/client-01.crt: OK

Дополнительная настройка OpenVPN сервера


Сгенерируем ключ Диффи-Хеллмана
# ./easyrsa gen-dh

Сгенерируем CRL ключ необходимый для отзыва клиентских сертификатов
# ./easyrsa gen-crl

Для того, что бы отозвать сертификат надо выполнить команду (НА БУДУЩЕЕ)
# ./easyrsa revoke client-02
после каждого отозванного сертификата необходимо обновлять CRL ключ

Копируем сертификаты сервера
# cp pki/ca.crt /etc/openvpn/server/
# cp pki/issued/srv-openvpn.crt /etc/openvpn/server/
# cp pki/private/srv-openvpn.key /etc/openvpn/server/
# cp pki/dh.pem /etc/openvpn/server/
# cp pki/crl.pem /etc/openvpn/server/

Копируем сертификаты клиента
# cp pki/ca.crt /etc/openvpn/client/
# cp pki/issued/client-01.crt /etc/openvpn/client/
# cp pki/private/client-01.key /etc/openvpn/client/

Настройка OpenVPN сервера


Создадим файл конфигурации server.conf

# cd /etc/openvpn
# vi server.conf

Записываем в файл server.conf



Настройка Firewalld


Отредактировать файл /etc/sysctl.conf:
Добавить:
net.ipv4.ip_forward = 1

Выполняем команду
# sysctl -p

cat /proc/sys/net/ipv4/ip_forward

Настройка



Запустим OpenVPN и добавим его в автозагрузку
# systemctl start openvpn@server
# systemctl enable openvpn@server

Проверим
# systemctl status openvpn@server

Настройка OpenVPN клиента


Создадим файл конфигурации client-01.ovpn
# cd /etc/openvpn/client
# vi client-01.ovpn

Записываем в файл client-01.ovpn



в строке ‘remote xx.xx.xx.xx 1194‘ надо прописать IP-адрес вместо ‘xx.xx.xx.xx‘

Теперь для надо заархивировать сертификаты (ca.crt, client-01.crt), ключ клиента (client-01.key), файл конфигурации (client-01.ovpn), и передать их на ПК, который будет подключаться к OpenVPN серверу

OpenVPN объединяем ключи и конфигурацию клиента в один файл
https://interface31.livejournal.com/87234.html
https://dimetrius.net/linux/ethernet-and-vpn/ob-edinenie-konfiga-i-klyuchej-openvpn-v-odin-fajl.html

откроем файл конфигурации клиента и закомментируем в нем строки содержащие пути к ключам и сертификатам (пути даны сугубо условно):

#ca C:\\Users\\Andrey\\OpenVPN\\keys\\ca.crt
#cert C:\\Users\\Andrey\\OpenVPN\\keys\\ivanov.crt
#key C:\\Users\\Andrey\\OpenVPN\\keys\\ivanov.key
Если вы используете TLS-аутентификацию, то дополнительно закомментируйте:

#tls-auth C:\\Users\\Andrey\\OpenVPN\\keys\\ta.key 1
Теперь перейдем в самый конец файла и создадим там несколько секций в которые скопируем содержимое ключей и сертификатов:



В секцию ca мы копируем содержимое корневого сертификата ca.crt, в секцию key - содержимое ключа клиента, а в секцию cert - открытый ключ из его сертификата, обратите внимание, что копируется содержимое начиная от строки BEGIN и заканчивая строкой END включительно, как есть, без каких либо изменений. Открыть сертификаты и ключи можно обычным Блокнотом, либо любым иным текстовым редактором.

Вместо строк
ca ca.crt
cert user1.crt
key user1.key

вставляем следующую конструкцию...



Если вы используете TLS-аутентификацию, то добавьте секцию tls-auth и скопируйте в нее содержимое ключа ta.key:



И добавьте в файл опцию:
key-direction 1

Теперь файл конфигурации можно сохранить и передать на клиентское устройство. А дальше все достаточно просто и практически не требует вмешательства администратора, многие пользователи вполне способны сделать все самостоятельно. Щелкаем правой кнопкой на значок графической оболочки OpenVPN в системном лотке, выбираем Импорт конфигурации и указываем на полученный файл.



подключить клиента из консоли:
openvpn --config /etc/openvpn/client/client2.ovpn &> /dev/hull

с поддержкой dns
https://github.com/jonathanio/update-systemd-resolved
настройка клиента openvpn
openvpn --config /etc/openvpn/client/имя_сети.ovpn --config /etc/openvpn/scripts/update-systemd-resolved.conf &> /dev/hull

Для подключения с андройда использовать:
https://openvpn.net/vpn-server-resources/connecting-to-access-server-with-android/
официальный клиент OpenVPN Connect – Fast & Safe SSL VPN Client
продвинутый клиент OpenVPN for Android

https://openvpn.net/download-open-vpn/
https://openvpn.net/community-downloads/
https://build.openvpn.net/downloads/releases/

запуск клиента
openvpn --config client.ovpn
ip a show tun0

Описание команд и параметров OpenVPN

ошибки

Определение правильного MTU
ping -M do -s 1500 -c 1 www.example.com
Уменьшайте значение 1500 на 10 каждый раз, пока пинг не будет успешным. Как только пинг завершится успешно, используемым значением будет MTU, которое вы должны использовать.
OpenVPN требует установки значения MSS. MSS - это значение для MTU минус 40).
Например. Если ваш MTU 1460, ваш MSS 1420
mssfix 1420

DNS
https://github.com/jonathanio/update-systemd-resolved



ссылки
https://www.altlinux.org/L2TP_VPN_Client_Server
Настраиваем VPN PPTP соединение из командной строки
http://hww.ru/wp/2019/04/ustanovka-i-nastrojka-vpn-servera-na-centos-7/
Настройка VPN-сервер PPTPD (черновик)
Как настроить VPN с помощью PPTP

https://reversed.top/2014-07-07/pptp-add-route-automatically/
https://www.dmosk.ru/miniinstruktions.php?mini=router-centos
https://www.dmosk.ru/miniinstruktions.php?mini=firewalld-centos
https://losst.ru/nastrojka-firewall-centos-7
Использование ipset во встроенном брандмауэре CentOS 7
https://itproffi.ru/firewalld-ustanovka-i-nastrojka-zony-nat-probros-portov/
http://fliplinux.com/redhat-centos-7-firewalld-pptp.html
Использование ipset во встроенном брандмауэре CentOS 7
https://onedayadmin.sytes .net/fail2ban-zashita-servera-ot-brutforsa/

Описание некоторых sysctl переменных ядра Linux (sysctl proc linux kernel tune)
Тюнинг сети и безопасности TCP/IP с помощью sysctl.conf
https://linux-audit.com/blocking-ip-addresses-in-linux-with-iptables/
https://wiki.archlinux.org/index.php/Fail2ban_(Русский)
Защищаем сервер на CentOS 7 с помощью firewalld и fail2ban
Установка и настройка Fail2Ban в Centos 7
ЗАЩИТА SSH ПРИ ПОМОЩИ FAIL2BAN В CENTOS 7
Настройка и использование Fail2ban на Linux
https://www.digitalocean.com/community/tutorials/how-fail2ban-works-to-protect-services-on-a-linux-server
Установка и настройка fail2ban
КАК FAIL2BAN ЗАЩИЩАЕТ СЕРВИСЫ LINUX


установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть2

установка и настройка
https://unixwall.000webhostapp.com/настраиваем-squid-sams-для-работы-в-ad/
https://www.dmosk.ru/miniinstruktions.php?mini=sams2-squid
yum update
yum install mc htop ncdu wget curl nano nmap
yum install openssh-server
chkconfig --level 2345 sshd on
systemctl reload sshd.service
nano /etc/yum.conf
yum install epel-release
yum update
yum repolist
yum install yum-utils
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl -O http://rpms.remirepo.net/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm

nano /etc/squid/squid.conf
squid -k parse
squid -k reconfigure
service squid restart

yum install php php-mysql php-mbstring php-devel php-xml php-gd php-mcrypt
yum install -y mariadb mariadb-server mariadb-devel
yum install zip unzip

cd /root
wget https://github.com/PavelVinogradov/sams2/archive/master.zip
unzip master.zip
cd /root/sams2-master
make -f Makefile.cvs
sh ./configure
make
make install



find / -name httpd.conf

chown apache:apache /var/www
chown -R apache:apache /usr/local/share/sams2/
chown -R apache:apache /usr/local/etc/sams2.conf
chmod -R 777 /usr/local/share/sams2/
systemctl restart httpd
Web-интерфейс SAMS требует права на запись в каталог ./data
setenforce 0
установка dokuwiki centos php nginx

посмотреть конфиг без комментариев
sudo grep -v «^#» /etc/squid/squid.conf | sed -e ‘/^$/d’

nano /etc/squid/squid.conf
squid -k check
squid -k parse
squid -k reconfigure
systemctl restart squid

failed to open /var/run/squid.pid: (2) No such file or directory
sudo killall -9 squid
systemctl start squid

Explicit Proxy c авторизацией по AD Group + Interception Proxy с авторизацией по MAC
Удалим полученный ticket, который мы получили от сервера Kerberos
kdestroy

«Авторизация администратора SAMS » и ввести учетные данные по-умолчанию: пользователь admin , пароль qwerty


https://meliorem.ru/category/backend/mysql/
https://tproger.ru/translations/sql-recap/

mysql -usams2user -psams2password
SHOW DATABASES;
USE sams2db;
SHOW TABLES;
SELECT * FROM sgroup;
DELETE FROM sgroup WHERE s_group_id IN (8,9,10,11,12);
DELETE FROM sgroup WHERE s_group_id BETWEEN 10 and 248;
DELETE FROM shablon WHERE s_shablon_id BETWEEN 4 AND 246 AND s_shablon_id <> 8;
show processlist;


элементы и опции squid
http://www.bog.pp.ru/work/squid.html
http://rus-linux.net/MyLDP/FAQ/SQUID-FAQ/FAQ-10.html
Установка и настройка SQUID
Элементы ACL

  • src: IP-адрес источника (клиент)

  • dst: IP-адрес назначения (сервер)

  • myip: локальный IP-адрес клиентского соединения

  • srcdomain: имя домена источника (клиент)

  • dstdomain: имя домена назначения (сервер)

  • srcdom_regex: шаблон регулярного выражения источника (клиент)

  • dstdom_regex: шаблон регулярного выражения назначения (сервер)

  • time: время дня и день недели

  • url_regex: шаблон регулярного выражения для URL

  • urlpath_regex: шаблон регулярного выражения для части URL, исключая протокол и имя хоста

  • port: номер порта назначения (сервер)

  • myport: номер локального порта, куда подключается клиент

  • proto: тип протокола передачи (http, ftp, etc)

  • method: метод HTTP-запроса (get, post, etc)

  • browser: шаблон регулярного выражения, совпадающего с заголовком user-agent из запроса

  • ident: строка совпадения с именем пользователя

  • ident_regex: шаблон регулярного выражения имени пользователя

  • src_as: номер Автономной Системы источника (клиент)

  • dst_as: номер Автономной Системы назначения (сервер)

  • proxy_auth: аутентификация пользователя через внешний процесс

  • proxy_auth_regex: регулярное выражение аутентификации пользователя через внешний процесс

  • snmp_community: строка SNMP-сообщества

  • maxconn: ограничение максимального кол-ва соединений с одного клиентского IP-адреса

  • req_mime_type: шаблон регулярного выражения для заголовка content-type запроса

  • arp: Ethernet (MAC)-адрес



Списки доступа
Существуют следующие типы списков доступа:

  • http_access: разрешает доступ HTTP-клиентам (броузерам) к порту HTTP. Это основной тип списка контроля доступа.

  • icp_access: разрешает братским кешам опрашивать ваш кеш по ICP.

  • miss_access: разрешает определенным клиентам передавать cache misses через ваш кеш.

  • no_cache: объявляет ответы, которые не должны кешироваться.

  • redirector_access: контролирует, какие запросы должны пройти через процесс редиректора.

  • ident_lookup_access: контролирует, какие запросы требуют Ident lookup.

  • always_direct: контролирует, какие запросы всегда должны посылаться напрямую к серверу назначения.

  • never_direct: контролирует, какие запросы никогда не должны посылаться напрямую к серверу назначения.

  • snmp_access: контролирует доступ клиентов к кешу по SNMP.

  • broken_posts: определяет запросы, для которых squid добавляет дополнительный CRLF после тел сообщений POST как того требуют некоторые неверно работающие сервера.

  • cache_peer_access: контролирует, какие запросы должны быть переданы соседскому кешу (peer).



https://wiki.yola.ru/squid/squid
Выпуск трафика с разных IP-адресов

acl net1 src 10.1.1.0/24
acl net2 src 10.1.2.0/24
acl net3 src 10.1.3.1/32
tcp_outgoing_address ВНЕШНИЙ_IP_1 net1
tcp_outgoing_address ВНЕШНИЙ_IP_2 net2
tcp_outgoing_address ВНЕШНИЙ_IP_3 net3
tcp_outgoing_address ВНЕШНИЙ_IP_4



firewall-cmd
Создание мультизональных конфигураций межсетевого экрана с помощью Firewalld
Firewalld, установка и настройка, зоны, NAT, проброс портов
Использование ipset во встроенном брандмауэре CentOS 7
vpn pptp centos7

netstat -tulpn

firewall-cmd --zone=public --remove-port=443/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --zone=public --remove-service=dhcpv6-client --permanent

firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --zone=public --add-port=3128/tcp --permanent

firewall-cmd --reload
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --list-services

firewall-cmd --zone=external --list-ports
firewall-cmd --zone=external --list-services

firewall-cmd --zone=external --change-interface=enp3s0 --permanent
firewall-cmd --zone=external --remove-service=ssh --permanent
firewall-cmd --get-active-zones

firewall-cmd --zone=external --list-services
firewall-cmd --list-all
firewall-cmd --get-services
systemctl restart firewalld

http://fliplinux.com/ip-cen.html
«белый список»
firewall-cmd --permanent --zone=public --add-source=192.168.100.0/24
firewall-cmd --permanent --zone=public --add-source=192.168.222.123/32


firewall-cmd --permanent --new-ipset=IP-users --type=hash:net
firewall-cmd --ipset=IP-servers --add-entry=192.168.0.0/24 --permanent
firewall-cmd --ipset=IP-servers --add-entry=192.168.200.12 --permanent
firewall-cmd --ipset=IP-servers --add-entry=192.168.200.200 --permanent

firewall-cmd --ipset=IP-servers --remove-entry=192.168.20.0/24 --permanent

firewall-cmd --ipset=IP-servers --get-entries
firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset="IP-servers" service name="ssh" accept'

firewall-cmd --remove-rich-rule='rule source ipset=IP-users service name="http" drop' --permanent

firewall-cmd --permanent --zone=public --list-rich-rules

чтобы все пользователи (список ipset IP-users) ходили через squid несмотря на net.ipv4.ip_forward=1
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -m set --match-set IP-servers src -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -m set --match-set IP-servers src -j ACCEPT

firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp3s0 -o enp1s0 -j DROP
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i enp1s0 -o enp3s0 -j DROP

открыть Google Play
firewall-cmd --zone=public --add-port=5228/tcp --permanent
firewall-cmd --zone=external --add-port=5228/tcp --permanent

firewall-cmd --reload
systemctl restart firewalld

iptables -S

cat /etc/firewalld/direct.xml

рабочий вариант
https://wiki.archlinux.org/index.php/Active_Directory_Integration_(Русский)

/etc/sysconfig/network-scripts/
во внутренней сетевой карте не указываем GATEWAY (шлюзом будет внешняя карта)

nano /etc/NetworkManager/NetworkManager.conf
[main]
dns=none
#plugins=ifcfg-rh,ibft

nano /etc/resolv.conf
# Generated by NetworkManager
search domain.office.local
nameserver 172.16.0.1 # (dns внутренней карты)
nameserver 172.16.0.3
nameserver xxx.xxx.xxx.xxx (dns с внешней сетевой карты напр с enp3s0)

systemctl restart NetworkManager.service
nslookup serv1.domain.office.local

yum -y install squid - установка squid
systemctl start squid - запустить
systemctl enable squid - вкл авто запуск
squid -z - создаем структуру папок под кэш следующей командой

/etc/krb5.conf



ещё вариант krb5.conf
http://xgu.ru/wiki/Squid,_Kerberos_и_LDAP






realm discover domain.office.local
Получаем тикет пользователя, имеющего права администратора домена.
kinit -V Administrator@DOMAIN.OFFICE.LOCAL
вводим в домен
realm join -U adminuser domain.office.local # adminuser - администратор в AD



в командной строке на контроллере домена создаём файл ключа
ktpass -princ HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL -mapuser DOMAIN\squid -pass "password123" -ptype KRB5_NT_SRV_HST -out C:\myproxy123.keytab

https://docs.microsoft.com/ru-ru/windows-server/administration/windows-commands/ktpass
- KRB5_NT_PRINCIPAL является общим типом участника (рекомендуется).
- KRB5_NT_SRV_INST является экземпляром службы пользователя.
- KRB5_NT_SRV_HST является экземпляром службы узла


net ads keytab flush - очистить кейтаб
net ads keytab create - создать кейтаб
net ads keytab add HTTP - добавим принципал HTTP для прокси или веб сервера
net ads keytab list - посмотрим что получилось


kdestroy - очистим все прошлые попытки логона.
kinit -V -k -t /etc/krb5.keytab HTTP/sq.mydomain.name@MYDOMAIN.NAME

копируем в /etc/myproxy123.keytab и проверяем
kinit -V -k -t /etc/myproxy123 HTTP/myproxy123.domain.office.local@DOMAIN.OFFICE.LOCAL

выставляем права
chown squid:squid /etc/myproxy123.keytab
chmod u+rwx,g+rx /etc/myproxy123.keytab

если забыл пароль пользователя, то можно проверить так:
Есть ли аналог SU для Windows

Для локального аккаунта
runas /profile /user:computernamehere\username cmd
Для учетной записи домена
runas /profile /user:domainname\username cmd
runas /profile /user:username@domainname cmd

проверка

wbinfo -t
wbinfo -g
wbinfo -u

/usr/lib64/squid/basic_ldap_auth -b 'dc=domain,dc=office,dc=local'

getent passwd
getent group
net ads info
net ads lookup
net ads status -U administrator | less
klist -k /etc/krb5.keytab


Удалим полученный билет командой:
kdestroy

echo test1234 inet-users | /usr/lib64/squid/ext_wbinfo_group_acl
OK
id test1234
uid=16777893(test1234) gid=16777216(пользователи домена) группы=16777216(пользователи домена),...,16777248(inet-users),...

/usr/bin/ntlm_auth --username=test1234
Password:
NT_STATUS_OK: The operation completed successfully. (0x0)

проверка ext_kerberos_ldap_group_acl
/usr/lib64/squid/ext_kerberos_ldap_group_acl -a -d -i -g InetUsers -D DOMAIN.OFFICE.LOCAL
/usr/lib64/squid/ext_kerberos_ldap_group_acl -d -a -i -g InetUsers@DOMAIN.OFFICE.LOCAL -D DOMAIN.OFFICE.LOCAL

ошибка
kerberos_ldap_group: ERROR: Error while starting keytab scan : Key table file '/etc/krb5.keytab' not found
лечение
ln -s /etc/myproxy123.keytab /etc/krb5.keytab

Для автоматической аутентификации через Squid, необходимо внести следующие изменения - добавляем в файл /etc/sysconfig/squid строки
KRB5_KTNAME=/etc/myproxy123.keytab
export KRB5_KTNAME
и отключаем replay-кэш (для снижения нагрузок)
KRB5RCACHETYPE=none
export KRB5RCACHETYPE

/etc/sysconfig/squid






добавить в /etc/squid/squid.conf




ext_kerberos_ldap_group_acl тоже работает, но нужно поставить параметр ipv4




Настройка squid или как не купить платное решение
children — максимальное количество процессов доступные для запуска, startup количество процессов которые запущены всегда, idle максимальная очередь к помощнику при превышении указанного числа будет запускаться новый процесс помощника.

squid -k check
squid -k parse
squid -k reconfigure
systemctl restart squid

failed to open /var/run/squid.pid: (2) No such file or directory
sudo killall -9 squid
systemctl start squid

ошибки и логи
1. access.log - для записи запросов клиентов;
2. store.log - для записи действий с кэшем;
3. cache.log - для записи ошибок возникающих при работе с Squid.

tail -f /var/log/squid/cache.log
tail -f /var/log/squid/access.log

Чистим кэш Squid
grep cache_dir /etc/squid/squid.conf
service squid stop
rm -r /var/spool/squid/*
squid -z
service squid start

/etc/sysctl.conf



net.ipv4.ip_forward=0 - иначе можно будет ходить мимо squid (прописать роутинг и выставить "без прокси")

sudo sysctl -p
sudo sysctl --system

На клиентских машинах адрес прокси сервера должен быть указан в FQDN-формате (myproxy123.domain.office.local)

squidGuard
http://squidguard.mesd.k12.or.us/
https://itzx.ru/linux/install-squidguard-db4-from-source

/etc/squid/squid.conf




проверка работы прокси на admin server и kassa
curl --proxy 172.16.0.123:3128 check-host.net/ip

$ export http_proxy="http://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
$ export https_proxy="https://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
$ export ftp_proxy="http://ЛОГИН:ПАРОЛЬ@ПРОКСИ_СЕРВЕР:ПОРТ"
Если прокси без авторизации, то строки должны быть вида:
$ export <бла-бла>_proxy="http://ПРОКСИ_СЕРВЕР:ПОРТ"

$ export {http,https,ftp}_proxy="http://ПРОКСИ_СЕРВЕР:ПОРТ"
$ unset {http,https,ftp}_proxy

для отключения прокси:
$ unset http_proxy
$ unset https_proxy
$ unset ftp_proxy

nano /etc/environment
https_proxy="https://user:pass@proxy:port/"
http_proxy="http://user:pass@proxy:port/"
ftp_proxy="ftp://user:pass@proxy:port/"
socks_proxy="socks://user:pass@proxy:port/"
no_proxy="localhost,127.0.0.1,::1,*.my.lan
Если прокси без авторизации, то строки должны быть вида:
<бла-бла>_proxy="https://proxy:port/"

yum install squidGuard

nano /etc/squid/squidGuard.conf




https://github.com/StevenBlack/hosts
https://someonewhocares.org/hosts/hosts
https://adaway.org/hosts.txt
http://www.squidguard.org/blacklists.html
http://squidguard.mesd.k12.or.us/blacklists.tgz
http://www.shallalist.de/
http://www.shallalist.de/Downloads/shallalist.tar.gz
https://raw.githubusercontent.com/zapret-info/z-i/master/nxdomain.txt

wget http://www.shallalist.de/Downloads/shallalist.tar.gz
tar -xvf shallalist.tar.gz
mkdir -p /var/squidGuard/BL/manual/
nano /var/squidGuard/BL/manual/domains
nano /var/squidGuard/BL/manual/urls

из blacklists.tgz скопировать каталог suspect в каталог BL (иначе при преобразовании в БД выдаст ошибку)

squidGuard -b -d -C all

chown -R squid:squid /var/squidGuard
chown root:squid /etc/squid/squidGuard.conf
chmod 0640 /etc/squid/squidGuard.conf
chown -R squid:squid /var/log/squidGuard

протестируем SquidGuard, прежде, чем объединять его со Squid:
# echo "http://www.porno.com / - - GET" | squidGuard -d

в /etc/squid/squid.conf Добавляем:
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

squid -k reconfigure
systemctl restart squid

логи
tail -f /var/log/messages
tail -f /var/log/squidGuard/squidGuard.log

squid -k rotate # очистить логи

если не применяет правила, то отключить Selinux ()
sestatus
временно
setenforce 0
постоянно
nano /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
reboot



Изменение записей в списках доменов и URL
Пример. Рядом с файлом domains.db в папке /var/lib/squiguard/db/webmail создаём файл domains.diff. В него заносим строку или несколько строк, по одной на каждую запись:
-google.com (что означает вычеркнуть этот домен из базы)
или +google.com (что означает добавить этот домен в базу)
Даём команды:
$ squidGuard -u (обновить базы db из файлов diff. В логах squidguard'а можно посмотреть сколько добавилось/убылось.)
$ squid -k reconfigure (перечитать настройки без перезапуска.)
Файл domains.diff удалять, или стирать из него записи, не надо. При глобальном обновлении баз этот файл ещё пригодится. И при многократном обновлении не происходит дублирования записей в БД.


Webmin



sudo rpm --import http://www.webmin.com/jcameron-key.asc
sudo yum install webmin
sudo chkconfig webmin on

установка squid с доступом по группам в AD, squidGuard, lighttpd+lightsquid, sams2 в centos часть 1

полезные ссылки
https://wiki.squid-cache.org/SquidFaq/
Как создать и настроить прокси-сервер Squid
Прокси Squid с авторизацией в домене Active Directory
https://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos
https://docs.diladele.com/administrator_guide_6_4/active_directory/index.html
https://serveradmin.ru/nastroyka-proksi-servera-na-centos-7-squid-ad-sams2/ (ввод в домен)
Ввод CentOS 7 в домен Active Directory и авторизация по SSH доменных пользователей
Настраиваем Squid для работы с Active Directory. Часть 1 - базовые настройки
Настраиваем Squid для работы с Active Directory. Часть 2 - Kerberos-аутентификация
Настройка прокси сервера Squid 3.3 на Ubuntu Server 14.04 LTS. Часть 5. Конфигурация Squid 3
Авторизация на SQUID через Active Directory
Настройка SquidGuard на CentOS 7
SQUID и Kerberos-авторизация через Active Directory
Работа Squid с Active Directory. Kerberos-аутентификация. Права доступа на основе групп Active Directory.
Как правильно сформировать keytab-файл с несколькими принципалами сервисов в среде Active Directory
https://wiki.rtzra.ru/software/squid/squid-active-directory
https://www.galkov.pro/install_squid_on_ubuntu/
https://kifarunix.com/install-and-configure-squid-proxy-on-centos-8/
https://www.altlinux.org/Squid/AD-auth
https://www.altlinux.org/Создание_SPN_и_Keytab_файла
Перевод комментариев к файлу конфигурации Squid (squid proxy)
Samba, LDAP, Ввод Linux в домен

https://doxfer.webmin.com/Webmin/Squid_Proxy_Server
http://break-people.ru/cmsmade/?page=unix_webmin_howto_squid
Squid на практике
Почти полный перечень параметров конфигурационного файла Squid 3
Небольшая шпаргалка по Squid

Перехват и просмотр HTTPS трафика на прокси-сервере Squid 4.9

Настройка Интернет шлюза на CentOS 7
Защищаем сервер на CentOS 7 с помощью firewalld и fail2ban

vpn pptp centos7
firewall-cmd настройка брадмаузера

антивирусы
http://www.eicar.org/anti_virus_test_file.htm
http://www.havp.org/
http://www.havp.org/havp-teamwork-with-other-proxys-e-g-squid/
http://squidclamav.darold.net/
https://github.com/darold/squidclamav
https://sourceforge.net/projects/squidclamav/
Настройка SquidClamAv
Установка HAVP в Ubuntu
CentOS 7 + Squid + SquidClamav
Squid + Dansguardian + c-icap + ClamAV на базе CentOS 7

реклама
http://bfilter.sourceforge.net/
http://adzapper.sourceforge.net/

Блокировка рекламы в браузерах
Мануал от RU AdList

https://adblockplus.org/ru/subscriptions

EasyList - https://easylist-downloads.adblockplus.org/easylist.txt
RU AdList - https://easylist-downloads.adblockplus.org/advblock.txt
RU AdList для uBlock Origin - https://easylist-downloads.adblockplus.org/advblock+cssfixes.txt
Adblock Warning Removal List - https://easylist-downloads.adblockplus.org/antiadblockfilters.txt
Counters - https://easylist-downloads.adblockplus.org/cntblock.txt
BitBlock - https://easylist-downloads.adblockplus.org/bitblock.txt
https://easylist-downloads.adblockplus.org/ruadlist+easylist.txt

https://kb.adguard.com/ru/general/adguard-ad-filters
https://filters.adtidy.org/extension/chromium/filters/1.txt
https://filters.adtidy.org/extension/ublock/filters/1.txt
https://filters.adtidy.org/extension/ublock/filters/2.txt

Анализаторы логов для Squid
Анализаторы логов для Squid
https://sourceforge.net/projects/sarg/
http://spohelp.ru/forums/17-gotovye-resheniya/topics/1250-sarg-centos-7/
http://lightsquid.sourceforge.net/
https://sourceforge.net/projects/screen-squid/
http://squidanalyzer.darold.net/index.html
http://samm.kiev.ua/sqstat/
https://github.com/lorf/sqstat
https://wiki.rtzra.ru/software/squid/squid-sqstat
https://github.com/alv1r/SqStat

https://wiki.squid-cache.org/SquidFaq/BinaryPackages#CentOS
yum install squid-helpers


squidview
wget http://www.rillion.net/squidview/squidview-0.86.tar.gz
# tar -xzvf squidview-0.86.tar.gz
# cd squidview-0.7x

before this, make sure you have all the package needed
# yum groupinstall "Development tools"
# yum install ncurses-static ncurses-devel

proceed to compile and install
# ./configure
# make
# cp Makefile.old Makefile
# make oldgcc
# make install

lighttpd+lightsquid
Как установить Lighttpd с PHP-FPM на CentOS 7
How to Install Lighttpd on CentOS 7
SQUID + lightsquid + lighttpd в Ubuntu
centos 7 squid AD LightSquid
Настройка lightsquid
https://www.sysadminwiki.ru/wiki/LightSquid

yum -y update
yum -y erase httpd nginx
yum -y install epel-release
yum -y update
yum groupinstall "Development Tools"
yum -y install perl-GD perl-CGI wget lighttpd lighttpd-fastcgi php-fpm php-mbstring

nano /etc/php-fpm.d/www.conf



systemctl start php-fpm
systemctl enable php-fpm

nano /etc/php.ini




nano /etc/lighttpd/conf.d/fastcgi.conf
найти server.modules += ( "mod_fastcgi" )
Добавьте следующие строки чуть ниже вышеуказанной строки:




nano /etc/lighttpd/modules.conf




проверка
nano /var/www/lighttpd/phpinfo.php
phpinfo();

systemctl restart php-fpm
systemctl restart lighttpd
http://your-IP-addr/phpinfo.php

systemctl start lighttpd
systemctl enable lighttpd
systemctl status lighttpd
mv /var/www/lighttpd /var/www/htdocs

wget -c -P $HOME/Downloads/ https://netcologne.dl.sourceforge.net/project/lightsquid/lightsquid/1.8/lightsquid-1.8.tgz
tar -zxvf $HOME/Downloads/lightsquid-1.8.tgz -C /var/www/html/; cd /var/www/html/
mv lightsquid-1.8/ lightsquid
cd lightsquid/
cp lightsquid.cfg lightsquid.cfg.asli
chown -R lighttpd:lighttpd /var/www/html/lightsquid
chmod -R 755 /var/www/html/lightsquid
chmod +x *.cgi
chmod +x *.pl
perl check-setup.pl
ln -s /var/www/html/lightsquid/ /var/www/lighttpd
systemctl restart lighttpd

Добавим обработку логов по крону раз в 30 минут (сегодняшних)
*/30 * * * * /var/www/html/lightsquid/lightparser.pl today

Cron Jobs — пособие для начинающих

запаролим доступ к статистике
https://redmine.lighttpd.net/projects/lighttpd/wiki/docs_modauth
Add A User to the Password File

sudo mkdir /etc/lighttpd/.htpasswd
nano hash.sh



chmod +x ./hash.sh

использование
./hash.sh 'username' 'myrealm' 'password'




добавить запись в /etc/lighttpd/lighttpd.conf командой




раскомментировать в файле /etc/lighttpd/modules.conf
"mod_auth",

systemctl restart lighttpd

Установка lightsquid на CentOS
Считаем Squid Proxy трафик через lightsquid
lightsquid.cfg




ошибки
Как установить Lighttpd на CentOS 7
systemctl status lighttpd

Loaded: loaded (/usr/lib/systemd/system/lighttpd.service; disabled; vendor preset: disabled)

откройте файл конфигурации /etc/lighttpd/lighttpd.conf и измените строку server.use-ipv6 с «enable» на disable.
systemctl restart lighttpd


http://repo.iotti.biz/
https://centos.pkgs.org/7/lux/lightsquid-apache-1.8-18.el7.lux.noarch.rpm.html

nginx+lightsquid
взаимодействие с CGI

sudo yum install spawn-fcgi fcgiwrap nginx

mkdir /etc/nginx/virt_host
nano /etc/nginx/virt_host/lightsquid.conf



ln -s /etc/nginx/virt_host/lightsquid.conf /etc/nginx/conf.d/

nano /etc/sysconfig/spawn-fcgi



systemctl enable --now nginx spawn-fcgi



Настройте Perl-FastCGI на сервере CentOS 7 Nginx
Centos 7 + ipcad + rsh статистика по траффику


Cron SARG
Настройка SaRG на базе Ubuntu Server
sudo nano /etc/sarg/sarg.conf
Вносим требуемые изменения:

language Russian_UTF-8
graphs yes
graph_days_bytes_bar_color orange
output_dir /var/www/squid-reports
charset UTF-8
Далее в конфиге ищем и комментируем строку:

#site_user_time_date_type table

sudo nano /etc/crontab

Вносим расписание:

00 08-18 * * * root sarg-reports today
00 22 * * * root sarg-reports daily
30 22 * * 0 root sarg-reports weekly
30 23 1 * * root sarg-reports monthly

Теперь крон настроен таким образом, что будет формировать отчеты каждый час в течении рабочего дня (с 8:00 до 18:00), в 22:00 генерируется полный отчет за сутки, по воскресеньям генерируется отчет за неделю и наконец 1го числа каждого месяца будет появляться отчет о пользовании интернетом за месяц.

Генерирование отчетов за день (если файла нет, то создаем):
sudo nano /etc/cron.daily/sarg
Вписываем эти строки (старые удаляем, на всякий случай сделайте бекап)




Крон отвечающий за генерирование отчетов за неделю:
sudo nano /etc/cron.weekly/sarg




Генерирование отчетов за месяц:
sudo nano /etc/cron.monthly/sarg




Установим свеженастроенным файлам права на выполнение:
chmod 755 /etc/cron.daily/sarg /etc/cron.weekly/sarg /etc/cron.monthly/sarg

Для запуска создания отчетов вручную используем следующие команды:

sudo sarg
sudo /etc/cron.daily/sarg
sudo /etc/cron.weekly/sarg
sudo /etc/cron.monthly/sarg

обратный прокси (доступ к ресурсу за nat)

nginx настраивается как тут добавляется файл server233_reverse.conf в /etc/nginx/virt_host, а символическая ссылка с него - в /etc/nginx/conf.d/




sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
sudo firewall-cmd --zone=external --add-port=28080/tcp --permanent
sudo firewall-cmd --zone=external --add-port=28888/tcp --permanent
sudo firewall-cmd --reload

появится доступ из внутренней сети по порту 8080, из наружной по порту 28080, к сайту на сервере 233, находящемся на порту 8080, с 8888 портом, на котором висит другой сайт - аналогично

Решение с помощью firewall-cmd ?
https://www.dmosk.ru/miniinstruktions.php?mini=router-centos
перенаправление сетевых запросов на сервер, стоящий за NAT и не имеющий прямого выхода во внешнюю сеть.

firewall-cmd --zone=external --permanent --add-forward-port=port=25:proto=tcp:toport=8025:toaddr=192.168.0.15

* где 25 — прослушиваемый внешний порт, для которого сработает перенаправление; tcp — используемый транспортный протокол; 8025 — на какой порт перенаправить запрос; 192.168.0.15 — IP-адрес сервера, на который отправляем запросы.

Разрешаем сам порт:
firewall-cmd --permanent --zone=external --add-port=25/tcp

Чтобы правило вступило в силу:
firewall-cmd --reload


Настройка firewalld CentOS 7 с примерами команд
Разрешить диапазон портов:
# firewall-cmd --zone=public --add-port=5059-5061/udp

Перенаправить входящие на 22 порт на другой хост:
# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.23

Перенаправить входящие на 22 порт на другой хост с изменением порта назначения (с 22 на 192.168.1.23:2055):
# firewall-cmd --zone=external /
--add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.23

https://www.linode.com/docs/security/firewalls/introduction-to-firewalld-on-centos/
Allow all IPv4 traffic from host 192.0.2.0.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address=192.0.2.0 accept'

Deny IPv4 traffic over TCP from host 192.0.2.0 to port 22.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.0.2.0" port port=22 protocol=tcp reject'

Allow IPv4 traffic over TCP from host 192.0.2.0 to port 80, and forward it locally to port 6532.
sudo firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 source address=192.0.2.0 forward-port port=80 protocol=tcp to-port=6532'

Forward all IPv4 traffic on port 80 to port 8080 on host 198.51.100.0 (masquerade should be active on the zone).
sudo firewall-cmd --zone=public --add-rich-rule 'rule family=ipv4 forward-port port=80 protocol=tcp to-port=8080 to-addr=198.51.100.0'

To list your current Rich Rules in the public zone:
sudo firewall-cmd --zone=public --list-rich-rules


Как сделать простой веб-сайт за один час
http://nginx.org/en/docs/http/load_balancing.html

https://wiki.squid-cache.org/SquidFaq/ReverseProxy
Reverse proxy from nginx to squid?
Требуется связка: client <-> nginx <-> squid <-> site.
Обратный прокси от nginx до squid

Примеры редиректов в NGINX


СКРЫВАЕМ ЧАСТЬ РЕСУРСОВ IIS СРЕДСТВАМИ NGINX AS REVERSE PROXY (CENTOS 7)
Обратный прокси на Nginx
Проксирование запросов в nginx с помощью proxy_pass
Настройка бесплатного ssl сертификата Lets Encrypt

проксирование почты
https://docs.nginx.com/nginx/deployment-guides/load-balance-third-party/microsoft-exchange/
Настройка NGINX для проксирования почты

Пошаговая инструкция по настройке публикации почтовых серверов Exchange Server 2013/2016 с помощью IIS ARR
Настройка прокси сервера на CentOS

Публикация MS Exchange OWA через NGINX
Обратный прокси Nginx к Exchange 2010/2013
Nginx и Exchange ActiveSync
Deploying Exchange 2016 Behind NGINX Free
enoch85/outlook.conf
Reverse proxy для доступа к Outlook Web App (OWA) из интернета
https://pastebin.com/ZnmjR5hH
Configuring nginx reverse proxy for Exchange 2010

Postfix (антиспам+антивирус), как почтовый шлюз с Exchange
Postfix как пограничный relay для Exchange
Простейший relay на Postfix для Exchange Server
Postfix в качестве почтового шлюза организации
Установка почтового шлюза на Postfix для почтового сервера MS Exchange 2010.

Порты используемые Microsoft Exchange Server 2010
Exchange Network Port Reference
https://docs.microsoft.com/ru-ru/exchange/plan-and-deploy/deployment-ref/network-ports?view=exchserver-2019
https://docs.microsoft.com/ru-ru/exchange/network-ports-for-clients-and-mail-flow-in-exchange-2013-exchange-2013-help



https://www.hoelzle.net/nginx-als-reverse-proxy-fuer-exchange-201020132016/
nano /etc/nginx/nginx.conf
client_max_body_size 2000M;

Для части
more_set_input_headers 'Authorization: $http_authorization';
proxy_set_header Accept-Encoding "";
more_set_headers -s 401 'WWW-Authenticate: Basic realm="exch2016.test.local"';
требуется расширение nginx - модуль headers-more-nginx

cat /var/log/nginx/error.log
unknown directive "more_set_input_headers" in /etc/nginx/conf.d/reverse...

https://blog.friedlandreas.net/2018/10/nginx-unknown-directive-more_set_input_headers/
include /etc/nginx/modules-enabled/*.conf;

nginx -V

https://nginx.org/ru/linux_packages.html

Installing NGINX Plus
https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-plus/
sudo wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/nginx-plus-7.4.repo
sudo yum install nginx-plus
yum install nginx-plus-module-headers-more

??? сторонний репозиторий
https://www.getpagespeed.com/redhat
https://pkgs.org/search/?q=nginx-module-headers-more
Install GetPageSpeed repository:
# yum install https://extras.getpagespeed.com/release-el7-latest.rpm
Install nginx-module-headers-more rpm package:
# yum install nginx-module-headers-more

https://nginx.org/ru/docs/http/ngx_http_proxy_module.html

Настройка HTTPS-серверов
How To Create a Self-Signed SSL Certificate for Nginx on CentOS 7
How to setup Let's Encrypt for Nginx on Ubuntu 18.04 (including IPv6, HTTP/2 and A+ SLL rating)
Как настроить Nginx для использования самоподписанного сертификата SSL / TLS в Ubuntu 18.04 VPS или на выделенном сервере
Как создать самоподписанный сертификат SSL для Ngin

mkdir /etc/ssl/private/
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

https://www.zipofar.ru/doku.php?id=reverse_proxy_for_owa
Самый важный пункт при создании сертификата - Common Name. В это поле надо внести доменное имя, ассоциированное с вашим доменом или более предпочтительно IP адрес сервера (этого сервера) на котором собственно и будет установлен сертификат.

Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Moscow
Locality Name (eg, city) []:Moscow
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyOrganization
Organizational Unit Name (eg, section) []:MyOrganization
Common Name (e.g. server FQDN or YOUR name) []:server_IP_address or domain_name
Email Address []:admin@your_domain.com

разное
Squid и Whatsapp
Работа мессанджера Whatsapp через прокси-сервер Squid
Чтобы решить данную проблему нужно чтобы Squid не пытался посмотреть HTTPS трафик в направлении whatsapp адресов, а просто выполнял соединение.

Для этого создадим файл (прим. /etc/squid/sites_webwhatsapp.txt) в котором укажем для каких сайтов не предпринимать никаких действий:



В конфигурационном файле (/etc/squid/squid.conf) указываем следующие параметры:



ВАЖНО. Обращаю внимание что действие splice должно быть до каких либо действий с HTTPS трафиком.


Steam
https://www.linode.com/docs/game-servers/install-steamcmd-for-a-steam-game-server/
http://wiki.abcvg.com/wiki/SteamCMD
steam_on.sh



коротко об systemd
Просмотреть список всех активных юнитов
$ systemctl list-units

Покажет любой юнит, который система загрузила или попыталась загрузить, независимо от текущего состояния в системе
$ systemctl list-units --all

неактивные юниты:
$ systemctl list-units --all --state=inactive

Посмотреть только активные юниты служб:
$ systemctl list-units --type=service

Вывод списка всех файлов юнитов
$ systemctl list-unit-files

Посмотреть только юниты, добавленные в автозагрузку:
$ systemctl list-unit-files | grep enabled

Проверить, включен ли юнит в автозапуск при загрузке системы:
$ systemctl is-enabled юнит

Проверить, активен ли данный юнит:
$ systemctl is-active юнит


изменение времени файлов, удаление истории посещения и команд в linux

Долгое Подключение по SSH
nano /etc/ssh/sshd_config
UseDNS no
service sshd restart

мониторить сеть
yum tcpdump install iptraf iftop nload trafshow bmon bwm-ng nethogs trafshow
tcpdump -i enp3s0 -vv

обновить политики SELinux
yum update -y selinux-policy*
ошибки
после обновления:
wbinfo -t
could not obtain winbind interface details: WBC_ERR_WINBIND_NOT_AVAILABLE
could not obtain winbind domain name!
checking the trust secret for domain (null) via RPC calls failed
failed to call wbcCheckTrustCredentials: WBC_ERR_WINBIND_NOT_AVAILABLE
Could not check secret
то
systemctl restart winbind

если есть lotus
firewall-cmd --zone=public --add-port=1352/tcp --permanent
firewall-cmd --reload
https://igoldobin.wordpress.com/2016/10/20/установка-ibm-domino-на-linux/

Как то раз мы рассматривали настройку прокси squid для начинающих в среде Windows. Потом мы настраивали squid в «роутере из коробки» — pfSense. А сегодня мы покажем как создать мощный прокси сервер в Linux Debian. Зачем? Дело в том, что даже в pfSense мы не можем раскрыть всю мощь squid без бубна. Поэтому, если перед вами стоит задача сделать бескомпромиссный прокси сервер — Linux единственный вариант.
Read more... )


http://macrodmin.ru/2012/07/proksi-squid-s-avtorizaciej-v-domene-active-directory
http://www.k-max.name/linux/squid-proxy-v-linux/
http://www.k-max.name/linux/squid-auth-kerberos-ldap-grupp-active-directory/

https://ru.bmstu.wiki/Squid
Установка Squid в Ubuntu 16.04
SQUID и NTLM-авторизация через Active Directory
CentOS 6 Squid Kerberos LDAP Active Directory Windows Server 2008 R2
Авторизация на SQUID через Active Directory

https://serveradmin.ru/nastroyka-proksi-servera-na-centos-7-squid-ad-sams2/ (ввод в домен)
https://docs.diladele.com/administrator_guide_6_4/active_directory/index.html

РЕД ОС Настройка автоматической авторизации доменных пользователей IPA в squid
Справка Kaspersky Настройка интеграции сервиса Squid с Active Directory
Настройка прокси сервера на CentOS 7 (squid+AD+sams2)
squid.conf по-русски


https://3proxy.ru/documents/
Настройка pfSense в качестве корпоративного Прокси Сервера
Настройка шлюза на базе Pfsense. Часть 1

Файрвол в системе linux контролируется программой iptables (для ipv4) и ip6tables (для ipv6). В данной шпаргалке рассмотрены самые распространённые способы использования iptables для тех, кто хочет защитить свою систему от взломщиков или просто разобраться в настройке.

Read more... )
http://vasilisc.com/21-examples-iptables
https://www.opennet.ru/docs/RUS/iptables/
https://ru.wikibooks.org/wiki/Iptables
http://help.ubuntu.ru/wiki/iptables
https://wiki.archlinux.org/index.php/Iptables_(Русский)
http://www.k-max.name/linux/netfilter-iptables-v-linux/
http://www.k-max.name/linux/iptables-v-primerax/
http://eax.me/iptables/
Основы iptables на примере Debian глазами младенца



1. Код *#06#

С помощью этой комбинации можно узнать уникальный номер IMEI любого смартфона.

2. Код *#21#

Эта комбинация позволяет получить информацию о включенной переадресации. Узнай, не получает ли кто-то твои звонки, сообщения или другие данные.

3. Код *#62#

Эта команда позволяет узнать номер, на который производится переадресация входящих вызовов, если iPhone выключен или находится вне зоны действия сети.

4. Код ##002#

С помощью этого набора можно отключить переадресацию звонков. Теперь звонки сможешь принимать только ты.

5. Код *#30#

Предоставляет информацию об определении номера входящего абонента.

6. Код *#33#

Эта комбинация показывает информацию о блокировке исходящих поддерживаемых сервисов, например звонках, SMS и других данных.

7. Код *#43#

Этот набор помогает отобразить информацию об ожиданиях вызова


http://econet.ru/articles/126978-7-kodov-dlya-mobilnogo-telefona-kak-uznat-chto-vas-proslushivayut

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 18th, 2026 08:36 am
Powered by Dreamwidth Studios