![Khasan](/img/default-banner.jpg)
- Видео 15
- Просмотров 114 511
Khasan
Добавлен 20 окт 2011
bash часть 5 (функции, скрипты на базе функции)
Функция Bash, по сути, представляет собой набор команд, которые могут быть вызваны множество раз. Цель функции - сделать ваши скрипты Bash более читабельными и избежать повторного написания одного и того же кода. По сравнению с большинством языков программирования, функции Bash несколько ограничены.
В этом уроке мы рассмотрим основы функций Bash и посмотрим, как их использовать в ваших оболочковых скриптах. Напишем пару полезных скриптов.
В этом уроке мы рассмотрим основы функций Bash и посмотрим, как их использовать в ваших оболочковых скриптах. Напишем пару полезных скриптов.
Просмотров: 99
Видео
bash часть4 (полезные скрипты, Массивы Bash)
Просмотров 146День назад
* В предыдущих материалах мы обсуждали циклические и условные операторы bash-скриптов, говорили о полезных инструментах, но до сих пор рассматривали лишь небольшие фрагменты кода. На данном уроке мы напишем пару полезных скриптов. А именно, два примера. - Первый - скрипт для чтения содержимого файла, - Второй- скрипт, выводящий список файлов в заданном каталоге. они будут полезными для написани...
bash часть3 (Операторы цикла while until for)
Просмотров 120День назад
Поскольку Bash является языком командной строки, мы получаем довольно богатый набор функций, которые позволяют использовать программистские навыки для выполнения задач в терминале. Мы можем использовать циклы и условные операторы в сценариях Bash, чтобы выполнять некоторые повторяющиеся и сложные задачи простым программным способом. В этом уроке мы сосредоточимся на циклах while и for в сценари...
bash часть2 (if/then - case)
Просмотров 242День назад
bash часть2 (if/then - case) Операторы условия позволяют нам принимать решения в наших Bash-сценариях. Они позволяют нам решать, запускать или не запускать фрагмент кода, основываясь на условиях, которые мы можем задавать. Операторы условия, в сочетании с циклами (которые мы рассмотрим в следующем разделе), позволяют нам создавать гораздо более сложные сценарии, которые могут решать более крупн...
nftables [ ЧАСТЬ 3 ] | межсетевой экран a.k.a. firewall
Просмотров 2,6 тыс.2 года назад
nftables - межсетевой экран, проект netfilter, разработанный для замены существующего фреймворка {ip,ip6,arp,eb}tables. Предоставляет новую систему фильтрации пакетов, пользовательскую утилиту ntf которую буду рассматривать в этом ролике Тематика достаточно большая и в некоторых моментах требует глубоких знаний сети от пользователя, в данном руководстве я постарался собрать простые команды для ...
nftables [ ЧАСТЬ 2 ] | межсетевой экран a.k.a. firewall (ссылка на док в описании)
Просмотров 3 тыс.2 года назад
Команды можно посмотреть по ссылки: @k_hasan-sintaksis-nft nftables - межсетевой экран, проект netfilter, разработанный для замены существующего фреймворка {ip,ip6,arp,eb}tables. Предоставляет новую систему фильтрации пакетов, пользовательскую утилиту ntf которую буду рассматривать в этом ролике Тематика достаточно большая и в некоторых моментах требует глубоких знаний сети от пользовате...
nftables [ ЧАСТЬ 1 ] | межсетевой экран a.k.a. firewall (ссылка на док в описании)
Просмотров 10 тыс.2 года назад
Команды можно посмотреть по ссылки: @k_hasan-sintaksis-nft nftables - межсетевой экран, проект netfilter, разработанный для замены существующего фреймворка {ip,ip6,arp,eb}tables. Предоставляет новую систему фильтрации пакетов, пользовательскую утилиту ntf которую буду рассматривать в этом ролике Тематика достаточно большая и в некоторых моментах требует глубоких знаний сети от пользовате...
Управление и настройка сети в Linux с помощью утилиты nmcli (ссылка на док в описании)
Просмотров 1,7 тыс.2 года назад
Команды можно посмотреть по ссылке: @k_hasan-konfiguraciya-setevyh-interfeisov Вы можете использовать различные инструменты для настройки сетевых подключений, как графических так и консольно командных, графические удобны своей простотой, а командные удобны тем что их можно использовать в различных сценариях, в этом видео вы познакомитесь с консольной утилитой nmcli (Network Manager Comma...
Управление службами Linux
Просмотров 1,1 тыс.2 года назад
В современных дистрибутивах Linux (начиная с Debian 8, Ubuntu 16.04, CentOS 7) в качестве системы инициализации используется Systemd. Systemd запускается при старте сервера (после загрузки ядра) и инициализирует службы, необходимые для работы сервера и системы. Systemd содержит инструмент systemctl, который позволяет пользователю управлять работой служб в фоне: запускать и останавливать их, про...
Обновления ядра debian 11 путем компилирования
Просмотров 3,3 тыс.2 года назад
Большинство дистрибутивов Linux основаны на предопределенном ядре. Но если вы хотите отключить несколько параметров и драйверов или попробовать экспериментальные исправления, вам необходимо скомпилировать ядро Linux. В этом видео ролике вы узнаете, как обновить ядро с помощью компилирования ядра Linux на основе дистрибутива Debian 11 Видео ролик создан в качестве учебного пособия для студентов ...
обновления ядра debian 10 путем компилирования
Просмотров 5732 года назад
Большинство дистрибутивов Linux основаны на предопределенном ядре. Но если вы хотите отключить несколько параметров и драйверов или попробовать экспериментальные исправления, вам необходимо скомпилировать ядро Linux. В этом видео ролике вы узнаете, как собрать и скомпилировать ядро Linux с нуля на основе дистрибутива Debian 10 Видео ролик создан в качестве учебного пособия для студентов учебног...
Агрегирование каналов или EtherChannel
Просмотров 9 тыс.9 лет назад
технология, которая позволяет объединить несколько физических каналов в один логический
Bash с человеческим лицом!
Отличный урок!
При открытии портов в input "tcp dport {80, 8080} counter accept" получается что мы эти порты всем открываем и они без настройки prerouting будут доступны
А можно менять айпи на VPS где купил на другую?
Наконец-то понял так, что смогу объяснить другому! Спасибо автору!
а ещё можно параллельную компиляцию. То есть добавить к make deb-pkg ключ -j (количество ядер +1). Если этого не сделать, сборка идёт в 1 поток и занимает уйму времени. Так например на процессоре с 4мя ядрами делаем make deb-pkg -j5 . Процессор не простаивает и мы не теряем время. Если в /dev/shm достаточно места, то можно и там собирать, ещё быстрее будет. :) . Ну это когда у вас от 32гб озу минимум. Фокус с ключом -j работает практически везде где есть команда make.
Благодарю
Хасан, спасибо большое, прекрасное видео, продолжай в том же духе) надеюсь выпустишь курс по линукс)
Уже выпустил )
academy.it-bilim.uz/ru/
@@KhasanKarabayev отлично, вот только цен на сайте нет )
@@KhasanKarabayev еще нет возможности оставить заявку из РФ, не позволяет шаблонизация инпута телефона
@@KhasanKarabayev в чатике никто не отвечает
Огромное спасибо!!! 2024 год, но до сих пор статей про nftables кот наплакал.
Здравствуйте. То что вы показали с файлом это не работает и ломает полностью nftables. Потом просто пишет консоль nft нет такой команды. И в 2023 Debian 12 этот скрипт как вы показали не работает .
Добрый день, скорей всего где то вы ошиблись
нет я не ошибся просто перед командой приходится ставить /sbin/@@KhasanKarabayev
Значит с местоположение ошиблись
а почему сразу не отредактировать файл nft.conf ? чисто в образовательных целях?
Черевато последствиями, опасно
@@KhasanKarabayev хоть какую-то конкретику можно: в чем? как? пример может какой-то прям единичный хотя бы. ясно, что это не просто так, но вот не ясно в чем именно подвох. спасибо.
@@KhasanKarabayev скрипт, который формирует в итоге таблицу командами, вполне однозначно вроде предопределяет итоговый результат в конфиге. тот же результат, только формат подачи другой, который фактически все равно транслируется и потом сохраняется в конфиге.. и грузится потом из конфига.
Например если случайно ошибетесь в конфиге и сохраните при этом случайно заблокировав себе же доступ по ssh, то разблокировать можно только через рабочий стол (зайдя через интерактивный режим), удаленно через ssh востановить не сможете
@@KhasanKarabayev это понятно. в этом плане скрипт лучше тольк тем, что не сохраняет конфигурацию после рестарта. для всяких VDS и тд это не важно, т.к. там рестарт делается через панель управления, как собственно и интерактивный доступ. а вот кусок железа даже дома тольк с кнопкой рестарт либо полный сброс - это да.. будет неприятно. но я думал, что что-то может еще другого плана. но и на этом спасибо.
За подробность спасибо!
Добрый день. Подскажите как переключать получение dns адресов? (Автоматический или ручкой) Явно задаю DNS, смотрю текущие DNS и вижу что днс адреса провайдера. Если посмотреть в GUI то там в настройках установлено "получить автоматически". СПАСИБО
Молодец парнишка! А наи убунту nmcli присутствует?
В убунту по дефолту netplan, но можно его заменить на NetworkManager
@@KhasanKarabayev спасибо за ответ. У Вас есть телеграмм канал? Привет из Ангрена и Саратова!
огромное спасибо, очень последовательно и понятно !
Добрый день. Просьба о четвертой части. Работа со списками, аналог ipset
Здравствуйте. Хотел спросить такую штуку: можно ли прикрутить логирование к политике по-умолчанию (drop)?
Да, можно, нужно составить кастомную цепочку правил
Отличный гайд. Спасибо
Никогда не используйте bash скрипт для конфигурации nftables! Есть малая (но не нулевая) вероятность частичного применения правил. Для конфигурации используется nftables скрипт с шибангом #!/usr/sbin/nft -f правила в котором применяются атомарно в рамках одной транзакции
шпасиба!
спасибо, было бы здорово увидеть продвинутую часть
Спасибо
Шикарное видео, большое спасибо! Подписка, лайк!
классно
Хорошо объяснили, спасибо.
Спасибо за материал. Кстати, чтобы постоянно смотреть обновленные правила необязательно писать скрипт. Есть отличная команда watch. Т.е. watch -n 1 'nft list ruleset' будет делать тоже что и ваш скрипт.
Это если дефолтные 2 секунды чем-то не устраивают и непременно 1с надо. По мне так и вовсе watch nft list ruleset хорошо. Без всяких кавычек, чмодов и бессмысленного скриптописания.
Спасибо за ролик👍
Спасибо за труд. Хотелось бы немного узнать про Oper Key. Последнее время про него очень много говорят. Особенно в контексте когда нужно соединить в портчанел разновендорное оборудование.
Большое спасибо!
Спасибо большое за отличный вебкаст. Вопрос про сохранение правил. Все сделал как в вебкасте, в итоге nft list ruleset показывает мои правила + далее правила для таблиц ip6. Команда flush ruleset их не очистила? У меня виртуалка Centos 8 stream, если это важно.
есть ли у вас возможность записать вебкаст по сетам? iptables использовал в связке с ipset, слышал что у nft появились свои сеты, но информации пока не очень много по ним.
очень вовремя, спасибо
Добрый вечер, еще один вопрос интерисует: Если на output (изходящие) ставить drop, то что нужно открыть что бы система нормально функционировала. Правильно ли будет ставить на OUTPUT такие правило, и достаточноли этого если правильно: nft add rule ip filter OUTPUT ct state invalid counter drop nft add rule ip filter OUTPUT ct state established counter accept nft add rule ip filter OUTPUT counter drop Хотя помню что то что большими буквами это всего лишь имя, и тогда получается что это дубликация что и в инпуте. Или для output будет правильней в таблице поставить дроп, если да то опять тот-же вопрос, что нужно тогда открыть, какие правила вписать для нормального функционирования системы? Помню когда я в iptables на output ставил дроп то сеть перестовала работать, а огда делал это через gufw то все норм. Подскажите пожалуйста
Еще один вопрос забыл написать, по поводу ipv6 Если мы указывает правила на ipv4 то ipv6 по умолчанию порты будут открыты, верно? Если это так: то получается конце правил ipv4 нужно добавить еще одну таблицу для ipv6 только с уже везде с drop?
Для ipv6 другой тип цепочки, если на компьюторе не используется ipv6 то его настраивать вовсе не нужно
Здраствуйте, все работает)) Позволите пару вопросов по существу: 1) Можноли дабовлять фильтрацию по мак адресу для 80,443,53 портов или это через чур. Или всетаки будет более безопасным и ни лишним. 2) Как лудше сделать и большая ли разница: В таблице инпупт сразу поставить drop Или лудше в конце поставить: nft add rule ip filter INPUT counter drop
По мак адресу фильтрация возможно только в локальной сети, за пределами локальной сети мак адреса не видны, лучше в конце инпута добавить дроп
Удалось сохранить правила: ) postimg.cc/w7QWGVCZ Решение: postimg.cc/tn5h2rsz
Процес: upload.disroot.org/r/bzr_8J_y#RdeEYxkdR+4cVezVbhT7shDTWBGfbq54JBmYnpfSxps=
Запущена: postimg.cc/ft4wVBqB
Что показывает команда systemctl status nftables?
Загрузился сновой копией... Сделал все по пунктикам, но после перезагрузки при воде "nft list ruleset" правила новые ни применились по чему то, только сахранились в nftables.conf Ни понимаю причины
Служба не запущена
Таймлайн 16:45
Здраствуйте, до сих пор ни осилил это сохранения... Все делаю по пунктикам, ошибок ни каких нету, только почему то сейчас при nft list ruleset правила ни появляются. Если делаю скрипт, в скрипте прописываю правила. Затем название скрипта, и как понимаю после этого должны они перенеститсь правила в rules. (вобщем они должны сконфигурироваться) но этого почему то ни произходит. Это произошло после того как я удалил правила по умолчанию по пути: /usr/sbin/nft Потом заново создал этот файл: touch nft И дал разрешение: chmod 755 nft После того как перезагрузился при попытки просмотреть правила которые создовал "nft list ruleset " правила перестали пояляться... Подскажите пожалуйста, как мне исправить это?
Проверьте включенли сервис systemctl status nftables, и файл нужно сохранять в /etc/ посмотрите видео внимательно
@@KhasanKarabayev Да запущен: postimg.cc/K4ddF6Tk Вроде уже несколько раз пересматривал... Вот создание скрипта: cd /usr/local/bin/ touch firewall chmod 755 firewall -- Написал правила -- # firewall # echo '#!/usr/sbin/nft -f' > /etc/nftables.conf # echo 'flush ruleset' >> /etc/nftables.conf # nft list ruleset >> /etc/nftables.conf Все верно? Просто уже даже н знаю куда смотреть, что бы понять что делаю ни так. Может для nft "/usr/sbin/nft" нужно другое разрешение а ни 755..
А вот бинарник не нужно было удалять или изменять из папки /usr/sbin/nft (
@@KhasanKarabayev уже понял что ни нужно было, сечас значит это ни исправить? Если нет тогда загружусь с новой копии, так как делаю это еще на виртуальной машине... Просто подумал что туда загружу свежие правила командой: # nft -s list ruleset >> /usr/sbin/nft А тут вот как оно оказалось.
круто. самый лучший вебкаст по nftables
Здраствуйте, сколько раз и как ни пробывал, ни удатся мне сохранить параметры nftables В nftables.conf сохранило, только после перезагрузки - водя команду nft list rules - Возрощается все по умолчанию.. Если в водить правила из терминала сохраняются правила так же или может как то иначе?
Здраствуйте, подача очень хорошая, разжованая и понятная... Благодарю :) Хочу для домашнего компютера настроить компютер максимально безопасно, по этому пару уточнений если позволите. 1) Для домашнего использования lo интерфейс обезательно должен быть открыт или нет. В iptables обычно закрывал. 2) В таблице iptables использовал: iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT Какая команда будет равноссильна в nft ? И нужно ли ее применять? 3) Можете привести пример или варианты* для максимальной безопасности для домашнего пользователя. Предпологаю идельно все порты закрыть как входящие так и исходящие и открыть только нужные порты: tcp 80,443 udp 53 порт для торента и для докера... Как это сделать правильно и правильноли будет так? Будет здорово и многим полезным сделать дополнительное видео, ведь защищать домашние компюторы очень нужно! :) Так же будет замечательно если вы в одельном примере от этого так же по кажите такой пример: Когда нужно что бы на реальной машине небыло интернета только обновление linux системы. А на виртуальной машине было настроено и проброшено так как вы надеюсь покажите в первом примере для домашнего использование. Как это сделать правильно? Буду благодарен за обратную связь
1) интерфейс lo нужно открыть в любом случае, на нем крутятся внутренние сервисы ПК/сервера 2) nft add rule ip filter INPUT ct state related,established counter accept 3) исходящие порты можно все открыть, а вот входящие открывать по необходимости, если на компьютере не запущен вэб сервис то не нужно открыть 80, 443 порты, так же если на компьютере не запущен DNS его тоже не нужно открывать (видео ролик рассчитан для серверных платформ, не для домашних)
Благодарю за обратную связь. Да, понимаю что видео расчитано для серверов, а хотелось бы хоть одно видео для номашнего использования. 1) понял, lo открываем в любом случаии. 2) nft add rule ip filter INPUT ct state related,established counter accept это правило ведь нужно применять для домашнего использования, верно? 3) Понимаю что исходящие порты можно открыть все, но ни обходимоли для большей безопасности.? Если закрыть все-же и Изходящие в таблице, то что нужно открыть из изходящего что бы система работала как надо? Так как помню пробывал закрывать output, но ни смотря на то что в input 80.443 были открыты, сеть ни работала. 4) DNS ведь нужен для обновления системы, без 53 udp система ведь ни будет обновляться... по этому думаю что нужен.
@@KhasanKarabayev извените пожалуйста за без покойство! Ни как ни могу разобраться. Дело в том, что после написания правил в командной строке, после перезагрузки все сбивается по дефолту. Скажите пожалуйста как применить правила, что бы они сохранились после перезагрузки системмы? И второе, что бы каждый раз ни писать правила, можно ли их загузить из готового файла, например nftables.conf Помогите пожалуйста, странно проширстил мануалы но ответа ни нашел, везде все как подкопирку.
@@asura963 посмотрите третию часть моего видео посвященному фаерволу таймлайн: 15:20, там как раз разказал как сохранить правило
@@KhasanKarabayev понял, как раз третью чать и ни посмотрел... так как подумал что там чисто про nat, благодарю.
Утилитой nmcli можно заменить netplan для назначения статических и динамических адресов?
вроде как да
Дружище скинь текстовик свой которым пользуешься в данном ролике благодарб заранее!
Большое спасибо! Весьма доступно объяснили. В гайдах на сайтах вообще ничего не объясняют(
Спасибо, подача материала супер!
спасибо очень доходчиво объяснил, не так часто это встречаешь, хотелось бы углубленную 4 часть урока увидеть: использование переменных в скрипте, слышал есть конвертер какой-то из iptables в nstables, про него рассказать, еще как такие правила в nftables записывать iptables -A INPUT -i $INET_IF -m conntrack --ctstate NEW -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/sec --hashlimit-burst 50 --hashlimit-mode srcip,srcport,dstip,dstport --hashlimit-name www -j ACCEPT сильно интересует именно --hashlimit-mode как выставлять флаги: iptables -A INPUT -p tcp --tcp-flags ALL RST,ACK,PSH,URG -j DROP и тонкости уже установленных соединений iptables -A INPUT -p tcp -m multiport --dports 80,443 -m connlimit --connlimit-above 21 --connlimit-mask 32 -j DROP рассказать как реализовать Port Knocking хотел уточнить, а разве не правильнее будет все таблицы по умолчанию дропать и еще все правила писать через ct state new делать, а в конце каждой цепочки ct state related,established : nft add rule ip filter INPUT ct state related,established counter accept nft add rule ip filter FORWARD ct state related,established counter accept nft add rule ip filter OUTPUT ct state related,established counter accept
Отличный комент, в ближайшие время постораюсь сделать четвертую часть, где отвечу так же на поставленные вопросы реальными примерами
@@KhasanKarabayev очень буду ждать, спасибо
нашел утилиту: iptables-translate -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT получается: nft add rule ip filter INPUT tcp dport 22 ct state new counter accept но к сожалению не все правила может конвертировать, это не работает: iptables-translate -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 109 --connlimit-mask 24 -j DROP
@@igorcoolman действительно утилита iptables-translate служит для трансляции давно всем известных правил на новый синтаксис, сделано это для того чтоб переход был более безболезненным, но нужно учесть тот факт что он рассчитан на широко известные/распространённые команды, для особых случаях как у вас он срабатывать не будет, в таком случаи нужно просто курить официальный мануал, вот что есть на вашу тему wiki.nftables.org/wiki-nftables/index.php/Connlimits
@@KhasanKarabayev спасибо нашел ответы на некоторые вопросы, осталось как-то протестировать на правильную работоспособность все-таки nftables для меня новый инструмент, но видео от тебя все равно ждем )
Спасибо за наглдяный пример! но у меня не большой вопрос. Как заNAT-ить трафик если он идет с виртуального интерфейса, который появляется при подключении впн? В целом мне необходимо NAT-ить сеть в интернет без указания интерфейса?
меня что то подобное тоже волнует, при запуске докера он создает рандомное название для своего интерфейса и создает свои правила iptables с открытыми портами на все интерфейсы, чем ломает уже рабочие правила ну и безопасность соответственно.
@@igorcoolman Может у докера можно как нибудь присвоить статичное название интерфейса? в моем случае у меня с подключением пользователей к впн сервису создавался виртуальный vpn0, но на него так же можно накатывать правила в nftables, у меня проблем вроде бы не было, но если как, как у вас, дается рандомное имя интерфейса, то надо начинать с докера
Спасибо. Наглядно. Без лишней воды.
Отличное видео. Спасибо.