Чтобы настроить тайм-аут SSH сессий, посмотрим где находится файл конфигурации SSH сервера:
sudo find / -name sshd_config
Откроем его в любом текстовом редакторе, например nano:
sudo nano /etc/ssh/sshd_config
Вячеслав Гапон — персональный блог, руководства, статьи, заметки, разработка
Чтобы настроить тайм-аут SSH сессий, посмотрим где находится файл конфигурации SSH сервера:
sudo find / -name sshd_config
Откроем его в любом текстовом редакторе, например nano:
sudo nano /etc/ssh/sshd_config
Однажды на сервере доступа Ubuntu Server 16.04 и Accel-ppp заметил в файле /var/log/kern.log следующие сообщения:
kernel: [365970.550498] HTB: quantum of class 10001 is big. Consider r2q change. kernel: [365970.550547] HTB: quantum of class 10A49 is big. Consider r2q change. kernel: [365979.545580] HTB: quantum of class 10001 is big. Consider r2q change. kernel: [365979.545621] HTB: quantum of class 10BD6 is big. Consider r2q change. kernel: [365995.601973] HTB: quantum of class 10001 is big. Consider r2q change. kernel: [365995.602031] HTB: quantum of class 11705 is big. Consider r2q change.
Сначала попробовал отследить какие в этот момент поднимаются интерфейсы:
tail -f /var/log/kern.log | grep "quantum of class 10001 is big" tail -f /var/log/accel-ppp/accel-ppp.log | grep "create interface"
Читать далее «Причина сообщений «HTB: quantum of class 10001 is big. Consider r2q change»»
Недавно на WordPress сайте заметил проблему отправки сообщений через Contact Form 7 из устройств с операционной системой iOS.
Если использовалась Google reCAPTCHA, то при нажатии кнопки Отправить, страница очень долго обновлялась и reCAPTCHA сообщала ошибку ожидания, если отключить reCAPTCHA, то сообщение отправлялось спустя 1-2 минуты.
Как оказалось, iOS почему-то начал блокировать AJAX, который использовался по умолчанию при обновлении страницы.
По этому чтобы решить проблему, я открыл файл конфигурации wp-config.php и примерно перед строкой:
define('WP_DEBUG', false);
Добавил строку:
define ('WPCF7_LOAD_JS', false);
Эта строка запрещает Contact Form 7 использовать Javascript.
Если указать эту переменную в конце файла, то она не будет работать.
После этого сообщения на iOS начали отправляться сразу.
Допустим через SSH подключено несколько пользователей.
Сначала посмотрим список онлайн пользователей:
w
Допустим отобразилось следующая информация (где test — это логин пользователя):
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT test tty1 11:20 1:07 0.03s 0.03s -bash test pts/0 192.168.1.5 11:21 13.00s 0.02s 0.02s -bash test pts/1 192.168.1.3 11:21 0.00s 0.02s 0.00s w
tty1 — это клиент вошедший локально, то есть находится возле компьютера.
pts/1 — судя например по IP и WHAT, допустим что это мы, соответственно pts/0 это клиент которого мы хотим отсоединить.
Смотрим список процессов и их PID:
ps faux |grep sshd
У меня отобразилось:
root 946 0.0 0.5 65508 5368 ? Ss 12:00 0:00 /usr/sbin/sshd -D root 1147 0.0 0.6 92828 6920 ? Ss 12:01 0:00 \_ sshd: test [priv] test 1178 0.0 0.3 92828 3384 ? S 12:01 0:00 | \_ sshd: test@pts/0 root 1192 0.0 0.6 92828 6592 ? Ss 12:02 0:00 \_ sshd: test [priv] test 1223 0.0 0.3 92828 3532 ? S 12:02 0:00 \_ sshd: test@pts/1 test 1248 0.0 0.0 15468 956 pts/1 S+ 12:25 0:00 \_ grep --color=auto sshd
Находим test@pts/0 и соответственно 1178 — это нужный PID.
Завершаем процесс указав его ID, после чего пользователь сразу отсоединится:
sudo kill -9 1178
Смотрите также мои статьи:
Установка и настройка SSH
Настройка тайм-аута SSH сессий
В этой статье я приведу примеры некоторых SQL запросов для базы биллинговой системы ABillS.
Читать далее «SQL запросы для ABillS»Понадобилось однажды написать скрипт чтобы добавить в ipset все IP для которых били подняты сессии на сервере доступа, использовался биллинг Abills, поэтому я решил взять IP адреса из MySQL таблицы биллинга.
Первым делом создадим тестовый ipset:
ipset create test iphash
Читать далее «Скрипт добавления IP адресов из файла в ipset»
Недавно заметил на одном сервере с биллинговой системой ABillS, что при массовом выполнении скрипта /etc/ppp/ip-up возникает ошибка:
Another app is currently holding the xtables lock. Perhaps you want to use the -w option?
Посмотрев код скрипта обнаружил, что среди iptables правил есть два, которые могут тормозить работу, а именно выполнялся поиск ipoe интерфейсов двумя командами:
IPTABLES="/sbin/iptables" EXIST=`${IPTABLES} -t nat -L PREROUTING -v | grep "${IFNAME} "; ${IPTABLES} -L -v | grep DROP | grep "${IFNAME} "`
Для поднятия 3000 сессий, уходило более 30 минут и часть правил могла вовсе не добавится или не удалится скриптом.
По умолчанию если используется ключ -L то iptables резолвит IP адреса и пытается отобразить вместо них DNS имена, что занимает много времени, и чтобы это не происходило, нужно добавить еще ключ -n, а также на всякий случай я добавил ключ -w 20, который заставит отложить выполнение новых правил до 20 секунд если iptables уже занят выполнение другой команды:
IPTABLES="/sbin/iptables" IPTABLES_WAIT="-w 20" EXIST=`${IPTABLES} $IPTABLES_WAIT -t nat -n -L PREROUTING -v | grep "${IFNAME} "; ${IPTABLES} $IPTABLES_WAIT -n -L -v | grep DROP | grep "${IFNAME} "`
После этого скрипт с iptables правилами начал отрабатывать мгновенно.
Так как старые правила не все выполнились, я проверил это посчитав некоторые командой:
iptables -n -L -t nat -v | grep DNAT | wc -l
И сверил с количеством сессий, правил явно было меньше, поэтому пришлось очистить все правила и перезапустить сессии чтобы скрипт /etc/ppp/ip-up отработал правильно, на этот раз при 3000 сессиях он сделал свою работу менее чем за минуту.
Замечу что в скриптах /etc/ppp/ лучше не использовать правила iptables.
Однажды знакомая из Украины попросила меня помочь ей с закрытием счета в польском банке Pecao.
Она не собиралась ехать в Польшу и поэтому не могла посетить банк, поэтому я начал переписку с сотрудниками по email, который был указан в договоре, а также есть на официальном сайте.
В первом сообщении я спросил как можно закрыть счет в банке и сотрудник ответил что для этого нужно посетить банк, но можно также написать письменное обращение и отправить его вместе с банковской картой почтовой службой в отделение банка, в котором был открыт счет.
Однажды делал проект в Adobe Premiere и понадобилось вытащить видеокарту, после того как я ее вытащил, начал использовать интегрированную в процессор Intel HD Graphics 630 и у меня возникла проблема с изображением.
Читать далее «Проблема с розовым искажением видео в Adobe Premiere»В этой статье я приведу пример сборки и установки accel-ppp в Ubuntu Server.
Читать далее «Сборка и установка accel-ppp»