Сообщество - GNU/Linux

GNU/Linux

1 151 пост 15 633 подписчика

Популярные теги в сообществе:

11

Ответ на пост «В чем же разница между оперативной памятью и виртуальной памятью»1

UPD:

https://www.baeldung.com/cs/virtual-memory-vs-swap-space - вот здесь можете почитать подробнее.

Виртуальная память - это это так называемое виртуальное адресное пространство и оно может быть осуществлено и без swap-раздела (Linux) или swap-файла (Windows), так как в действительности многим процессам не требуется занимать полностью всю физическую память то, что ты назвал оперативной памятью, что в принципе так и есть, только физическое её воплощение.

Благодаря виртуальной памяти ты всегда получаешь дамп-памяти процесса в случае ошибки с одними и теми же адресами, они относительны для выполняемого процесса. Операционная система симулирует её для процессов, выделяя каждому сегменты Hello "segmentation fault" (страницы) физической памяти и пересчитывает их относительные адреса в физические для доступа к значениям, когда тем выделяется отрезок (квант) времени выполнения. Таким образом каждый процесс считает, что ему принадлежит вся физическая память и даже больше.

Вопрос же возникает, что делать, когда вся физическая оперативная память израсходована? Ничего не остаётся, кроме как выгружать страницы на жёсткий (или какие там сейчас появились?) диск, вот для этого и нужен swap-раздел(файл). Хотя есть ещё некоторые функции у него, знатоки могут написать в комментариях.

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

36

Большое руководство по сетям и шифрованию трафика в Linux

Большое руководство по сетям и шифрованию трафика в Linux Linux, Timeweb, Безопасность, Программа, Информационная безопасность, Операционная система, Трафик, Длиннопост

Приветствую! В этой статье я бы хотел уделить внимание такой вещи как шифрование трафика на Linux системах. Наверное, каждый из нас прекрасно понимает, насколько важна защита нашей приватности. Ведь в эпоху, когда многие компании собирают данные, а иногда хакеры могут перехватить наш трафик, это становится особенно важно. Просто необходимо позаботиться о безопасности своих данных. Например, быть уверенным, что какая-либо корпоративная сеть не прослушивается злоумышленниками. Информационная безопасность сегодня — это не просто мода, а насущная необходимость. Постоянно растет киберпреступность, и защита трафика от перехвата — это основной аспект цифровой жизни человека или бизнеса.

Эта часть - вторая, первую вы можете прочитать по ссылке. А в этой части мы рассмотрим что такое прокси и какие типы бывают, что такое VPN, как устроено сквозное шифрование.

И соответственно, в этой статье не будет упоминаться то, про что я уже писал в первой. Начнем, господа присяжные заседатели!

❯ Прокси

Прокси-сервер — это промежуток между клиентом и сервером. Он обеспечивает скрытие IP-адреса, поэтому сторонним лицам намного сложнее отследить местоположение пользователя. Также он помогает настроить доступ к сайтам — например, к каким-то ограничить, или даже прослеживать и мониторить трафик пользователей. За счет кеширования данных страницы могут загружаться быстрее.

Прокси-сервер действует так:

Клиент -> провайдер -> прокси-сервер -> сервер

То есть провайдер знает, какой у пользователя IP и какой у него запрос, но сервер не будет знать пользовательский IP-адрес.

Прокси-сервер — это машина, которая содержит прокси IP-адреса.

IP-адрес прокси — это индивидуальный IP-адрес, который используется для сокрытия вашего реального адреса.

Прокси-сервер обрабатывает ваши запросы, но скрывает множество идентифицирующей информации. В ее числе исходный IP-адрес, геолокация, откуда пришел запрос, данные операционной системы (ОС) и многое другое. В общем, он помогает предотвратить легкое отслеживание вас третьими лицами. Работа прокси-сервера осуществляется на уровне приложений модели OSI (L7).

Существует много разных типов прокси, которые подразделяются по разным типам протоколов, анонимности, размещения.

Если говорить про типы размещения — то это банально централизованный и децентрализованный прокси. Тут все понятно — при централизованном типе прокси-сервера находится в одном центре, которые обслуживают сразу много клиентов, а при распределенном — прокси-сервера находятся в разных локациях, которое позволяет равномерно распределить нагрузку, и при случае падении одного сервера, другие прокси сервера останутся рабочими (а в централизованном типе с этим возникнут проблемы).

По анонимности и конфиденциальности уже поинтереснее. Есть прозрачный — никаких настроек, весь трафик с клиента сразу маршрутизируется на прокси. Данные пользователя не изменяются, IP-адрес не скрывается. Быстро, экономно но не безопасно. Противоположность прозрачному — анонимный. Он уже изменяет IP-адрес клиента, но он не скрывает, что используется прокси, и сайты могут понять, что клиент использует прокси, но не больше. Еще более безопасным считаются искажающие прокси — они меняют IP адрес в точности как и анонимный, но уже скрывают факт использования прокси, то есть сервер может понять что трафик идет через дополнительный шлюз, но сам клиент остается скрытый. И последний тип — это приватный. Полностью скрывают данные о пользователе и постоянно меняют IP-адрес подключения.

Ну и перед тем, как мы затронем тему типов прокси по протоколу, стоит также рассказать о том, что прокси также могут различаться и по уровню доступности:

  • Публичные — открытые, бесплатные, но могут быть медленными, небезопасными и ненадежными. Если найти какой-то сайт с бесплатными прокси-серверами, то там будут именно эти с вероятностью 90%.

  • Приватные — платные, но быстрее и безопаснее публичных.

  • Выделенный — то есть уже целый высокопроизводительный сервер с выделенными ресурсами. Они позволяют настроить прокси, то есть например сделать возможность использования только одним клиентом или сделать черный список клиентов.

  • Прозрачные — мы уже говорили, просто маршрутизация с порта клиента на порт прокси-сервера.

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

Прокси удобны, позволяют контролировать и мониторить трафик, а также могут обеспечить базовую анонимность. Стоит задеть тему различий с VPN:

  1. Прокси это L7, самый высокий уровень сетевой модели OSI, когда как VPN — это L3 или L4.

  2. В VPN могут использовать криптографические алгоритмы для обеспечения шифрования трафика и набор ключей.

  3. Стоимость VPN обычно дороже прокси.

  4. Прокси обычно быстрее VPN

А теперь наконец перейдем к типам прокси по протоколам.

HTTP

Данный тип прокси работает с HTTP-запросами. В основном для базового серфинга - то есть кеширования страниц, настройки доступа к сайтам. Основное применение он находит в корпоративных сетях, для ограничения сотрудников (самый простой пример — блокировка доступа к социальным сетям).

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

HTTPS

Тоже самое, что и HTTP, но более безопасный. HTTPS гарантирует безопасное соединение между клиентом и сервером, защищает данные от сниффинга. В основном его используют когда важна безопасность и сохранность данных, а не просто веб-серфинг.

SSL

Мы уже обсуждали SSL/TLS протокол выше. Этот тип прокси сервера создает только одно TCP-соединение. В HTTP-proxy создается два соединения — от клиента к прокси и от прокси до сервера. Но SSL работает по другому: после запроса на сервер, прокси создает запрос подключения на сервер и создает TCP-канал.

Преимущество данного типа прокси в том, что его можно использовать как и для доступа к защищенным (HTTPS) и незащищенным (HTTP) серверам.

SOCKS

SOCKS — SOCKets Secure. Специальный протокол для работы с интенсивным трафиком, например потоковая загрузка/передача данных или для P2P.

SOCKS использует TCP соединение, то есть все пакеты гарантированно будут доставлены. При использовании этого типа прокси интернет-трафик маршрутизируется через прокси-сервер по TCP от имени клиента.

SOCKS, как большинство прокси, скрывает IP адрес клиента, гарантируя базовую конфиденциальность.

Установка прокси в несколько шагов

Здесь я рассмотрю прокси-сервер Squid и как его можно установить за пару шагов.

Большое руководство по сетям и шифрованию трафика в Linux Linux, Timeweb, Безопасность, Программа, Информационная безопасность, Операционная система, Трафик, Длиннопост

Squid

Squid — это один из самых популярных HTTP/HTTPS прокси-серверов с возможностью перенаправления и кэширования трафика. Он скрывает IP адреса клиентов, кэширует веб-страницы, да и в принципе довольно быстрый прокси...

ЧИТАТЬ ДАЛЕЕ ↩ (без регистрации и СМС)

Материал получился достаточно объемным и все подробности, к сожалению, не влезли :(

Большое руководство по сетям и шифрованию трафика в Linux Linux, Timeweb, Безопасность, Программа, Информационная безопасность, Операционная система, Трафик, Длиннопост

Написано специально для Timeweb Cloud и читателей Пикабу. Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале.

Хочешь стать автором (или уже состоявшийся автор) и есть, чем интересным поделиться в рамках наших блогов — пиши сюда.

Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать авторские проекты.

📚 Читайте также:

Показать полностью 2
7

Если не работает Redshift (ночная подсветка дисплея)

Если не работает Redshift (ночная подсветка дисплея) Linux, Redshift, Компьютерная помощь, Программа

Если не работает Redshift (скорее всего дело в определении местоположения), то проделываем следующее:

1. Определяем наши координаты, например, через яндекс карты.

Если не работает Redshift (ночная подсветка дисплея) Linux, Redshift, Компьютерная помощь, Программа

Широта и долгота

2. В папке по пути ~/.config создаем файл под названием redshift.conf

3. Вписываем в него следующее:

[redshift]
temp-day=6500
temp-night=4500
fade=1
location-provider=manual

[manual]
lat=55.7
lon=37.6

4. Сохраняем

5. Закрываем, открываем (другими словами перезапускаем) Redshift.

Параметры temp-day, temp-night отвечают за температуру света, а lat и lon за широту и долготу, эти параметры можно менять под ваши предпочтения.

Показать полностью 1
62

Идеальный скрипт на bash 2 | Bash ideal script 2

Сегодня продолжим изучать наш идеальный скрипт из предыдущего видео (видео прошлой части). Разберёмся с непонятными конструкциями в bash [] и [[]] и обсудим, когда можно не ставить кавычки вокруг переменных. Ниже видео с разбором, а кому удобнее текстовый вариант — добро пожаловать ниже.

Давайте разбираться. Двойные квадратные скобки в современном bash - это ключевое слово, такое же, как for. Проверить это можно с помощью команды type. Одинарные квадратные скобки - это встроенная команда, такая же, как test. Что из этого следует? Да фиг знает, по факту. Просто интересно. А вот внутри одинарных и двойных квадратных скобок можно использовать разные конструкции.

Для сравнения [[ и [ нашёл для вас очень наглядную таблицу

Идеальный скрипт на bash 2 | Bash ideal script 2 Telegram, Программирование, Разработка, IT, Обучение, Командная оболочка bash, YouTube, Видео, Длиннопост

Источник: https://mywiki.wooledge.org/BashFAQ/031

Например, знак меньше для одинарных скобок нужно экранировать, как и скобки. Для двойных скобок работают привычные программисту логические операции, регулярные выражения и прочие приятные штуки. Глобально, нет причин сейчас использовать одинарные квадратные скобки. Разве что ради переносимости.

Но про переносимость куда мы говорим? Действительно, двойные квадратные скобки появились не сразу. В разделе 7.1 книги Advanced Bash-Scripting Guide (версия на русском) написано, что конструкция появилась в bash версии 2.02. Кстати, это очень большая и вкусная книжка по bash, рекомендую её, если вы зачем-то решили стать в баше экспертом. Там под тысячу страниц, материал не для слабых духом. Есть и на русском, и на английском.

Так когда появились двойные скобки? Проверим changelog баша, там можно найти первое упоминание конструкции [[]] в версии 2.02. А потом можно найти релиз, и это 1998 год. 1998, Карл. Надеюсь, все обновились с тех пор.

В man bash можно найти описание [[]], лучше посмотрите в видео этот фрагмент.

Соберём на коленке пример демонстрации важности двойных кавычек.

a="hello world"

if [[ $a == "hello world" ]]

then

echo "success"

fi

# в видео показан однострочник ниже

if [[ $a == "hello world" ]]; then echo "success"; fi

И всё хорошо, внутри [[]] действительно можно не применять кавычки, bash всё сделает корректно. Но потом модифицируем пример

# так неправильно!

if [[ $a == "hello world" ]]; then echo "success"; touch $a; fi

И вот этот код уже ломается. Вместо создания одного файла "hello world" создаются два отдельных файла. Потому что в touch надо кавычками защищать переменную

# так нормально, но тяжело объяснить, где нужны кавычки

if [[ $a == "hello world" ]]; then echo "success"; touch "$a"; fi

А теперь объясните джуну, где надо ставить кавычки, а где не надо. Самое простое правило - кавычки должны быть везде. Великий и ужасный Гудвин, ой, то есть баш, очень неустойчив к разного рода ошибкам. По опыту жить проще с ядрёным стайл-гайдом, по которому чисто визуально можно выявить ошибку. Есть переменная? Должны быть кавычки.

# так безопаснее всего

if [[ "$a" == "hello world" ]]; then echo "success"; touch "$a"; fi

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

Утилита time выдаёт временные характеристики работы программы. Сейчас нас интересует блок real, где указано общее время работы программы согласно системному таймеру, то есть время от запуска команды до её завершения

time echo $( i=0; while [[ $i -lt 1000000 ]]; do i=$(( $i+1 )) ; done; echo $i )

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

Вернёмся к замене -lt на треугольный знак меньше. Попробуем

# ОШИБОЧНОЕ 2 итерации вместо 1кк

time echo $( i=0; while [[ $i < 1000000 ]]; do i=$(( $i+1 )) ; done; echo $i )

Вау! Отработало мгновенно. Но неправильно. Обратите внимание на вывод - прошло только 2 итерации. Потому что два больше миллиона, если смотреть на них как на строки. Строковое сравнение идёт посимвольно, и два больше 1 - истина, дальше смотреть не требуется.

По факту, нужно использовать арифметическое выполнение

time echo $( i=0; while (( $i < 1000000 )); do i=$(( $i+1 )) ; done; echo $i )

А теперь ещё раз. Как вы думаете, в большом скрипте легко обнаружить такую ошибку? Это отладочный ад. Поэтому используйте -lt и аналогичные конструкции в баше, чтобы сэкономить себе время

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

Заходите в наш канал DevFm в телеграмм, где выходят годные материалы для middle плюс python разработчика. Если хотите разобраться с азами Linux, то добро пожаловать в наш бесплатный курс cli-for-dev на степике. Буду рад, если вы поддержите нас позитивными оценками и обратной связью по курсу.

Показать полностью 1
32
Вопрос из ленты «Эксперты»

Как настроить обход блокировки Youtube в Linux?1

GoodbyeDPI, по которому на Пикабу выложена куча постов, предназначен для Windows. Для Линукса есть аналогичный софт - Zapret от пользователя гитхаба bol-van. Но там довольно сложная инструкция, обычный юзер точно не справится. Есть ли инструкция по настройке Zapret для обычных пользователей? Если есть, поделитесь ссылкой пожалуйста. Или выложите отдельным постом. Уверен, не мне одному будет полезно.

Пробовал настроить белый список в Cencor Tracker, приложение Antizapret для браузера, отключать Experimental QUIC protocol (браузер Brave). Сначала помогает, но потом все равно грузиться перестает

Можно оплатить ВПН (у меня приложение Whoer VPN в браузере) но есть подозрение, что его скоро тоже заблокируют.

Или предложите свои способы обхода блокировки для Линукса.

295

Ответ на пост «Очередное пробитие дна на Github»1

Немножечко о политике в опенсорсе.
Много раз писал об этом к комментах, но решил оформить отдельным постом. Веселых картиночек не будет.

Почему использовать опенсорс как инструмент политической борьбы - это НЕПРИЕМЛЕМО в любом случае?

Опенсорс, как бы это не парадоксально было - это общественный институт, основанный в базе своей на доверии и добросовестности. Посмотрите пункты 15 и 16 GPLv3. В опенсорс постепенно приходили компании, он обрастал авторитетами, экосистемой, базой пользователей. Опенсорс не занимается дискриминацией людей. Т.е. это неограниченное доверие строилось ГОДАМИ.

И вот приходит вася пупкин, который в свой пакет на npm/pip встраивает оскорбления для русских, всякие Stand with Urkaine и прочее. Заслуживает ли он теперь неограниченного доверия? Сами подумайте.

Но проблема куда глубже, потому-что вася пупкин своим перформансом затрагивает кучу других разработчиков, и весь опенсорс в целом. Когда он все-таки дорастет морально до того, чтобы сделать реальную гадость, новость ударит по доверию ко всему репозиторию, в т.ч. и тупо финансово. Ваши донаты банально пойдут на аудиты безопасности. И это выглядит надуманно, лишь пока не стало массовым.

Вот, кстати, в трех словах: https://habr.com/ru/news/656219/

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

Поэтому у меня одна просьба к "политически подкованным". Боритесь в своем личном блоге, имеете полное моральное право. А не хотите - идите нахуй закройте свой софт, а лучше продавайте, чтобы не вредить людям, которые каждый день пытаются сделать мир лучше.

Показать полностью
Отличная работа, все прочитано!