Media is too big
VIEW IN TELEGRAM
Доступ через Kerberos для Linux машин в домен Windows
В этом видео я расскажу как получить доступ к сетевым ресурсам домена Windows для Linux машин, используя Kerberos.
Список пакетов которые протребуются:
1) krb5-user
2) ldap-utils
3) smbclient
4) установите пакет gvfs-backends если используете gnome
источник
👉 @sysadminof
В этом видео я расскажу как получить доступ к сетевым ресурсам домена Windows для Linux машин, используя Kerberos.
Список пакетов которые протребуются:
1) krb5-user
2) ldap-utils
3) smbclient
4) установите пакет gvfs-backends если используете gnome
источник
👉 @sysadminof
30 псевдонимов оболочки Bash в ОС Linux / Unix / Mac OS X
Псевдоним (он же алиас) bash — это ярлык для команд. Команда alias позволяет пользователю запускать любую команду или группу команд (включая параметры и имена файлов), вводя одно слово. Используйте команду alias, чтобы отобразить список всех определенных псевдонимов. Вы можете добавлять пользовательские псевдонимы в файл ~/.bashrc. С помощью этих псевдонимов вы можете сократить время ввода и повысить производительность командной строки. Сегодня мы поговорим о том, как создавать и использовать псевдонимы, включая 30 практических примеров псевдонимов оболочки bash.
https://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html
👉 @sysadminof
Статья на Eng
Псевдоним (он же алиас) bash — это ярлык для команд. Команда alias позволяет пользователю запускать любую команду или группу команд (включая параметры и имена файлов), вводя одно слово. Используйте команду alias, чтобы отобразить список всех определенных псевдонимов. Вы можете добавлять пользовательские псевдонимы в файл ~/.bashrc. С помощью этих псевдонимов вы можете сократить время ввода и повысить производительность командной строки. Сегодня мы поговорим о том, как создавать и использовать псевдонимы, включая 30 практических примеров псевдонимов оболочки bash.
https://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html
👉 @sysadminof
2 полезных канала для системных администраторов:
📚 @it_secur — Литература для системных администраторов и ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.
👨🏻💻 @infosecurity — Самый крупный ресурс в Telegram, посвященный информационной безопасности, OSINT и Cоциальной Инженерии.
📚 @it_secur — Литература для системных администраторов и ИБ специалистов любого уровня и направления. Читайте, развивайтесь, практикуйте.
👨🏻💻 @infosecurity — Самый крупный ресурс в Telegram, посвященный информационной безопасности, OSINT и Cоциальной Инженерии.
Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки
Скорей всего, матерым системным администраторам статья будет не очень интересна. В первую очередь она ориентирована на новичков, а также на людей, которые столкнулись с подобной проблемой — необходимостью удалить огромное количество файлов из одной папки в ОС Linux (Debian в моем случае), а также с закончившимся местом на диске, когда df -h выдает что почти 30% свободно.
https://habr.com/ru/articles/152193/
👉 @sysadminof
Скорей всего, матерым системным администраторам статья будет не очень интересна. В первую очередь она ориентирована на новичков, а также на людей, которые столкнулись с подобной проблемой — необходимостью удалить огромное количество файлов из одной папки в ОС Linux (Debian в моем случае), а также с закончившимся местом на диске, когда df -h выдает что почти 30% свободно.
https://habr.com/ru/articles/152193/
👉 @sysadminof
HDD Блок
Что такое блок?
Будьте внимательны, когда речь заходит о «блоках».
Обычно при этом имеется в виду размер блока,
предусмотренный в ядре Linux, — 1024 байт (в частности при работе с командами df, du и fdisk).
HDD Цилиндр
Цилиндр (8 225 280 байт, около 7,8 Мбайт) — размер цилиндра равен произведению размера дорожки на количество читающих головок.
При этом самым большим жестким дискам, используемым в Linux, присваивается условное количество головок, равное 255, таким образом,
размер цилиндра оказывается равен 255 - 32 256 ~ 8 225 280 байт.
Количество 255 является максимально возможным, так как для ноля предусмотрено всего 8 бит.
Чтобы узнать количество цилиндров, необходимо разделить мощность жесткого диска на размер цилиндра.
Как правило, на жестком диске размером 1 Тбайт имеется 1 000 000 000 000 = 212 байт места, что составляет около 121 600 цилиндров.
(Производители жестких дисков охотнее считают в десятичной системе, а не в двоичной, так как мощности кажутся «больше».
На самом деле, если считать в двоичной системе, то в одном терабайте будет 240 = 1 099 511 627 776 байт,
то есть примерно на 10 % «больше», чем в десятичном терабайте!)
Раньше эти термины отражали физическую архитектуру жесткого диска.
Нынешняя архитектура уже давно не такая — даже у традиционных жестких дисков, не говоря уже о SSD.
Так или иначе, в некоторых программах для секционирования, в частности в fdisk, расчеты по-прежнему проводятся в этих единицах.
Разумеется, при работе с Linux границы цилиндров не имеют никакого значения;
раздел может начинаться прямо в центре цилиндра (даже условного)!
HDD Дорожка
Дорожка (32 256 байт) — на всех современных жестких дисках дорожка состоит из 63 секторов, то есть из 63 * 512 = 32 256 байт.
Первоначально по количеству секторов можно было узнать, сколько их на одной окружности жесткого диска.
Сегодня это количество является условным. Максимально допустимое значение — 63,
так как уже в течение многих лет на хранение количества секторов отводится всего 6 бит.
HDD Сектор
Сектор (512 байт) — мельчайшей единицей жесткого диска является сектор, состоящий из 512 байт.
На некоторых новых жестких дисках размер сектора увеличен и составляет 4 Кбайт,
но из соображений совместимости размер сектора и далее объявляется равным 512 байт.
👉 @sysadminof
Что такое блок?
Будьте внимательны, когда речь заходит о «блоках».
Обычно при этом имеется в виду размер блока,
предусмотренный в ядре Linux, — 1024 байт (в частности при работе с командами df, du и fdisk).
HDD Цилиндр
Цилиндр (8 225 280 байт, около 7,8 Мбайт) — размер цилиндра равен произведению размера дорожки на количество читающих головок.
При этом самым большим жестким дискам, используемым в Linux, присваивается условное количество головок, равное 255, таким образом,
размер цилиндра оказывается равен 255 - 32 256 ~ 8 225 280 байт.
Количество 255 является максимально возможным, так как для ноля предусмотрено всего 8 бит.
Чтобы узнать количество цилиндров, необходимо разделить мощность жесткого диска на размер цилиндра.
Как правило, на жестком диске размером 1 Тбайт имеется 1 000 000 000 000 = 212 байт места, что составляет около 121 600 цилиндров.
(Производители жестких дисков охотнее считают в десятичной системе, а не в двоичной, так как мощности кажутся «больше».
На самом деле, если считать в двоичной системе, то в одном терабайте будет 240 = 1 099 511 627 776 байт,
то есть примерно на 10 % «больше», чем в десятичном терабайте!)
Раньше эти термины отражали физическую архитектуру жесткого диска.
Нынешняя архитектура уже давно не такая — даже у традиционных жестких дисков, не говоря уже о SSD.
Так или иначе, в некоторых программах для секционирования, в частности в fdisk, расчеты по-прежнему проводятся в этих единицах.
Разумеется, при работе с Linux границы цилиндров не имеют никакого значения;
раздел может начинаться прямо в центре цилиндра (даже условного)!
HDD Дорожка
Дорожка (32 256 байт) — на всех современных жестких дисках дорожка состоит из 63 секторов, то есть из 63 * 512 = 32 256 байт.
Первоначально по количеству секторов можно было узнать, сколько их на одной окружности жесткого диска.
Сегодня это количество является условным. Максимально допустимое значение — 63,
так как уже в течение многих лет на хранение количества секторов отводится всего 6 бит.
HDD Сектор
Сектор (512 байт) — мельчайшей единицей жесткого диска является сектор, состоящий из 512 байт.
На некоторых новых жестких дисках размер сектора увеличен и составляет 4 Кбайт,
но из соображений совместимости размер сектора и далее объявляется равным 512 байт.
👉 @sysadminof
Подборка Telegram каналов для программистов
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Excel лайфхак📌
https://t.me/Excel_lifehack
Системное администрирование 📌
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
Excel лайфхак📌
https://t.me/Excel_lifehack
Файловые системы \ FS \ sfdisk \ e2label \ mkfs \
предоставляющая возможность журналирования с целью
сохранения данных и возможность быстро перезагружать
систему после некорректного завершения ее работы
не поддерживающая функцию журналирования
iso9660 - появилась из файловой системы High Sierra (была стандартом для компакт-дисков)
и может содержать расширения Rock Ridge для обеспечения возможности
использования длинных имен файлов и других функций (полномочия доступа
к файлу, права собственности и ссылки)
эффективной работы с USB-накопителями
с большими файловыми системами и средами с высокой производительностью
носители MS-DOS, например старые дискеты
в файловые системы Windows (с двойной загрузкой или на сменных носителях)
Slackware и других операционных системах Linux
данных и используемая на многих Live CD Linux
когда оперативная память временно недоступна
и SunOS от корпорации Sun Microsystems
если файловым системам нужно обмениваться файлами
с более старыми системами Windows (с двойной загрузкой или на сменных носителях)
размер которой может расширяться до многих терабайт данных,
а скорость передачи данных в которой исчисляется гигабайтами в секунду
(например в /etc/fstab монтирование по метке)
поиск поврежденных блоков
и добавляет разделу метку
umount /mnt/image - отмонтмровать /mnt/image
👉 @sysadminof
ext3
- Наиболее распространенная файловая система Linux, предоставляющая возможность журналирования с целью
сохранения данных и возможность быстро перезагружать
систему после некорректного завершения ее работы
ext2
- Файловая система, предшествующая ext3, не поддерживающая функцию журналирования
iso9660 - появилась из файловой системы High Sierra (была стандартом для компакт-дисков)
и может содержать расширения Rock Ridge для обеспечения возможности
использования длинных имен файлов и других функций (полномочия доступа
к файлу, права собственности и ссылки)
jffs2
- Журналируемая файловая система для флэш-носителей, созданная для эффективной работы с USB-накопителями
jfs
- Файловая система, используемая на IBM в OS/2 Warp и настроенная на работу с большими файловыми системами и средами с высокой производительностью
msdos
- Может использоваться для монтирования файловых систем на устаревшие носители MS-DOS, например старые дискеты
ntfs
- Может быть полезна, когда есть необходимость передавать файлы в файловые системы Windows (с двойной загрузкой или на сменных носителях)
reiserfs
- Журналируемая файловая система, иногда используемая по умолчанию на SUSE, Slackware и других операционных системах Linux
squashfs
- Запакованная файловая система, предназначенная только для чтения данных и используемая на многих Live CD Linux
swap
- Используется на разделах подкачки для временного хранения данных, когда оперативная память временно недоступна
ufs
- Популярная файловая система операционных систем Solaris и SunOS от корпорации Sun Microsystems
vfat
- Расширенная файловая система FAT (VFAT), которая полезна, если файловым системам нужно обмениваться файлами
с более старыми системами Windows (с двойной загрузкой или на сменных носителях)
xfs
- Журналируемая файловая система для среды с высокой производительностью, размер которой может расширяться до многих терабайт данных,
а скорость передачи данных в которой исчисляется гигабайтами в секунду
sfdisk
- программа для работы с таблицей разделов жесткого дискаsfdisk -d /dev/sda > sda-table
- Выполняет резервное копирование таблицы разбиения в файл sfdisk /dev/sda < sda-table
- Восстанавливает таблицу разбиения из файлаsfdisk -d /dev/sda | sfdisk /dev/sdb
- Копирует таблицу разбиения с одного диска на другойfdisk
- программа для работы с таблицей разделов жесткого диска (устарела)e2label /dev/sda2
- посмотреть метку второго разделаe2label /dev/sda2 my_lable_name
- назначить метку my_lable_name второму разделуfindfs LABEL=my_lable_name
- ищем раздел по метке (например в /etc/fstab монтирование по метке)
mkfs -t ext3 /dev/sdb1
- Создает файловую систему ext3 на разделе sba1mkfs -t ext3 -v -c /dev/sdb1
- Расширенная команда, выполняющая также поиск поврежденных блоков
mkfs.ext3 -с /dev/sdb1
- Создает файловую систему ext3 на разделе sba1mkfs.ext3 -с -L mypartition /dev/sdb1
- Создает файловую систему ext3 на разделе sba1 и добавляет разделу метку
dd if=/dev/scd0 of=name_file.iso bs=2048
- извлекаем образ iso с cd/dvd dd if=/dev/zero of=my_disk count=2048000
- Создаем заполненный нулями файл объемом 1 Гбайтdu -sh my_disk
- Проверяем размер виртуальной файловой системыmkfs -t ext3 my_disk
- Создаем файловую систему на mydiskmkdir /mnt/image
- создаем пустой каталогmount -o loop my_disk /mnt/image
- монтируем my_disk в пустой каталог cd /mnt/image
- переходим в каталог /mnt/imagemkdir test
- создаем каталог test cp /etc/hosts
- копируем /etc/hosts в текущий каталогcd
.. - переходим на уровень выше (выходим из текущего каталога)umount /mnt/image - отмонтмровать /mnt/image
👉 @sysadminof
iptables
Управление iptables
Включение ip forward (трафик меджу интерфейсами):
tools:
Очистка таблицы filter:
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
Очистка таблицы nat:
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
Очистка таблицы mangle:
iptables -t mangle -F PREROUTING
Очистка правил подробно:
Чистим ветки логов:
iptables -F undef_in
iptables -F undef_out
iptables -F undef_fw
iptables -X undef_in
iptables -X undef_out
iptables -X undef_fw
Закрываем всё:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Включаем NAT:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Разрешаем принимать трафик на loopback-интерфейсе:
iptables -A INPUT eth2 -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A FORWARD -i lo -o eth1 -j ACCEPT$IPT -A FORWARD -i eth2 -o lo -j ACCEPT
iptables -A FORWARD -i lo -o eth2 -j ACCEPT$IPT -A FORWARD -i eth1 -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Разрешение исходящего трафика:
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
iptables -A OUTPUT -o eth2 -j ACCEPT
Разрешить соединения, которые инициированы изнутри
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
Следующими правилами разрешаем коннекты на наш сервер из вне:
iptables -A INPUT -p udp --dport 33434:33523 -j ACCEPT - Разрешить traceroute
iptables -A INPUT -p tcp --dport 22 -j ACCEPT - Разрешаем SSH
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT - Разрешаем webmin
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT - Доступ на http
Проброс RDP на сервер терминалов:
iptables -t nat -A PREROUTING -p tcp --dport 3389 -i eth0 -j DNAT --to 192.168.0.100
iptables -A FORWARD -i eth0 -d 192.168.0.100 -p tcp --dport 3389 -j ACCEPT
Выход из локалки на почтовые сервера
iptables -A FORWARD -d smtp.mail.ru -o eth0 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A FORWARD -d smtp.masterhost.ru -o eth0 -p tcp -m tcp --dport 25 -j ACCEPT
👉 @sysadminof
Управление iptables
service iptables stop
- Остановкаservice iptables start
- Запускservice iptables restart
- Перезагрузкаservice iptables save
- Сохранить правила брандмауэра (CentOS / RHEL / Fedora Linux)iptables-save
- Сохранить правилаiptables-save > /root/my.active.firewall.rules
- Сохранить правила (в других дистрибутивах)Включение ip forward (трафик меджу интерфейсами):
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p
tools:
iptables -L
- вывести список правилiptables -S
- вывести список правилiptables -L -n -v
- вывести список правил (-n не резолвить IP) (-v Отображение подробной информации)iptables -L -n -v --line-numbers
- просмотр правил с номером строкиiptables -L INPUT -n -v
- просмотра INPUTiptables -L OUTPUT -n -v --line-numbers
- просмотра OUTPUTiptables -L INPUT -n --line-numbers
- просмотр правил с номером строки в INPUTiptables -L OUTPUT -n --line-numbers
- просмотр правил с номером строки в OUTPUTiptables -L OUTPUT -n --line-numbers | less
- просмотр правил с номером строки в OUTPUT перенаправив вывод в lessiptables -L OUTPUT -n --line-numbers | grep 8.8.8.8
- просмотр правил с номером строки в OUTPUT грепаем 8.8.8.8Очистка таблицы filter:
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
Очистка таблицы nat:
iptables -t nat -F PREROUTING
iptables -t nat -F POSTROUTING
Очистка таблицы mangle:
iptables -t mangle -F PREROUTING
Очистка правил подробно:
iptables -F
- Удаление всех правил (flushing)iptables -X
- Удаление цепочкиiptables -t nat -F
- Выбрать таблицу и удалить правилаiptables -t nat -X
- Выбрать таблицу и удалить правилаiptables -t mangle -F
- Выбрать таблицу и удалить правилаiptables -t mangle -X
- Выбрать таблицу и удалить правилаiptables -P INPUT ACCEPT
- Установить политику по умолчаниюiptables -P OUTPUT ACCEPT
- Установить политику по умолчаниюiptables -P FORWARD ACCEPT
- Установить политику по умолчаниюЧистим ветки логов:
iptables -F undef_in
iptables -F undef_out
iptables -F undef_fw
iptables -X undef_in
iptables -X undef_out
iptables -X undef_fw
Закрываем всё:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Включаем NAT:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Разрешаем принимать трафик на loopback-интерфейсе:
iptables -A INPUT eth2 -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A FORWARD -i lo -o eth1 -j ACCEPT$IPT -A FORWARD -i eth2 -o lo -j ACCEPT
iptables -A FORWARD -i lo -o eth2 -j ACCEPT$IPT -A FORWARD -i eth1 -o lo -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Разрешение исходящего трафика:
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
iptables -A OUTPUT -o eth2 -j ACCEPT
Разрешить соединения, которые инициированы изнутри
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
Следующими правилами разрешаем коннекты на наш сервер из вне:
iptables -A INPUT -p udp --dport 33434:33523 -j ACCEPT - Разрешить traceroute
iptables -A INPUT -p tcp --dport 22 -j ACCEPT - Разрешаем SSH
iptables -A INPUT -p tcp --dport 10000 -j ACCEPT - Разрешаем webmin
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT - Доступ на http
Проброс RDP на сервер терминалов:
iptables -t nat -A PREROUTING -p tcp --dport 3389 -i eth0 -j DNAT --to 192.168.0.100
iptables -A FORWARD -i eth0 -d 192.168.0.100 -p tcp --dport 3389 -j ACCEPT
Выход из локалки на почтовые сервера
iptables -A FORWARD -d smtp.mail.ru -o eth0 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A FORWARD -d smtp.masterhost.ru -o eth0 -p tcp -m tcp --dport 25 -j ACCEPT
👉 @sysadminof
Forwarded from Типичный Сисадмин
iptables
Заворачиваем трафик на порт сквида:
iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081,3128,9090 -s 0/0 -d 0/0 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p udp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081,3128,9090 -s 0/0 -d 0/0 -j REDIRECT --to-port 3128
Если прокси не установлена,либо нет нужды в использовании SQUID, то просто форвардим нужные порты:
iptables -A FORWARD -o eth0 -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081,3128,9090 -j ACCEPT
Прячем NAT:
iptables -t mangle -A PREROUTING -j TTL --ttl-set 64
iptables -t mangle -A PREROUTING -j RETURN
Все что не разрешено, но ломится отправим в цепочку undef:
iptables -N undef_in
iptables -N undef_out
iptables -N undef_fw
iptables -A INPUT -i vlan2 -j undef_in
iptables -A OUTPUT -j undef_out
iptables -A FORWARD -j undef_fw
Логировать все из цепочки undef:
iptables -A undef_in -j LOG --log-level info --log-prefix "--- IN --- DROP "
iptables -A undef_in -j DROP
iptables -A undef_out -j LOG --log-level info --log-prefix " --- OUT --- DROP "
iptables -A undef_out -j DROP
iptables -A undef_fw -j LOG --log-level info --log-prefix "--- FW --- DROP "
iptables -A undef_fw -j DROP
Антибрут ssh:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
После этого хосты, пытающиеся перебирать пароль, будут блокироваться:
все IP из черного списка будут фиксироваться в файле /proc/net/ipt_recent/SSH
Разрешаем некоторые ICMP-сообщения
https://ru.wikipedia.org/wiki/ICMP - icmp-type
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 12 -j ACCEPT
open firewall:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT # Небольшая защита от DoS
iptables -A INPUT -p all -m state --state RELATED,ESTABLISHED -j ACCEPT # Разрешаем уже установленные соединения
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT # Разрешаем 22 порт
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # Разрешаем 80 порт
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 3 -j ACCEPT # Разрешаем некоторые ICMP-сообщения
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 11 -j ACCEPT # Разрешаем некоторые ICMP-сообщения
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 12 -j ACCEPT # Разрешаем некоторые ICMP-сообщения
iptables -A INPUT DROP
👉 @sysadminof
Заворачиваем трафик на порт сквида:
iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081,3128,9090 -s 0/0 -d 0/0 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p udp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081,3128,9090 -s 0/0 -d 0/0 -j REDIRECT --to-port 3128
Если прокси не установлена,либо нет нужды в использовании SQUID, то просто форвардим нужные порты:
iptables -A FORWARD -o eth0 -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081,3128,9090 -j ACCEPT
Прячем NAT:
iptables -t mangle -A PREROUTING -j TTL --ttl-set 64
iptables -t mangle -A PREROUTING -j RETURN
Все что не разрешено, но ломится отправим в цепочку undef:
iptables -N undef_in
iptables -N undef_out
iptables -N undef_fw
iptables -A INPUT -i vlan2 -j undef_in
iptables -A OUTPUT -j undef_out
iptables -A FORWARD -j undef_fw
Логировать все из цепочки undef:
iptables -A undef_in -j LOG --log-level info --log-prefix "--- IN --- DROP "
iptables -A undef_in -j DROP
iptables -A undef_out -j LOG --log-level info --log-prefix " --- OUT --- DROP "
iptables -A undef_out -j DROP
iptables -A undef_fw -j LOG --log-level info --log-prefix "--- FW --- DROP "
iptables -A undef_fw -j DROP
Антибрут ssh:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
После этого хосты, пытающиеся перебирать пароль, будут блокироваться:
все IP из черного списка будут фиксироваться в файле /proc/net/ipt_recent/SSH
Разрешаем некоторые ICMP-сообщения
https://ru.wikipedia.org/wiki/ICMP - icmp-type
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 12 -j ACCEPT
open firewall:
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT # Небольшая защита от DoS
iptables -A INPUT -p all -m state --state RELATED,ESTABLISHED -j ACCEPT # Разрешаем уже установленные соединения
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT # Разрешаем 22 порт
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT # Разрешаем 80 порт
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 3 -j ACCEPT # Разрешаем некоторые ICMP-сообщения
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 11 -j ACCEPT # Разрешаем некоторые ICMP-сообщения
iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 12 -j ACCEPT # Разрешаем некоторые ICMP-сообщения
iptables -A INPUT DROP
👉 @sysadminof
Forwarded from GitHub Сообщество
Tipi - персональный домашний сервер для всех
Настройка одной командой, установка любимых приложений одним щелчком мыши. ✨
https://github.com/meienberger/runtipi
👉 @Githublib
Настройка одной командой, установка любимых приложений одним щелчком мыши. ✨
https://github.com/meienberger/runtipi
👉 @Githublib
Погрузитесь в мир 🐳 DevOps и станьте devops-инженером за рекордные 4 месяца с курсом от Merion Academy!
Все, кому интересно, получат 🚀 2 бесплатных урока, где расскажут, кто такой DevOps-инженер, какие инструменты использует, куда и как развивает карьеру. Познакомитесь с Docker и контейнирезацией и закрепите знания.
🎁 Бонус – интенсив по развитию карьеры, где HR-эксперты расскажут как создавать сильные резюме и проходить собеседования.
📜 Плюс гайд по командам Docker.
🕺У ребят одна из самых доступных цен, которая в разы ниже, чем в других онлайн-школах, а еще есть рассрочка для тех, кто хочет учиться сейчас и платить по чуть-чуть ежемесячно.
👉 Регистрируйтесь по ссылке чтобы забирать бесплатные уроки, интенсив по карьере и гайд.
Merion Academy – это экосистема доступного образования, которая включает в себя:
📍IT-базу знаний с полезными статьями.
📍Youtube-канал ,где простыми словами говорят о сложных вещах.
📍 IT-академию, где обучат востребованным направлениям по самым доступным ценам.
Все, кому интересно, получат 🚀 2 бесплатных урока, где расскажут, кто такой DevOps-инженер, какие инструменты использует, куда и как развивает карьеру. Познакомитесь с Docker и контейнирезацией и закрепите знания.
🎁 Бонус – интенсив по развитию карьеры, где HR-эксперты расскажут как создавать сильные резюме и проходить собеседования.
📜 Плюс гайд по командам Docker.
🕺У ребят одна из самых доступных цен, которая в разы ниже, чем в других онлайн-школах, а еще есть рассрочка для тех, кто хочет учиться сейчас и платить по чуть-чуть ежемесячно.
👉 Регистрируйтесь по ссылке чтобы забирать бесплатные уроки, интенсив по карьере и гайд.
Merion Academy – это экосистема доступного образования, которая включает в себя:
📍IT-базу знаний с полезными статьями.
📍Youtube-канал ,где простыми словами говорят о сложных вещах.
📍 IT-академию, где обучат востребованным направлениям по самым доступным ценам.
Полезные советы для написания bash скриптов в Linux
Всегда используйте комментарии в скриптах
Комментарии начинаются со знака решетки — #.
Настраивайте завершение выполнения скрипта при ошибке
Так бывает, что bash может продолжать выполнять скрипт, несмотря на сбои в выполнении определенной команды.
Можно использовать следующую команду для выхода из скрипта в случае ошибке:
# let script exit if a command fails
set -o errexit
# OR
set -e
ls -xyz # command with error
echo "you will not see this message"
Настраивайте завершение выполнения скрипта при обнаружении необъявленной переменной
Также bash может попытаться использовать переменную, не объявленную ранее в коде сценария. Чтобы bash завершал выполнение скрипта в такой ситуации — добавьте в код следующую команду:
#let script exit if an unsed variable is used
set -o nounset
# OR
set -u
echo $ThisVariableAreNotDefined
echo "you will not see this message"
Используйте двойные кавычки для ссылки на переменные
Использование двойных кавычек при обращении к переменным предотвращает разбиение строк при наличии в них пробелов на слова, а также — другие возможные сбои.
Используйте функции в скриптах
Скрипт, который разбит на функции, становится более модульным. Такой код проще прочитать и понять, чем длинную последовательность предписаний.
Используйте знак = для сравнения строк
Во многих популярных языках программирования сравнение на равенство проверяется двойным знаком «равно» ==. Однако в сценариях командной строки Линукс для этого используется одинарное равно =.
Используйте знак $ вместо знаков “
Существует несколько способов подстановки команд. Вы можете использовать обратные апострофы
user=`echo “qwerty” `
user1=$(echo “abcde”)
Объявляйте статические переменные с опцией readonly
Статическая переменная — это переменная, которая не меняется. Встроенная команда readonly используется для пометки переменных, доступных только для чтения (то есть — неизменяемых). Это подразумевает, что изменить ее в будущем уже будет нельзя.
Используйте верхний регистр для названий переменных среды, нижний — для названий пользовательских переменных
Все переменные среды bash, такие как HOSTNAME, BASH, GROUPS и другие — следует писать заглавными буквами. Тогда как для именования пользовательских переменных лучше использовать строчные буквы. В коде большого скрипта при использовании множества различных переменных высок риск назвать некоторые из них одинаково, что может привести к неожиданным или даже критическим ошибка.
Выполняйте отладку скриптов
👉 @sysadminof
Всегда используйте комментарии в скриптах
Комментарии начинаются со знака решетки — #.
Настраивайте завершение выполнения скрипта при ошибке
Так бывает, что bash может продолжать выполнять скрипт, несмотря на сбои в выполнении определенной команды.
Можно использовать следующую команду для выхода из скрипта в случае ошибке:
# let script exit if a command fails
set -o errexit
# OR
set -e
ls -xyz # command with error
echo "you will not see this message"
Настраивайте завершение выполнения скрипта при обнаружении необъявленной переменной
Также bash может попытаться использовать переменную, не объявленную ранее в коде сценария. Чтобы bash завершал выполнение скрипта в такой ситуации — добавьте в код следующую команду:
#let script exit if an unsed variable is used
set -o nounset
# OR
set -u
echo $ThisVariableAreNotDefined
echo "you will not see this message"
Используйте двойные кавычки для ссылки на переменные
Использование двойных кавычек при обращении к переменным предотвращает разбиение строк при наличии в них пробелов на слова, а также — другие возможные сбои.
Используйте функции в скриптах
Скрипт, который разбит на функции, становится более модульным. Такой код проще прочитать и понять, чем длинную последовательность предписаний.
Используйте знак = для сравнения строк
Во многих популярных языках программирования сравнение на равенство проверяется двойным знаком «равно» ==. Однако в сценариях командной строки Линукс для этого используется одинарное равно =.
Используйте знак $ вместо знаков “
Существует несколько способов подстановки команд. Вы можете использовать обратные апострофы
command
для заключения команды в них, либо же использовать конструкцию $(command). На сегодняшний день рекомендуется использовать именно второй вариант с использованием $, что подтверждается рекомендациями shellcheck, инструментом для анализа кода скриптов. Например:user=`echo “qwerty” `
user1=$(echo “abcde”)
Объявляйте статические переменные с опцией readonly
Статическая переменная — это переменная, которая не меняется. Встроенная команда readonly используется для пометки переменных, доступных только для чтения (то есть — неизменяемых). Это подразумевает, что изменить ее в будущем уже будет нельзя.
Используйте верхний регистр для названий переменных среды, нижний — для названий пользовательских переменных
Все переменные среды bash, такие как HOSTNAME, BASH, GROUPS и другие — следует писать заглавными буквами. Тогда как для именования пользовательских переменных лучше использовать строчные буквы. В коде большого скрипта при использовании множества различных переменных высок риск назвать некоторые из них одинаково, что может привести к неожиданным или даже критическим ошибка.
Выполняйте отладку скриптов
👉 @sysadminof
Как настроить сеть в Ubuntu: пошаговая инструкция
Как только вы установили операционную систему, нужно подключить компьютер или сервер к интернету. В Ubuntu настройки сети нужно задавать самостоятельно. Пользователи, которые делают это впервые, часто сталкиваются с трудностями. В этой статье мы рассмотрим несколько способов подключения и основные параметры.
https://telegra.ph/Kak-nastroit-set-v-Ubuntu-poshagovaya-instrukciya-09-13
👉 @sysadminof
Как только вы установили операционную систему, нужно подключить компьютер или сервер к интернету. В Ubuntu настройки сети нужно задавать самостоятельно. Пользователи, которые делают это впервые, часто сталкиваются с трудностями. В этой статье мы рассмотрим несколько способов подключения и основные параметры.
https://telegra.ph/Kak-nastroit-set-v-Ubuntu-poshagovaya-instrukciya-09-13
👉 @sysadminof