К основному контенту

👩🦽 Настройка bridge на Debian , выполняющий роль межсетевого экрана

# Задача: хотим внедрить в своей сети мост (bridge) на Debian,# выполняющий также задачи межсетевого экрана,# т.е. получить возможность фильтрации трафика, не сильно меняя топологию# и совсем не меняя адресацию в сети и шлюз по умолчанию.# Желательно, чтобы мост-МЭ при этом вообще не имел IP-адресов# на интерфейсах (обращенном наружу и смотрящему в защищаемую сеть)# Администрировать его и смотреть на нем логи предлагается локально# или путем подключения к выделенной сети администрирования# Ставим его в сети так, чтобы одним интерфейсом моста он был# подключен к провайдеру или другому уже имеющемуся шлюзу по умолчанию,# а другой «смотрел» в защищаемую ЛВС, например в порт коммутатора# Таким образом, приходящий извне трафик прежде чем попасть в защищаемую сеть# будет всегда проходить через мост на котором мы его будем фильтровать# с помощью iptablesСхема тестового стенда

Будильник на Bash

Когда-то, уже достаточно давно мне понадобился будильник, достаточно громкий, чтобы поднять мертвого, достаточно разнообразный, чтобы не надоедать и при этом достаточно тяжело выключаемый, чтобы не делать этого "на автомате". Всем этим требованиям отлично соответствовал персональный компьютер и решение этой несложной задачи было найдено при помощи интернет-радио и двух консольных утилит: cron и rtcwake.

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

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

Содержание статьи: Что такое Bash Что нам необходимо Создание будильника на Bash Что такое Bash

Одной из самых интересных особенностей операционных систем на базе GNU/Linux является bash. Bash это интерпретатор командной строки, по сути, скриптовый язык программирования, на котором вполне возможно писать достаточно сложные программы, так называемы shell-скрипты или сценарии. Естественно, что на фоне более "серьезных" собратьев по семейству интерпретируемых языков, подобных java или python, функциональность bash  смотрится куда более бедно, но зато он плотно интегрирован в саму систему, а это означает, что значительно проще наладить взаимодействие между ним и многими системными утилитами. Что нам необходимо

С тех заданием все просто: нам необходим простой, надежный, громкий и разнообразный будильник, который сможет поднять мертвеца. И написан он должен быть исключительно на Bash, то есть системными средствами Linux.

Инструменты: Bash - это, я думаю, понятно любому, интерпретатор командной строки, часть любого Linux - дистрибутива. rtcwake  - встроенный в ядро инструмент, позволяющий использовать драйвер для RTC (Real Time Clock), поддерживающий стандартные флаги для просыпания. cron - планировщик задач. Уже установлен в большинстве дистрибутивов. Создание будильника на Bash

Для начала изготовим скрипт, представляющий собой сигнал будильника. Создаем папку wakeupdude (название строго индивидуально и отражает ваше чувство юмора (да, у меня все с ним плоховато) и серьезность отношения к поставленной задаче), в этой папке создаем файл alarm.sh.

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

#! /bin/bash

cromium-browser https://radio.yandex.ru/user/zmeigorynych3

Сохраняем. Открываем терминал в этой же папке и прописываем:

sudo chmod +x alarm.sh

Вообще, советую запомнить эту команду, поскольку она позволяет, используя терминал присвоить любому файлу любые права доступа ( "+x" означает, что файл отныне будет исполняемым).

В принципе, здесь можно использовать не только интернет-радио, но и запуск музыкальным плеером определенного файла или плей-листа.

Сигнал готов, теперь приступаем к написанию основного скрипта, который будет отвечать за "завод" нашего будильника. Сперва создаем в нашей папке файл wake.sh , в котором записываем следущее:

#! /bin/bash #Задаем имя первой переменной, отвечающей за дату пробуждения d='' #просим ввести эту переменную ( текст внутри кавычек можно изменять по собственному желанию, однако, советую оставить подсказку в скобках, поскольку именно в таком формате необходимо вводить дату, почему объясню чуть ниже) echo -n "В какой день вас разбудить? (гггг-мм-дд)" #Просим компьютер считать введенную выше переменную read d #вводим следующую переменную,которая будет отвечать за час пробуждения согласно той же схеме h='' echo -n "В какой час вас разбудить? (чч)" read h # С третьей переменной, отвечающей за минуты пробуждения, будет немного сложнее, поскольку установить одновременно время пробуждения и время срабатывания нашего будильника мы не сможет (не сработает), нам нужно выполнить с ней простое арифметическое действие, поэтому наша следующая переменная должна быть целым числом, а не строкой, как остальные. В этом нам поможет команда declare -i. В остальном, действует точно так же, ка ки с предыдущими переменными. declare -i m='' echo -n "Во сколько минут избранного часа вас разбудить? (мм)" read m # как я писал выше, просто так взять и назначить время пробуждение и срабатывание будильника на одну и ту же минуту нельзя, поэтому мы укажем компьютеру, что срабатывание будильника должно быть через одну минуту после пробуждения. declare -i z=0 z=$m+1 #По причине того, что я стремился упростить всю имеющуюся структуру и не усложнять ее лишними конструкциями, в ней имеется один довольно существенный баг: при установке переменной "m", то есть минутпробуждения на 59, наш будильник не сработает. #В следующих двух строках выводится отладочная информация, позволяющая еще раз взглянуть на данные, которые мы ввели и еще раз проверить их. echo "$d $h:$m" echo "$z" #даем себе время проверить данные ( в примере 20 секунд) sleep 20 #теперь преобразовываем  понятный нам формат даты в формат, который поймет rtcwake (помните, я говорил, что важно вводить данные именно так, как указано в шаблоне? Так вот, это именно потому, что следующая утилита по-другому их просто не воспримет) u=$(date +%s -d "$d $h:$m") #снова отладочная информация, нужная только для того, чтобы понять, что введенные нами данные распознаны успешно. echo "$u" #следующая команда вписываетв ремя пробуждение в cron. ВАЖНО!!! ПОМНИТЕ, ПРЕДАСТАВЛЕННАЯ НИЖЕ КОМАНДА СОСТАВЛЕНА ИМЕННО ТАК, ЧТОБЫ ПОЛНОСТЬЮ ПЕРЕПИСАТЬ СОДЕРЖИМОЕ CRONTAB.Это сделано для того, чтобы в нем не скапливалось огромное количество конфликтующих задач. Однако, если вы используете его для других задач, выполняемых, по расписанию, они будут затерты. echo "DISPLAY=:0 $m $h * * *  /home/USERNAME/wakeupdude/alarm.sh" |crontab - # естественно, что /home/USERNAME/wakeupdude/alarm.sh это путь к вашему файлу, в котором записан ваш сигнал. #Ну и последняя часть - приказ компьютеру на засыпание. sudo rtcwake -m mem -t $u #При исполнении команды компьютер затребует пароль администратора, в принципе, это можно отключить через файл sudoers, но я не советую, поскольку дает нам возможность отказаться от выключения компьютера, если обстоятельства изменились.

Теперь сохраняем файл и с помощью команды chmod +x  даем ему права исполняемого. В принципе, наш будильник готов, но, поскольку мы живем в благословенном 2018 году, то каждому уважающему себя приложению нужен ярлык на рабочий стол, то мы его и изготовим:

В нужной папке создадим файл с расширением .desktop, откроем этот файл в редакторе, где и пропишем следующее:

[Desktop Entry] Name=Будильник Terminal=true Icon=/путь/до/картинки/которая/нам/нравится.png Exec=/путь/до/нашего/скрипта Type=Application

Закрываем с сохранением и при следующем запуске выбираем "сделать исполняемым".  Наш будильник готов.

Комментарии


Дистанционная компьтерная помощь, удаленная компьютерная помощь онлайн.

Популярные сообщения из этого блога

Лучшие плагины для OBS Studio

Open Broadcast Software или OBS - это свободное программное обеспечение с открытым исходным кодом для стриминга аудио и видео данных в сеть интернет. Программа полностью кроссплатформенная и может работать в Windows, Linux или MacOS. Это отличная альтернатива для таких программ, как Wirecast и XSplit. OBS использует для вещания стандартный протокол обмена сообщениями в реальном времени, а поэтому может транслировать данные в любой сервис, поддерживающий это, например, Yotube. Несмотря на широкие возможности OBS, программа поддерживает еще и множество плагинов. В этой статье мы рассмотрим лучшие плагины для OBS Studio, которые вы можете использовать. Содержание статьи: Лучшие плагины OBS Studio 1. Browser Source Plugin 2. Video Source Plugin 3. Simple Scene Switcher 4. DirectShow Audio Source 5. CLR Browser Source 6. OBS Remote 7. AMD Advanced Media Framework Encoder 8. Text Source Plugin Выводы Лучшие плагины OBS Studio Чтобы найти плагины OBS Studio для Video пользователям пр…

Лучшие аналоги Paint для Linux

Когда я работал в Windows, я часто использовал стандартную программу редактора изображений Windows - Paint. Не всегда нужен очень и многофункциональный инструмент вроде Photoshop или Gimp. Иногда, чтобы подправить ту или иную картинку, дорисовать на ней несколько фигур или вставить текст достаточно простого, легкого в освоении графического редактора вроде Paint. В Linux таких программ довольно много. В этой инструкции мы рассмотрим лучшие аналоги Paint для Linux. В этот список не будут включены такие программы, как Gimp и Krita, ведь это полнофункциональные графические редакторы, векторные редакторы, такие как Inkscape мы тоже рассматривать не будем. А теперь перейдем к списку. Содержание статьи: KolourPaint MyPaint Gnome Paint XPaint Pinta mtPaint GPaint Rassam-paint Выводы KolourPaint На первом месте в списке аналогов Piant для Linux будет KoloutPaint. Это стандартный графический редактор для окружения рабочего стола KDE. Он поддерживает множество форматов изображений PNG, J…

Подключение OneDrive в Linux

OneDrive (Ранее известный как SkyDrive) это популярное облачное хранилище файлов от Майкрософт. Сейчас OneDrive бесплатно предоставляет 7 гигабайт пространства новым пользователям. Как вы знаете OneDrive хорошо интегрирован с другими продуктами компании  Microsoft. В OneDrive Также есть официальный клиент который автоматически загружает ваши видео и фотографии с камеры в облако. Но к сожалению этот клиент недоступен для операционных систем семейства Linux. Но не все так плохо. Сообщество открытого программного обеспечения уже нашло решение. Это opedrive-d от Boilermaker. Запустившись как демон программа автоматически синхронизирует локальную папку с облаком OneDrive. Содержание статьи: Установка Onedrive-d в Linux Настройка Синхронизация локальной папки с OneDrive Установка Onedrive-d в Linux Несмотря на то что onedrive-d разрабатывается для Ubuntu/Debian, CentOs/Fedora/RHEL поддерживается тоже хорошо. Для установки достаточно набрать несколько команд: $ git clone https://gith…