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

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

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 Jun. 25th, 2025 03:54 pm
Powered by Dreamwidth Studios