четверг, 19 ноября 2015 г.

Защита системы


Супер сервер (super server) - сервер, прослушивающий сетевые соединения вместо другого сервера, и передающий ему управление, если соединение устанавливается. Использование супер севрера может быть удобно, если он управляет несколькими серверами, т.к. это уменьшает нагрузку на управляемые серверы и позволяет централизованно управлять настройками безопасности. Наиболее популярные супер серверы inetd и xinetd.

Настройки inet.d в файле /etc/inetd.conf и директории /etc/inetd.d

Пример настройки для ftp  сервера: 
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd -l
Данная строка состоит из следующих полей:
-имя службы
-тип сокета: stream - надежная двунаправленная передача, dgram - менее надежная передача с меньшим количеством служебной информации, raw - сырой сокет
-протокол  - как правило tcp или udp
-wait/no wait - для сокетов типа dgram эта запись определяет поведение сервера: подключиться к клиенту и освободить сокет (no wait) или обработать все пакеты и отключиться по таймауту (wait). Для других типов сокетов следует указывать nowait.
-пользователь - пользователь от имени которого запускается сервер. Всегда, когда это возможно, серверы следует запускать от имени непривилегированного пользователя.
-имя сервера - в примере это /usr/sbin/tcpd то есть исполняемый файл tcp-wrapper'а
-параметры - все значения указанные после имени сервера являются параметрами, передаваемыми серверу. Если используется tcp-wrapper ему в качестве параметра передается имя реального сервера, в примере это /usr/sbin/in.ftpd

среда, 4 ноября 2015 г.

Написание скриптов, настройка почты, использование баз данных


Задать переменную среды: HOSTNAME=carson.example.com
Сделать переменную среды доступной для пользователей: export HOSTNAME
Вывести переменную среды на экран: echo $HOSTNAME
Задать переменную среды для отдельной программы: env DISPLAY=seeker.example.com:0.0 nedit (env принимает опции: -i запуск с пустой средой, -u - удалить значение определенной переменной).
Наиболее распространенные переменные среды:
-USER, USERNAME - имя пользователя 
-SHELL - путь к текущей командной строке
-PWD - текущая рабочая директория
-HOSTNAME - текущее TCP/IP имя хоста
-PATH - директории, в которых будет производиться поиск исполняемых файлов
-HOME - путь к домашней директории пользователя
-MAIL - путь к временным файла почты (mail spool)
-LANG - текущий язык
-TZ - часовой пояс
-LD_LIBRARY_PATH - директории в которых будет проиводиться поиск файлов библиотек
-PS1 - сообщение по умолчанию в командной строке. Как правило содержит перменные, такие как \u (пользователь), \h (имя хоста), \W (рабочая директория)
-TERM - имя текущего типа терминала (например xterm)
-DISPLAY - дисплей, используемый Х сервером. Как правило 0:0 (первый дисплей). Если на компьютере запущено несколько сессий Х, у каждой будет свой номер дисплея, например 0:0 у первой, 1:0 у второй и т.д.
-EDITOR - программа, которая запускается при вызове другой программой текстового редактора (обратить внимание: графические редакторы могут вызывать проблемы, если запускать их в текстовом режиме)

вторник, 6 октября 2015 г.

Уменьшить занимаемое место на диске UniFi + mFi

При установке контроллера UniFi я сильно удивился тому, свободное место на диске уменьшлось больше чем на 4 гигабайта, а когда добавил контроллер mFi еще на 4 и все система рухнула из-за недостатка места на диске (на виртуалку было выделено 10Гб).

Разобравшись, удалось уменьшить занимаемое место на диске до 3.5Гб (включая файлы ОС. В качестве ОС используется Debian без графического интерфейса). Текущая конфигурация: виртуальный сервер с 1 процессором, 512Гб оперативной памяти. Средняя загрузка процессора и памяти в пределах 10%. Контроллеры держат 8 точек доступа и 1 датчик температуры. На точках в рабочее время висит 3-8 клиентов (обычно пределах 50 в общем)

Все описанные манипуляции производились ДО настройки контроллеров и добавления точке.

Делаем:

1. Устанавливаем mongo без установки  UniFi:

apt-get install mongodb

2. После установки mongo создаст дефолтный экземпляр базы данных и зарезервирует место под журналы (порядка 3 гигабайт). Для небольшого количества точек это слишком много. Поэтому редактируем файл настроек  /etc/mongodb.conf. Добавляем строку:
smallfiles = true
раскомментируем строку:
noprealloc = true

четверг, 1 октября 2015 г.

Администрирование системы

Администрирование системы
Настройки групп хранятся в файле /etc/group
Пользователь может быть членом нескольких групп, но по умолчанию каждому пользователю назначается первичная (primary) группа. Данные о первичных группах пользователей хранятся в файле /etc/passwd Когда пользователь авторизуется на компьютере, он рассматривается как член первичной группы. Когда пользователь создает файлы или запускает программы, эти файлы и программы ассоциируются с первичной группой (тем не менее пользователь может получить доступ к файлам других групп, являясь членом этой группы и имея соответствующие права. не обязательно, чтобы эта группа была первичной). Чтобы запустить программу или создать файл с группой, отличной от первичной, следует выполнить команду newgrp, чтобы сменить текущее членство в группе. Также можно изменить группу, связанную с конкретным файлом командами chgrp и chown.

В линукс пользователи и группы определяются с помощью ID (UID и GID). UID и GID с 0 по 99 зарезервированы системой для внутреннего использоания. 0 соответствует root. Обычно аккаунты полльзователей начинаются с 500 или 1000. Следует избегать повторного использования ID, т.к. если файлы старого пользователя не удалены, новый пользователь может стать их владельцем. Возможно создать несколько пользователей и/или групп с одинаковым ID. Фактически это будут разные пользователи с разными паролями и домашними директориями, но в плане прав доступа к файлам система будет рассматривать их как одного пользователя (группу). Злоумышленники часто создают аккаунт с UID 0, чтобы получить права суперпользователя. Если в системе появился подозрительный аккаунт с UID 0 - система скорее всего скомпрометирована.

вторник, 8 сентября 2015 г.

Настройка оконной системы X, локализаций и печати.



Реализации Х-сервера:
-XFree86 - основной сервер до 2008г
-X.org-X11 - большинство дистрибутивов перешло на этот сервер в 2004году.
-Accelerated-X - коммерческая версия.

Утилиты для настройки X-сервера:
XFree86 -configure
Xorg -configure
Также в разных дистрибутивах существует собственные утилиты.
Файл настроек: /etc/X11/xorg.conf

Для того, чтобы отключить Х сервер можно перейти на уровнь запуска, где он не работает (telinit 3)
В Debian-подобных дистрибутивах уровни запуска не используются для того чтобы останавливать или запускать Х. Для отключения графической оболочки следует ввести команду /etc/init.d/xdm stop (возможно понадобится заменить xdm на gdm, kdm, mdm, или lightdm)
После того, как настройки Х отредактированы, можно переключиться обратно в графический режим командой telinit 5 либо startx.
Также процесс Х можно завершить сочетанием клавиш Ctrl+Alt+Backspace, или командой kill (ps ax | grep X для поиска ID)
При конфигурировании Х лучшим подходом является поиск неработающих опций и их отключение.

Настройки клавиатуры в секции "input device". Можно настроить драйвер, раскладку, повтор символов.

пятница, 14 августа 2015 г.

Об укладке кабелей

Красиво уложенные кабели:
http://royal.pingdom.com/2008/01/24/when-data-center-cabling-becomes-art/

Инструмент для укладки:
http://www.cableorganizer.com/panduit/cable-organizer-tool/
Использование:
http://www.youtube.com/watch?v=4kPpcCxhgNk

четверг, 30 июля 2015 г.

Загрузка Linux

Существует 2 вариант загрузки системы:
1. Первичный загрузчик просматривает таблицу разделов, находит раздел, помеченный как загрузочный и выолняет код в загрузочном секторе данного раздела. Данный загрузочный сектор содержит вторичный загрузчик, который в свою очередь ищет ядро системы, загружает и выполняет его.
2. Первичный загрузчик ищет ядро системы, загружает и выполняет его.

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

EFI в отличие от BIOS полагается не на код в загрузочном секторе, а на загрузчик в разделе ESP. В линукс ESP обычно монтируется в /boot/efi Загрузчик содержится в файле с расширением .efi и находится в отдельной поддиректории название которой совпадает с названием ОС. Это позволяет устанавливать параллельно две или более ОС.