Практика
Задание 1. DNS
Задание 2. Подсети
Разбиение сети на подсети одинакового размера (теория)
Деление IP сети на подсети при помощи маски легко и быстро. Наглядный способ!
Задание 3. Сеть, маска сети
Описание решения задачи можно прочитать в методических рекомендациях.
Дополнительно про: Что такое IP-адрес и маска подсети и зачем они нужны.
Пример и решение на Python:
«В компании настроена сеть с адресом 192.168.5.0 и с маской подсети 255.255.255.240.
Какое максимальное количество компьютеров может быть в одной подсети с указанной
маской?»
import ipaddress
net = ipaddress.ip_network(‘192.168.5.0/28’)#255.255.255.240 ->28
net.num_addresses — 2 #минус два — вычитаем саму сеть и широк. запрос
14 <- это ответ
ссылка на описание библиотеки import ipaddress
Задание 4. SQL-запрос
SQL за 13 минут (видео) youtube
Вся база SQL для начинающих за 1 час (видео) rutube
TEST: Мегаполис 2025. Задание 4. SQL-запрос (школа)
TEST: Мегаполис 2025. Задание 4. SQL-запрос (сайт)
__________________________________________
Задание 5. Linux. Grip
ТЕСТ: на знание команды grip. ТЕСТ: или по этому адресу:
Задание 6. Алгоритм шифрования RSA
RSA простыми словами и в картинках
def Euclid(a, b):
if b == 0:
return a
else:
return Euclid(b, a % b)
P = int(input('Первое простое:'))
Q = int(input('Второе простое:'))
n = P * Q
F = (P - 1) * (Q - 1)
Ko = 0
for i in range(2,F):
if Euclid(F, i) == 1:
Ko = i
break
i = 2
while i < n:
if (i * Ko) % F == 1:
Kc = i
break
i += 1
M = int(input ("Шифруем: "))
C = M**Ko % n
print ("Шифрование: C =",C)
Md = C**Kc % n
print ("Расшифрование: M =",Md)
Программа на Python с комментариями
def Euclid(a, b):
if b == 0:
return a
else:
return Euclid(b, a % b)
P = int(input('Первое простое:'))
Q = int(input('Второе простое:'))
n = P * Q
F = (P - 1) * (Q - 1)
print("Вычисляем функцию Эйлера F(n)=(p-1)*(Q-1)")
print ("F =",F)
# Use first simple number.
Ko = 0
for i in range(2,F):
if Euclid(F, i) == 1:
Ko = i
break
print ("Выбираем значение открытого ключа Кo с соблюдением условий")
print ("1<Кo<F(n), Кo и F(n) – взаимно простые числа (их НОД=1)")
print ("Ko =",Ko, n)
i = 2
while i < n:
if (i * Ko) % F == 1:
Kc = i
break
i += 1
print ("Находим Kc =",Kc, n)
M = 0
M = int(input ("Шифруем: "))
C = M**Ko % n
print ("Шифрование: C =",C)
Md = C**Kc % n
print ("Расшифрование: M =",Md)
Задание 7. IPCONFIG
Задание 8. Сетевые порты и службы (сокет)
Распространённые TCP/UDP порты
33434 (TCP,UDP) — cредство трассировки сети Traceroute;
7 (TCP,UDP) — протокол ECHO — предназначен для тестирования связи путём отправки данных на сервер и получения от него их же в неизменном виде;
9 (TCP,UDP) — протокол DISCARD — предназначен для тестирования связи путём отправки данных на сервер, который отбрасывает принятое, не отправляя никакого ответа;
20 (TCP) — протокол FTP — данные;
21 (TCP) — протокол FTP — команды;
22 (TCP,UDP) — протокол SSH (Secure SHell) — применяется для безопасного входа в систему, пересылки файлов (SCP, SFTP) и форвардинга;
23 (TCP,UDP) — протокол Telnet — применяется для передачи текстовых сообщений в незашифрованном виде;
25 (TCP,UDP) — протокол SMTP (Simple Mail Transfer Protocol) — используется для пересылки почтовых сообщений между серверами. Сообщения отправляются в виде простого незашифрованного текста;
53 (TCP,UDP) — cлужбы доменных имён (такие как BIND);
67 (TCP,UDP) — Bootstrap Protocol (BOOTP) сервер BOOTP — предназначен для сервера, с которого выполняется загрузка бездисковых рабочих станций; также используется Dynamic Host Configuration Protocol (DHCP);
68 (TCP,UDP) — Bootstrap Protocol (BOOTP) клиент BOOTP — по этому протоколу выполняется загрузка бездисковых рабочих станций с сервера BOOTP; также используется Dynamic Host Configuration Protocol (DHCP);
69 (TCP,UDP) — простой протокол передачи файлов (Trivial File Transfer Protocol, TFTP);
80 (TCP,UDP) — протокол передачи гипертекста (HyperText Transfer Protocol, HTTP) для служб всемирной паутины (World Wide Web, WWW);
110 (TCP,UDP) — POP3 (Post Office Protocol Version 3);
123 (TCP,UDP) — сетевой протокол времени (Network Time Protocol, NTP);
143 (TCP,UDP) — Internet Message Access Protocol (IMAP) — используется для получения, организации и синхронизации сообщений e-mail;
161 (TCP,UDP) — простой протокол управления сетью (Simple Network Management Protocol, SNMP);
443 (TCP,UDP) — HTTPS (Hypertext Transfer Protocol Secure) — HTTP с шифрованием по SSL или TLS;
993 (TCP) — IMAPS (Internet Message Access Protocol с шифрованием по SSL или TLS);
995 (TCP) — POP 3 с шифрованием по SSL (POP3S);
3389 (TCP,UDP) — RDP — протокол удалённого рабочего стола;
8080 (TCP,UDP) — альтернативный порт HTTP;
Теория текст:
- Сетевые порты — что это такое
- Что такое TCP / IP порт
- TCP/UDP порты
- Сетевые протоколы: базовые понятия и описание самых востребованных правил
Теория видео:
- Что такое сетевой порт сайта, компьютера или другого устройства — список портов по умолчанию
- Сетевые порты и службы
- Объяснение сетевых портов
- Как проверить открытые порты сервера
ТЕСТ: Сетевые порты и службы (сокет)
Как использовать команды Linux ps, kill и nice для управления процессами
Управление процессами в Linux обеспечивает контроль и манипулирование запущенными программами в системе. Позволяет отслеживать состояние процессов, изменять их приоритеты, запускать и завершать выполнение программ. Наиболее частыми инструментами, используемыми системными администраторами, являются ps, nice и kill. Каждый из этих инструментов рассмотрим более подробно ниже.
Использование ps
Ps позволяет отображать и управлять процессами в операционной системе. Она предоставляет информацию о работающих процессах и позволяет мониторить их состояние. Также можно использовать команду ps для фильтрации и поиска конкретных процессов. Это полезная утилита для управления и анализа процессов в Linux.
Отображение списка активных процессов
Когда вы открываете терминал на Linux-системе, можно использовать команду ps без аргументов, чтобы отобразить список всех текущих процессов. Простой пример:
ps
Kопировать
В выводе команды отобразится список процессов, выполненных под вашим идентификатором пользователя (UID).
Отображение процессов определенного пользователя
Если необходимо отобразить список процессов только для определенного пользователя, вы можете использовать следующий синтаксис:
ps -u username
Kопировать
Замените username на имя пользователя, для которого вы хотите отобразить список процессов.
Отображение полного списка информации о процессах
Значение по умолчанию для команды ps отображает только основную информацию о процессах. Однако, вы можете получить более подробную информацию о процессах, используя следующую команду:
ps -aux
Kопировать
Такая команда отобразит полный список всех процессов и информацию о них, включая PID, родительский PID, статус, использование ресурсов и многое другое.
Отображение процессов в виде древовидной структуры
Для отображения процессов в виде древовидной структуры и визуализации связи между родительскими и дочерними процессами в Linux, можно воспользоваться следующей командой:
ps f
Kопировать
Такая команда покажет процессы, отображая их в виде древовидной структуры.
Отображение информации о процессе по определенному идентификатору процесса (PID)
Вы можете получить подробную информацию о процессе, зная его идентификатор процесса (PID). Вот пример команды:
ps -p PID
Kопировать
Замените PID на актуальный идентификатор процесса, чтобы получить информацию о нем.
Отображение процессов в реальном времени
Для отображения процессов в реальном времени, можно использовать команду top. Выйти из top можно, нажав клавишу q.
Фильтрация и сортировка вывода
Команда ps также поддерживает фильтрацию и сортировку вывода. Например, если нужно отобразить только процессы, связанные с конкретной программой:
ps -C program
Kопировать
Замените program на имя программы, для которой непосредственно необходимо отобразить процессы.
Конечно, это лишь основные примеры применения ps для управления процессами в Linux. Команда ps имеет еще множество других опций и флагов, позволяющих вам полностью контролировать и анализировать процессы в вашей системе. Для получения подробной информации о доступных опциях команды ps вы можете воспользоваться командой man ps. Она отобразит страницу справки, содержащую полное описание команды ps и ее опций.
Использование команды kill
Команда kill является мощным инструментом для управления процессами в операционных системах Linux. Она позволяет отправлять сигналы процессам, что позволяет контролировать их поведение.
Отправка сигнала процессу
Основное использование команды kill – отправка сигнала процессу. По умолчанию команда kill отправляет процессу сигнал TERM (15), что приводит к стандартной остановке процесса. Пример использования:
kill PID
Kопировать
Замените PID на идентификатор процесса, который вы хотите остановить.
Отправка других сигналов
Команда kill также позволяет отправлять другие сигналы процессу. Например, чтобы послать процессу сигнал KILL (9), который немедленно прекратит выполнение процесса, используйте следующий синтаксис:
kill -9 PID
Kопировать
Замените PID на идентификатор процесса.
Отправка сигнала группе процессов
С помощью команды kill можно отправлять сигнал всей группе процессов. Разные процессы могут иметь одинаковый идентификатор группы (PGID). Пример использования:
kill -SIGTERM -- -PGID
Kопировать
Замените PGID на идентификатор группы процессов.
Удаление «зомби»-процессов:
Kопировать
«Зомби»-процессы — завершенные, но не полностью удаленные процессы, которые все еще присутствуют в системе. Вы можете очистить «зомби»-процессы, отправив сигнал процессу PID. Пример использования:
kill -SIGCHLD PID
Kопировать
Замените PID на идентификатор процесса.
Проверка существования процесса перед отправкой сигнала
Если вы хотите убедиться, что процесс существует, прежде чем отправить ему сигнал, вы можете использовать параметр -0. Пример использования:
kill -0 PID
Kопировать
Замените PID на идентификатор процесса.
Использование имен процессов
Вместо идентификаторов процессов (PID) можно использовать имена процессов при работе с командой kill. Для этого используется команда pkill. Пример использования:
pkill process_name
Kопировать
Замените process_name на имя процесса.
Отправка сигнала на определенный поток процесса
Если процесс имеет несколько потоков, можно отправить сигнал только на определенный поток. Используйте следующий синтаксис:
kill -s SIGNAL -PID
Kопировать
Замените SIGNAL на сигнал и PID на идентификатор процесса.
Это основные примеры использования команды kill для управления процессами в Linux. Команда kill поддерживает другие флаги и сигналы, позволяющие более тонко настраивать управление процессами.
Использование nice
Когда в Linux запускаются различные процессы, они получают некоторое количество ресурсов системы для своего выполнения. Команда nice предоставляет возможность установить приоритет выполнения процесса, что позволяет контролировать используемые ресурсы. В этой инструкции рассмотрим, как использовать команду nice для управления процессами в Linux.
Понимание значения приоритета
Приоритет процесса в Linux измеряется числом, которое может варьироваться в диапазоне от -20 до 19. Более низкое значение приоритета означает более высокий приоритет выполнения процесса. Пользователи с правами суперпользователя (root) могут устанавливать отрицательные значения приоритета, тогда как обычные пользователи могут использовать только положительные значения.
Запуск процесса с помощью nice
Чтобы запустить процесс с определенным приоритетом, используйте команду nice перед командой выполнения процесса. Синтаксис команды таков:
nice -n значение команда
Kопировать
Например, чтобы запустить процесс с приоритетом 10, выполните следующую команду:
nice -n 10 команда
Kопировать
Здесь команда — команда, которая будет запущена с определенным приоритетом.
Отслеживание приоритета выполнения процесса
Чтобы проверить текущий приоритет выполнения процесса, воспользуйтесь командой nice без дополнительных параметров:
nice
Kопировать
Эта команда отобразит текущий приоритет выполнения процесса пользователя.
Изменение приоритета выполнения процесса
Если процесс уже выполняется, но вы хотите изменить его приоритет, можно воспользоваться командой renice. Синтаксис команды таков:
renice -n<новое_значение> -p<идентификатор_процесса>
Kопировать
Чтобы узнать идентификатор процесса, выполните команду ps или top. Например, чтобы изменить приоритет выполнения процесса с идентификатором 1234 на -5, введите следующую команду:
renice -n -5 -p 1234
Kопировать
Пример использования команды nice
Рассмотрим пример использования команды nice. Допустим, у нас есть процесс с командой sleep, который ждет 10 секунд:
sleep 10
Kопировать
Чтобы запустить этот процесс с приоритетом 5, выполните следующую команду:
nice -n 5 sleep 10
Kопировать
Теперь процесс будет выполняться с более низким приоритетом. Команда nice является мощным инструментом для управления приоритетом выполнения процессов в Linux. Она позволяет контролировать использование системных ресурсов и повысить эффективность выполнения процессов.
В данном обзоре рассмотрели основные инструменты для управления процессами в ОС семейства Линукс. Все они представляют собой довольно мощные утилиты для отображения информации о текущих процессах, завершения процессов и настройки приоритета выполнения процесса, что позволяет контролировать используемые ресурсы.
Задание 9. Nmap — инструмент для исследования и обеспечения безопасности сетей.
32 примера использования команды Nmap для Linux-систем
Задание 10. Подсети
степень двойки
Задание 11.
Ссылки:
Ссылки
- Курс: «Принципы маршрутизации и коммутации» (Cisco Networking Academy)
- Что такое DNS простыми словами
- Что такое ресурсные записи DNS
- ipconfig
- ifconfig или ip: в чем разница и их сравнение