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

13 - Готовим CentOS 7. Установка и настройка firewalld
Установка
yum -y install firewalld

Запуск
systemctl start firewalld

Статус
systemctl status firewalld

Зоны
- drop – входящие сетевые пакеты сбрасываются, без ответа, допускаются только исходящие соединения
- block – входящие сетевые соединения отклоняются с сообщением icmp-host-prohibited, допускаются только сетевые соединения инициированные внутри нашей системы.
- public – при недоверии к компьютерам, разрешается устанавливать только конкретные входящие соединения.
- external – для использования во внешних сетях с разрешенным маскарадингом, особенно для роутеров, разрешается устанавливать только конкретные входящие соединения
- dmz – для компьютеров собственной demilitarized zone которые публично доступны с ограниченным доступом к нашей внутренней сети, разрешается устанавливать только конкретные входящие соединения.
- work/home/internal – максимальное доверие к компьютерам, уверенность в том, что они не приченят вреда нашему компьютеру, разрешается устанавливать только конкретные входящие соединения
- trusted – все сетевые соединения разрешены.

Посмотреть текущую зону
firewall-cmd --get-default-zone

Для смены зоны например на home
firewall-cmd --set-default-zone=home

Либо непосредственно в конфиге
nano /etc/firewalld/firewalld.conf

Получить текущую конфигурацию для нашей зоны public
firewall-cmd --zone=public --list-all

После внесение изменений перезагрузить FirewallD можно так
firewall-cmd --reload

режим паники, блокирующий все сетевые соединения
firewall-cmd --panic-on

отмена режима паники
firewall-cmd --panic-off

добавить порт к зоне
firewall-cmd [--zone=] --add-port=[-]/ [--timeout=]

удалить порт из зоны
firewall-cmd [--zone=] --remove-port=[-]/ [--timeout=]


Добавим 80 порт в доверенные
firewall-cmd --permanent --add-port=80/tcp

Посмотреть список сервисов
firewall-cmd --list-services

Добавим ssh в доверенные
firewall-cmd --permanent --add-port=2222/tcp

firewall-cmd --reload

Посмотрим что получилось
firewall-cmd --list-all

Ставим в автозагрузку
systemctl enable firewalld


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
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


установка 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 с доступом по группам в 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

Павел Рассудов, председатель "Пиратской партии России": Как обойти великий российский фаервол

Когда кто-то шибко умный хочет закрывать сайты по "черному списку" для всех граждан РФ - у меня нет сомнений, что это будет использовано для политической цензуры...


Profile

uzverss: (Default)
uzverss

December 2024

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

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 23rd, 2026 04:37 am
Powered by Dreamwidth Studios