Редко кто из экспертов, специализирующихся на тестировании защищенности, сталкивался с ситуацией, когда не смог полностью скомпрометировать сеть в ходе внутреннего тестирования на проникновение. Причем причины успехов этичных хакеров банальны: слабые пароли, отсутствие критичных обновлений безопасности, ошибки конфигурации. Возникает вопрос: если причины незащищенности такие тривиальные, можно ли разработать перечень ключевых проверок, которые мог бы провести системный администратор самостоятельно и есть ли единый инструмент, позволяющий это реализовать? Попробуем разобраться.
Пользователь
Установка Proxmox VE на Debian Stretch используя Ansible
Если кратко, то Proxmox это система виртуализации на KVM, которая ещё умеет управляться с контейнерами LXC. Также имеется возможность кластеризации(для некоммерческой версии ограничение около 8 нод). Умеет работать с Ceph, ZFS. Если подробно, то советую почитать вики или посмотреть ютуб.
Варианты установки
Дело в том, что ProxmoxVE можно установить при помощи образа, который предоставляется на скачивание, но тогда вам вряд ли будут доступны варинты разбивки с использованием soft-raid для Linux и прочие извращения(если что-то некритичное по производительности — почему нет?). Отдельное спасибо товарищу @merlin_vrn за знакомство с Proxmox, и Alex Filimonov за помощь с Ansible.
Существует вариант, когда вы сами ставите Debian актуальной версии именно так как вы хотите, а уже дальше устанавливаете ProxmoxVE как некую надстройку, которая вам заменяет ядро, linux-firmware, lvm, устанавливает свой репозиторий и уже отчасти перестаёт быть Debian. В этом случае у вас гораздо больше пространства для свободы(к примеру, недавно я ставил по сети Debian через liveusb Archlinux используя debootstrap).
Как правильно оформить Open Source проект
В свободное и не свободное время[1] я развиваю несколько своих проектов на github, а также, по мере сил, участвую в жизни интересных для меня, как программиста, проектах.
Недавно один из коллег попросил консультацию: как выложить разработанную им библиотеку на github. Библиотека никак не связана с бизнес-логикой приложения компании, по сути это адаптер к некоему API, реализующему определённый стандарт. Помогая ему, я понял что вещи, интуитивно понятные и давно очевидные для меня, в этой области, совершенно неизвестны человеку делающему это впервые и далёкому от Open Source.
Я провел небольшое исследование и обнаружил что большинство публикаций по этой теме на habrahabr освещают тему участия (contributing), либо просто мотивируют каким-нибудь образом примкнуть к Open Source, но не дают исчерпывающей инструкции как правильно оформить свой проект. В целом в рунете, если верить Яндекс, тема освещена со стороны мотивации, этикета контрибуции и основ пользования github. Но не с точки зрения конкретных шагов, которые следует предпринять.
Так что из себя представляет стильный, модный, молодёжный Open Source проект в 201* году?
Наш рецепт отказоустойчивого VPN-сервера на базе tinc, OpenVPN, Linux
Один из наших клиентов попросил разработать отказоустойчивое решение для организации защищенного доступа к его корпоративному сервису. Решение должно было:
- обеспечивать отказоустойчивость и избыточность;
- легко масштабироваться;
- просто и быстро решать задачу добавления и блокировки пользователей VPN;
- балансировать нагрузку между входными нодами;
- одинаково хорошо работать для клиентов на GNU/Linux, Mac OS X и Windows;
- поддерживать клиентов, которые находятся за NAT.
Готовых решений, удовлетворяющих всем поставленным условиям, не нашлось. Поэтому мы собрали его на базе популярных Open Source-продуктов, а теперь с удовольствием делимся полученным результатом в этой статье.
Вы неправильно пишете животных
Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти
Не знаю, кто писал большую часть птиц, но я хочу обратить внимание на особенность, позволяющую провести инъекцию произвольного яйца в гнездо. Дело в том, что птица проверяет только расположение и количество яиц, но не их хэши. В 20% случаев кукушка, эксплуатирующая этот баг, может внести яйцо с сохранением контрольной суммы, чего вполне достаточно для повышения прав в гнезде.
Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Централизованное управление конфигурациями: Puppet + Foreman. Часть ІI
* Создание групп хостов
* Добавление хоста в группу
* Применение манифестов на группу хостов
* Автоподпись сертификатов
* Автоматическое распределение хостов по группам
Централизованное управление конфигурациями: Puppet + Foreman. Часть І
Для сервера, на котором будет установлена связка Puppet + Foreman, будет использоваться виртуальная машина (1 CPU, 2 Gb RAM, 20Gb HDD), в качестве клиентов будут физические ПК на которых установлена Ubuntu. Конфигурация моего виртуального сервера с указанными выше характеристиками позволяет без проблем обслуживать 500 клиентов (можно и больше).
Установка Puppet довольно простая (все последующие команды выполняются от root):
Этими командами мы скачиваем deb пакет с сайта разработчиков puppet и устанавливаем его. Данный пакет puppetlabs-release-trusty.deb при установке создает файл /etc/apt/sources.list.d/puppetlabs.list в котором прописаны репозитории puppet, а также импортируется gpg ключ которым подписан репозиторий puppet. Сам puppetmaster мы не устанавливаем, он будет установлен автоматически при установке Foreman.
На этом установка Puppet закончена, приступим к установке веб-интерфейса Foreman:
Лабораторная работа «Обучаемся настраивать сети в GNU/Linux»
В данной импровизированной лаборатории я хотел бы осветить работу с сетями в GNU/Linux
и рассмотреть следующие темы:
- Изучаем vlan. Строим сеть между vm1, vm2 в одном vlan. Пингуем, ловим пакеты, изучаем заголовки.
- Разбиваем vm1 vm2 на разные vlan. Настраиваем intervlan routing с помощью R1.
- Iptables. Настраиваем маскарад. Имитируем выход во внешние сети.
- Iptables. Настраиваем port forwarding для сервисов на vm1 и v2, которые находятся за NAT.
- Iptables. Настраиваем security zones. Изучаем tcp сессии.
З.Ы. все люди ошибаются, я открыт для ваших комментариев, если я написал какую-то глупость, готов ее исправить!
Ищем и скачиваем непопулярные и старые файлы в интернете
Введение
Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.Увы, частая ситуация в попытке хоть что-то скачать
Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Поднимаем собственный репозиторий пакетов для Ubuntu (Debian)
В жизни любого развивающегося проекта рано или поздно (и лучше рано) наступает момент, когда эксплуатация многозначительно смотрит на разработку и предлагает оформить отношения. Дальнейшее развитие событий, как водится, зависит от обеих сторон. О плохом сегодня не будем, рассмотрим сразу случай, когда разработка готова использовать нехитрый инструментарий сборки пакетов, подготовленный для нее эксплуатацией (шаблоны debian/rules и debian/control, команды fakeroot, debuild, и так далее). Осталась самая малость: поднять для собранных пакетов собственный репозиторий.
Поскольку изучения интернетов внезапно показали, что тема, хоть и освещалась, и даже на Хабре, вряд ли может считаться внятно раскрытой, попробуем восполнить этот пробел.
Подводные камни Bash
В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.
- for i in $(ls *.mp3)
- cp $file $target
- Имена файлов с предшествующими дефисами
- [ $foo = «bar» ]
- cd $(dirname "$f")
- [ "$foo" = bar && "$bar" = foo ]
- [[ $foo > 7 ]]
- grep foo bar | while read -r; do ((count++)); done
- if [grep foo myfile]
- if [bar="$foo"]; then ...
- if [ [ a = b ] && [ c = d ] ]; then ...
- read $foo
- cat file | sed s/foo/bar/ > file
- echo $foo
- $foo=bar
- foo = bar
- echo <<EOF
- su -c 'some command'
- cd /foo; bar
- [ bar == "$foo" ]
- for i in {1..10}; do ./something &; done
- cmd1 && cmd2 || cmd3
- echo «Hello World!»
- for arg in $*
- function foo()
- echo "~"
- local varname=$(command)
- export foo=~/bar
- sed 's/$foo/good bye/'
- tr [A-Z] [a-z]
- ps ax | grep gedit
- printf "$foo"
- for i in {1..$n}
- if [[ $foo = $bar ]] (в зависимости от цели)
- if [[ $foo =~ 'some RE' ]]
- [ -n $foo ] or [ -z $foo ]
- [[ -e "$broken_symlink" ]] возвращает 1, несмотря на существование $broken_symlink
- Сбой ed file <<<«g/d\{0,3\}/s//e/g»
- Сбой подцепочки (sub-string) expr для «match»
- Про UTF-8 и отметках последовательности байтов (Byte-Order Marks, BOM)
- content=$(<file)
- for file in ./*; do if [[ $file != *.* ]]
- somecmd 2>&1 >>logfile
- cmd; ((! $? )) || die
- y=$(( array[$x] ))
- read num; echo $((num+1))
- IFS=, read -ra fields <<< "$csv_line"
- export CDPATH=.:~/myProject
Nagios — мониторинг vmware, CMC-TC, Synology, ИБП, принтеров и совсем немного Cisco
Здесь я расскажу, как и что можно в nagios мониторить в vmware, CMC-TC, Synology, ИБП (APC и Chloride), принтерах и о мониторинге интерфейсов в Cisco по именам и зачем это нужно.
Как перезагрузить сервер?
Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.
Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.
В этой статье: что мешает серверу перезагрузиться и как ему помочь.
Начнём с теории ребута.
При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.
Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
Более чем 80 средств мониторинга системы Linux
1. первый инструмент — top
Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: FireDac
Наше приложение будет работать с базой данных модель, которой представлена на рисунке ниже.
В конце данной статьи приведены ссылки на другие статьи, в которых описывается процесс создания базы данных с этой моделью и ссылка на скрипт создания базы данных.
Внимание! Эта модель является просто примером. Ваша предметная область может быть сложнее, или полностью другой. Модель, используемая в этой статье, максимально упрощена для того, чтобы не загромождать описание работы с компонентами описанием создания и модификации модели данных. |
Рецепт для systemd: принудительный перезапуск сервиса по файловому флагу
- имеется некий самописный сервис, запускаемый и отслеживаемый из systemd;
- необходимо при появлении файла-флага рестартовать этот сервис;
- делать это изнутри сервиса нельзя по религиозным соображениям.
Решение:
Ошибки молодости нашей. Или как сетевой инженер познаёт природу консоли
Всем привет! Сегодня хотел бы поговорить о стандартных ошибках, которые мы совершаем при настройке сетевого оборудования. Думаю, всем знакомо чувство, когда ты вводишь очередную команду в консоль и вдруг понимаешь, что консоль прекратила откликаться, а оборудование на другой стороне Земли (которое ты как раз и настраивал) больше не пингуется. В этот момент на секунду замирает дыхание, ты начинаешь отчётливо слышать биение своего сердца. Обострённый слух полностью сосредотачивается на телефонном вызове, который вот-вот раздастся. Организм съеживается и ты понимаешь, что это конец. Перебор, конечно же, не конец, а начало героического преодоления той ситуации, в которую ты себя только что загнал. А дальше будет подвиг, рассказ о твоём подвиге и, возможно, даже овации со стороны коллег. И самое главное, ты в очередной раз дашь себе зарок, что больше НИКОГДА так не будешь делать. Многие мне возразят, что это не про них и что они, настоящие профессионалы, такого не допускают. Это прекрасно, и я искренне рад за них. Но настоящими профессионалами не рождаются и не становятся в одночасье.
Описание более 350 команд Линукс
Фонетические алгоритмы
Часто довольно трудно найти в базе нетипичную фамилию, например:
— Леха, поищи в нашей базе Адольфа Швардсенеггера,В этом случае использование фонетических алгоритмов (особенно в сочетании с алгоритмами нечеткого сопоставления) может значительно упростить задачу.
— Шворцинегира? Нет такого!
Такие алгоритмы очень удобно использовать при поиске в базах по спискам людей, в программах проверки орфографии. Зачастую они используются совместно с алгоритмами нечеткого поиска (которые, несомненно, заслуживают отдельной статьи), предоставляя пользователям удобный поиск по именам и фамилиям в различных базах данных, списках сотрудников и так далее.
В этой статье я рассмотрю наиболее известные алгоритмы, такие как Soundex, Daitch-Mokotoff Soundex, NYSIIS, Metaphone, Double Metaphone, русский Metaphone, Caverphone.
Фантастика сейчас
Произведения, претендующие на статус классических
1. Роберт Ибатуллин «Роза и Червь»
Алмазной твердости научная фантастика, единственное произведение с чужой цивилизацией галактического масштаба и соблюдением теории относительности.
Аннотация от Алексея Анпилогова. Книга выйдет к новому году. К сожалению, автор удалил опубликованные части из странички на Самлибе.
Информация
- В рейтинге
- Не участвует
- Откуда
- Ивано-Франковская обл., Украина
- Зарегистрирован
- Активность