Популяризация OpenBSD, часть1 (Вструпление, азы pf, туннели, upnp)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Аватара пользователя
kasak
Сообщения: 880
ОС: OpenBSD

Популяризация OpenBSD, часть1

Сообщение kasak » 07.04.2015 13:35

Наконец-то нашёл время чтобы составить первую часть статей про лучшую ОС в мире - OpenBSD.
Начну с причин написания оной. Очень часто на форумах и в комментариях к новостям и статьям я вижу отзывы об OpenBSD что это не нужно, и её разработка - бесполезная трата времени.
Я категорически не согласен с этой группой товарищей. Глубоко познакомившись с этой системой и сравнив её достоинства и недостатки с другими nix системами я могу в полной уверенности заявить что OpenBSD лучшая их них!
И дело не в безопасности, и некорректно ставить безопасность этой системы на первое место хотя это безусловно её плюс. А основное её достоинство в "правильности" этой системы.
Когда мы говорим о линукс, я прежде всего представляю себе сильное ядро, которое держится на лесе из различных костылей которые то один то другой пытается под него подставить. Взять к примеру бесконечные споры о системе инициализации, тут давно уже ассортимент более чем наполнен, тут и systemv, и openrc, и systemd и upstart, но главное остаётся главным, если их всё ещё переписывают, значит имеются причины по которым это нужно делать. А бесконечные баги в убунтах по типу отказывающегося авторизовывать vsftpd или постоянно вылезающих косяках pam из-за самбы, или вот эта интересная история с centos, где первые строки в абсолютно любому рецепту в ней - "выключите selinux" Да вобщем за время работы со многими дистрибутивами я словил много непонятных проблем, которые в основном конечно вылезали именно из-за слишком большой запутанности этих костылей друг над другом. Кроме того до пришествия systemd я ни разу не видел нормальной консольной утилиты для управления демонами по время запуска. В основном тот же убунту сервер считает что если демон установлен - значит должен быть включен, и никаких исключений быть не может. А если тебе вдруг надо написать скрипт для запуска какого-нибудь жава приложения, нужно весьма и весьма постаратся чтобы разобраться как вообще это написать и как потом заставить работать.
В OpenBSD этих проблем нет. Они просто написали раз и навсегда нормальную систему инициализации, где всё чётко, понятно, и не возникает вопросов. Точно так же написаны и все остальные части системы. Попробовав хоть раз разобраться в ней и обнаружив что для любой мелочи в этой системе есть своя инструкция, вы останетесь довольны! Система как будто прозрачна, пользуясь ей вы замечаете, что всё работает именно так, как нужно! И всё сделано так, как следует!

Что будет рассказано в цикле статей:
Я уже достаточно давно зарегистрирован на тогда ещё "linuxforum" и теперь переименованным в "unixforum" и надеюсь никто не будет против если я воспользуюсь знаменитостью ресурса для написания этих статей. Это будет не одна статья, я постараюсь рассказать о многих аспектах с которыми может столкнутся системный администратор, и расскажу новичкам как правильно и красиво настроить тот или иной сервис. Тут будет и фаервол, и фильтрация http, и подсчёт трафика по netflow, и настройка почтового сервера, а так же я расскажу как сделать "домашний серверок" со всеми необходимыми сервисами.

Для кого предназначены и не предназначены эти статьи: В основном я делаю упор на новичков в системном администрировании, а так же тех кто симпатизирует к OpenBSD но не может разобраться с ней самостоятельно. Если у вас бомбит от того что система не умеет "компрессия на лету, дедупликация, бла-бла-бла частное облако, бла-бла-бла эластичность, бла-бла-бла виртуальное окружение" то эта статья не для вас.

Об авторе: Я всегда был двоечником и, к сожалению, не обладаю ни грамотностью, ни красноречием, поэтому излагать свои мысли буду как умею. Я противник всего микрософтовского, противник идиотских трат типа покупок "клиентских терминалов" по 40 тысяч в том месте где сотрудникам можно раздать ноутбуки по 20. Я всегда считал что IT службы должны экономить ресурсы а не тратить их. Я стараюсь всегда использовать открытое ПО там где это возможно. Моя личка всегда открыта по любому вопросу по поводу OpenBSD или linux. Я безвозмездно помогу любому кто интересуется open source и хочет изменить мир к лучшему!

Итак поехали! Я пропущу простую процедуру установки операционки, потому что несколько раз нажать ентер должно быть справится любой. На сегодняшний день актуальная версия системы 5.6. С ней и будем работать!

Во время установки полезно чтобы инсталятор создал обычного пользователя, не root. Теперь этому пользователю надо дать привилегии. Заходим под root и запускаем visudo. Там раскоментируем следующее:

Код: Выделить всё

# Uncomment to allow people in group wheel to run all commands
# and set environment variables.
 %wheel ALL=(ALL) SETENV: ALL


После чего добавим нашего пользователя в группу wheel:

Код: Выделить всё

usermod -G wheel kasak


Сейчас и далее я считаю что наш юзер - kasak. Тут же кстати сразу видна разница между linux и bsd. В линуксе кроме параметра -G нужно было бы добавить ещё -a.

Выходим из root и переключаемся на нашего юзера.
Далее все приведённые команды должны начинаться с sudo, если мы работаем не под рутом.
Первое что нужно сделать - обеспечить себе возможность удобной установки пакетов.
Для этого откроем файл .profile, который находится в домашней папке пользователя, при помощи vi, и добавим в самый конец такие строки:

Код: Выделить всё

export PKG_PATH=http://mirror.yandex.ru/openbsd/`uname -r`/packages/`uname -m`/


Теперь если выйти и войти обратно, можно будет ставить пакеты через pkg_add <somepackage>

Я для удобства сразу же ставлю nano, но тут уже каждому своё.

Сейчас я предполагаю что у нас компьютер с двумя сетевыми картами. Если это сетевые карты Intel, то драйвер для них называется em, и соотвественно именоваться они будут em0 и em1.
Посмотреть какие сетевые интерфейсы наличиствуют в компьютере можно через

Код: Выделить всё

ifconfig -a


Настроить интерфейсы в openbsd очень просто. Для настройки любого интерфейса достаточно создать файл

Код: Выделить всё

/etc/hostname.<int name>

В моём случае, первый интерфейс был настроен при установке, у него статичный адрес и он смотрит в интернет.
Следующий интефейс будет смотреть в локалку. В моём случае это em1 и файлик /etc/hostname.em1
Добавим туда следующее:

Код: Выделить всё

inet 192.168.0.1 255.255.255.0 NONE description "LAN Link"

В данном случае inet означает что мы добавляем ipv4 адрес, далее идёт сам адрес и маска подсети. NONE означает что не указан специфичный broadcast адрес, и в нашем случае он автоматически становится 192.168.0.255. Description это просто описание интерфейса для нагладности. Его будет видно в ifconfig.

Я подразумеваю что первый интефейс был настроен при установке. Но если это не так, то адрес ему надо присвоить аналогичным образом, после чего вписать адрес основного шлюза в файл /etc/mygate и так же вписать собственное имя хоста в /etc/myname.

Днс настраивается точно так же как и в linux, через /etc/resolv.conf. В формате nameserver <server> Я думаю логично вписать туда

Код: Выделить всё

nameserver 127.0.0.1
и быстренько включить unbound:

Код: Выделить всё

/etc/rc.d/unbound start


Теперь нужно дать разрешение ядру форвардить пакеты. Для этого нужно создать /etc/sysctl.conf.
Но сами мы этого делать не будем. К счастью для этого у нас есть папка /etc/examples, откуда мы этот sysctl.conf и скопируем.

Код: Выделить всё

cp /etc/examples/sysctl.conf /etc


И в нём раскоментируем строку

Код: Выделить всё

net.inet.ip.forwarding=1


Ативируем изменения командой

Код: Выделить всё

sysctl -a


Теперь наш шлюз может перенаправлять пакеты. Настало время сконфигурировать сам pf.

Начнём с очень простой конфигурации. Вначале файлика сделаем простые объявления, чтобы в случае изменения конфиругации компьютера, не пришлось бы долго изменять весь конфиг. А openbsd очень просто и лихо переносится на другой компьютер!

Код: Выделить всё

wan=em0
lan=em1
lan_net=$lan:network


А вот в самый конец файла будем добавлять нашу фильтрацию!
Я всегда начинаю с очень простого правила:

Код: Выделить всё

block in on $wan


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

Теперь нам нужно разрешить доступ извне к ssh серверу, но при этом защитить его от нежелательных гостей:

Код: Выделить всё

table <ssh-brute> persist
block in quick from <ssh-brute>
pass in quick on $wan inet proto tcp to port ssh flags S/SA keep state (max-src-conn-rate 2/60, overload <ssh-brute> flush global )


Объясняю как это работает:
Первая строка это объявление таблицы, в которой будет хранится список врагов, persist означает что таблицу надо держать в памяти постоянно, иначе она может быть сброшена, когда перестанет использоваться правило с которым она связана.
Вторая строка это "быстрая" блокировка всех кто есть в таблице. PF работает с правилами по очереди. Тут подходит логика "использовать последнее подходящее правило" соотвественно, чтобы он не искал других правил, добавляем quick и это правило сработает сразу же.
Ну а теперь нужно в эту таблицу врагов воткнуть! Для этого и есть третья строка. Пока врага нет в таблице, второе правило не работает и применятся именно это правило, давайте разберём его по пунктам:
pass in quick - это понятно, пускаем входящий пакет быстро, чтобы правила которые имеются далее, нечаянно не помешали нам фильтровать.
on $wan inet. Это тоже не кажется сложным. on $wan означает что интерфейс внешний, inet означает ipv4 адреса. Кстати обратите внимание, этим же правилом мы разрешаем доступ к ssh только по ipv4! ipv6 будет заблокирован нашим первым правилом! block in on $wan
Далее идёт связка proto tcp to port ssh, то есть мы разблокируем именно tcp, и порт ssh. Описание какой порт как называется можно подсмотреть в /etc/services.
Далее уже посложнее, flasg S/SA, эта связка указывает как нужно работать в флагами tcp. Это касается именно tcp протокола, и работает по схеме check/mask. Грубо говоря этим правилом мы указываем pf чтобы он обращал внмание на пакеты с флагами S и A (вторая часть дроби) а правило совпадало если пакет с флагом S. Всё таки поскольку эта статья для новичков, давайте не углублятся в основы tcp, а просто поверьте что это должно быть именно так.
Далее идёт кусок keep state. Это поведение pf по умолчанию, и оно здесь только затем, чтобы pf не ругался на синтаксис, потому что после keep state идут скобки, которые односятся именно к keep state.
А что в скобках: max-src-conn-rate это ограничение на количество срабатывания данного правила. а нашем случае 2 раза на 60 секунд. overload означает что при перегрузке нужно отправить адрес источника в указанную таблицу. flush global означает что все уже созданные подключения этим хостом должны быть сброшены. Когда правило сработает, злоумышленник уже будет в таблице ssh-brute, и pf проверив его - не пустит.
Только обратите внимание на то, что ssh сервер сбрасывает соединение не сразу. У источника будет несколько попыток ввести пароль за одну сессию! Это число регулируется через maxauthtries в /etc/ssh/sshd_config. То есть в нашем случае 2/60 вовсе не означает 2 раза неправильно введённый пароль. Это означает двукратное подключение! Обратите так же внимание что правило не защищает от подбора пароля из локалки! Блокировка у нас стоит только снаружи.
Защищать или не защищать ssh изнутри - это уже дело читателя.

Это совсем немного сложно, но согласитесь, это же намного проще дебрей iptables где куча бестолковых таблиц и нет нормального конфига, не правда ли?

Поехали дальше!

Добавим правила чтобы разрешить icmp, потому что он как правило безвредный (напомню, правилом block in on $wan мы заблокировали абсолютно всё!) а так же разрешим доступ в ftp и к dns (подразумевается что наш шлюз будет ещё и dns

Код: Выделить всё

pass proto icmp

pass in on $wan inet proto {tcp,udp} to port domain
pass in on $wan inet proto tcp to port { ftp, www, https, 49151:65535 }


правила совсем простые. Я не думаю что надо дополнительно что-то тут разъяснять. открываем tcp и udp порт для domain, открываем tcp порты для ftp, www, https (21, 80, 443 порты) а так же диапазон, этот диапазон - для родного встроенного в openbsd ftpd.

И теперь когда мы разрешили доступ к необходимым сервисам, разрешим клиентам из локалки попадать в интернет!

Код: Выделить всё

pass out on $wan from $lan_net nat-to $wan:0

pass out on $wan означает что нужно пропускать пакеты на выход из внешнего интерфейса, from $lan_net - этим мы указываем какой сети разрешено выходить во внешнюю сеть, впереди у нас будут и другие сети, поэтому это имеет значение.
nat-to $wan:0 это особенность pf, означает что мы будем транслировать адреса в первый адрес интерфейса $wan. бывает такое что на интерфейсе wan может быть присвоен не один ip, данное правило транслирует адреса именно в первый адрес.
Обычно достаточно указать просто интерфейс, или просто ип адрес в который нужно транслировать. Однако я хочу показать насколько гибок pf, к тому же далее нас ждут новые и новые правила, которые придётся добавить по мере добавления других статей.

Всё, теперь можно наконец применять наши правила. Сначала давайте проверим синтаксис:

Код: Выделить всё

pfctl -n -f /etc/pf.conf

Нужно писать именно в такой последовательности! Сначала -n , потом -f, потом файл.

Если будут ошибки, pf скажет в какой строке. Если нет, мы просто получим очередное приглашение команднкой строки.
Теперь если всё в порядке применяем правила:

Код: Выделить всё

pfctl -f /etc/pf.conf


Если теперь добавить клиентам локальной сети нужный ip и шлюз, должен пойти пинг до ip адресов в интернете. Давайте добавим нашему шлюзу возможность обеспечивать локальную сеть dns сервером.
Для этого отредактируем /var/unbound/etc/unbound.conf
И добавим всего две строки в нужные места. Это

Код: Выделить всё

        interface: 192.168.0.1

и

Код: Выделить всё

        access-control: 192.168.0.0/24 allow


Куда их добавить будет очень видно. Теперь перезапускаем unbound и вуаля, имеем dns.
В качестве последей ступени можно добавить dhcpd, пример его конфига можно так же взять в /etc/examples.
Давайте я не буду останавливаться на этом, думаю с такой простой задачей читатель разберётся самостоятельно.

Теперь у нас есть замечательный шлюз, и настала пора рассказать как расширить функциональность!

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

Для активации upnp ставим сначала miniupnpd

Код: Выделить всё

pkg_add miniupnpd


Теперь его нужно сконфигурировать.
Указываем ему внешний интерфейс: ext_ifname=em0
интерфейс который будет слушать запросы с локалки: listening_ip=192.168.0.1/24
а так же разрешаем локалке открывать порты: allow 1024-65535 192.168.0.0/24 1024-65535
Это означает что можно открывать внешние порты 1024-65535, адресам 192.168.0.0 и перенаправлять их на порты 1024-65535. Надеюсь понятно.

Переходим к pf.

Нужно где-нибудь после правила block in on $wan вписать правило:

Код: Выделить всё

anchor "miniupnpd"


Теперь постарайтесь понять как будет работать это правило.

miniupnpd прекрасно знает синтаксис pf, и pf теперь знает, что miniupnpd будет давать ему правила.
когда кто-то из локальной сети попросит перенаправить порт на внутренний комп, miniupnpd создаст правило вида
pass in quick on em0 (это то что мы указали вначале конфига miniupnpd) proto tcp port <какой-либо порт> rdr-to <комп из локалки>
и на месте, где в конфиге pf указан anchor miniupnpd появится это правило! Сгенерированные таким образом правила можно посмотреть коммандой

Код: Выделить всё

pfctl -a miniupnpd -s rules


Очень просто! Было бы гениальным решением если бы кто-то из разработчиков fail2ban добавил бы в него возможность работы с якорями pf, но пока к сожалению нет :(

Последнее о чём я собирался рассказать в этой статье это туннели. Часто для этого используют openvpn и это очень хорошее решение! Однако в OpenBSD есть родной способ организовать шифрованный тоннель, и это очень просто (как и всё в OpenBSD)

Для огранизации туннеля средствами openbsd достаточно отредактировать /etc/ipsec.conf и внести туда вот такие коррективы:

Код: Выделить всё

local_gw = "1.2.3.4"
remote = "5.6.7.8"
lan = "192.168.1.0/24"
remote_lan = "192.168.2.0/24"

ike esp from $lan to $remote_lan peer $remote
ike esp from $local_gw to $remote_lan peer $remote
ike esp from $local_gw to $remote


Только разумеется подстроить свой и удалённый адреса соотвественно! Подразумевается что на обоих машинах есть реальные ip адреса. На удалённой машине нужно сделать всё тоже самое, но адреса разумеется прописать зеркально!

После чего нужно файл /etc/isakmpd/local.pub скопировать на удалённую машину в папку /etc/isakmpd/pubkes/ipv4/1.2.3.4
Аналогичное дейвствие проделываете с удалённой машиной, её local.pub копируете себе в /etc/isakmpd/ipv4/5.6.7.8
разумеется в обоих случаях ip адреса нужно заменять нужными адресами.

После чего запускаете демон isakmpd и вписываете в rc.conf.local примерно так:

Код: Выделить всё

isakmpd_flags="-K"
ipsec=YES


После перезапуска обоих систем должен появится пинг до удалённой сети! Очень просто!

Чтож, я не описал много того что хотел бы, но в целом положил начало моему циклу статей! Постараюсь в будущих статьях более полно рассказать о всех нюансах системы. Но во всех них я буду опираться на этот минимальный конфиг, который сейчас был создан.
Спасибо за внимание
Конец 1й части.
Linux fedora 4.14.11-300.fc27.x86_64 #1 SMP Wed Jan 3 13:52:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Популяризация OpenBSD, часть1

Сообщение alv » 07.04.2015 13:58

Вы бы ещё Капитал сюда целиком запостили.

kasak писал(а):
07.04.2015 13:35
Я всегда был двоечником и, к сожалению

Да, к сожалению. Может, сначала стать троечником?
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2017
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Популяризация OpenBSD, часть1

Сообщение Stauffenberg » 07.04.2015 14:58

Я думаю, что для OpenBSD нужен свой подраздел на форуме по типу как для fluxbox или Mac OSX. Этот материал нужно перенести туда.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2017
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Популяризация OpenBSD, часть1

Сообщение Stauffenberg » 07.04.2015 15:15

kasak писал(а):
07.04.2015 13:35
Начну с причин написания оной. Очень часто на форумах и в комментариях к новостям и статьям я вижу отзывы об OpenBSD что это не нужно, и её разработка - бесполезная трата времени.
Я категорически не согласен с этой группой товарищей. Глубоко познакомившись с этой системой и сравнив её достоинства и недостатки с другими nix системами я могу в полной уверенности заявить что OpenBSD лучшая их них!
И дело не в безопасности, и некорректно ставить безопасность этой системы на первое место хотя это безусловно её плюс. А основное её достоинство в "правильности" этой системы.
Когда мы говорим о линукс, я прежде всего представляю себе сильное ядро, которое держится на лесе из различных костылей которые то один то другой пытается под него подставить. Взять к примеру бесконечные споры о системе инициализации, тут давно уже ассортимент более чем наполнен, тут и systemv, и openrc, и systemd и upstart, но главное остаётся главным, если их всё ещё переписывают, значит имеются причины по которым это нужно делать. А бесконечные баги в убунтах по типу отказывающегося авторизовывать vsftpd или постоянно вылезающих косяках pam из-за самбы, или вот эта интересная история с centos, где первые строки в абсолютно любому рецепту в ней - "выключите selinux" Да вобщем за время работы со многими дистрибутивами я словил много непонятных проблем, которые в основном конечно вылезали именно из-за слишком большой запутанности этих костылей друг над другом. Кроме того до пришествия systemd я ни разу не видел нормальной консольной утилиты для управления демонами по время запуска. В основном тот же убунту сервер считает что если демон установлен - значит должен быть включен, и никаких исключений быть не может. А если тебе вдруг надо написать скрипт для запуска какого-нибудь жава приложения, нужно весьма и весьма постаратся чтобы разобраться как вообще это написать и как потом заставить работать.
В OpenBSD этих проблем нет. Они просто написали раз и навсегда нормальную систему инициализации, где всё чётко, понятно, и не возникает вопросов. Точно так же написаны и все остальные части системы. Попробовав хоть раз разобраться в ней и обнаружив что для любой мелочи в этой системе есть своя инструкция, вы останетесь довольны! Система как будто прозрачна, пользуясь ей вы замечаете, что всё работает именно так, как нужно! И всё сделано так, как следует!

Не хочу сказать ничего против OpenBSD, но всех описанных проблем нет в CRUX ;)
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Популяризация OpenBSD, часть1

Сообщение Bizdelnick » 07.04.2015 16:04

Видимо, в OpenBSD и CRUX нет разработчиков, страдающих NIH, и пользователей, не осиливших настройку системы. Тоже не хочу ничего плохого сказать, но отчасти причиной тому — очень малое количество тех и других.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
kerg
Сообщения: 71
ОС: win7, deb8

Re: Популяризация OpenBSD, часть1

Сообщение kerg » 10.04.2015 21:45

А почему именно OpenBSD? Почему, скажем, не FreeBSD? Чем они, кстати, отличаются?
Бегло полистал яндекс, пишут, что основные отличия это секьюрити и "лицензионная чистота". Думаю, для популяризации надо бы как-то определить преимущества именно этого экземпляра в группе.
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2017
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Популяризация OpenBSD, часть1

Сообщение Stauffenberg » 10.04.2015 22:26

kerg писал(а):
10.04.2015 21:45
А почему именно OpenBSD? Почему, скажем, не FreeBSD? Чем они, кстати, отличаются?

Ну как бы... два разных ядра (:
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
kerg
Сообщения: 71
ОС: win7, deb8

Re: Популяризация OpenBSD, часть1

Сообщение kerg » 11.04.2015 11:33

Stauffenberg писал(а):
10.04.2015 22:26
Ну как бы... два разных ядра (:

Этого мало. Это последняя по списку информация при выборе какого-то из юниксов.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Популяризация OpenBSD, часть1

Сообщение Bizdelnick » 11.04.2015 14:16

kerg писал(а):
11.04.2015 11:33
Это последняя по списку информация при выборе какого-то из юниксов.

А в начале списка у Вас что?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
kerg
Сообщения: 71
ОС: win7, deb8

Re: Популяризация OpenBSD, часть1

Сообщение kerg » 11.04.2015 14:30

Пользовательские прикладные программы, естественно. Их количество, качество, легкость установки и т.п.
А вообще, я бы хотел услышать популяризатора о плюсах/минусах и о преимуществах данной оси.
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: Популяризация OpenBSD, часть1

Сообщение yoshakar » 12.04.2015 15:03

kasak писал(а):
07.04.2015 13:35
А основное её достоинство в "правильности" этой системы.
kasak писал(а):
07.04.2015 13:35
И всё сделано так, как следует!
kasak писал(а):
07.04.2015 13:35
запускаем visudo.
То есть костыли вроде sudo - это "правильно" и "как следует". Понятно. Нет, уж лучше FreeBSD.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 2280
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14,2

Re: Популяризация OpenBSD, часть1

Сообщение Hephaestus » 12.04.2015 16:11

yoshakar писал(а):
12.04.2015 15:03
То есть костыли вроде sudo - это "правильно" и "как следует". Понятно. Нет, уж лучше FreeBSD.
Просветите мя грешного, чем так плохо sudo и что Вы предлагаете взамен.
Ибо я знаю только два варианта: sudo и su. Из которых первый, безусловно, имеет преимущества.

kasak, если надумаете публиковать материал, прогоните текст через спеллчекер - поправите хотя бы орфографию. Хотя и пунктуацию тоже надо бы - очень тяжело читать длинные фразы без знаков препинания.
По содержимому: поскольку материал ориентирован на новичков, советую Вам сделать врезку о редакторе vi, раз уж Вы его используете. Не каждому новичку vi сразу по силам. Укажите самые необходимые вещи: как переключиться в режим редактирования, как сохранить файл, как выйти из редактора. Либо предупреждайте сразу, что необходимы минимальные навыки работы с данным редактором.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Популяризация OpenBSD, часть1

Сообщение alv » 12.04.2015 17:41

kerg писал(а):
11.04.2015 14:30
Пользовательские прикладные программы, естественно. Их количество, качество, легкость установки и т.п.

Вообще-то как раз пользовательские приложения (не админские) во всех BSD-системах одни и те же. По секрету добавлю, что те же самые, что и в Linux'е.
kerg писал(а):
11.04.2015 14:30
я бы хотел услышать популяризатора о плюсах/минусах и о преимуществах данной оси.

О плюсах и минусах рассказывают пропагандисты. Цель популяризатора - рассказать об особенностях. А уж что в них плюсы, а что минусы - читателю хорошо бы сообразить самому.
yoshakar писал(а):
12.04.2015 15:03
То есть костыли вроде sudo - это "правильно" и "как следует". Понятно. Нет, уж лучше FreeBSD.

А Вы что, думаете, во FreeBSD нету sudo? Должен Вас разочаровать: есть. И грамотные админы примерняют эту команду во всех случаях, когда она уместна.

Hephaestus писал(а):
12.04.2015 16:11
Из которых первый, безусловно, имеет преимущества.

Кстати, да, sudo уместна в большинстве случаев. И особенно в BSD-системах, по понятным причинам.
Кстати, впервые об этой команде я услышал от фришного админа, который уже тогда (более 10 лет назад) её там давно и успешно использовал.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Популяризация OpenBSD, часть1

Сообщение Bizdelnick » 12.04.2015 19:04

kerg писал(а):
11.04.2015 14:30
Пользовательские прикладные программы, естественно. Их количество, качество, легкость установки и т.п.

Количество и качество их между свободными UNIX'ами практически не отличаются, так что критерий крайне неподходящий.

yoshakar писал(а):
12.04.2015 15:03
То есть костыли вроде sudo - это "правильно" и "как следует". Понятно. Нет, уж лучше FreeBSD.

Если не ошибаюсь, «из коробки» там sudo нет, и уж точно пользоваться им никто не заставляет, если считаете костылём.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Популяризация OpenBSD, часть1

Сообщение drBatty » 13.04.2015 08:48

alv писал(а):
12.04.2015 17:41
Кстати, да, sudo уместна в большинстве случаев. И особенно в BSD-системах, по понятным причинам.

каким именно причинам?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: Популяризация OpenBSD, часть1

Сообщение drBatty » 13.04.2015 09:01

kasak писал(а):
07.04.2015 13:35
А бесконечные баги в убунтах по типу отказывающегося авторизовывать vsftpd или постоянно вылезающих косяках pam из-за самбы, или вот эта интересная история с centos, где первые строки в абсолютно любому рецепту в ней - "выключите selinux"

даже и не знаю, что сказать. Разве отсутствие AppArmor, pam, SeLinux это плюс?

Ну выключите, раз вам не нравится. Есть Linux'ы, где всего вышеперечисленного нет, Slackware например.

А в OpenBSD даже coreutils дефектные. Смысл?

kasak писал(а):
07.04.2015 13:35
Наконец-то нашёл время чтобы составить первую часть статей про лучшую ОС в мире - OpenBSD.

kasak писал(а):
07.04.2015 13:35
Попробовав хоть раз разобраться в ней и обнаружив что для любой мелочи в этой системе есть своя инструкция, вы останетесь довольны!

зачем нужна ваша статья, если и так есть "все инструкции"?

kasak писал(а):
07.04.2015 13:35
Тут же кстати сразу видна разница между linux и bsd. В линуксе кроме параметра -G нужно было бы добавить ещё -a.

т.е. без -a оно не умеет, да?

Кстати, man русский есть? Вот. А у меня есть:

Код: Выделить всё

usermod(8)                           Команды управления системой                           usermod(8)

НАЗВАНИЕ
       usermod - изменяет учётную запись пользователя

СИНТАКСИС
       usermod [параметры] УЧЁТНАЯ_ЗАПИСЬ

ОПИСАНИЕ
       Команда usermod изменяет системные файлы учётных записей согласно переданным в командной
       строке параметрам.

ПАРАМЕТРЫ
       Параметры команды usermod:

       -a, --append
           Добавить пользователя в дополнительную группу(ы). Использовать только вместе с параметром
           -G.

http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

Аватара пользователя
kerg
Сообщения: 71
ОС: win7, deb8

Re: Популяризация OpenBSD, часть1

Сообщение kerg » 13.04.2015 09:32

alv писал(а):
12.04.2015 17:41
Вообще-то как раз пользовательские приложения (не админские) во всех BSD-системах одни и те же. По секрету добавлю, что те же самые, что и в Linux'е

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

Аватара пользователя
Stauffenberg
Сообщения: 2017
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Популяризация OpenBSD, часть1

Сообщение Stauffenberg » 13.04.2015 09:43

kerg писал(а):
13.04.2015 09:32
alv писал(а):
12.04.2015 17:41
Вообще-то как раз пользовательские приложения (не админские) во всех BSD-системах одни и те же. По секрету добавлю, что те же самые, что и в Linux'е

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

И речь конечно же идет о какой-нибудь проприетарщине типа Skype? Тогда бубунту, или даже Windows.

kerg писал(а):
11.04.2015 11:33
Stauffenberg писал(а):
10.04.2015 22:26
Ну как бы... два разных ядра (:

Этого мало. Это последняя по списку информация при выборе какого-то из юниксов.

Вы спросили о различиях. Даже две одинаковые программы на осях с разными ядрами и/или библиотеками будут работать по-разному.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Популяризация OpenBSD, часть1

Сообщение Bizdelnick » 13.04.2015 11:34

kerg писал(а):
13.04.2015 09:32
есть и другой софт и ещё не так давно были версии выпущенные только под какой-нибудь солярис или айрикс.

Irix? IMHO это таки было довольно давно, и то, что под него писалось, если не загнулось вместе с ним, перенесено на другие системы.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Популяризация OpenBSD, часть1

Сообщение alv » 13.04.2015 12:38

kerg писал(а):
13.04.2015 09:32
alv писал(а):
12.04.2015 17:41
Вообще-то как раз пользовательские приложения (не админские) во всех BSD-системах одни и те же. По секрету добавлю, что те же самые, что и в Linux'е

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

Да назовите хоть один конкретный пример столь нужного Вам софта. А то уже который раз читаю Ваши рассуждения о недостающих программах, а ни одного названия их не видел.
Весь специализированный проприетарный софт, с которым мне приходилось сталкиваться, всегда собирался под все проприетарные же UNIX'ы. За исключением уж совсем заказных программ типа систем для обработки глубинной сейсмики. Но почему-то мне кажется, что нефтяные корпорации не стоят у Вас под дверью в очереди со своими данными для обработки.
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Популяризация OpenBSD, часть1

Сообщение alv » 13.04.2015 12:46

Stauffenberg писал(а):
13.04.2015 09:43
Даже две одинаковые программы на осях с разными ядрами и/или библиотеками будут работать по-разному.

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

Bizdelnick писал(а):
13.04.2015 11:34
Irix? IMHO это таки было довольно давно, и то, что под него писалось, если не загнулось вместе с ним, перенесено на другие системы.

Да никогда общедоступный проприетарный софт не писался под один какой-то проприетарный UNIX. Общедоступный - в смысле который можно было зайти с улицы и купить.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Популяризация OpenBSD, часть1

Сообщение Bizdelnick » 13.04.2015 13:03

alv писал(а):
13.04.2015 12:46
Да никогда общедоступный проприетарный софт не писался под один какой-то проприетарный UNIX.

Ну почему же, специфический 3D-софт как раз под Irix писался в количестве. Зайти и купить его, думаю, не было проблемой, если найти, куда надо заходить, и, главное, если денег в кармане хватит. Сейчас многое перенесли на Linux (навскидку — Maya), но не на BSD.
Но если есть потребность в таком специфическом софте, то не то что ОС, но и железо под него особо подбирать надо.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Популяризация OpenBSD, часть1

Сообщение alv » 13.04.2015 17:02

Bizdelnick писал(а):
13.04.2015 13:03
навскидку — Maya

Да, согласен, забыл. Но там спецфика - в момент создания её предшественников должного уровня 3D не было ни на одной аппаратной платформе.
Но всякий софт типа Имиджпроцессоров, даже если они изначально писались под тот же Irix (по той же причине), потом ползуче расползались по всем коммерческим Юниксам, как только их аппаратная база начинала позволять. В частности, для Solaris это случилось с появлением 3D Creator на Sparc'ах.
А софт, не требовавший специфической аппаратуры, всегда был кросс-юниксовым.
Bizdelnick писал(а):
13.04.2015 13:03
Сейчас многое перенесли на Linux

Но в основном все эти ребята были озабочены переносом на Windows, как только это стало возможно (то есть с появлением NT 4.0): понимали, что на красноглазых халявщиках им бабла не срубить.
Да оно в общем-то и ясно: такие вещи продаются в виде программно-аппаратных комплексов стоимостью 20-30 килоьаксов на рабочее место, так что стоимость ОС на этом фоне - что комар на ухе слона
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Популяризация OpenBSD, часть1

Сообщение alv » 13.04.2015 17:08

Bizdelnick писал(а):
13.04.2015 13:03
Но если есть потребность в таком специфическом софте, то не то что ОС, но и железо под него особо подбирать надо.

На счёт Maya не скажу, а вот под ГИСы/Имиджпроцессоры никто ничего не подбирал - покупали гуртом готовое решение.
Когда я ещё на службе пребывал, у нас как-то появилась идея слепить это из самосборной Альфы и Линукса - всё-таки не нефтяная корпорация, а академия наук. Нам посоветовали не пудрить себе мозги. В итоге были куплены Спарки в ублюдочной комплектации и с недоношенным софтом за немерянные дэнги.
Принцип одной из моих бывших покойных тёщ в действии:
Похуже, подороже, зато по блату.
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2017
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Популяризация OpenBSD, часть1

Сообщение Stauffenberg » 15.04.2015 11:31

alv писал(а):
13.04.2015 12:46
Stauffenberg писал(а):
13.04.2015 09:43
Даже две одинаковые программы на осях с разными ядрами и/или библиотеками будут работать по-разному.

Теоретически рассуждая, корректно написанная под абстрактный UNIX программа должна собираться и одинаково работать под любым представителем семейства.

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

В OpenBSD есть много чего, что используют только они (и копируют другие системы). Взять хотя бы OpenSSH: версии для OpenBSD и GNU/Linux используют разный код.
Другой пример - в OpenBSD с 2003 года, если я не ошибаюсь, используется их собственная malloc(3).
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Популяризация OpenBSD, часть1

Сообщение Bizdelnick » 15.04.2015 12:02

Stauffenberg писал(а):
15.04.2015 11:31
В OpenBSD есть много чего, что используют только они (и копируют другие системы). Взять хотя бы OpenSSH: версии для OpenBSD и GNU/Linux используют разный код.
Другой пример - в OpenBSD с 2003 года, если я не ошибаюсь, используется их собственная malloc(3).

Это разве как-то влияет на видимое пользователю поведение корректно написанной программы? Их malloc соответствует стандарту, а значит и программа, не завязанная на конкретную реализацию, будет вести себя одинаково в OpenBSD, FreeBSD и GNU/Linux. Разный код для разных платформ — это, видимо, оттого, что в OpenBSD есть свои (более безопасные или как-то ещё улучшенные) функции, альтернативные функциям стандартной библиотеки C, но использование их или стандартных функций, при условии отсутствия ошибок в коде, не должно как-то проявляться для пользователя.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2017
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Популяризация OpenBSD, часть1

Сообщение Stauffenberg » 15.04.2015 12:15

Bizdelnick писал(а):
15.04.2015 12:02
Stauffenberg писал(а):
15.04.2015 11:31
В OpenBSD есть много чего, что используют только они (и копируют другие системы). Взять хотя бы OpenSSH: версии для OpenBSD и GNU/Linux используют разный код.
Другой пример - в OpenBSD с 2003 года, если я не ошибаюсь, используется их собственная malloc(3).

Это разве как-то влияет на видимое пользователю поведение корректно написанной программы?

Например, SSH-сессия между A и Б. Мы видим терминал А. Хост Б выключается. В GNU/Linux должно пройти какое-то время, чтобы клиент сообщил о прекращении сессии, в OpenBSD ждать не нужно.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7261
Статус: Пенсионер в законе
ОС: Cintu

Re: Популяризация OpenBSD, часть1

Сообщение alv » 15.04.2015 13:27

Stauffenberg писал(а):
15.04.2015 11:31
Взять хотя бы OpenSSH: версии для OpenBSD и GNU/Linux используют разный код.

Понимаете, мы с Вами говорим из разных окопов. Я ни разу не админ и не пол-раза не программер. В прошлой жизни я был применителем узкоспециализированных тяжёлых программ. По той жизни тяжёлых - для тогдашних машин.
Так вот, могу сказать Вам со всей ответственностью: например, GMT, сочинённая двумя жизнерадостным гавайцами (начал писать - весёлыми, но побоялся, не так поймуть, он вообще-то профессора университета Гонолул были) в 80-х под UNIX уже никто не спомнит какой, работает по сей день - на всех ныне живущих платформах.
И таких примеров я могу умножить.
А уж какой там malloc - мне (и, между прочим, майнтайнеру пакета) по барабану.
Впрочем, на эту тему Bizdelnick уже сказал.
PS да, главное, чтобы это был правильный malloc
то есть примерно соответствующий более-менее общепринятому стандарту
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2017
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Популяризация OpenBSD, часть1

Сообщение Stauffenberg » 16.04.2015 13:08

alv писал(а):
15.04.2015 13:27
Stauffenberg писал(а):
15.04.2015 11:31
Взять хотя бы OpenSSH: версии для OpenBSD и GNU/Linux используют разный код.

Понимаете, мы с Вами говорим из разных окопов. Я ни разу не админ и не пол-раза не программер. В прошлой жизни я был применителем узкоспециализированных тяжёлых программ. По той жизни тяжёлых - для тогдашних машин.
Так вот, могу сказать Вам со всей ответственностью: например, GMT, сочинённая двумя жизнерадостным гавайцами (начал писать - весёлыми, но побоялся, не так поймуть, он вообще-то профессора университета Гонолул были) в 80-х под UNIX уже никто не спомнит какой, работает по сей день - на всех ныне живущих платформах.
И таких примеров я могу умножить.
А уж какой там malloc - мне (и, между прочим, майнтайнеру пакета) по барабану.
Впрочем, на эту тему Bizdelnick уже сказал.
PS да, главное, чтобы это был правильный malloc
то есть примерно соответствующий более-менее общепринятому стандарту

Алексей, я все же позволю себе продолжать думать, что о том, что память является самым уязвимым местом, знает каждый уважающий себя пользователь ЭВМ :tongue:
Уязвимое место в плане безопасности естественно. Почему я говорю о безопасности в контексте о OpenBSD, я думаю, говорить не стоит.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 14940
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Популяризация OpenBSD, часть1

Сообщение Bizdelnick » 16.04.2015 14:46

Stauffenberg писал(а):
16.04.2015 13:08
о том, что память является самым уязвимым местом, знает каждый уважающий себя пользователь ЭВМ

Очень немногие пользователи ЭВМ уважают в себе пользователя ЭВМ до такой степени, чтобы это знать.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Спасибо сказали: