Настройка pptp сервера на debian

Локальный репозиторий

Есть несколько способов создать локальный репозиторий Debian. Из того, что я пробовал, самым простым и удобным мне показался apt-mirror, но у него есть один баг, если его использовать как зеркало официальных репозиториев. Он не качает переводы в формате .gz и.xz, только .bz2. В итоге, когда будете использовать локальный репозиторий в качестве зеркала официального, получите ошибку:

File not found updates/main/i18n/Translation-en (2: No such file or directory)

Другой простой вариант — использовать reprepro. Я не буду подробно останавливаться на настройке локального репозитория для Debian, так как это отдельная тема. По хорошему, репозиторий надо подписать gpg ключом, опубликовать с помощью http или ftp, может еще как-то. Я только кратко покажу, как это делается, чтобы вы понимали, что это вообще такое. А если реально нужен будет локальный репозиторий, вы без проблем найдете его подробную настройку. Там нет ничего сложного.

Установим reprepro.

# apt install reprepro

Дальше создаем каталог для локального репозитория и конфиг.

# mkdir -p /mnt/repo/debian/conf
# touch /mnt/repo/debian/conf/distributions

Конфиг делаем примерно следующего содержания.

Codename:  buster
Suite:  stable
Version: 10.x
Origin: Debian
Label: Debian 10.x
Description: Debian Stable Updates Repository
Architectures: amd64 source
Components: main
DebIndices: Packages Release . .gz .bz2
DscIndices: Sources Release . .gz .bz2
Contents: . .gz .bz2

Выполняем инициализацию репозитория.

# cd /mnt/repo/debian
# reprepro export
# reprepro createsymlinks

Теперь можно добавлять пакеты в локальный репозиторий следующей командой.

# reprepro -b /mnt/repo/debian --ask-passphrase includedeb buster /home/package.deb

Для того, чтобы подключить локально новый репозиторий, его нужно добавить в sources.list.

deb  file:/mnt/repo/debian buster main

После этого выполняете обновление кэша пакетов и увидите в списке репозиториев свой локальный.

3: Создание центра сертификации

Прежде чем вы сможете создать закрытый ключ и сертификат ЦС, вам нужно создать файл по имени vars и заполнить его некоторыми значениями по умолчанию. Перейдите в каталог easy-rsa, затем создайте и отредактируете файл vars с помощью nano или другого текстового редактора:

Вставьте следующие строки в файл и отредактируйте все значения, чтобы отразить информацию о вашей организации

Здесь важно убедиться, что вы не оставили пустых значений:. Когда вы закончите, сохраните и закройте файл

В nano для этого нужно нажать Ctrl + X, затем Y и Enter. Теперь вы готовы собрать свой ЦС

Когда вы закончите, сохраните и закройте файл. В nano для этого нужно нажать Ctrl + X, затем Y и Enter. Теперь вы готовы собрать свой ЦС.

Чтобы создать пару открытого и закрытого ключей для вашего центра сертификации, снова введите команду ./easy-rsa, но на этот раз с параметром build-ca:

В выводе вы увидите несколько строк о версии OpenSSL. Также вам будет предложено ввести парольную фразу для вашей пары ключей. Обязательно выберите надежную фразу и сохраните ее в безопасном месте (или запомните). Эту фразу вам нужно ввести, чтобы получить доступ к своему ЦС (например, для подписи или отзыва сертификата).

Также вам будет предложено подтвердить Common Name (CN) для вашего ЦС. Common Name – это имя, используемое для обозначения этого компьютера в контексте центра сертификации. Вы можете ввести любую строку символов, но проще всего принять имя по умолчанию, нажав Enter.

Примечание: Если вы не хотите, чтобы при каждом взаимодействии с вашим ЦС запрашивался пароль, вы можете запустить команду build-ca с параметром nopass:

Теперь у вас есть два важных файла – ~/easy-rsa/pki/ca.crt и ~/easy-rsa/pki/private/ca.key – открытый и закрытый компонент центра сертификации.

  • ca.crt – открытый файл сертификата ЦС. Пользователи, серверы и клиенты будут использовать его для проверки того, что они являются частью одной сети доверия. Каждый пользователь и сервер, который обращается к вашему ЦС, должен иметь копию этого файла. Все стороны будут полагаться на открытый сертификат, чтобы посторонние не могли выдавать себя за вашу систему (это предотвратит атаки посредника).
  • ca.key – это закрытый ключ, который ЦС использует для подписи сертификатов серверов и клиентов. Если злоумышленник получит доступ к вашему ЦС и, в свою очередь, к вашему файлу ca.key, вам нужно будет уничтожить ваш ЦС. И поэтому ваш файл ca.key должен находиться только на вашем компьютере ЦС (в идеале компьютер ЦС должен оставаться в оффлайн, если вы не подписываете запросы на сертификат в качестве дополнительной меры безопасности).

После этого ваш центр сертификации будет готов. Его можно использовать для подписи запросов и для отзыва сертификатов.

4: Установка PHP

Последний компонент стека – гипертекстовый препроцессор PHP; этот широко используемый серверный язык сценариев необходим для обработки динамического веб-контента.

Чтобы установить PHP, введите:

Кроме PHP на сервер будет установлен ряд дополнительных пакетов; они необходимы для интеграции PHP, установленного ранее сервера Apache2 и других программ.

Перезапустите Apache, чтобы изменения, внесённые во время установки PHP, вступили в силу. Для этого запустите:

Теперь проверьте установку PHP. Перейдите в каталог веб-сервера:

Затем создайте страницу info.php при помощи текстового редактора:

Эта команда откроет чистый файл в редакторе vi. Внесите в файл такой код:

Если всё было выполнено должным образом, на экране появится страница с данными о PHP.

После тестирования рекомендуется удалить эту страницу, поскольку она предоставляет конфиденциальную информацию о сервере.

Базовая установка PHP успешно завершена.

3: Политика по умолчанию

Начиная настройку брандмауэра, вы должны продумать и определить его политику по умолчанию. Эти правила управляют обработкой трафика, который не отвечает другим правилам. По умолчанию UFW сбрасывает все входящие и разрешает все исходящие соединения. Это значит, что другие пользователи не смогут получить доступ к вашему облачному серверу, но все установленные на сервере приложения могут взаимодействовать с внешними приложениями.

Чтобы вернуться к исходным правилам, введите команды:

Если вы настроили пользовательский набор правил, эти команды сбросят его и восстановят исходный набор. Теперь брандмауэр будет сбрасывать все входящие и поддерживать исходящие соединения.

Стандартные правила брандмауэра подходят для персональных компьютеров; серверам обычно необходимо принимать входящий трафик.

6: Защита VNC при помощи SSH-туннелирования

По умолчанию соединения VNC не шифруются. Потому для защиты данных рекомендуется использовать SSH-туннель.

Для этого нужно разрешить запуск VNC только на локальном хосте. Добавьте флаг -localhost в строку OPTIONS в ранее созданном скрипте.

Остановите сервер VNC:

Отредактируйте скрипт:

Найдите эту строку:

И замените её:

Затем запустите VNC:

Теперь можно подключаться к серверу  VNC с удалённого компьютера.

Для пользователей Windows

Для создания SSH-туннеля используйте PuTTY.

Откройте PuTTY.

В левом меню перейдите в раздел Connection->SSH->Tunnels.

В разделе Add New Forwarded Port укажите  порт 5901 как Source port, а в поле Destination укажите localhost:5901. Нажмите Add.

Затем откройте раздел Session и в поле Host Name (or IP address) введите свой IP-адрес. Чтобы подключиться, нажмите Open.

Откройте сессию vnc. Не закрывайте окно PuTTY, пока соединение VNC не установится.

Затем используйте клиент VNC. Просто введите localhost::5901 и переведите соединение SSH в фоновый режим.

Для пользователей OS X

Чтобы создать SSH-туннель, введите в терминал:

Пройдите аутентификацию. Затем укажите localhost:5901 для Screen Sharing.

Знакомство с менеджером пакетов apt и принципом установки приложений

Что такое .deb пакеты в Debian?

Это файлы, подобные MSI файлам в Windows. То есть это набор файлов и мета-данных для установки того или иного определённого приложения. Там хранится скомпилированный бинарник уже сразу под вашу операционную систему. Например, если установлена 64 битная Debian версия 9.3, то значит в этом в пакете будет именно этот бинарный файл для установленной системы.

Вся установка deb пакетов означает скопировать бинарник в одну папку, config в другую папку, ну и попросить какие-то зависимости, без которых эта программа не запустится.

В Debian по умолчанию установлена системная программа dpkg, которая при установке системы ставит приложения. Существует принципиальное отличие dpkg и apt.

Утилита dpkg просто устанавливает бинарники, и предупреждает о зависимостях, которые нужны для этой программы, при этом она эти зависимости устанавливать не будет.

Утилита apt автоматически всё продумывает, необходимые зависимости она установит.

apt-get – это менеджер пакетов, который устанавливает deb пакеты и автоматически устанавливает все нужные зависимости. То есть если нужен, к примеру, PHP с поддержкой xml или ещё с чем-то, то apt-get автоматически устанавливает целый комплект нужных программ (это своего рода как AppStore для для iOS).

Установка утилит mc

Попробуем установить полезную утилиту mc, она часто используется для работы сервера. Она представляет собой популярный 2х-панельный файловый менеджер Midnight Commander.

Установка mc на сервер:

Настройка firewall (iptables) в Debian

В качестве firewall в Debian по-умолчанию используется iptables, его и будем настраивать. Изначально фаервол полностью открыт и пропускает весь трафик. Проверить список правил iptables можно следующей командой:

# iptables -L -v -n

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Обращаю пристальное внимание на то, что настраивать firewall без прямого доступа к консоли сервера не следует. Особенно, если вы не очень разбираетесь в этом и копируете команды с сайта

Шанс ошибиться очень высок. Вы просто потеряете удаленный доступ к серверу.

Создадим файл с правилами iptables:

# mcedit /etc/iptables.sh

Очень подробно вопрос настройки iptables я рассмотрел отдельно, рекомендую ознакомиться. Хотя в примере другая ОС linux, принципиальной разницы нет, настройки iptables абсолютно одинаковые, так как правила одни и те же.

Добавляем набор простых правил для базовой настройки. Все необходимое вы потом сможете сами открыть или закрыть по аналогии с существующими правилами:

#!/bin/bash
#
# Объявление переменных
export IPT="iptables"

# Активный сетевой интерфейс
export WAN=ens18
export WAN_IP=10.20.1.16

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# разрешаем пинги
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Разрешаем исходящие соединения самого сервера
$IPT -A OUTPUT -o $WAN -j ACCEPT

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из-за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы
# и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный
# обмен данными становится не возможным, обрубаем
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Открываем порт для ssh (!!!не забудьте указать свой порт, который вы изменили ранее!!!)
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
# Открываем порт для web сервера
$IPT -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i $WAN -p tcp --dport 443 -j ACCEPT

# Записываем правила в файл
/sbin/iptables-save > /etc/iptables_rules

Даем файлу права на запуск:

# chmod 0740 /etc/iptables.sh

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

sh /etc/iptables.sh

Проверяем правила:

# iptables -L -v -n

Проверяем, что правила записались в файл /etc/iptables_rules. Если их там нет, то записываем их вручную.

# /sbin/iptables-save > /etc/iptables_rules

Правила применились и произошла их запись в файл /etc/iptables_rules. Теперь нужно сделать так, чтобы они применялись при загрузке сервера. Для этого делаем следующее. Открываем файл /etc/network/interfaces и добавляем в него строку pre-up iptables-restore < /etc/iptables_rules Должно получиться вот так:

# cat /etc/network/interfaces

allow-hotplug eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables_rules

Для проверки перезагрузите сервер и посмотрите правила iptables. Должен загрузиться настроенный набор правил из файла /etc/iptables_rules.

Обновление системы, отличие apt upgrade от dist-upgrade и full-upgrade

Сеть настроили, теперь можно обновить систему и пакеты. В Debian это делается достаточно просто. Воспользуемся несколькими командами. Сначала обновим локальный индекс пакетов до последних изменений в репозиториях:

# apt update

Посмотреть список пакетов, готовых к обновлению, можно с помощью команды:

# apt list --upgradable
# apt upgrade

Ключ upgrade выполняет только обновление одной версии пакета на другую, более свежую. Он не будет устанавливать или удалять пакеты, даже если это необходимо для обновления других. Это наиболее безопасный и надежный вариант обновления, но он может обновить не все. Например, с ее помощью не обновить ядро до более свежей версии.

Ключ dist-upgrade или full-upgrade (это одно и то же) в дополнение к upgrade обрабатывает все изменения зависимостей для новых пакетов и во время работы может удалять ненужные и ставить необходимые пакеты для обновления. Вот выдержка из документации по поводу этих двух ключей.

Так что после обычного обновления, делаем еще full-upgrade.

# apt full-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  dh-python guile-2.0-libs libbind9-140 libdns162 libicu57 libisc160 libisccc140 libisccfg140 liblvm2app2.2 liblvm2cmd2.02 liblwres141 libperl5.24
  libpython3.5-minimal libpython3.5-stdlib linux-image-4.9.0-3-amd64 python3-distutils python3-lib2to3 python3.5 python3.5-minimal rename sgml-base tcpd
  xml-core
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Мне предлагается удалить старые пакеты, которые больше уже не нужны. Это зависимости от старых версий софта, который уже обновился и получил новые пакеты из зависимостей, а эти ему больше не нужны. Очистим их командой:

# apt autoremove

Рекомендую делать это регулярно после обновлений, чтобы старые пакеты не занимали лишнее место на диске.

На этом обновление системы закончено. Если вы хотите обновить версию релиза, например Debian 9 обновить до Debian 10 Buster, то читайте отдельный материал.

Продление сертификатов

Сертификаты выдаются на три месяца. Не на полгода, не на год, а лишь на три месяца. Естественно это вызывает вопросы. Нужно ли проходить всю эту процедуру через три месяца? Нужно ли это делать всегда до искончания веков? Может стоит всё-таки вложиться в платный сертификат чтобы забыть об этом всем и не воспоминать пару лет?

Но нет, не спешите искать платежные средства! Как и было обещано в начале статьи, с обновлением сертификатов проблем нет.

Если у вас Debian, то нужно лишь дописать к вызову в ключ :

Если у вас Debian и systemd, то .

Если у вас не Debian или нет файла, то добавим в от одну лишь строчку ():

Согласно рекомендаций Let’s Encrypt следует пытаться обновить сертификаты два раза в день. Делать это нужно в случайным образом выбранную минуту того часа, а значит вам нужно заменить в этой строке на другое число в диапазоне между и . Либо вы можете поступить так как это делается в .

Как это работает

В этой команде ключ нужен чтобы Certbot пытался получить сертификаты для частичного набора доменов.

Например, были у вас на сервере были сайты www.example.com и shop.example.com, проходящие под одним сертификатом, но потом вы перенесли shop.example.com на другой сервер. Если такой ключ не указать, то Certbot упадет с ошибкой при попытке подтвердить владение shop.example.com, не получив для вас вообще никакого сертификата. Сертификат истечет и ваш сайт уйдет в оффлайн. С этим ключом вы всё же получите сертификаты хотя бы для частичного набора доменов, оставив ваши сайты в сети.

Настройка Ubuntu и Debian сетевым шлюзом для раздачи интернета в локальную сеть

  • 28th day of Chaos, in the yold 3176
  • 138 Comments

В этой заметке будет рассказано как с помощью iptables настроить системы с Ubuntu и Debian для раздачи интернета другим компьютерам локальной сети. На простом примере будет показано как машину с двумя сетевыми интерфейсами (в один поступает интернет, из другого — «выходит») сделать шлюзом.

Настроить этот функционал через веб-интерфейс можно с помощью Webmin, через графический интерфейс – с помощью GAdmintools. Но мы рекомендуем настраивать шлюз напямую, а не через сторонние утилиты.

Допустим, что аппаратно-сетевая часть уже полностью настроена, на вашей машине имеются работоспособный интернет и вы видите другие компьютеры сети. Поэтому давайте разберемся что к чему, для этого введем команду:

(с Debian 9 эта команда устарела, используйте вместо нее)

Она выдаст список работающих в данный момент сетевых интерфейсов. Среди них надо опознать те, что начинаются со слов «Link encap:Ethernet» — это интерфейсы сетевых карт. Как правило, это eth0 и eth1.
Теперь потребуется опознать в какой из них поступает интернет, а из какого «выходит». Проще всего это сделать по их ip-адресам.
Итак, допустим через eth0 вы получаете интернет (например через adsl-модем по протоколу ppp), а eth1 связывает вас с локальной сетью.
Если локальная сеть настроена через Network Manager, то мы рекомендуем прописать эти настройки непосредственно в системном конфигурационном файле сети:

Здесь исправьте настройки вашего сетевого интерфейса, подключенного к локальной сети (в нашем случае eth1), соответствующим образом:

Значение address — это айпи вашей машины в локальной сети, по этому адресу собственно и будет располагаться шлюз.
Значение netmask — в локальных сетях для этого диапазона чаще всего такая. Для других диапазонов можно вычислить здесь.
Значения network и broadcast будут зависеть от вашего адреса. То есть, если ваш локальный ip — 10.0.0.10, то network и broadcast будут 10.0.0.0 и 10.255.255.255 соответственно.

Либо, это можно проделать всего одной командой:

Эта команда самостоятельно настроит вашу сетевую карту eth1 на использование статичного айпи-адреса, и самостоятельно пропишет описанные выше настройки в файл /etc/network/interfaces

В любом случае, после этих изменений перезапустите networking:

Командой:

()

проверьте, что изменения вступили в силу и все работает.

Теперь осталось дело за малым. В случае если вы уже пытались настроить вашу систему шлюзом, но у вас не получилось или по каким-то другим причинам вы желаете обнулить все настройки файрвола iptables, то это можно сделать следующими командами:

Если прямой необходимости в сбросе настроек iptables нет, то лучше этого не делать.

Следующие команды настроят ваш iptables для NAT-трансляции (NAT, Network Address Translation — «преобразование сетевых адресов») через Ubuntu-шлюз:

Если необходимые вам сетевые интерфейсы отличаются от eth0 и eth1, то просто измените первую строку соответствующим образом.
Если ваша локальная сеть находится вне диапазона 192.168.x.x, то маску подсети для указания в первой строке вы сможете легко вычислить через сервис Network Calculators.

Теперь для конфигурации gateway’я для роутинга между двумя интерфейсами необходимо включить IP-форвардинг командой:

И последний штрих: надо отредактировать файл sysctl.conf:

Добавьте в него вот эти две строки для активации роутинга:

В Debian 9 достаточно добавить (раскомментрировать) всего одну строку:

После этого ваш интернет-шлюз готов к работе. Можете настраивать клиентские машины. На нашем примере для них gateway будет 192.168.0.10

Если все внесенные вами изменения работают корректно и вы желаете внести эти настройки в автозагрузку (а именно, вышеприведенные настройки iptables теряют активность после перезагрузки системы), то сохраните нынешнюю рабочую конфигурацию iptables в файл командой:

После этого в сам файл сетевых настроек /etc/network/interfaces () к параметрам вашего сетевого интерфейса, например, из которого к вам поступает интернет (в нашем случае – это eth0) добавьте строку:

То есть оно станет примерно такого вида:

Только не меняйте значения в строке iface, просто добавьте указанную строку последней в разделе auto eth0 (ну или какого-то другого сетевого интерфейса). После этого при перезагрузке сохраненные настройки iptables будут подниматься автоматически.

Если вы хотите добавить к этому автоматическую раздачу адресов (dhcp) и прокси, то воспользуйтесь для этого, например, вот этой инструкцией.

2: Защита Webmin с помощью доверенного сертификата Let’s Encrypt

Webmin уже поддерживает HTTPS, но использует самоподписанный сертификат, а не доверенный. Давайте заменим его подписанным сертификатом от сервиса Let’s Encrypt.

Замените your_domain доменным именем вашего сервера.

Примечание: При первом входе в систему вы увидите ошибку «Invalid SSL». Это связано с тем, что сервер создал самоподписанный сертификат. Примите этот сертификат как исключение, чтобы продолжить и заменить самоподписанный сертификат доверенным сертификатом от Let’s Encrypt.

Появится экран входа в систему. Войдите в систему с помощью аккаунта пользователя (не root), который вы создали при начальной настройке сервера.

Это выведет вас на страницу Hostname and DNS Client. Найдите поле Hostname и введите в поле Fully-Qualified Domain Name. Затем нажмите кнопку Save в нижней части страницы, чтобы применить настройку.

После того, как вы установили имя хоста, нажмите Webmin в левой панели навигации, а затем нажмите Webmin Configuration.

Затем выберите SSL Encryption и откройте вкладку Let’s Encrypt. Вы увидите форму для создания сертификата.

С ее помощью вы сообщите Webmin, как получить и обновить сертификат. Сертификаты Let’s Encrypt действуют в течение 3 месяцев, но Webmin может попытаться автоматически обновить сертификат Let’s Encrypt каждый месяц. Let’s Encrypt ищет файлы подтверждения на вашем сервере, поэтому мы поместим этот файл в  /var/www/html – это папка веб-сервера Apache. Выполните следующие действия, чтобы настроить сертификат:

  1. В поле Hostnames for certificate укажите FQDN.
  2. В Website root directory for validation file нажмите кнопку Other Directory и введите /var/www/html.
  3. В Months between automatic renewal снимите флажок Only renew manually (чтоб включить автоматическое обновление), введите 1 в поле ввода и нажмите кнопку слева от поля ввода.
  4. Нажмите кнопку Request Certificate. Через несколько секунд вы увидите экран подтверждения.

Чтобы использовать новый сертификат, перезапустите Webmin, кликнув стрелку назад в своем браузере и нажав кнопку Restart Webmin. Подождите около 30 секунд, а затем перезагрузите страницу и войдите снова. Теперь ваш браузер должен указывать, что сертификат валидный.

Просмотр активных пользователей XRDP

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

ps aux | grep xrdp | grep xorg
= вывод команды =
local      694  3.7  1.9 571540 76992 ?        Sl   22:47   0:29 /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log

Вот мы видим что подключен только один пользователь с логином local и PID 694.

Просто снять этот процесс не достаточно, чтобы полностью завершить работу пользователя на сервере. Выведем список всех процессов сервиса XRDP:

ps aux | grep xrdp
= вывод команды =
root       447  0.0  0.0  13860  3640 ?        S    22:45   0:00 /usr/sbin/xrdp-sesman
xrdp       471  0.0  0.0  12248  2044 ?        S    22:45   0:00 /usr/sbin/xrdp
root       692  0.0  0.0  13616  2300 ?        S    22:47   0:00 /usr/sbin/xrdp-sesman
local      694  3.8  1.9 571540 76992 ?        Sl   22:47   0:36 /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
local      697  0.0  0.0  99512  3412 ?        Sl   22:47   0:00 /usr/sbin/xrdp-chansrv
xrdp       903  4.1  0.6  40076 28176 ?        S    22:47   0:37 /usr/sbin/xrdp
root       982  0.0  0.0   6224   828 pts/0    S+   23:02   0:00 grep xrdp

Теперь мы можем отключить пользователя указав команду, которая завершит все процессы пользователя:

pkill -9 -u local
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: