Архив автора: admin

Как использовать Django Channel

Django — это популярная среда Python, используемая для разработки веб-приложений с использованием спецификаций сервера WGSI (интерфейс шлюза веб-сервера) и ASGI (интерфейс шлюза асинхронного сервера). WGSI используется для разработки синхронных приложений Python, а AGSI используется для разработки асинхронных и синхронных веб-приложений. Канал — это полезная функция Django, которая используется для обработки WebSocket, протокола чата и т. д. Наряду с протоколом HTTP. Канал построен по спецификации сервера ASGI. Сеанс двусторонней интерактивной связи между браузером пользователя и сервером можно открыть с помощью WebSocket. Клиент инициирует соединение WebSocket, и сервер отвечает согласием или закрыть сообщение. Сообщения WebSocket проталкиваются в канал с помощью производителей и отправляются потребителям, которые прослушивают канал. В этой статье показано, как использовать каналы для обработки сообщений WebSocket.

 

Предпосылки

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

  • Установите Django версии 3+ на Ubuntu 20+ (желательно)
  • Создайте проект Django
  • Запустите сервер Django, чтобы проверить, правильно ли он работает.

 

Настроить приложение Django

Выполните следующую команду, чтобы создать приложение Django с именем socketapp:

$ python3 manage.py startapp socketapp

 

Выполните следующую команду, чтобы установить канал:

$ pip install channels

 

Добавьте каналы и имя приложения в часть INSTALLED_APP файла settings.py :

INSTALLED_APPS = [

…..

'channels',

'socketapp'

]

 

Определите значение ASGI_APPLICATION в файле settings.py :

ASGI_APPLICATION = ‘channel_pro.asgi.application’

 

Создайте папку с именем templates внутри папки socketapp и установите расположение шаблона приложения в части TEMPLATES файла settings.py :

TEMPLATES = [

{

….

'DIRS': ['/home/fahmida/channel_pro/socketapp/templates'],

….

},

]

Следующий вывод появится в терминале после запуска сервера Django. Выходные данные показывают, что работает ASGI/Channels версии 3.0.3.

Создайте файл шаблона с именем index.html в определенном месте шаблона для отображения данных, отправленных WebSocket. Объект сокета, созданный с помощью JavaScript, будет считывать данные с помощью метода JSON.parse(), а затем передавать значение в содержимое тега <h1>, который содержит значение идентификатора, msg.

<!DOCTYPE html>

<html lang=»en»>

<head>

<meta charset=»UTF-8″>

<title>Учебники по каналу Django</title>

<script>

socket = new WebSocket(«ws://localhost:8000/msg/»);

socket.onmessage = function(e) {

var data = JSON.parse(e.data);

document.querySelector(‘#msg’).innerText = data.timeValue;

}

</script>

</head>

<body>

<center>

<h1 style=»color:blue» id =»msg»>{{ text }}</h1>

</center>

</body>

</html>

 

Измените views.py файл в socketapp со следующим содержанием. Index.html файл шаблона будет отображаться в браузере с текстом переменной, когда метод index() этого сценария вызывается из urls.py файла. Если сообщение не передается из сокета, в браузере будет отображаться текст «AndreyEx».

views.py

# Импортировать модуль рендеринга из Django

from django.shortcuts import render



# Создать функцию индекса для отображения HTML-файла в браузере

def index(request):

return render(request, "index.html", context={'text': 'AndreyEx'})

 

Измените urls.py файл в socketapp со следующим содержанием. В скрипте определены два пути: путь admin/ используется для открытия панели администрирования Django, а путь msg/ используется для чтения сообщения WebSocket.

urls.py

from django.contrib import admin

from django.urls import path



from socketapp import views



urlpatterns = [

path('admin/', admin.site.urls),

path('msg/', views.index)

]

Когда следующий URL-адрес выполняется без определения файлов-потребителей и файлов маршрутизации, протокол HTTP будет работать, и появится следующий вывод.

http://localhost:8000/msg/

 

Теперь создайте файл consumer.py внутри папки socketapp с помощью следующего скрипта. Метод connect() для ws_consumer будет использоваться для приема подключения к сокету, чтения текущего значения времени каждую секунду и отправки текущего времени в формате JSON через WebSocket, когда этот метод вызывается из файла маршрутизации.

consumers.py

# Импортировать модуль JSON

import json

# Импортировать WebsocketConsumer

from channels.generic.websocket import WebsocketConsumer

# Импортировать модуль datetime

from datetime import datetime

# Импортировать модуль sleep

from time import sleep





# Определить класс потребителя для отправки данных через

class ws_consumer(WebsocketConsumer):

def connect(self):

self.accept()

while(True):

now = datetime.now()

self.send(json.dumps({'timeValue': now.strftime("%H:%M:%S")}))

sleep(1)

 

Создайте routing.py внутри папки socketapp с помощью следующего скрипта. Путь msg/ определен в сценарии для вызова потребителя для отправки данных в сокет.

routing.py

from django.urls import path

from.consumers import ws_consumer



# Задайте путь для вызова потребителя

ws_urlpatterns = [

path('msg/', ws_consumer.as_asgi())

]

 

Измените файл asgi.py с помощью следующего сценария. Модули, необходимые для обработки запросов HTTP и WebSocket, импортируются в сценарий.

asgi.py

# Импортировать модуль os

import os

# Импортировать get_asgi_application для обработки протокола http

from django.core.asgi import get_asgi_application

# Import ProtocolTypeRouter и URLRouter для установки маршрутизации веб-сокетов

from channels.routing import ProtocolTypeRouter, URLRouter

# Import AuthMiddlewareStack для обработки веб-сокета

from channels.auth import  AuthMiddlewareStack

# Импортировать маршрутизацию веб-сокетов

from socketapp.routing import ws_urlpatterns



# Назначьте значение для DJANGO_SETTINGS_MODULE

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'channel_pro.settings')



# Определить переменные приложения для обработки HTTP и WebSocket

application = ProtocolTypeRouter({

'http': get_asgi_application(),

'websocket': AuthMiddlewareStack(URLRouter(ws_urlpatterns))



})

 

Теперь снова запустите следующий URL-адрес из браузера, чтобы прочитать данные из WebSocket.

http://localhost:8000/msg/

 

Если потребитель и маршрутизатор работают правильно, в браузере будут отображаться следующие цифровые часы. Здесь маршрутизатор отправил запрос WebSocket, используя путь msg/ к потребителю, который принял запрос и отправил данные в шаблон, чтобы показать цифровые часы в браузере, где второе значение текущего времени обновляется каждые второй.

 

Вывод

В этом руководстве показано, как реализовать приложение реального времени с использованием инфраструктуры и каналов Django, создав простые цифровые часы. Другие типы приложений реального времени также могут быть реализованы с использованием Django и каналов, таких как системы онлайн-чата. Скрипты, используемые в этой статье, работают только с Django версии 3+ и Channel версии 3+. Итак, если вы используете более раннюю версию Django или Channel, вам нужно будет обновить версию перед тестированием скрипта, представленного в этом руководстве.



2021-03-06T10:29:34
Python

Как настроить зеркало Kali Linux

Используя простые шаги, представленные в этой статье , вы можете настроить зеркало Kali Linux, на котором будут размещаться основные репозитории и образы Kali. Зеркало Kali Linux удобно.

 

Требования

Чтобы настроить полное зеркало Kali Linux, вам понадобится несколько ресурсов. К ним относятся:

  • Доступный веб-сервер с доступом HTTP и HTTP.
  • Большое дисковое пространство — на момент написания этой статьи, по словам специалистов по сопровождению Kali Linux, размер репозитория пакетов Kali Linux составлял 1,1 ТБ и быстро расширялся.
  • Установленные и запущенные в системе службы HTTP и RSYNC

 

Настройка пользователя для зеркала Kali Linux

Первым шагом является создание полной учетной записи, предназначенной только для зеркал Kali Linux. Используйте команду adduser:

$ adduser –disabled-password andreyex



Adding user `andreyex’...



Adding new group `andreyex’ (1001) ...



Adding new user `andreyex’ (1001) with group `andreyex’...



Creating home directory `/home/andreyex' ...



Copying files from `/etc/skel' ...



Changing the user information for andreyex



Enter the new value, or press ENTER for the default



Full Name []:



Room Number []:



Work Phone []:



Home Phone []:



Other []:



Is the information correct? [Y/n] y

Настроить зеркальные каталоги

Затем нам нужно настроить каталоги, содержащие зеркала, и назначить разрешения для созданного нами пользователя.

mkdir -p /srv/mirrors/kali{,-images}



chown andreyex:andreyex /srv/mirrors/kali{,-images}

 

Приведенные выше команды создадут каталоги kali и kali-images и установят право собственности на пользователя, которого мы создали ранее.

 

Настроить rsync

Следующий шаг включает запуск и настройку службы rsync. Экспортируйте каталоги с помощью команды:

sed -i -e "s/RSYNC_ENABLE=false/RSYNC_ENABLE=true/" /etc/default/rsync



# nano /etc/rsyncd.conf



# cat /etc/rsyncd.conf



uid = nobody



gid = nogroup



max connections = 25



socket options = SO_KEEPALIVE







[kali]



path = /srv/mirrors/kali



read only = true



[kali-images]



path = /srv/mirrors/kali-images



read only = true



# service rsync start



Starting rsync daemon: rsync.

Запуск демона rsync: rsync.

Настройка зеркал

Затем нам нужно экспортировать зеркала в http://domain.com/kali и http://domain.com/kali-images.

Начнем с загрузки и разархивирования архива http://archive.kali.org/ftpsync.tar.gz в каталоге пользователя, созданном ранее.

# su - archvsync



# wget http://archive.kali.org/ftpsync.tar.gz



# tar zxf ftpsync.tar.gz



Next set up the configuration file.



cp etc/ftpsync.conf.sample etc/ftpsync-kali.conf



nano etc/ftpsync-kali.conf



grep -E '^[^#]' etc/ftpsync-kali.conf



MIRRORNAME=`hostname -f`



TO="/srv/mirrors/kali/"



RSYNC_PATH="kali"



RSYNC_HOST=archive.kali.org

 Настройка доступа по SSH

Последний шаг — настроить авторизованные ключи SSH для archive.kali.org для запуска зеркала.

mkdir /home/andreyex/.ssh



chown 700 /home/andreyex/.ssh



wget –O- -q http://archive.kali.org/pushmirror.pub >> /home/andreyex/.ssh/authorized_keys



chown 644 /home/andreyex/authorized_keys

 Связь с Kali.org

После завершения настройки системы отправьте электронное письмо по адресу devel@kali.org, указав всю информацию о ваших зеркалах, включая пользователя, порт для доступа к службе SSH и общедоступное имя хоста. Вы также должны указать, к кому Kali следует обращаться в случае проблем и должны ли применяться какие-либо изменения в соответствии с настройками зеркала.

Оттуда все, что вам нужно сделать, это дождаться первого толчка от archive.kali.org.



2021-03-06T10:09:54
Kali Linux

Отключение работы приложений в фоновом режиме в Windows

В операционной системе Windows 10 есть такие приложения, которые работают постоянно в так называемом «фоновом режиме» даже несмотря на то, что их окна в настоящий момент могут быть закрыты.

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

Исключительная иерархия от Total Commander

Взаимодействие с архивами всех доступных форматов и основные операции над документами и каталогами, молниеносный поиск данных и встроенная панель FTP, поддержка горячих клавиш, плагинов и системных модулей и табличное, двухпанельное представление данных – классический файловый менеджер Total Commander по-прежнему занимает ведущее место среди тех, кто следит за порядком на персональных компьютерах. И на то сразу несколько причин:

  1. Персонализация. Каждую кнопку интерфейса разрешают разместить на панели быстрого доступа. Команды – переназначить и организовать, способы вызова контекстного меню – полностью поменять (с правой кнопки мыши на «пробел», к примеру). Через дополнительную колонку с настройками легко меняется визуальная тема и активируется «история операций», а еще открывается специальное системное повышение уровня привилегий (взаимодействие с отдельными каталогами, возможность ограничивать доступ и работать там, где запрещено).
  2. Точность. Подсчет и тотальная поверка контрольных сумм загруженных файлов (методов несколько, MD5 – на месте), возможность разделять и собирать архивы больших размеров (форматы основные). Работа в фоновом и портативном режиме. Подсветка искомых файлов, возможность сортировать каталоги разными способами, поиск особенно объемных файлов, доступ к секретным или спрятанным разделам диска.
  3. Плагины. Total Commander для Windows с легкостью воспринимает дополнительные системные модули и позволяет просматривать своеобразные форматы данных (от SWF до FB2), взаимодействовать с различными операционными системами смартфонов или планшетов (даже Symbian не проблема!), составлять музыкальные списки воспроизведения и работать над тегами аудиофайлов. Впрочем, даже поверхностно описать каждую выдуманную независимыми разработчиками мелочь невозможно – некоторые умельцы даже приложения запускают внутри файлового менеджера – а потому куда важнее в принципе указать на разнообразие. Если уж понадобилась какая-то дополнительная возможность, то, скорее всего, в менеджере расширений все отыщется.

Скачать Total Commander последней версии еще важнее. Разработчики официально запустили поддержку 64-разрядных систем, поработали с интерфейсом, перевели каждую кнопку (наконец-то русская версия Total Commander!), активировали обновления, связанные с архиваторами и современными форматами, а заодно перевели некоторые плагины на постоянную основу. Заманчиво? В таком случае, veadug.com уже ждет посетителей! Заглядывайте, если Total Commander официальный сайт совсем не наглядный и не интуитивный!



2021-03-05T15:50:09
Программное обеспечение

Установка сертификата SSL в NGINX

При выпуске сертификата у любого CA клиент получает два файла — сертификат (.crt) и приватный ключ (.key). Первым делом их нужно поместить на веб-сервер, обычно для этого используется директория /etc/ssl, скорпируйте эти файлы в неё, либо в любое другое место (тогда нужно будет исправить пути в конфиге nginx).

Читать

Как пересобрать исходный код в Kali Linux

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

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

Примечание
Прежде чем мы начнем, вам нужно будет включить URI исходного пакета deb-src в файл sources.list.

 

Добавление пакетов deb-src

Чтобы добавить пакет deb-src в файл sources.list Kali Linux, отредактируйте файл в /etc/apt/sources.list и раскомментируйте строку deb-src.

Затем обновите исходные пакеты, прежде чем продолжить.

Примечание
Убедитесь, что у вас установлен пакет dpkg-dev.

 

Скачивание исходных пакетов

Следующим шагом будет загрузка пакета с исходным кодом. В этом примере мы будем использовать vim. Выполните команды:

sudo apt-get update

sudo apt source vim

Затем перейдите в каталог исходного пакета vim.

cd vim-8.2.2434/

 Изменить исходный код пакета

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

sudo nano src/vimrun.c

 

После внесения необходимых изменений сохраните и закройте файл.

 

Проверить зависимости сборки

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

dpkg-checkbuilddeps

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

dpkg-checkbuilddeps: error: Unmet build dependencies: autoconf cscope debhelper-compat (= 12) libacl1-dev libcanberra-dev libgpmg1-dev libgtk-3-dev liblua5.2-dev libperl-dev libselinux1-dev libncurses-dev libtool-bin libxaw7-dev libxpm-dev libxt-dev lua5.2 python3-dev ruby-dev tcl-dev docbook-utils docbook-xml ghostscript pdf2svg

Установка зависимостей сборки

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

sudo apt-get install autoconf cscope debhelper-compat libacl1-dev libcanberra-dev libgpmg1-dev libgtk-3-dev liblua5.2-dev libperl-dev libselinux1-dev libncurses-dev libtool-bin libxaw7-dev libxpm-dev libxt-dev lua5.2 python3-dev ruby-dev tcl-dev docbook-utils docbook-xml ghostscript pdf2svg -y

 Сборка исходного пакета

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

Используйте команду ниже, чтобы создать новый пакет.

dpkg-buildpackage

 

Установка нового пакета

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

sudo dpkg –i ../vim-???.deb

 Вывод

В этой краткой статье показано, как создавать, изменять и перестраивать пакеты в Kali Linux. Перестройка пакетов может быть очень полезной, если вам нужна настроенная версия инструмента.



2021-03-05T12:20:04
Kali Linux