Исправление Can’t do seteuid! в Perl

Данные изменения необходимы при настройке ряда ПО, требующего выполнения Perl программ с повышенными привилегиями.

Проблема и решение:

Программы с реализованными враждебными функциями имеют прямую возможность заставить интерпретатор передавать на выполнение при вызове “недоверительную среду окружения”, что косвенно способствует выполнению случайных команд от имени пользователя root.

Однако некоторые дистрибутивы изначально нечувствительны к такой perl уязвимости, так как /usr/bin/suidperl имеет режим доступа 755 по умолчанию. Администратор должен явно разрешить suidperl путем изменени прав доступа на 4755  root.root для открытия ланного типа уязвимости. В  SuSE, активация suidperl выполняется изменением файла  /etc/permissions.(easy|secure) и запуском SuSEconfig или команды chkstat -set /etc/permissions.(easy|secure). Однако при включении данной возможности, рекомендуется выставлять разрешающее право на файл /usr/bin/sperl****, что является жесткой ссылкой на /usr/bin/suidperl. Программы с suidperl требуют явного указания в коде некоторых переменных среды, для защиты от передачи значений переменных “злым” пользователем.

На суперкомпьютерах семейства скиф разрешено выполнять программы с установленным битом suid.

HPC Administrator : Свободные узлы кластера SKIF-BLADES50 : showbf vs pbsnodes

Контекст: Система очередей Torque PBS. Система управления заданиями Maui.

Доступна программная компонента showbf, которая выводит список узлов по заданному свойству узла.
Пример использования для поиска количества свободных вычислительных виртуальных процессорных эквивалентов:

$ showbf -f batch
backfill window (user: 'test' group: 'grp_test' partition: ALL) Wed Sep  8 10:32:59
40 procs available with no timelimit
$

“HPC Administrator : Свободные узлы кластера SKIF-BLADES50 : showbf vs pbsnodes”Continue reading

При помощи htb.init разделяем трафик полностью

Если у Вас есть Ваша собственная домашняя сеть с двумя или более компьютерами и она подключена к интернету, вы точно знаете о тех проблемах с одновременным доступом к сети, которые практически неизбежны при таком подключении. Самой большой и раздражающей проблемой является разделение ширины канала между всеми участниками сети: когда вы пытаетесь работать серез ssh с удаленным сервером, а в этот момент ваша wife/брат/друг решает поглядеть новый и очень классный видео клип с Google Video или YouTube, Ваше соединение замирает и вы можете забыть о комфортабельной работе . В этой маленькой статье я дам вам простое решение этой проблемы, которое позволит вам делать все, что угодно не думая о проблемах разделения трафика!

Для начала замечу, что Ваша сеть должна быть подключена к Internet при помощи Linux сервера. Если Вы подключены через какой-то тупой аппаратный маршрутизатор, то Вам сильно не повезло и вы не сможете воспользоваться приведенным примером.

Если же Ваш сервер работает под управлением Linux, тогда используйте слудеющие ниже интсрукции чтобы сделать вашу жизнь проще. Замечу, что у меня интернет подключен к интерфейсу eth0, а локальная сеть – к eth1, канал у меня – симметричное подслючение на 512Kbit/s, потому все примеры будут очновываться на этих параметрах:

  1. Скачайте скрипт htb.init с сайта sourceforge.
  2. Распакуйте его и положите в /sbin/htb.init, сменив ему аттрибуты, чтобы сделать его исполнимым:

    # chmod +x /sbin/htb.init

  3. Создайте каталоги для конфигурации и кеша htb.init:

    # mkdir -p /etc/sysconfig/htb
    # mkdir -p /var/cache/htb.init

  4. Перейдите в каталог коныигурации htb.initи создайте следующие конфигурационные файлы для исходящего трафика:
    • Файл ‘eth0′ со следующим содержимым:

      DEFAULT=30
      R2Q=100

    • Файл ‘eth0-2.root’ со следующим содержимым:

      # root class containing outgoing bandwidth
      RATE=512Kbit

    • Файл ‘eth0-2:10.ssh’ со следующим содержимым:

      # class for outgoing ssh
      RATE=256Kbit
      CEIL=512Kbit
      LEAF=sfq
      RULE=*:22
      PRIO=10

    • И, наконец, файл ‘eth0-2:30.default’ со следующим содержимым:

      # default class for outgoing traffic
      RATE=256Kbit
      CEIL=512Kbit
      LEAF=sfq
      PRIO=30

  5. Теперь, создайте набор файлов для управления входящим трафиком:
    • Файл ‘eth1′ со следующим содержимым:

      DEFAULT=30
      R2Q=100

    • Файл ‘eth1-2.root’ со следующим содержимым:
      # root class containing incoming bandwidth
      RATE=512Kbit

    • Файл ‘eth1-2:10.ssh’ со следующим содержимым:

      # class for incoming ssh
      RATE=256Kbit
      CEIL=512Kbit
      LEAF=sfq
      RULE=*:22,
      PRIO=10

    • Файл ‘eth1-2:20.mytraf’ для конфигурирования параметров канала на Ваш компьютер:

      # class for my incoming traffic
      RATE=256Kbit
      CEIL=512Kbit
      LEAF=sfq
      RULE=192.168.0.2 # this is my ip
      PRIO=20

    • И файл ‘eth1-2:30.default’ для параметров канала по умолчанию для остальных со следующим содержимым:

      # default class for outgoing traffic
      RATE=256Kbit
      CEIL=512Kbit
      LEAF=sfq
      PRIO=30

  6. Последний шаг – запуск системы контроля трафика при помощи следующей команды:

    # /sbin/htb.init start
    #

Если все шаги были выполнены правльно и успешно, Вы можете использовать Ваш канал для работы через ssh, для скачивания файлов или для простого серфинга… Ваше соединение будет честно делиться между всеми участниками домашней сети. Если вы находитесь в сети один, Вы будете использовать всю ширину канала. Как только ваши соседи захотят что-то скачать, ширина канала будет разделена между вами поровну, но ваша работа будет настолько же комфортной, как и в тот момент, когда Вы были одни.

Linux:Server:DNS: Как создавать обратные зоны в BIND

Содержание

  • Создание реверсной зоны

    • Запись SOA

    • Запись NS

    • Запись Ptr(Pointer)

  • Реализации DNS серверов

  • Использование BIND9 для первичного сервера зоны

  • Использование BIND 9 для вторичного сервера зоны

Создание реверсной зоны

Создание реверсной зоны является тем же самым процессом как и создание любого другого зонного файла. Записи SOA и начальная NS такие же как и в любой другой нормальной зоне. Однако здесь требуется создание дополнительных PTR записей. Далее будем ориентироваться
при создании зоны на использование BIND. В принципе все должно быть тоже самое как и для других реализаций DNS серверов. Однако, детали судя по всему буду различны.

Запись – Start of Authority (SOA)

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

<mydomain.where.> IN SOA <ns-computer.mydomain.where.> <mailbox.mydomain.where> ( <serial-number>
<refresh>
<retry>
<expire>
<minimum-ttl> )

Здесь:

Поле Описание
mydomain.where Имя домена которому SOA принадлежит. Вместо записи полного домена, можно использовать ‘@’ в файле и сервер должен это заменить автоматически.Пример:28.12.202.in-addr.arpa.@
IN Класс DNS записи. ‘IN’ – абревиатура Internet’.
SOA Тип DNS записи, ‘Start of Authority’.
ns-computer.mydomain.where. Так же известно как ‘master’ поле записи. Содержит имя узла, являющегося
первичным сервером зоны. Это указывает по сути компьютер на котором делают изменения зонных файлов.
mailbox.mydomain.wherename. Содержит e-mail адрес человека, ответственного за поддержание зоны. “@” символ не используется, а заменен точкой ‘.’, и любые ‘.’ перед “@” заменяються ‘\’.Пример:

Email адрес Соответствующий вид в поле
dns-admin@sysnet.by dns-admin.sysnet.by
dns.admin@sysnet.by dns\admin.sysnet.by

Недавно, случайные символы стали разрешены в этом поле, и ‘@’ сейчас стал допустим. Однако, старый формат используется большинством администратором и подразумевается многими DNS утилитами проверки.

serial-number Последовательный номер текущей версии базы. Если у вторичного
сервера номер меньше, чем у первичного, это указывает, что запись вторичного сервера устарела и что требуется передача зоны с первичного сервера.
refresh Указывается первичному серверу как часто опрашивать первичный сервер и проверять изменение поля серийного номера.
retry Если попытка обновления зоны неудачна, то вторичный сервер должен
повторить ее после данного интервала.
expire Если попытки обновления и повторы неудачны, вторичный сервер должен
остановить обслуживание зоны после указанного периода.
minimum-ttl TTL (Time To Live) – значение по умолчанию для каждой записи в зоне. Используется только когда определенная запись не имеет собственного значения TTL. Когда изменения часто делаются в зоне, то обычно устансерверовавливается порядка 10 минут или меньше.

Пример SOA:

20.120.202.in-addr.arpa. IN SOA ns.sysnet.by. admin.sysnet.by. (
20089040701 ;Serial number
10800 ;Refresh
3600 ; Retry
604800 ; Expire
86400) ; Minimum TTL

Символ ‘;’ указывает, что оставшаяся часть строки является комментарием и должна игнорироваться сервером. Также завершающая точка (‘.’) после каждой записи ссылается на имя узла. Без нее сервер добавит текущую зону в конец записи. Для примера, ns.sysnet.by
должен быть интерпритирован как ns.sysnet.by.20.120.202.in-addr.arpa.

Запись сервера разрешения имен – NS

NS запись обьявляет сервера имен, которые обслуживают эту зону и имеет следующий формат:
Пример:

mydomen.where. IN NS hostname.mydomain.where.

Здесь:

Поле Описание
mydomain.where Имя домена, которму принадлежит NS. Вместо записи полной строки , можно использовать ‘@’, что даст возможность серверу заполнить его автоматически.
IN Класс записи. ‘IN’ – аббревиатура для Internet.
NS Тип записи. В данном случае ‘Name Server’.
hostname.mydomen.where. Имя авторитативного сервера.

Пример NS записи:

IN NS ns.sysnet.by.
IN NS ns.sexmarket.by.

Запись указатель – PTR

В домене, необходимо создавать записи доменного указателя (PTR) для каждого IP адресса. Для примера с адресом ‘193.23.27.133’, это будет:

133.27.23.193.in-addr.arpa. IN PTR stock.sexmarket.by.

Однако, так как SOA запись уже содержит in-addr.arpa домен, то можно не писать это снова, а только сократить до:

133 IN PTR men.sexmarket.by.

После создания PTR записи следующим шагом становиться задача загрузки в сервер.

Реализация DNS серверов

Существуют различные реализации DNS протокола. Наиболее популярный на сегодняшний день это BIND (Berkeley Internet Name Domain). Информация о последней версии доступна:

  • ISC BIND (http://www.dns.net/dnsrd/servers.html)

APNIC рекомендует устанавливать и использовать BIND9, как имеющий наибольшее число характеристик и исправленные ошибки безопасности.

Список остальных серверов можно поискать здесь:

Использование BIND9 для установки первичного сервера зоны.

1. Добавить запись с указанием первичного сервера в файл named.conf, используя следующий формат:

zone “<domain_name>” in {
type master;
file “<path-name>”;
};

где:

Поле Описание
domain_name Имя домена.Например: 14.12.211.in-addr.arpa.
type master Определяет, что этот сервер является первичным для данного домена.
path-name Расположение файла, содержащего зональные данные. Имя файла может быть любым.

2. Даем команду серверу перечитать новый файл:

rndc reconfig

Пример первичного сервера:

zone “14.12.211.in-addr.arpa” in {
type master;
file “reverse/14.12.211.in-addr.arpa”; };

Использование BIND9 для установки вторичного сервера зоны

1. Добавить запись с указанием вторичного сервера в файл named.conf, используя следующий формат:

zone “<domain-name>” {
type slave;
file “path-name”;
masters { <ip-address>; };
};

где:

Поле Описание
domain-name Имя домена: Например 14.12.211.in-addr.arpa.
type slave Определяет вторичный сервер.
path-name Расположение файла содержащего зональные данные. Имя файла может быть любым.
masters Указание адреса первичного (мастер).
ip-address IP адресс первичного сервера.

2. Даем команду серверу перечитать новый файл:

rndc reconfig

Пример вторичного сервера:

zone "14.12.211.in-addr.arpa" {
     type slave;
     file "slave/14.12.211.in-addr.arpa";
     masters {  212.11.14.100;};
};

Linux:Консоль – Сравнение содержимого директорий

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

Сравнение содержимого двух директорий и вывод только информации по отсутствующим или различным файлам:

diff -qrN /dir/1 /dir/2
r – лезем в поддиректории
q – выводим сообщения только для различий
N – считаем отсутствующие файлы пустыми

Вообще-то, возможности этой утилиты гораздо шире и важнее, но это обсуждать нужно в своем контексте.
Говорим спасибо авторам: Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, and Len Tower.

Scroll to top