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

Учебники по Python для начинающих, изданные в 2018 году

Python — один из самых популярных языков программирования. Ежегодно выходит большое количество книг, посвященных разным аспектам применения этого языка. И, конечно, постоянно появляются все новые учебные пособия по самым основам.

Мы уже публиковали подборки книг для начинающих питонистов.

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

Как использовать 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

Исключительная иерархия от 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