• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Статья Установка PPTP VPN-сервера на CentOs 7 для ленивых.

В заголовке данной статьи почётное место занимает словосочетание "... для ленивых". Спешу заверить читателя в том, что эти слова не носят оскорбительный характер.
Напротив, если Вы открыли и читаете данную статью, то лень - не Ваша подруга )

Как многие мои предыдущие статьи, желание написать данную статью родилось в моей голове спонтанно. Как говорили до нас и будут говорить после нас : "Желания должны исполняться" )
Сегодня я напишу о том, как надо поднимать сервер PPTP VPN под управлением CentOS 7.
"Этот баян" многократно описан и переписан на страницах рунета " - наверняка подумает в этом месте читатель и окажется прав )
Почему-то мне захотелось преподнести этот "баян" в своём представлении.

Как известно, семейство операционных систем Linux не отличается своей дружелюбностью к пользователю. Каждому столкнувшемуся с ними приходилось многократно править конфигурационные файлы системы в поисках работоспособности того или иного приложения. Со временем процесс бесконечной правки файлов Linux превращается в надоедливую рутину.

Для себя процесс правки конфигов Linux на удалённых серверах я облегчила установкой на локальном компьютере программы Bitvise SSH Client. Программа позволяет редактировать файлы, находящиеся на удалённой машине, в редакторе Notepad++. При этом не возникает никаких проблем с кодировками, нет необходимости многократно стучать по клавиатуре в консольном текстовом редакторе Linux, имеется возможность копи-пастить информацию кнопками мыши и сохранять её на удалённом компе.
При всех своих достоинствах, программа Bitvise SSH Client не спасет от ошибок начинающих линуксоидов: всегда что-то пойдёт "не так". Процесс поиска ошибки занимает порой довольно продолжительный период времени. К примеру, вчера на полу-часовую установку PPTP VPN под управлением CentOS 7 я потратила весь день (
Несмотря на то, что упомянутый процесс многократно описан системными администраторами в своих блогах, по-настоящему стоящих статей не так уж и много. К тому-же в процессе установки VPN-сервера возникают вопросы, ответы на которые получить не у кого. Учитывая тот факт, что данный сайт носит статус "форума", отныне и навсегда каждый желающий сможет получить ответ ЗДЕСЬ !

- Немного самонадеянно - пробежала мысль в моём правом полушарии
- Ну и пусть - оппонировало левое )
- Мне это нравится - подытожил мозг, но пора уже переходить к сути статьи ))

Прежде, чем начать установку PPTP VPN-сервера на CentOS 7, необходимо установить репозиторий и установить сетевые утилиты.
# yum install -y epel-release
# yum install -y mc
# yum install -y net-tools
Указанная выше установка файлового менеджера Midnight Commander никак не связана с процессом установки сервера PPTP VPN и не является обязательной.

Далее необходимо отключить Selinux.
Система принудительного контроля Selinux отключается правкой конфигурационного файла /etc/sysconfig/selinux
Код:
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled

Выше я упомянула, что вчерашний процесс установки сервера VPN занял у меня весь день. В течение дня я редактировала этот файл многократно: локально в Notepad++, удалённо в mcedit. К вечеру под влиянием настройки Linux во мне стали просыпаться экстрасенсорные возможности )
С самого начала статьи я обещала способ "для ленивых", поэтому сегодня - никаких "ковыряний" в конфигах не будет !
Сегодня - способ для ленивых ))
Я призываю читателя статьи отключить SeLinux, а также продолжить установку PPTP VPN сервера при помощи нескольких консольных команд. Команды можно "тупо копировать" при помощи манипулятора "мышь" из этой статьи, вставлять в консоль Bitvise SSH Client и нажимать клавишу "ENTER" на клавиатуре. К концу статьи на вашей CentOS 7 гарантированно, с наименьшими умственными, эмоциональными и физическими затратами будет стоять PPTP VPN сервер )
Отключаем SeLinux:
# sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/sysconfig/selinux
# sed -i 's/\(^SELINUX=\).*/\SELINUX=disabled/' /etc/selinux/config
После перезагрузки проверьте статус SELinux командой «sestatus», Вы должны увидеть следующий вывод:

t5AlJLgBeFNETVXDTv0xAHOIoySvIW.png

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


Далее настройка конфигов из консоли (копируем, вставляем и жмём "Enter") :
Файл /etc/pptpd.conf
cp /etc/pptpd.conf /etc/pptpd.conf.bak
cat >/etc/pptpd.conf<<EOF
option /etc/ppp/options.pptpd
logwtmp
localip 10.0.10.1
remoteip 10.0.10.2-254
EOF

Файл /etc/ppp/options.pptpd
Редактирование данного файла преследует собою цель - указание DNS серверов.
В примере ниже гугловские
ms-dns 8.8.8.8
ms-dns 8.8.4.4
можно заменить на свои.
cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
cat >/etc/ppp/options.pptpd<<EOF
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
EOF

Файл /etc/ppp/chap-secrets
Редактирование данного файла преследует собою цель - указание логина и пароля для подключения к PPTP VPN серверу.
В примере ниже "root" и "toor" можно заменить на свои.
cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
cat >/etc/ppp/chap-secrets<<EOF
root pptpd toor *
EOF

Файл /etc/sysctl.conf
Редактирование данного файла преследует собою цель - изменение значения "0" на "1" net.ipv4.ip_forward = 1.
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cat >/etc/sysctl.conf<<EOF
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912
net.ipv4.ip_forward = 1
EOF
Перечитываем конфигурацию.
На этом установка и настройка VPN PPTP сервера закончена.

Осталось только "разобраться" с файерволлом.
Удаляем firewalld,
# systemctl stop firewalld
# systemctl disable firewalld
вместо него ставим IPTABLES:
# yum install iptables-services iptables
Включим автозапуск iptables:
# systemctl enable iptables
chmod +x /etc/rc.d/rc.local

Теперь процесс настройки IPTABLES подошёл к ответственному моменту - настройке конфигурации таблиц.
В рамках данной статьи, с целью не набивать себе "шишек" и не наживать лишних хлопот, я рекомендую отредактировать конфигурационный файл /etc/sysconfig/iptables в текстовом редакторе. Да, да, вопреки заявленному в начале статьи принципу отказа от использования текстовых редакторов, рекомендую сделать одно-единственное исключение ))
Код:
mcedit /etc/sysconfig/iptables
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [853:222169]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -i eth0 -p gre -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -i ppp+ -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o ppp+ -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

yWV53F9KAIfe8zl6r3X37Rg0doHHlT.png

Истинные поклонники консоли вместо текстового редактора могут воспользоваться консольными командами:
echo "iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE" >> /etc/rc.d/rc.local
iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE

Это конец, сохраняем и перезапускаем всё: файерволл и сервер PPTP VPN.
service iptables save
service iptables restart
systemctl start pptpd

Проверяем,запущен ли pptp-сервер;
Проверяем, слушается ли наш порт:
# netstat -an | grep -i listen
Дополнительная команда для проверки статуса pptpd:

yZCrDYeCfoqKLG5hIC7I8hv6fyl5R5.png

Осталось подключить свой клиент к свежеустановленному серверу и наслаждаться результатом )
У каждого он - свой ))

hCLlRI8vFibpfFqyr25hkwUBiUpVw6.png

z7Xm9QtOsRkVtTKHimfZBtm2OP3x3u.png

Welcome to my server
185.213.211.178@root:toor
 
Последнее редактирование модератором:
Почему при редактировании конфигурационного файла iptables не сохраняются настройки.
После перезагрузки файл принимает своё первоначальное значение ?
 
Почему при редактировании конфигурационного файла iptables не сохраняются настройки.
После перезагрузки файл принимает своё первоначальное значение ?
Вероятно потому, что ты редактируешь его с запущенным процессом IPTABLES.
Для того, чтобы после редактирования файла изменения вступили в силу, необходимо перед редактированием отключить файерволл iptables
Затем отредактировать файл /etc/sysconfig/iptables
Затем сохранить изменения
И, наконец, запустить сервис
 
Последнее редактирование модератором:
  • Нравится
Реакции: arm_n
Файерволом лучше управлять из консоли или редактировать файл конфигурации ?
 
Файерволом лучше управлять из консоли или редактировать файл конфигурации ?
Управление консольное конечно (из терминала тоже).Сам файл конфигурации с правилами редактируется в тех случаях,когда необходимо добавить ,или убрать заданную цепочку правил (по номеру строки ,к примеру).

Это общепринято в Linux,к тому же ,правила iptables применяются мгновенно,откуда и надёжность.
Исключение в плане надёжности встречал только при наличии уязвимости ядра.
 
Видео к статье, может кому-то интересно будет ))
Хотелось в статью вставить, но создание его затянулось.
Лучше поздно, чем никогда ))


Настройка VPN PPTP сервера на CentOS 7
 
  • Нравится
Реакции: Kalina, SlipX и Underwood
Зачем столько сложностей, когда openvpn в пару кликов поднимается?
 
OpenVPN и VPN PPTP это примеры виртуальных сетей, которые работают на разных протоколах.
При написании статьи использовался протокол PPTP по моим субъективным причинам )
Я перед кем-то должна отчитываться о причинах выбора ?
Или ты осуждаешь мой выбор ?
Что за вопрос ?
 
PPTP is a fast, easy-to-use protocol. It is a good choice if OpenVPN isn't supported by your device.

6dyh6kG.png


Ничей выбор не осуждаю :)
 
Протокол простой, удобный в настройке, но не криптостойкий. Лучше использовать L2TP или OpenVPN
 
Есть vps установлен pptp и privoxy как при помощи iptables перенаправит весь входящий трафик pptp на privoxy
 
Протокол простой, удобный в настройке, но не криптостойкий.
Не криптостойкий )) Точно, не криптостойкий.

Такое чувство, что мы тут все настолько крутые хакеры, что отдел "К", интерпол и АНБ расталкивая друг друга локтями перехватывает наш трафик и наперегонки стремятся его расшифровать )) Без шифрования трафика последними алгоритмами мы в сеть не выходим ))

"Простой и удобный в настройке" - этого достаточно ))

Есть vps установлен pptp и privoxy как при помощи iptables перенаправит весь входящий трафик pptp на privoxy

Переведи ))

 
есть удаленный vps (debian) и на нем установлен pptp сервер, также установлен прокси privoxy, отдельно каждый работают нормально, необходимо подключатся к pptp (клиент есть по умолчанию на любом устройстве) а он заворачивает весь трафик на privoxy (он может резать рекламу, контроль контента или подключиться к тор или перенаправить на сокс и тд.) необходима правильная конфигурация таблиц iptable
 
Добрый день.

Поднял точно такой же сервер в DO (Digital Ocean). По какой-то причине через туннель не идет трафик к узлу . При этом интересно, что узел (без SSL) отвечает как Moved (как и должно быть). То есть, связь с узлом api.telegram.org (149.154.167.220) есть.

Если менять поставщика VPN, скажем, на VPNBook (бесплатный сервис), не меняя никаких других настроек, то все работает отлично. Но я хотел использовать свой платный VPN, а не бесплатный. Что за прикол такой? И самое интересное, как это диагностировать? Узел доступен по IP, а сервис не дает ответа.

Включил логгирование в pptpd, но лог почему-то всегда пустой. Есть идеи что с этим делать?

Если кому-то интересно погонять этот туннель, то могу дать тестовый доступ. Ну или сами можете быстро зарегиться в DO, получить на баланс бонусные $ и все поднять сами бесплатно (в первое время).
 
Методом тыка, потратив целый день, нашел проблему - нужно MRU повысить на 4 единицы или более, тогда появляется коннект с "проблемными" сайтами. Сами по себе значения MTU и MRU не критичны, можно ставить все что угодно в диапазоне 1300-1492, но главное, чтобы выполнялось правило: MRU = MTU + 4 (или более).

Интересно, что вызвало такой перекос, и почему именно 4 байта?
 
  • Нравится
Реакции: Сергей Попов
Решение проблемы:
 
Открыл порт 1723 однако не подключается из-за того, что порт закрыт.
Порт сканнер говорит , что порт открыт, в /var/log/ppp пусто..
 
Прошу прощения, что старую тему апнул, но:
Зачем в /etc/sysctl.conf этот блок 3 раза записан? Причем, по гуглу проходил, там такое часто встречается. Такое ощущение, что скопипастили с одного источника.
Код:
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912

Еще про /etc/sysconfig/iptables
Там писали про текстовый редактор и консольные команды. Но разве после приведенных консольных команд мы получим то, что в тектстовом редакторе получилось?

iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
результатом в /etc/sysconfig/iptables будет
-A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE
А этого нет в приведенном варианте при использовании текстового редактора.

Почему я зарегался и отписал? Да потому что всё в кучу напутанно и не работает. Кто-нибудь, воспользовавшись мануалом, пришел к положительному результату?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD