LINUX.ORG.RU

Сообщения AnastasiaM

 

VPS на OpenVZ тормозит и как будто стоит на паузе

Знакомый попросил посмореть что с VPS? Он местами работает с жутким тормозами и глюками, частельно недоступен несколько секунд. На самом VPS запущен только OpenVPN и в момент глюка его никто не использовал. Ничего другого ресурсоемного не запущенно.

Для определения проблемы был написан скрипт на bash и запущен на сутки в tmux.

Почему происходит работа с тормозами и кто виноват? Сам VPS криво настроен или его криво настроил реселлер или сам хостер настроил его криво или сильно оверселят или еще какие-то проблемы?

Сам скрипт:

#!/bin/bash
while [[ 1 ]]; do # Будем выполнять цикл вечно
    date -u "%H:%M:%S" | tee -a find_bug.txt
    sleep 10             
done 

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

...
14:51:44
14:51:54
14:52:04
14:52:14
14:52:24
14:52:39  <= начало проблем, должно быть 34 или 35
14:52:49
14:53:04   
14:53:26
14:54:08
14:54:59
14:55:59  <= тут вообще минуту тормозил
14:56:09
14:56:20
14:56:31
14:57:34
14:57:58  
14:58:08  <= конец проблем
14:58:18
14:58:28
14:58:38
14:58:48
...

 , , ,

AnastasiaM ()

Что внутри qBittorrent backdoor или bug?

На linux mint 20 установлен qBittorrent 4.3.9 из оффициального репозитария самого qBittorrent.

Заметила странную особенность, в трафике исходящим от qBittorrent есть подозрительные запросы на Московский IP на порт 22. Это SSH порт и к торрентам не должен иметь отношения вообще никакого. Пакеты туда идут в больших количествах, а не просто так случайно 1-2 пакета. Трафик именно от qBittorrent.

Это что?

  • внутри qBittorrent есть бэкдор и разработчикик под шумок спрятали в огромном объеме трафика свой? типа ломают чей-то сервак через меня?
  • В проге ошибка и кто-то DDoS устроил через баг?
  • Может еще какой вариант?

В поледних версия что-то было и что-то антивирусы там находили: https://github.com/qbittorrent/qBittorrent/issues/14489

Хотя похоже Мелкомягким вообще не нравятся торрент программы: https://docs.microsoft.com/en-us/windows/security/threat-protection/intelligence/criteria#potentially-unwanted-application-pua

UPD: При разборе проблемы выяснилось что скорее всего это кто-то раздает через DHT IP-шник с портом номер 22. При запуске одного конкретного торрента даже через другую программу (Transmission) также в трафике были обращения на 22й порт. С IP адреса куда были обращения на 22й порт была найдена куча скачанных торрент файлов, похоже это не просто сервак, а с него еще и качают торренты. На текущий момент я не замечаю движения на 22й порт куда либо, эта проблема была буквально пару дней.

Спасибо всем кто принимал участие в обсуждении и помогал докопаться до истины.

 , ,

AnastasiaM ()

Готовимся к Чебурнету, свой ARM mini server для XMPP, VPN, Nginx

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

  • XMPP чат на базе Prosody.
  • звонки голосом совмещены с XMPP через Coturn.
  • Nginx показывает сайты визитки.
  • VPN реализован через OpenVPN, а в будущем планируется перезд на WireGuard.
  • SMB и SFTP общая сетевая папка для маленькой файловой помойки.

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

  • все что есть сейчас на зарубежном VPS должно без танцев с бубном переехать на новый одноплатный mini PC (XMPP-Prosody, Coturn, Nginx, OpenVPN, WireGuard, SMB)
  • цена до 7000 руб.
  • осносительно высокая скорость работы, чтобы Nginx сайты мог нормально отдавать и VPN мог одновременно пропускать 3-5 человек с трафиком 10-20 Мбит/с.
  • относительно свежее ПО и наличие сообщества где можно получить поддержку.

Если кто-то уже все это добро пробовал поднимать на одноплатных PC, скажи что получше взять?

P.S. по поводу VPN я в курсе что при размещени в России не получится обойти блокировку роскомнадзора. У меня VPN больше для доступа при командировке к локальной шаре с фильмами дома.

UPD. Если ничего толкового не смогу подобрать из ARM устройств тогда буду использовать свой старый ноутбук с архитектурой x86. Поэтому покупать что-то дугое на этой же аржитектуре x86 мне смысла нет. Хочется именно покрутить ARM и еще эти устройтсва могут работать с пассивным охлаждением безшумно.

 , , , ,

AnastasiaM ()

Переделка правил из iptables в nftables

Были на старом сервере такие правила для защиты, потом после обновление и переезда на новые сервера эти правила не получается переделать в новый формат для nftables. Прошу помощи в переделки этих правил:

Конвертировать эти правила автоматом используя iptables-restore-translate не получается.

# Создаем список "BRUTESCAN", строгие правила для проверки хакеров, проверяем brute force и сканирование портов
iptables -N BRUTESCAN  
# Если на легитимный порт входит хакер который сканировал нас, мы его блочим
iptables -A BRUTESCAN -m recent --update --seconds 600 --hitcount 10 --name ScanPort -j DROP   

# Если за последний час с одного адреса было 10 или более новых соединений — блокируем этот адрес
iptables -A BRUTESCAN -m conntrack --ctstate NEW -m recent --update --seconds 3600 --hitcount 10 --name BruteForce --rsource -j DROP  

# В противном случае - разрешаем, и при этом заносим в список IP откуда зашли
iptables -A BRUTESCAN -m recent --set --name BruteForce -j ACCEPT 

# Создаем список "ONLYSCAN", простые правила для проверки хакеров, только на сканирование портов
iptables -N ONLYSCAN   

# Если на легитимный порт входит хакер который сканировал нас, мы его блочим
iptables -A ONLYSCAN  -m recent --update --name ScanPort --seconds 60 --hitcount 10 -j DROP    

# В противном случае - разрешаем, и при этом  IP никуда не заносим
iptables -A ONLYSCAN -m recent --set --name AcceptMiniCheck -j ACCEPT  

# вытаскиваем из черного списка IP, если он там есть, используя Port Knocking
iptables -A INPUT -p icmp -m length --length 123 -m recent --remove --name ScanPort -j DROP
iptables -A INPUT -p icmp -m length --length 123 -m recent --remove --name BruteForce -j DROP
iptables -A INPUT -p icmp -m length --length 123 -m recent --set    --name UnBanIPicmp -j DROP

P.S. Это только часть правил и это их параноидальная часть :-)

 , ,

AnastasiaM ()

NFS квота на размер папки

На cервере есть папка доступная по NFS и в эту папку видеокамера записывает данные, камера видит что на сервере 100 Гб свободного места и пытатеся всё это место занять под видео. Как сделать ограничения на размер папки чтобы была видна только половина места - 50 Гб?

Содержимое файла /etc/exports на сервере:

/nfs/camera 192.168.1.7/32(rw,async,root_squash,all_squash,subtree_check)

В камере посто прописывается IP и путь к папке. Никаких других настроек нет, камера видит и занимает все свободное место что доступно.

Если можно дайте ссылку на нормальную инструкцию как это сделать.

 , ,

AnastasiaM ()

Правила iptables ESTABLISHED RELATED для UDP и значение keepalive

Есть правила в фаерволе:

iptables -A INPUT -p udp -m conntrack --ctstate RELATED,ESTABLISHED  -j ACCEPT

Вопрос сколько это правило будет действовать по времени после последнего пакета который пришел по UDP? Для TCP это время может максимум доходить до 2 часов, а для UDP я не могу найти сколько времени соединение актуально и фаервол пропускает.

Цель всего этого установить максимально возможное знание keepalive в настройках клиента чтобы соедение не обрывалось фаерволом и было минимальное возможное движение трафика.

 , ,

AnastasiaM ()

jq создать массив json из отдельных строк

Есть файл test.json:

{
"response": "ok",
"data": [
    {
        "number": "123",
        "status": "OK"
    },
    {
        "number": "456",
        "status": "disabled"
    },
    {
        "number": "789",
        "status": "false"
    }
]
}

Есть переменная внутри которой должны лежать номера

MyNumbers=`cat test.json | jq '.data[].number'`

Они там лежат вот так:

"123"
"456"
"789"

а нужно вот так:

[
"123",
"456",
"789"
]

Как в переменную проще всего поместить нужные номера в виде массива?

 , ,

AnastasiaM ()

prosody http_upload_external vs http_upload что лучше

В prosody есть два модуля для загрузки файлов на сервер: http_upload_external и http_upload (XEP-0363).

http_upload_external - использует внешние сервисы php, Python, Perl для nginx и т.д. Требует что-то дополнительно, но кажется более гибкий способ, но это не точно.

http_upload - все встроенно в prosody и написано на lua и не требует ничего лишнего. Просто модуль.

Нигде не могу найти нормального сравнения способов загрузки файлов на сервер. Помогите разобраться кто уже пробовал эти модули и находил подводные камни и сравнивал их. Скажите на чем остановились вы?

  • Какой из модулей максимально безопасный на случай загрузки хакерами всяких гадостей или если хакеры начнут наоборот скачивать файлы с сервера?
  • какой из способов максимально быстрый для загрузки/скачки данных?
  • какой максимально стабильный? Очень не хочется получать глюки при работе.
  • что лучше использовать http_upload_external или http_upload? Если http_upload_external то какой способ: php, Python, Perl для nginx?

 , , , ,

AnastasiaM ()

Парсинг кривого html из bash

Есть html страница из которой нужно выдергуть данные вот примерно такого плана:


<td id="TableInfo12345" class="col123">Текст что нужно получить из таблицы</td>

Пытаюсь получить данные используя hxselect из пакета html-xml-utils

hxselect -c 'td[id="TableInfo12345"]' < file.html

Постоянно вываливаются ошибки, что тег такой-то не закрыт, не понятно откуда взялся другой тег. Ошибка на ошибке и ошибкой погоняет т.к. пасал сайт студент на коленке. Если использовать нормальную страницу где все поуму то ошибок нет. Вопрос: как правильно распарсивать из bash страницу html если ее сделали рукожопы?

 ,

AnastasiaM ()

Проверка есть ли шифровние в голосовом чате Conversations

Есть программа Conversations https://github.com/iNPUTmice/Conversations для текстового и голосового общения между собой. В описании сказано что есть шифрование голоса через DTLS-SRTP. Я настроила у себя на сервере prosody и turnserver. Голосом можно поговорить, все нормально.

Подкючение происходит на порт 12345, он вроде как TLS но он также может принимать и не шифрованные данные сюдя по описанию. Измение строки cipher-list вообще ни на что не влияет, даже если туда белеберду подставить, поэтому и возникло подозрение что алгоритмы шифрования толком не работают.

Вопрос: - как проверить что голосовые сообщения от меня до сервера действительно зашифрованы?

Conversations стоит на телефоне с Android 9. А сервер на Ubuntu 20.04.1 LTS.

turnserver конфиг:

use-auth-secret
static-auth-secret=pasSworD
fingerprint
realm=1.2.3.4
tls-listening-port=12345
cert=/var/lib/turn/turnserver.crt
pkey=/var/lib/turn/turnserver.key
cipher-list="TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:!aNULL:!eNULL:!MD5:!DSS"
dh-file=/var/lib/turn/dh-2066.pem
external-ip=1.2.3.4
no-tcp-relay
denied-peer-ip=10.0.0.0-10.255.255.255
denied-peer-ip=192.168.0.0-192.168.255.255
denied-peer-ip=172.16.0.0-172.31.255.255
allowed-peer-ip=10.0.0.1
no-loopback-peers
no-multicast-peers
no-cli
user-quota=8
total-quota=48
log-file=/var/tmp/turn.log
simple-log
no-tlsv1
no-tlsv1_1

 , ,

AnastasiaM ()

Включение TLS 1.2 для wine

На сервере нужно под wine держать запущенную программку, после обновления программки поменяли безопасность и теперь она не рабоает.

Программка написана на .NET Framework 3.5 нормально работает только в wine 4.0 (Windows XP). До обновления программки она подключалась по TLS 1.0 к заморским серверам и все нормально работало, после обновления оставили только протокол TLS 1.2, но он не работает нормально под wine.

В реестре сделаны настройки, которые не помогают. Вываливает ошибку:

The specified value is not valid in the 'SslProtocolType' enumeration

Вопрос что еще сделать чтобы заработал TLS 1.2 для .NET Framework?

Вот данные из реестра:

[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v2.0.50727]
"SchUseStrongCrypto"=dword:00000001
"SystemDefaultTlsVersions"=dword:00000001

[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001
"SystemDefaultTlsVersions"=dword:00000001


[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.0\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.1\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"SecureProtocols"=dword:00000a00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp]
"DefaultSecureProtocols"=dword:00000a00


 , , ,

AnastasiaM ()

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

Мне нужно выполнить команду и измерять время ее выполнения. Время выполнения нужно поместить в переменную, вопрос как?

export TIMEFORMAT='%3R seconds'
myvar=$(time ping -c 1 ya.ru 1>/dev/null ) 
echo $myvar # тут пусто почему-то, как поместить сюда значение?

 ,

AnastasiaM ()

Простая синхронизация файлов между устройствами (SSH, chroot, rsync)

Как безопасно синхронизировать файлы между устройствами (компьютеры / мобильные) через интернет?

Если по простому - синхронизировать домашние компы на винде и линуксе, рабочий комп, планшеты и телефоны на андроиде. Перекидывать фото, аудиокниги, синхронизировать закладки к ним, так чтобы все эти данные точно не ушли майору или владельцу облачного хранилища.

Условия следующие:

  1. Желательно чтобы используемые программы были в репозитарии Linux (при добавлении в репозитарий проги хоть как но проверяют, я на это надеюсь)
  2. Есть свой сервер его и будем использовать как серверную часть
  3. Минимальное потребление RAM для серверной части, RAM не резиновая и чем меньше ее кушают программы тем лучше.

Найденные примерно варианты:

  • создать пользователя SFTP на сервере, подрезать ему права используя chroot и гонять все файлы по SSH используя rsync для синхронизации. Но я не могу найти нормальную инструкцию как настроить chroot. Если кто-то уже делал настройку используя chroot дайте нормальную рабочую инструкцию. Или предложите другие простые варианты.

 , , ,

AnastasiaM ()

Разная скорость канала связи с VPS, ускорение сети на VPS

Есть несколько VPS в разных странах. Сейчас заметила, что скорость скачки данных с самого дальнего сервера, находящегося в США намного выше чем с сервера находящегося в Нидерландах, зарница доходит до 10 раз. 20 Мбит из США против 2-3 Мбит с Нидерланд. Хотя по идеи чем ближе, тем больше скорость должна быть. Я качаю данные с сервера к себе домой.

Вот пару вопросов:

  1. Кто может менять направление трафика чтобы он двигался по более медленным и дешёвым каналам связи? Может ли провайдер VPS поменять их чтобы экономить или нет?

  2. Я могу самостоятельно поменять шлюзы как будет двигаться трафик от моего VPS до меня, чтобы увеличить скорость?

 , , ,

AnastasiaM ()

Какой максимальный размер файла /etc/hosts ?

Сейчас я блокирую рекламу и трекеры слежки на прокси-VPS и на своих android устройствах через файл hosts. Файл hosts сейчас у меня примерно 4 Мб и имеет 140 000 строк (сайтов для блокировки). Иногда реклама все равно пролазит, и я хочу заблокировать еще больше сайтов и увеличить размер файла hosts (примерно до 20 Мб и 1 млн. сайтов).

Если какие-либо ограничения для размера hosts файла и чем грозит сильное увеличение hosts файла?

 , , ,

AnastasiaM ()

Мессенджер со звонками на своем сервере (linux, windows, android и iOS)

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

Требования:

1) возможность поднять свой сервер, независимость.

2) Кроссплатформенность, нужны клиенты для linux, windows, android и iOS.

3) Качественная аудио связь.

4) открытость протокола и клиентов (Open Source) иначе нельзя говорить об защищенности.

5) простой и удобный обмен файлами.

Были схожие темы на этот вопрос, но темы старые, а сейчас развитие идет очень быстро и возможно появились новые решения.

Один из возможных вариантов был: сервер XMPP + Jingle, а клиенты PSI+ (linux, windows), а для android и iOS пока нормальные клиенты не нашла, их что нет?

 , , , ,

AnastasiaM ()

Запрет склеивания строк с одинаковым IP в файле etc hosts

Есть файл /etc/hosts в нем есть много доменов типа:

127.0.0.1 safebrowsing.google.com
127.0.0.1 telemetry.mozilla.org
127.0.0.1 telemetry.microsoft.com
127.0.0.1 google-analytics.com
и т.д. всего порядка 1000 строк...

Я их заношу в файл построчно чтобы мне было потом удобно искать и редактировать, но после перезагрузки сервера все строки объединяются в одну:

127.0.0.1 safebrowsing.google.com telemetry.mozilla.org telemetry.microsoft.com google-analytics.com ... 

редактировать с такой строкой невозможно и сильно неудобно.

Как запретить склевать строки в файле hosts с одинаковым IP в одну строку?

Гугление ничего не дает, установка прав только на чтение (444) не помогает.

 

AnastasiaM ()

Прокси для браузера из связки SSH + Putty тормозит

Есть несколько прокси настроенных одинаково, до них примерно по ping по 60-80 мс. скорость серверов по тестам НЕ падает ниже 5 Мбит/с в обе стороны. Все сервера используются как прокси для браузера в связке SSH + Putty (туннель через SSH). Один из серверов жутко медленно открывает страницы, от 6-25 сек. Другие сервера открывают по 1-3 сек. На серверах кроме SSH ничего не запущено. Почему могут быть такие тормоза?

настройки что менялись:

- в resolv.conf прописывались DNS сервера Googl'a 8.8.8.8 и самого провайдера VPS. без изменений, все тормозит. Сервера менялись я проверяла.

- в sshd_config прописывались:

X11Forwarding no
UseDNS no
у кого-то от этого стало работать быстрее но у меня нет.

При всем этом просто консоль в Putty работает нормально, быстро открывается и быстро вводятся и получаются ответы на введенные команды.

Из-за чего страницы могут так сильно тормозить, где еще какой параметр поменять чтобы попробовать ускорить открытие страниц в браузере?

 , , , ,

AnastasiaM ()

Создание пользователя полностью без прав для SSH proxy через putty

В свете последних событий по блокировки всё и вся в России было принято решение скинуться и купить VPS на пятерых знакомых, и создать простой гproxy через SSH туннель. Инструкция как это сделать используя putty есть в интернете в большом количестве. Единственное что не написано это как сделать настройки максимально безопасно для самого VPS'a.

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

максимум что удалось сделать, чтобы все работало, это создать пользователя без группы: # useradd -m -s /bin/bash -g nogroup -G nogroup anastasia

Далее в папку /home/anastasia/.ssh помещаем файл ключ и авторизуемся по ключу, а не по паролю.

Варианты создать VPN, не рассматриваются т.к. нужно только браузер пустить в обход блокировке, а не всю систему целиком.

На сколько такой вариант настройки VPS и создания пользователя можно считать безопасным и есть ли варианты как-то еще обрезать права пользователю, но при условии чтобы всё работало как proxy?

 , , ,

AnastasiaM ()

Простая совместная Online IDE

Требуется себе на сервер поставить простое приложение для совместного редактирования текста. Что то на подобии Cloud9 только в раз 10 по легче.

Требование:

- возможность установки себе на VPS;

- открытый исходный код который можно проверить;

- возможность online прямо в браузере редактировать код;

- возможность совместного редактирования кода;

- подсветка синтаксиса.

кто что может посоветовать?

 ,

AnastasiaM ()

RSS подписка на новые темы