2447
Comment:
|
← Revision 113 as of 2014-02-15 15:09:32 ⇥
64313
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
Подготовка чистой Debian 6 к использованию (Страница находится в активной разработке) <<TableOfContents(3)>> = Локализация = 1. Глобальные параметры локализации системы: Что такое локаль смотрите [[http://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C]]. Смотрим текущую локаль: {{{ locale |
||<tablestyle="width: 100%; text-align: center; border: 0px hidden"> {{http://www.debian.org/logos/openlogo-nd-50.png}} {{http://www.debian.org/Pics/debian.png}}|| ~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: - Русский -~ ---- = Подготовка свежеустановленной системы Debian к использованию = Этот раздел поможет наглядно подготовить чистую систему Debian к полноценному использованию в качестве того, что вы выберите сами. Нижеуказанные настройки рекомендую выполнять в пошаговом режиме. Каждый блок проверен, теория, практика и описания подаются кратко, без излишеств. Если мало, подробности ищите в Google. Настоятельно рекомендую использовать только чистый Debian, т.е. без "заранее подобранных наборов ПО". ||<tablestyle="width: 20%; text-align: center; border: 10px hidden"> {{attachment:tasksel.jpg}}|| Такой подход наиболее полно реализует преимущества Debian перед Ubuntu и Gentoo - оптимальное сочетание затрат на установку\настройку к эффективности\захламлённости ненужным ПО. ----- __Разработка страницы завершена, новые рецепты добавляются по мере их изучения и отладки__ ---------- Если есть что добавить, то смело дополняйте разделы новой информацией. Наши опечатки и ошибки в статье также правте смело, не нужно сообщать об этом на почту, просьба соблюдать стилевое оформление этой страницы и использовать разделители разделов (серые линии различной толщины). ---------- <<TableOfContents(10)>> ---------- = Система = ---------- == Политика установки ПО == ---------- [[WikiPedia:ru:Aptitude|aptitude]] - локализованный менеджер пакетов с псевдографическим интерфейсом, который используется для наглядной и функциональной установки программ в Debian. В большинстве последующих разделов с его помощью будет проводиться установка различных программ, из-за чего требуется заранее определить политику получения, установки и обновления программ в вашей системе. Запускем программу и настраиваем её параметры. {{{ # aptitude --> F10 --> Параметры --> Предпочтения }}} См. примечание [[#prim1|1]]. ---------- == Дата и время == ------ === Настройка === ------ С консоли время в системе можно установить так: {{{ # date MMDDhhmmCCYY.ss #или # date --set 4/13/2004 # date --set 14:46:27 }}} Где MM — месяц, DD — день месяца, hh — часы, mm — минуты, CCYY — 4 цифры года, ss — секунды. ------ === Синхронизация локально === ------ Если вам не нужно раздавать время на другие машины, можете довольствоваться пакетом DebPkg:ntpdate, который не запускает свой демон при старте системы. {{{ # aptitude install ntpdate # ntpdate-debian # ntpdate-debian -bs }}} Вторая команда выдает разницу во времени с дебиановскими серверами, а третья - однократно синхронизирует время на вашей машине с одним из них. Можно также использовать другие сервера. ------ === Синхронизация для клиентов в сети === ------ Устанавливаем DebPkg:ntp: - комплекс программ, позволяющих получить текущее время со специальных серверов в интернет и стать таким сервером для локальной сети. {{{ # aptitude install ntp }}} По-умолчанию все настройки рабочие. Время забирается с сервера ntp.pool.org, служба автоматически синхронизирует время сразу после запуска. Настройки службы находятся в файле /etc/ntp.conf. Для включения возможности приёма запросов от клиентов в локальной сети на обновление времени нужно добавить строку Пример для сети 192.168.0.xx {{{ restrict 192.168.0.0 mask 255.255.255.0 trust notrap nomodify nopeer noquery }}} Перезапускаем службу для применения новых настроек {{{ /etc/init.d/ntp restart }}} Далее можно прописывать IP адрес компьютера в качестве источника синхронизации. ---------- == Автоматическое обновление == ---------- Устанавливаем DebPkg:unattended-upgrades ([[https://wiki.debian.org/UnattendedUpgrades|wiki.debian.org/UnattendedUpgrades]]): {{{ # aptitude install unattended-upgrades }}} Правим общие настройки обновления: {{{ nano /etc/apt/apt.conf.d/50unattended-upgrades // Выбираем все источники обновлений Unattended-Upgrade::Allowed-Origins { "${distro_id} stable"; "${distro_id} ${distro_codename}-security"; "${distro_id} ${distro_codename}-updates"; "${distro_id} ${distro_codename}-proposed-updates"; }; // Список пакетов, которые не должны обновляться, у меня таких нет. Unattended-Upgrade::Package-Blacklist { // "vim"; }; // Возможность оповещения об обновлении на почту пока отключаем. //Unattended-Upgrade::Mail "root@localhost"; // Удаляем не нужные пакеты Unattended-Upgrade::Remove-Unused-Dependencies "true"; // Автоматически перезагружаем систему, включаем Unattended-Upgrade::Automatic-Reboot "true"; // Можно ограничить скорость загрузки к примеру в 70 кб в сек., отключаем //Acquire::http::Dl-Limit "70"; }}} Правим настройки периодичности обновления {{{ nano /etc/apt/apt.conf.d/02periodic // Включаем обновление APT::Periodic::Enable "1"; // Проверяем обновления каждый 1 день APT::Periodic::Update-Package-Lists "1"; // Отключаем загрузку пакетов без установки APT::Periodic::Download-Upgradeable-Packages "0"; // Применяем обновления каждый 1 день APT::Periodic::Unattended-Upgrade "1"; // Удаляем устаревшие установочные пакеты каждые 7 дней APT::Periodic::AutocleanInterval "7"; }}} Логи обновления смотрим тут - /var/log/unattended-upgrades/unattended-upgrades.log. Указываем время выполнения обновления. Например каждый день в 6:25 утра: {{{ nano /etc/сrontab 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) }}} Перезапускаем cron: {{{ /etc/init.d/cron restart }}} ---------- == Пользователи и группы == ---------- === sudo === ---------- Устанавливаем DebPkg:sudo: - утилиту для временного получения root прав {{{ aptitude install sudo }}} Добавляем пользователя в группу sudo {{{ usermod -a -G sudo username }}} Для применения настроек пока приходится перезагружать систему Для подробоностей - Гугл в помощь ---------- == Вход в систему == ---------- === Автологин в консоли с mingetty === ----- Устанавливаем DebPkg:Mingetty: - упрощённый вариант стандартной программы agetty, в задачи которой входит управление доступом к физическим и виртуальным терминалам.: {{{ # aptitude install mingetty }}} Далее меняем строку настроек в консоли по-умолчанию, вместо root можно указать другой логин. {{{ sed -i '/:2345/s/^/\#/; /:2345/a 1:2345:respawn:\/sbin\/mingetty --autologin root --noclear tty1' /etc/inittab }}} или вручную {{{ nano /etc/inittab #1:2345:respawn:/sbin/getty 38400 tty1 1:2345:respawn:/sbin/mingetty --autologin root tty1 linux 2:23:respawn:/sbin/getty 38400 tty2 }}} ---------- === Автологин в консоли с стандартным agetty === ----- Стандартный менеджер входа agetty (DebPkg:util-linux) начиная с v.2.20 содержит функциональность mingetty Далее настраиваем вход, вместо root пишем нужный логин {{{ nano /etc/inittab #1:2345:respawn:/sbin/getty 38400 tty2 1:2345:respawn:/sbin/getty --autologin root tty1 linux 2:23:respawn:/sbin/getty 38400 tty2 }}} --------- == Локализация == ---------- === Глобальные параметры локализации системы === ----- Смотрим текущую [[WikiPedia:ru:Локаль|локаль]]: {{{ $ locale |
Line 18: | Line 200: |
Запускаем настройку {{{ $ dpkg-reconfigure locales |
Если это не так, тогда запускаем настройку {{{ # dpkg-reconfigure locales |
Line 23: | Line 205: |
2. Поддержка кириллицы в консоли: 2.1 Настраиваем aptitude на быстрый выход и на отключение автоустановки нам ненужных, но рекомендуемых программ: Что такое aptitude смотрите [[http://ru.wikipedia.org/wiki/Aptitude]]. {{{ aptitude "F10" --> "Параметры" --> "Предпочтения" 1. "Настройки интерфейса" --> "Запрашивать подтверждение при выходе" --> "Выкл" (Снимаем крестик) 2. "Работа с зависимостями" --> "Автоматически устанавливать рекомендуемые пакеты" --> "Выкл" (Снимаем крестик) }}} 2.2 Настраиваем кириллицу в консоли Что такое console-cyrillic смотрите [[http://packages.debian.org/squeeze/console-cyrillic]]. Устанавливаем пакет: {{{ aptitude install console-cyrillic }}} В качестве шрифта рекомендую "Sans" |
------ === Кириллица в консоли === ------ См. примечания [[#prim2|2]] Настраиваем кириллицу в консоли Устанавливаем пакет DebPkg:console-cyrillic: {{{ # aptitude install console-cyrillic }}} |
Line 47: | Line 219: |
dpkg-reconfigure console-cyrillic }}} #= Служебные программы = #= Настройка отображения консоли = #= Файловые системы = #= Установка программ = #= Настройка сети = |
# dpkg-reconfigure console-cyrillic }}} ------ === Удаление неиспользуемых файлов локализации === ------ DebPkg:localepurge - утилита для удаления ненужных локализаций, документации и прочего. При установке пакета с помощью debconf выводится список языков в различных кодировках, отметить следует только ''' нужные ''' вам локализации. Рекомендуется сперва сделать backup системы и добавить к нужным английскую локализацию. В дальнейшем утилита будет автоматически запускаться и чистить файлы сразу после установки любых пакетов. {{{ # aptitude install localepurge }}} Удаление происходит при запуске утилиты: {{{ ## localepurge localepurge: Disk space freed in /usr/share/locale: 345340 KiB localepurge: Disk space freed in /usr/share/man: 2060 KiB localepurge: Disk space freed in /usr/share/gnome/help: 65770 KiB localepurge: Disk space freed in /usr/share/omf: 435 KiB Total disk space freed by localepurge: 413605 KiB }}} Если вдруг понадобились удаленные языковые файлы, вернуть их можно так: {{{ apt-get --reinstall install $(dpkg -S LC_MESSAGES | cut -d: -f1 | tr ', ' ' ' | sort -u) }}} ---------- == Загрузчик == ---------- === GRUB2 === ---------- == Управление запуском служб == ------ DebPkg:sysv-rc-conf: - утилита с curses интерфейсом, преназначенная для быстрого управления работой и запуском служб (демонов, сервисов). Очень удобна для просмотра установленных служб в системе. {{{ # aptitude install sysv-rc-conf }}} Помимо настройки автозапуска, утилита позволяет в реальном времени запускать и останавливать имеющиеся в системе службы. ------------ == Сглаживание шрифтов == ------------ [[ru/PatchCairo| Смотрим здесь]] ---------- = Аппаратное обеспечение = ---------- [[ru/Hardware | Читаем здесь]] ---------- = Интернет и сети = ---------- == Сетевые настройки == ---------- === Базовая настройка === ----- Этот метод настройки является самым гибким и функциональным, но требует ручной правки конфигурационных файлов. Если Debian устанавливался по сети, то настройки будут перенесены из установщика в установленную систему, т.е. ничего настраивать уже не нужно. Ищем нашу сетевую карту в списке: {{{ # ifconfig -a }}} Для более детальной информации о сетевых картах можно воспользоваться специальными [[#diag|программами]] Открываем файл конфигурации сети: {{{ # nano /etc/network/interfaces }}} Строки, начинающиеся со слова "auto", используются для идентификации физических интерфейсов при их подьеме во время запуска ifup с опцией -a. (Эта опция используется сценариями загрузки системы.) Имена физических интерфейсов должны следовать за словом "auto" в той же строке. Может быть несколько строф "auto". ifup поднимет названные интерфейсы в порядке их перечисления. Строки, начинающиеся с "allow-", используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами. Это может быть сделано, например, с использованием команды "ifup --allow=hotplug eth0 eth1", которая будет поднимать только eth0 или eth1, если они перечислены в строке "allow-hotplug". Учтите, что "allow-auto" и "auto" - синонимы. Если настройки статические, тогда, к примеру, заполняем так: {{{ auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.94 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 }}} Если настройки сети раздаются через DHCP, тогда, к примеру, заполняем по-другому: {{{ auto eth0 allow-hotplug eth0 iface eth0 inet dhcp }}} Если необходимо использовать одновременно несколько IP адресов на одной сетевой карте, тогда, к примеру, добавляем строки: {{{ auto eth0:1 iface eth0:1 inet static address 192.168.0.94 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 }}} Для настройки DNS нужно редактировать файл /etc/resolv.conf Статичный DNS, например: {{{ nameserver 10.30.1.11 212.45.2.5 search gspk domain bober.gspk }}} Динамический DNS по DHCP вносится в /etc/resolv.conf автоматически. ----- === Настройка в консольном интерфейсе wicd-curses === ----- DebPkg:wicd - cлужба управления проводными и беспроводными сетями для Linux с Qt, GTK+ и curses интерфейсами. Эта служба наиболее удобна, если часто возникает необходимость в быстром подключении к различным сетям. После первого запуска wicd автоматические переключает все настройки сети на DHCP. Для управления службой в консоли необходим curses клиент DebPkg:wicd-curses. {{{ # aptitude install wicd-curses }}} Запускам настройку: {{{ # wicd-curses }}} Для применения настроек необходимо нажать "Shift+C" ------------ == Firewall (брандмауэр, межсетевой экран и т.п.) == ------ === Общие сведения === ------ [[WikiPedia:ru:Межсетевой экран|Межсетевой экран]] - средство контроля и фильтрации сетевых соединений. В защищенной домашней или корпоративной сети установка firewall не актуальна и может принести больше вреда чем пользы. В случае если Ваш компьютер напрямую подключен к Интернет, то использование сетевого экрана просто обязательно. В Debian эта задача решается с помощью утилиты [[WikiPedia:ru:Iptables|Iptables]]. Эту утилиту можно использовать в "чистом" виде путём ручного ввода команд в консоли, или запускать команды в самописном скипте, либо с помощью различных надстроек, облегчающих формирование сложных команд iptables. В зависимости от поставленной задачи каждый из способов имеет свои достоинства и преимущества. ------ === Apf-firewall === ------ Простой аскетичный DebPkg:аpf-firewall для быстрой защиты сервера без самописных скриптов. Устанавливаем. {{{ aptitude install аpf-firewall }}} Правим файл конфигурации {{{ nano /etc/apf-firewall/conf.apf # чтобы через 5 минут фаерволл не перестал работать DEVEL_MODE="0" # Указываем что у нас монолитное ядро SET_MONOKERN="1" Сетевая которую будем защищать IFACE_IN="eth0" IFACE_OUT="eth0" # Это Открываем входящие TCP порты IG_TCP_CPORTS="22" # Это Открываем входящие UDP порты IG_UDP_CPORTS="" # Отключаем фильтрацию на исходящих портах EGF="0" # Открываем исходящие TCP порты, если EGF="1" EG_TCP_CPORTS="21,25,80,443,43" # Открываем исходящие UDP порты, если EGF="1" EG_UDP_CPORTS="20,21,53" }}} Разрешаем запуск {{{ nano /etc/default/apf-firewall RUN="yes" }}} Запускаем firewall {{{ /etc/init.d/apf-firewall start }}} ------ === Vuurmuur === ------ Vuurmuur - мощная свободная надстройка к iptables с curses интерфейсом. Псевдографический интерфейс значительно упрощает оперативную работу с сетевым экраном. К сожалению разработка программы продвигается очень медленно. Имеются deb пакеты в репозитории официального сайта. Раньше эти пакеты присутствовали в официальных репозиториях Debian, но были заброшены сопровождающим, что привело к их удалению. Программа полностью документирована и переведена на русский язык. ---- Аналогов даже близких по функциональности найдено не было. В итоге получаем что vuurmuur это единственный в современном linux интерактивный firewall менеджер c curses интерфейсом. Подобная функциональность оправдывает все усилия по его установке. ---- Пакеты установки можно взять с сайта разработчика и из репозиториев Ubuntu. К сожалению оба варианта содержат в себе весьма досадные проблемы: Репозиторий разработчика: * Проблемы отображения кириллицы с системной кодировкой UTF8 * Собраны в бинарник только для i386 Ubuntu репозиторий: * init.d скрипт запуска, как я понял, имеет проблемы совместимости с Debian * В консоль постоянно сыпется мусор, который по-идее должен литься только в лог и то не всегда. Компиляция пакетов - лишь один из вариантов решения проблемы. Оставим его профессионалам. А мы пойдем другим путём: Основой будет пакет из Ubuntu, пару органов получим из пакета офф.сайта. Такой вот франкенштейн. ---- ==== Установка ==== ---- Устанавливаем утилиту просмотра сетевых соединений conntrack {{{ aptitude install conntrack }}} Качаем 3 пакета из официальных репозиториев Ubuntu (пример для amd64) {{{ wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/v/vuurmuur/vuurmuur_0.7+debian-2_amd64.deb wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/libv/libvuurmuur/libvuurmuur0_0.7+debian-2_amd64.deb wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/v/vuurmuur-conf/vuurmuur-conf_0.7+debian-2_amd64.deb }}} Устанавливаем пакеты: {{{ dpkg -i lib* dpkg -i vuur* }}} Далее донором будет вполне подходящий i386 пакет из официального сайта. Выкапываем тело из официального могильника {{{ wget ftp://ftp.vuurmuur.org/debian/dists/squeeze/main/vuurmuur_0.7-1_i386.deb }}} Извлекаем внутренности {{{ dpkg -x vuurmuur_0.7-1_i386.deb vrmr }}} Пересаживаем органы из одного тела в другое {{{ cp vrmr/etc/init.d/vuurmuur /etc/init.d/vuurmuur cp vrmr/etc/default/vuurmuur /etc/default/vuurmuur }}} Рисуем магическое заклинание {{{ nano /etc/default/vuurmuur VUURMUUR_START=1 }}} И оживляем тело. {{{ /etc/init.d/vuurmuur start }}} Установка завершена. 8) ---- ==== Настройка rsyslog ==== ---- Если оставить настройки rsyslog неизмеными, то messages лог будет забит сообщениями ядра о траффике. Перекинем этот поток в отдельный файл {{{ nano /etc/rsyslog.conf # *.*;auth,authpriv.none /var/log/syslog *.*;auth,authpriv.none;kern.!debug /var/log/syslog # И добавляем в конец kern.=debug /var/log/vuurmuur/firewall.log }}} или одной строкой {{{ sed -i '/\*.\*;auth/s/\(authpriv.none\)/\1;kern.!debug/' /etc/rsyslog.conf && echo "kern.=debug /var/log/vuurmuur/firewall.log" >> /etc/rsyslog.conf }}} Настраиваем vuurmuur (Настройки vuurmuur --> Ведение журналов) {{{ vuurmuur_conf }}} ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 0.JPG}}|| Перезапускаем rsyslog {{{ /etc/init.d/rsyslog restart }}} ---- ==== Настройка ==== ---- Запускаем конфигуратор {{{ vuurmuur_conf }}} ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 1.JPG}}|| 1. Настраиваем пути к служебным утилитам Vuurmuur Config --> General ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 2.JPG}}|| 2. Настраиваем interfaces, т.е. указываем с какими сетевыми картами будем работать. Будьте внимательны - опция Active в настройках должна быть Yes, иначе Vuurmuur будет их игнорировать. ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 3.JPG}}|| 3. Смотрим Services, если нет нужных добавляем свои (версия от Ubuntu не содержит служб вообще, но позволяет добавлять новые). Я добавил входящий порт для Web морды SWAT. ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 4.JPG}}|| 4. Настраиваем Zones, т.е. делим и\или объединяем наши сети в "зонах" на "свои" и "чужие". Каждая "зона" может содержать несколько сетей, хостов (т.е. компьютеров в сети) и групп хостов. Я создал две. ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 5.JPG}}|| 5. В каждую из "зон" я добавил по одной соответствующей ей сети: интернет ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 6.JPG}}|| и локальную: ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 7.JPG}}|| 6. В "домашнюю зону" я добавил хост, т.к. для него будут отдельные правила доступа. ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 8.JPG}}|| 7. Настраиваем "rules", т.е. правила доступа в сети. Ниже переброс портов на комп локальной сети временно отключен. ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 9.JPG}}|| ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:vur 10.JPG}}|| Настройки применяем в главном меню нажав F11. ---- ==== Подсчёт трафика ==== ---- В текущей стабильной версии подсчет трафика невозможен из-за бага ---- ==== Решение проблем. ==== ---- * Все попытики соединений можно отследить в логах Logview --> Traffic.log. * Пробуйте работу с выключенным Vuurmuur. * Для проверки портов из интернет можно использовать ping.eu. * К уже настроенным Services в Vuurmuur нужно быть внимательным, т.к. они могут быть настроены с более узкими диапазонами портов (rdp, например). * Дополнительные возможности хорошо описаны на русском в /usr/share/doc/vuurmuur * Проверье опцию Асtive (нужно Yes) * Проверьте включено ли правило (нужно [х]) * Подумайте как бы выглядело бы правило в самописном скрипте. * Гугл в помощь. ------ == Диагностика DNS == ------ Устанавливаем DebPkg:dnsutils: - получаем утилиту nslookup, позволяющую быстро диагностировать проблемы преобрзования доменных имен в IP адреса. {{{ # aptitude install dnsutils }}} Пример использования: получаем IP адрес сервера lenta.ru. Если dns не работает, либо настроен неправильно, тогда получить такую информацию не удастся {{{ root@tt400:~# nslookup lenta.ru Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: lenta.ru Address: 81.19.85.116 }}} Или более мощный варинант {{{ dig @8.8.8.8 -p 53 lenta.ru }}} <<Anchor(diag)>> ------ == Нагрузка на сеть == ------ Устанавливаем DebPkg:nethogs: - получаем утилиту наглядно отображающую какой процесс насколько сильно и какую нагружает сетевую карту. {{{ # aptitude install nethogs }}} ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:nethogs1.JPG}}|| ------ == Анонимный доступ в интернет == ------ ___В разработке____ {{{ aptitude install tor }}} ------ == Динамическая регистрация в DNS == ------ Устанавливаем DebPkg:ddclient: - службу, позволяющую привязать динамический IP от вашего провайдера к бесплатному домену второго уровня (например от dyndns.org) Регистрируемся на сайте dyndns.org и в итоге бесплатно получаем username, пароль и доменное имя. Я выбрал себе ххххх.dyndns.org {{{ aptitude install ddclient }}} При установке скармливаем конфигуратору имя, пароль и домен. Для проверки работы этой службы можно использовать сайт http://ping.eu Теперь служба будет автоматически обновлять Ваш IP в DNS сервере при его изменении. ---------- == Удаленный доступ к консоли == ------ Устанавливаем DebPkg:ssh: - комплекс программ, позволяющих соединяться с удалёнными машинами по защищённому каналу и выполнять команды в консоли: {{{ # aptitude install ssh }}} Этот метапакет содержит программу клиента ssh и службу sshd, обрабатывающую входящие ssh подключения к вашему компьютеру. ------ === Авторизация по ключам === ------ ==== Генерация ключей ==== ------ Вариaнт 1 (подходит для putty и native ssh клиентов Linux) ------ Выбираем пользователя на сервере под которым будем логиниться в ssh. Например это будет "user". Входим с его правами в консоль. Далее генерируем ключи, при желании указываем пароль на создаваемый ключ. {{{ ssh-keygen -t rsa -b 2048 -C "комментрий к ключу" -f /user/.ssh/newserver.key }}} В итоге получаем в "/user/.ssh/" два файла "newserver.key" и "newserver.key.pub" ----- Вариaнт 2 (для всех + проприетарный Bitvise Tunnelier) ----- К сожалению, я не нашёл способа сконвертировать OpenSSH ключи в понятный Tunnelier-у формат. Поэтому действовать будем от обратного. На Windows машине запускаем [[http://dl.bitvise.com/Tunnelier-Inst.exe|Bitvise Tunnelier]]. На вклaдке "Login" выбираем раздел "Authentickation" --> "Use keypair manager". В новом окне жмём "Generate New ...", выставляем опции на свой вкус --> "Generate". Далее выбираем "Export" и сохраняем любым удобным способом публичный ключ в формате OpenSSH в файл /user/.ssh/newserver.key.pub на ssh сервере. ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:ssh2.JPG}}|| Для использования в других ssh клиентах аналогично экспортируем и закрытый ключ. В итоге получаем в "/user/.ssh/" два файла "newserver.key" и "newserver.key.pub" ------ ==== Настройка сервера ==== ------ Перемещаем открытый ключ в список разрешённых ключей Например так {{{ mv /user/.ssh/newserver.key.pub /user/.ssh/authorized_keys }}} Правим конфигурацию сервера {{{ nano /etc/ssh/sshd_config # Разрешаем авторизацию по парам ключей PubkeyAuthentication yes # Путь к списку отпечатков открытых ключей AuthorizedKeysFile %h/.ssh/authorized_keys }}} Проверяем права доступа, должно быть так {{{ root@gtw:~# ls -g .ssh итого 4 -rw------- 1 root 392 Мар 24 20:03 authorized_keys }}} Если права доступа отличаются, то выставляем правильные: {{{ chmod 600 -R .ssh && chown root:root .ssh/authorized_keys }}} Перезапускаем сервер {{{ /etc/init.d/ssh restart }}} При появлении проблем доступа смотрим лог {{{ cat /var/log/auth.log | tail }}} ------ ==== Настройка клиента ==== ------ Выбираем пользователя на клиенте под которым будем логиниться в ssh. Например это будет "user". Логинимся по юзером. Любым удобным способом копируем сгенерированный ранее файл newserver.key в папку /home/user/.ssh. Если хочется, чтобы ssh клиент подхватывал ключ автоматически, сохраняем ключ с новыми именем "id_dsa" Выставляем права доступа, иначе ssh клиент проигнорирует ключ. {{{ cd /home/user chmod 700 ./.ssh chmod 600 ./.ssh/newserver.key }}} Запускаем ssh клиента. {{{ ssh -i /home/user/.ssh/newserver.key user@192.168.0.1 }}} Всё должно работать. ------ ==== Настройка Putty ==== ------ К сожалению, Putty не понимает ключи в формате OpenSSH. [[http://tartarus.org/~simon/putty-snapshots/x86/puttygen.exe|Поэтому загружаем latest development snapshot Puttygen]]. Обычный Puttygen нам не подойдёт. Скармливаем проге наш newserver.key (Conversions --> Import key), если нужно вводим пароль для доступа ключу. Получаем окно ||<tablestyle="width: 50%; text-align: center; border: 0px hidden"> {{attachment:ssh1.JPG}}|| Если надо меняем комментарий и пароль доступа к ключу. В разделе "Parameters" рекомендую выбрать SSH-2 RSA и 2048 bits. Далее жмём "Save private key" и получаем ключ в формате ppk, пригодный для скармливания обычному [[http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe|Putty]] в разделе Сonnection --> SSH --> Auth ------ === Усиленные настройки безопасности === ------ Рекомендую следующие настройки {{{ nano /etc/ssh/sshd_config #Запрещаем вход под root PermitRootLogin no # Меняем порт по умолчанию - может помочь против поверхностного сканирования портов Port 17854 # Указываем на каком IP слушать порт ListenAddress 192.168.0.1 # Запрещаем вход по паролям, усложняет брутфорс PasswordAuthentication no # Запрещаем пустые пароли PermitEmptyPasswords no # Только root может авторизоваться по ssh AllowUsers root # Меняем стандартный порт, но мне больше нравится реализовывать это через port mapping # Port 4422 }}} ------ === Параноидальные настройки безопасности (knock) === ------ ------ == Общий доступ к файлам == ------ === Тorrent === ------ Устанавливаем DebPkg:transmission-daemon: - простой и не прожорливый до ресурсов [[WikiPedia:ru:BitTorrent|torrent]] клиент. {{{ # aptitude install transmission-daemon acl. }}} Останавливаем службу {{{ /etc/init.d/transmission-daemon stop }}} Создаём папку для хранения загружаемых файлов {{{ mkdir /mnt/data/downloads }}} Открываем полный доступ к папке только для пользователя debian-transmission Если у Вас папка не на разделе ХFS, то смотрим примечание [[#prim5|5]] {{{ setfacl -m u:debian-transmission:rwx /mnt/data/downloads }}} Правим файл конфигурации {{{ nano /etc/transmission-daemon/settings.json "blocklist-enabled": false, "download-dir": "/mnt/data/downloads", "encryption": 1, "peer-port": 52413, "preallocation": 1, "rpc-authentication-required": true, "rpc-enabled": true, "rpc-password": "password", "rpc-port": 8091, "rpc-username": "user", "rpc-whitelist-enabled": false, }}} Чтобы не засорять daemon.log настраиваем вывод в отдельный лог файл: {{{ mkdir -p /var/log/transmission echo > /var/log/transmission/transmission.log setfacl -m u:debian-transmission:rwx /var/log/transmission }}} Указываем путь к лог файлу (можно и в /dev/zero) {{{ nano /etc/default/transmission-daemon ... OPTIONS="--config-dir $CONFIG_DIR --logfile /var/log/transmission/transmission.log" }}} Запускаем службу для применения новых настроек {{{ /etc/init.d/transmission-daemon stop start }}} Далее можно управляеть загрузками по адресу '''http:\\ip_сервера:8091''', либо с помощью клиентских программ. Также не забываем открыть порт ''52413'' для входящих соединений. ------ === SMB (CIFS) === ------ Устанавливаем DebPkg:samba: - набор утилит и служб, которые реализуют протокол SMB/CIFS в системах Unix, позволяя обслуживать запросы к файлам и принтерам Устанавливаем {{{ aptitude install samba samba-common-bin acl: dpkg-reconfigure samba dpkg-reconfigure samba-common }}} Выставляем базовые настройки: {{{ nano /etc/samba/smb.conf [global] # сначала требуем вход с локальными логином и паролем клиента security = user # Если будет получен неправильный пароль, то клиенту будет дан гостевой доступ. map to guest = Bad Password # Принуждаем клиентов заходить под своим именем client schannel = Yes # Используем защищенную процедуру аутентификации server schannel = Yes # Работает только на нужной сетевой карте interfaces = eth1 # Чтобы корректно отображались имена файлов, заканчивающиеся на точку mangled names = no }}} Далее для примера решаем 2 типовые задачи: 1. Открываем папку для любых пользователей с правом на запись. Создаём папку и выставляем разрешения {{{ mkdir /mnt/data/share && chmod 777 /mnt/data/share }}} Вносим новые настройки в файл /etc/samba/smb.conf {{{ # nano /etc/samba/smb.conf [share] path = /mnt/data/share/ browsable = yes read only = no guest ok = yes }}} 2. Открываем папку только для пользователя ''Ivan'' с правом на запись. Смотрим список пользователей в системе и в БД samba {{{ cat /etc/passwd | cut -d: -f1 pdbedit -L }}} Создаём локального пользователя без права входа в систему и задаем пароль {{{ useradd -c "Ivan" -m -g users Ivan -s /bin/false && passwd Ivan }}} Создаём пользователя в базе пользователей samba. {{{ smbpasswd -a Ivan }}} Автоматически для пользователя будет создана и расшарена домашняя папка /home/Ivan доступная по сети только ему. Если надо отменяем расшаривание домашних папкок, удаляя или комментируя раздел [homes] в /etc/samba/smb.conf Создаём папку и выставляем разрешения Если у Вас папка не на разделе ХFS, то смотрим примечание [[#prim5|5]] {{{ mkdir /mnt/data/doc && setfacl -m u:Ivan:rwx /mnt/data/doc }}} Вносим новые настройки в файл /etc/samba/smb.conf {{{ # nano /etc/samba/smb.conf [doc] path = /mnt/data/doc/ browsable = yes read only = no guest ok = no }}} Перезапускаем samba для применения новых настроек {{{ smbcontrol smbd reload-config }}} Если надо смотрим подключенных к шарам пользователей {{{ smbstatus }}} ------ ==== Корзина ==== ------ Добавляем строки в раздел [global] {{{ nano /etc/samba/smb.conf recycle:repository = .deleted/%U recycle:keeptree = Yes recycle:touch = Yes recycle:versions = Yes recycle:maxsize = 0 recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??|*.trace recycle:exclude_dir = /tmp|/temp|/cache recycle:noversions = *.doc|*.ppt|*.dat|*.ini }}} Добавляем к каждой из выбранных расшаренных папок строки (или лишь один раз в [global]): {{{ nano /etc/samba/smb.conf ... vfs object = recycle }}} Примечание: наличие опции "vfs object" в настройках шары полностью игнорирует опцию "vfs object" в разделе [global] Перезапускаем samba для применения новых настроек {{{ /etc/init.d/samba restart }}} Теперь в каждой так настроенной шаре при удалении создаться каталог .deleted/пользователь и в нём будут храниться все удалённые файлы. Чистить эту «Корзину» нужно вручную ------ ==== Аудит ==== ------ Можно будет узнать что, где, когда и кто сделал на Samba шаре. {{{ nano /etc/samba/smb.conf ... [global] ... #Отключаем запись сообщений в syslog. syslog = 0 #Количество сообщений, записываемых в лог-файлы, для всех VFS модулей. log level = 0 vfs:2 # Снимаем ограничение на max размер log файла. max log size = 0 # Добавляем модуль к "vfs objects" модуль аудита vfs objects = full_audit # Указываем дополнительные параметры модулю full_audit. Префикс, сообщений в лог-файле,каждая строка будет начинаться с user|ip_adress full_audit:prefix = %u|%I #Какие ошибки должны отображаться в лог-файле: none не протоколируем ошибки. full_audit:failure = none #Действия пользователей, которые записываются в лог-файл: full_audit:success = connect, open, mkdir, rmdir, unlink, write, rename full_audit:failure = connect, open, mkdir, rmdir, unlink, write, rename #Параметры, позволяющие управлять записью в журналы демоном syslogd: full_audit:facility = local5 full_audit:priority = notice }}} Вместо [global] все строки, начиная с vfs objects можно добавить в описание шары. В этом случае аудит будет проводиться только для этого ресурса. Далее переносим лог аудита из /var/log/syslog в /var/log/samba/audit.log Для этого правим /etc/rsyslog.conf {{{ nano /etc/rsyslog.conf #*.*;auth,authpriv.none -/var/log/syslog *.*;local5,auth,authpriv.none -/var/log/syslog local5.notice -/var/log/samba/audit.log }}} В последнюю очередь настраиваем ротацию логов чтоб audit.log не разрастался и был удобен для поиска нужного события {{{ nano /etc/logrotate.d/samba-audit /var/log/samba/audit.log { dateext compress copytruncate daily missingok notifempty rotate 300 } }}} И перезапускаем samba для применения новых настроек {{{ smbcontrol smbd reload-config }}} ------ ==== Принтеры ==== ------ Сперва настраиваем [[ru/SystemPrinting|принтер]] Далее вносим настройки: {{{ nano /etc/samba/smb.conf [global] ... load printers = yes printing = cups printcap name = cups ... [printers] browseable = yes printable = yes guest ok = yes }}} Перезапускаем samba для применения новых настроек {{{ smbcontrol smbd reload-config }}} Далее для Windows клиентов принтер устанавливается также, как и любой другой расшаренный из Windows принтер ------ Проблемы, которые не удалось решить ------ * Подключённый через samba принтер в Windows оснастке всегда будет иметь статус "Нет доступа, подключиться не удалось." При этом принтер вполне успешно будет печатать. * Из-за ошибки '''result was WERR_UNKNOWN_PRINTER_DRIVER''' не удалось обеспечить автоматическую установку драйверов из print$. Интеграция драйверов проводилась по [[http://www.sergeysl.ru/freebsd-samba-printer-drivers/|Руководству]] ------ ==== Web интерфейс для администрирования ==== ------ Устанавливаем DebPkg:swat: - веб-инструмент управления Samba. Примечание - после установки SWAT 2:3.5.6 аккуратно подхватывает настройки из smb.conf, вносит свои и удаляет ВСЕ параметры которые система использует по-умолчанию. Очень полезный способ наглядного изучения многих настроек Samba Устанавливаем swat и документацию к samba {{{ aptitude install swat samba-doc }}} После установки SWAT будет доступен по адресу http:\\ip_сервера:901. Для применения внесённых изменений в SWAT изменений нужно на вкладке STATUS нажать кнопку "Перезапустить всё" Совместная работа с аудитом и корзиной не тестировалась ---------- = Работа в консоли = ---------- == Файловый менеджер == ------ Устанавливаем Midnight commander DebPkg:mc: - утилита ставшая стандартом де-факто для быстрой навигации по файловой системе компьютера: {{{ aptitude install mc }}} См. примечание [[#prim3|3]] ------ == Сессии в консоли == ------ === Screen === ------ Устанавливаем DebPkg:screen: - утилиту-мультиплексор, предоставляющую пользователю доступ к нескольким консолям в рамках одной сессии.: {{{ # aptitude install screen }}} Далее настраиваем: {{{ nano /etc/screenrc # Отключаем приветствие startup_message off # Производить отключение сессии при разрыве связи с терминалом autodetach on # Включаем строку состояния hardstatus on # Параметры строки состояния hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %=[ %w ] " }}} или одной командой: {{{ sed -i 's/^#startup_message.*/startup_message off/; s/^#autodetach.*/autodetach on/; s/^hardstatus off.*/hardstatus on/; s/^hardstatus string.*/hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %=[ %w ] "/' /etc/screenrc }}} ------ == Просмотр процессов == ------ Устанавливаем DebPkg:htop: - "Диспетчер задач" для нашей системы {{{ # aptitude install htop }}} ------ == Просмотр больших текстов в консоли == ------ Устанавливаем DebPkg:less: - позволяет прокручивать текст на экране вверх\вниз {{{ # aptitude install less }}} Пример использования {{{ # ifconfig -a | less Клавиши ↑ и ↓ позволят прокручивать текст Для выхода нужно нажать Esc }}} ------ == Вывод сообщений ядра в консоль == ------ По-умолчанию все сообщения ядра выводятся в консоль, что может мешать нормальной работе. Это можно отключить {{{ nano /etc/sysctl.conf #Расскоментируем строчку kernel.printk = 3 4 1 4 }}} Или одной командой {{{ sed -i '/kernel.printk/s/#//' /etc/sysctl.conf }}} ---------- = Работа в X = ---------- == Эмулятор терминала == ------ === guake === ------ Устанавливаем DebPkg:guake: - удобный терминал для Х. Достоинства: вкладки, горячие клавиши, {{{ # aptitude install guake }}} ---------- = Прочее = ---------- == SQL сервер == ------ Устанавливаем DebPkg:mysql-server: - попyлярный сервер БД, требует не менее 256 МБ памяти. Необходим для множетсва Web интерфейсов. Устанавливаем {{{ aptitude install mysql-server mysql-client }}} Не забываем написать где-нибудь пароль root доступа к серверу БД. ------ == Web-сервер == ------ === Apache2 === ------ Устанавливаем DebPkg:apache2: - самый функциональный и популярный Web сервер в мире. Рекомендуется для отдачи динамического содержимого. Также рекомендуется новичкам, т.к. многие Web интерфейсы (например Zabbix, Mantiss и т.д.)по-умолчанию подстроены именно по него. Сперва нужно определиться, что нам важнее - стабильность или скорость? Если скорость тогда так {{{ aptitude install apache2-mpm-worker apache2 }}} если надёжность и совместимость, то {{{ aptitude install apache2-mpm-prefork apache2 }}} Далее __можно__ очень просто открыть доступ к файлам по протоколу http. Например хотим открыть доступ к /mnt/data/ {{{ ln -s /mnt/data /var/www }}} Далее в браузере открываем адрес http://ip_адрес/data ------ ==== Поддержка PHP5 ==== ------ Устанавливаем DebPkg:php5: - скриптовый язык программирования общего назначения. Необходим для множества Web-интерфейсов. {{{ aptitude install php5 libapache2-mod-php5 }}} Перезапускаем Apache2 {{{ /etc/init.d/apache2 restart }}} Создаём файл для проверки {{{ nano /var/www/test.php # test.php <?php phpinfo(); ?> }}} Или одной командой {{{ echo "# test.php" > /var/www/test.php && echo -n "<?php phpinfo(); ?>" >> /var/www/test.php }}} Далее в браузере открываем адрес http://ip_адрес/test.php. Если всё работает, то увидим много интересного. ------ === Lighttpd === ------ Устанавливаем DebPkg:lighttpd: - быстрый и простой Web сервер. Рекомендуется для отдачи статического содержимого. {{{ aptitude install lighttpd }}} Настройки по-умолчанию вполне работоспособны и находятся в файле /etc/lighttpd/lighttpd.conf Далее __можно__ очень просто открыть доступ к файлам по протоколу http. Например хотим открыть доступ на чтение /mnt/data/ {{{ ln -s /mnt/data /var/www }}} Далее в браузере открываем адрес http://ip_адрес/data ------ ==== Поддержка PHP5 ==== ------ Работа PHP обеспечивается с помощью FastCGI {{{ aptitude install php5-cgi }}} Чтобы обеспечить работу PHP5 в Lighttpd, открываем /etc/php5/cgi/php.ini и раскомментируем строку cgi.fix_pathinfo=1: {{{ nano /etc/php5/cgi/php.ini cgi.fix_pathinfo=1 }}} или одной командой {{{ sed -i '/cgi.fix_pathinfo=1/s/;//' /etc/php5/cgi/php.ini }}} Далее включаем поддержку {{{ lighttpd-enable-mod fastcgi lighttpd-enable-mod fastcgi-php }}} При этом создаётся символическая ссылка к файлу /etc/lighttpd/conf-enabled/10-fastcgi.conf в каталоге /etc/lighttpd/conf-available Смотрим результат: {{{ ls -l /etc/lighttpd/conf-enabled }}} Перезапускаем Lighttpd {{{ /etc/init.d/lighttpd force-reload }}} Создаём файл для проверки {{{ nano /var/www/test.php # test.php <?php phpinfo(); ?> }}} Или одной командой {{{ echo "# test.php" > /var/www/test.php && echo -n "<?php phpinfo(); ?>" >> /var/www/test.php }}} Далее в браузере открываем адрес http://ip_адрес/test.php. Если всё работает, то увидим много интересного. ------ ==== Множество сайтов на одном сервере (virtual host) ==== ------ Создаём папки для сайтов {{{ mkdir /var/www/firstsite.home mkdir /var/www/secondsite.home }}} Создаём страницы заглушки {{{ cd /var/www/ echo 'Welcome on firstsite.home server!' > firstsite.home/index.html echo 'Welcome on secondsite.home server!' > secondsite.home/index.html }}} Добавляем строки в файл настроек /etc/lighttpd/lighttpd.conf. Оба примера демонстрируют 2 разных способа описания виртуальных сайтов. {{{ $HTTP["host"] == "(\w+\.)?firstsite.home" { server.document-root = "/var/www/test.home/" } $HTTP["host"] == "(secondsite.home|www.secondsite.home" { server.document-root = "/var/www/secondsite.home/" server.errorlog = "/var/log/lighttpd/secondsiteError.log" accesslog.filename = "/var/log/lighttpd/secondsiteAccess.log" } }}} Перезапускаем Web сервер {{{ /etc/init.d/lighttpd restart }}} Настраиваем dns в файле HOSTS или на DNS сервере Пример для dnsmasq - добавляем строки в dnsmasq.conf {{{ address=/firstsite.home/192.168.0.100 address=/secondsite.home/192.168.0.100 }}} Перезапускаем dns сервер {{{ /etc/init.d/dnsmasq restart }}} ------ ==== Лог доступа ==== ------ Включаем модуль accesslog {{{ lighttpd-enable-mod accesslog }}} Перезапускаем Lighttpd {{{ /etc/init.d/lighttpd force-reload }}} Лог доступа смотрим в /var/log/lighttpd/access.log ------------ = Примечания = ------------ <<Anchor(prim1)>> ------------ == Примечание 1 (настройка aptitude) == ------ По-умолчанию [[WikiPedia:ru:Aptitude|aptitude]] устанавливает '''рекомендумемые''' пакеты. Если это не нужно, к консольной команде установки следует добавить ключ "-R", либо в curses интерфейсе в настройках запретить автоустановку. }}} <<Anchor(prim2)>> ------ == Примечание 2 (ошибка запуска сети) == ------ Если установка проводилась по сети с настройкой по DHCP, то после перезагрузки сетевой интерфейс eth0 может не запуститься автоматически, а значит вы не сможете устанавливать новые пакеты из сети. Для решения проблемы настраиваем eth0: {{{ nano /etc/networking interfaces Перед строкой "iface eth0 inet dhcp" добавляем новую строку "auto eth0" }}} Применяем настройки: {{{ # /etc/init.d/networking restart }}} <<Anchor(prim3)>> ------ == Примечание 3 (настройка мс) == ------ Яркие синие цвета в mc некоторым уже могли надоесть. Чтобы изменить цвета нужно закрыть mc (чтобы настройка не затёрлась самим мс ). Папка .mc создаётся в домашней директории вашего пользователя при первом запуске mc. {{{ sed -i 's/^base_color=.*/base_color=normal=cyan,default::selected=black,cyan:directory=cyan,default:marked=brightgreen,default:errors=red,default:marked=yellow,default:executable=brightred,default:marked=brightgreen,default:link=grey,default:marked=brightgreen,default:device=brightmagenta,default:marked=brightgreen,default:menuhot=black,cyan:menusel=cyan,black:menuhotsel=gray,black:menu=black,cyan:helpnormal=cyan,black:editnormal=cyan,black:editbold=yellow,black:editmarked=cyan,black/; s/^confirm_delete=1*/confirm_delete=0/; s/^confirm_exit=1.*/confirm_exit=0/' /root/.mc/ini }}} <<Anchor(prim4)>> ------ == Примечание 4 (ошибка pcspkr) == ------ В Debian 6 при запуске ядро по-умолчанию пытается загрузить уже задействованный модуль системного динамика, о чём и выдает ошибку. Исправляем баг. {{{ echo "blacklist pcspkr" >> /etc/modprobe.d/blacklist.conf }}} <<Anchor(prim5)>> ------ == Примечание 5 (setfacl неподдерживаемая операция) == ------ Для устранения ошибки файловая система должна быть смонтирована с опцией ''acl''. Для XFS эта опция применяется по-умолчанию. <<Anchor(prim6)>> ---------- |
Translation(s): - Русский
Подготовка свежеустановленной системы Debian к использованию
Этот раздел поможет наглядно подготовить чистую систему Debian к полноценному использованию в качестве того, что вы выберите сами. Нижеуказанные настройки рекомендую выполнять в пошаговом режиме. Каждый блок проверен, теория, практика и описания подаются кратко, без излишеств. Если мало, подробности ищите в Google.
Настоятельно рекомендую использовать только чистый Debian, т.е. без "заранее подобранных наборов ПО".
Такой подход наиболее полно реализует преимущества Debian перед Ubuntu и Gentoo - оптимальное сочетание затрат на установку\настройку к эффективности\захламлённости ненужным ПО.
Разработка страницы завершена, новые рецепты добавляются по мере их изучения и отладки
Если есть что добавить, то смело дополняйте разделы новой информацией. Наши опечатки и ошибки в статье также правте смело, не нужно сообщать об этом на почту, просьба соблюдать стилевое оформление этой страницы и использовать разделители разделов (серые линии различной толщины).
Contents
- Подготовка свежеустановленной системы Debian к использованию
- Система
- Аппаратное обеспечение
- Интернет и сети
- Работа в консоли
- Работа в X
- Прочее
- Примечания
Система
Политика установки ПО
aptitude - локализованный менеджер пакетов с псевдографическим интерфейсом, который используется для наглядной и функциональной установки программ в Debian.
В большинстве последующих разделов с его помощью будет проводиться установка различных программ, из-за чего требуется заранее определить политику получения, установки и обновления программ в вашей системе.
Запускем программу и настраиваем её параметры.
# aptitude --> F10 --> Параметры --> Предпочтения
См. примечание 1.
Дата и время
Настройка
С консоли время в системе можно установить так:
# date MMDDhhmmCCYY.ss #или # date --set 4/13/2004 # date --set 14:46:27
Где MM — месяц, DD — день месяца, hh — часы, mm — минуты, CCYY — 4 цифры года, ss — секунды.
Синхронизация локально
Если вам не нужно раздавать время на другие машины, можете довольствоваться пакетом ntpdate, который не запускает свой демон при старте системы.
# aptitude install ntpdate # ntpdate-debian # ntpdate-debian -bs
Вторая команда выдает разницу во времени с дебиановскими серверами, а третья - однократно синхронизирует время на вашей машине с одним из них. Можно также использовать другие сервера.
Синхронизация для клиентов в сети
Устанавливаем ntp: - комплекс программ, позволяющих получить текущее время со специальных серверов в интернет и стать таким сервером для локальной сети.
# aptitude install ntp
По-умолчанию все настройки рабочие. Время забирается с сервера ntp.pool.org, служба автоматически синхронизирует время сразу после запуска. Настройки службы находятся в файле /etc/ntp.conf. Для включения возможности приёма запросов от клиентов в локальной сети на обновление времени нужно добавить строку
Пример для сети 192.168.0.xx
restrict 192.168.0.0 mask 255.255.255.0 trust notrap nomodify nopeer noquery
Перезапускаем службу для применения новых настроек
/etc/init.d/ntp restart
Далее можно прописывать IP адрес компьютера в качестве источника синхронизации.
Автоматическое обновление
Устанавливаем unattended-upgrades (wiki.debian.org/UnattendedUpgrades):
# aptitude install unattended-upgrades
Правим общие настройки обновления:
nano /etc/apt/apt.conf.d/50unattended-upgrades // Выбираем все источники обновлений Unattended-Upgrade::Allowed-Origins { "${distro_id} stable"; "${distro_id} ${distro_codename}-security"; "${distro_id} ${distro_codename}-updates"; "${distro_id} ${distro_codename}-proposed-updates"; }; // Список пакетов, которые не должны обновляться, у меня таких нет. Unattended-Upgrade::Package-Blacklist { // "vim"; }; // Возможность оповещения об обновлении на почту пока отключаем. //Unattended-Upgrade::Mail "root@localhost"; // Удаляем не нужные пакеты Unattended-Upgrade::Remove-Unused-Dependencies "true"; // Автоматически перезагружаем систему, включаем Unattended-Upgrade::Automatic-Reboot "true"; // Можно ограничить скорость загрузки к примеру в 70 кб в сек., отключаем //Acquire::http::Dl-Limit "70";
Правим настройки периодичности обновления
nano /etc/apt/apt.conf.d/02periodic // Включаем обновление APT::Periodic::Enable "1"; // Проверяем обновления каждый 1 день APT::Periodic::Update-Package-Lists "1"; // Отключаем загрузку пакетов без установки APT::Periodic::Download-Upgradeable-Packages "0"; // Применяем обновления каждый 1 день APT::Periodic::Unattended-Upgrade "1"; // Удаляем устаревшие установочные пакеты каждые 7 дней APT::Periodic::AutocleanInterval "7";
Логи обновления смотрим тут - /var/log/unattended-upgrades/unattended-upgrades.log.
Указываем время выполнения обновления. Например каждый день в 6:25 утра:
nano /etc/сrontab 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Перезапускаем cron:
/etc/init.d/cron restart
Пользователи и группы
sudo
Устанавливаем sudo: - утилиту для временного получения root прав
aptitude install sudo
Добавляем пользователя в группу sudo
usermod -a -G sudo username
Для применения настроек пока приходится перезагружать систему
Для подробоностей - Гугл в помощь
Вход в систему
Автологин в консоли с mingetty
Устанавливаем Mingetty: - упрощённый вариант стандартной программы agetty, в задачи которой входит управление доступом к физическим и виртуальным терминалам.:
# aptitude install mingetty
Далее меняем строку настроек в консоли по-умолчанию, вместо root можно указать другой логин.
sed -i '/:2345/s/^/\#/; /:2345/a 1:2345:respawn:\/sbin\/mingetty --autologin root --noclear tty1' /etc/inittab
или вручную
nano /etc/inittab #1:2345:respawn:/sbin/getty 38400 tty1 1:2345:respawn:/sbin/mingetty --autologin root tty1 linux 2:23:respawn:/sbin/getty 38400 tty2
Автологин в консоли с стандартным agetty
Стандартный менеджер входа agetty (util-linux) начиная с v.2.20 содержит функциональность mingetty
Далее настраиваем вход, вместо root пишем нужный логин
nano /etc/inittab #1:2345:respawn:/sbin/getty 38400 tty2 1:2345:respawn:/sbin/getty --autologin root tty1 linux 2:23:respawn:/sbin/getty 38400 tty2
Локализация
Глобальные параметры локализации системы
Смотрим текущую локаль:
$ locale
Кроме LC_ALL все параметры должны быть ru_RU.UTF-8.
Если это не так, тогда запускаем настройку
# dpkg-reconfigure locales
Если системная локаль не применяется к пользователю, то стоит посмотреть файл настроек интерпретатора командной строки (bash, dash, ash) в домашнем каталоге пользователя.
Кириллица в консоли
См. примечания 2
Настраиваем кириллицу в консоли
Устанавливаем пакет console-cyrillic:
# aptitude install console-cyrillic
Настраиваем все параметры пакета:
# dpkg-reconfigure console-cyrillic
Удаление неиспользуемых файлов локализации
localepurge - утилита для удаления ненужных локализаций, документации и прочего. При установке пакета с помощью debconf выводится список языков в различных кодировках, отметить следует только нужные вам локализации. Рекомендуется сперва сделать backup системы и добавить к нужным английскую локализацию. В дальнейшем утилита будет автоматически запускаться и чистить файлы сразу после установки любых пакетов.
# aptitude install localepurge
Удаление происходит при запуске утилиты:
## localepurge localepurge: Disk space freed in /usr/share/locale: 345340 KiB localepurge: Disk space freed in /usr/share/man: 2060 KiB localepurge: Disk space freed in /usr/share/gnome/help: 65770 KiB localepurge: Disk space freed in /usr/share/omf: 435 KiB Total disk space freed by localepurge: 413605 KiB
Если вдруг понадобились удаленные языковые файлы, вернуть их можно так:
apt-get --reinstall install $(dpkg -S LC_MESSAGES | cut -d: -f1 | tr ', ' ' ' | sort -u)
Загрузчик
GRUB2
Управление запуском служб
sysv-rc-conf: - утилита с curses интерфейсом, преназначенная для быстрого управления работой и запуском служб (демонов, сервисов). Очень удобна для просмотра установленных служб в системе.
# aptitude install sysv-rc-conf
Помимо настройки автозапуска, утилита позволяет в реальном времени запускать и останавливать имеющиеся в системе службы.
Сглаживание шрифтов
Аппаратное обеспечение
Интернет и сети
Сетевые настройки
Базовая настройка
Этот метод настройки является самым гибким и функциональным, но требует ручной правки конфигурационных файлов.
Если Debian устанавливался по сети, то настройки будут перенесены из установщика в установленную систему, т.е. ничего настраивать уже не нужно.
Ищем нашу сетевую карту в списке:
# ifconfig -a
Для более детальной информации о сетевых картах можно воспользоваться специальными программами
Открываем файл конфигурации сети:
# nano /etc/network/interfaces
Строки, начинающиеся со слова "auto", используются для идентификации физических интерфейсов при их подьеме во время запуска ifup с опцией -a. (Эта опция используется сценариями загрузки системы.) Имена физических интерфейсов должны следовать за словом "auto" в той же строке. Может быть несколько строф "auto". ifup поднимет названные интерфейсы в порядке их перечисления.
Строки, начинающиеся с "allow-", используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами. Это может быть сделано, например, с использованием команды "ifup --allow=hotplug eth0 eth1", которая будет поднимать только eth0 или eth1, если они перечислены в строке "allow-hotplug". Учтите, что "allow-auto" и "auto" - синонимы.
Если настройки статические, тогда, к примеру, заполняем так:
auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.94 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1
Если настройки сети раздаются через DHCP, тогда, к примеру, заполняем по-другому:
auto eth0 allow-hotplug eth0 iface eth0 inet dhcp
Если необходимо использовать одновременно несколько IP адресов на одной сетевой карте, тогда, к примеру, добавляем строки:
auto eth0:1 iface eth0:1 inet static address 192.168.0.94 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255
Для настройки DNS нужно редактировать файл /etc/resolv.conf
Статичный DNS, например:
nameserver 10.30.1.11 212.45.2.5 search gspk domain bober.gspk
Динамический DNS по DHCP вносится в /etc/resolv.conf автоматически.
Настройка в консольном интерфейсе wicd-curses
wicd - cлужба управления проводными и беспроводными сетями для Linux с Qt, GTK+ и curses интерфейсами. Эта служба наиболее удобна, если часто возникает необходимость в быстром подключении к различным сетям.
После первого запуска wicd автоматические переключает все настройки сети на DHCP.
Для управления службой в консоли необходим curses клиент wicd-curses.
# aptitude install wicd-curses
Запускам настройку:
# wicd-curses
Для применения настроек необходимо нажать "Shift+C"
Firewall (брандмауэр, межсетевой экран и т.п.)
Общие сведения
Межсетевой экран - средство контроля и фильтрации сетевых соединений. В защищенной домашней или корпоративной сети установка firewall не актуальна и может принести больше вреда чем пользы. В случае если Ваш компьютер напрямую подключен к Интернет, то использование сетевого экрана просто обязательно. В Debian эта задача решается с помощью утилиты Iptables. Эту утилиту можно использовать в "чистом" виде путём ручного ввода команд в консоли, или запускать команды в самописном скипте, либо с помощью различных надстроек, облегчающих формирование сложных команд iptables. В зависимости от поставленной задачи каждый из способов имеет свои достоинства и преимущества.
Apf-firewall
Простой аскетичный аpf-firewall для быстрой защиты сервера без самописных скриптов.
Устанавливаем.
aptitude install аpf-firewall
Правим файл конфигурации
nano /etc/apf-firewall/conf.apf # чтобы через 5 минут фаерволл не перестал работать DEVEL_MODE="0" # Указываем что у нас монолитное ядро SET_MONOKERN="1" Сетевая которую будем защищать IFACE_IN="eth0" IFACE_OUT="eth0" # Это Открываем входящие TCP порты IG_TCP_CPORTS="22" # Это Открываем входящие UDP порты IG_UDP_CPORTS="" # Отключаем фильтрацию на исходящих портах EGF="0" # Открываем исходящие TCP порты, если EGF="1" EG_TCP_CPORTS="21,25,80,443,43" # Открываем исходящие UDP порты, если EGF="1" EG_UDP_CPORTS="20,21,53"
Разрешаем запуск
nano /etc/default/apf-firewall RUN="yes"
Запускаем firewall
/etc/init.d/apf-firewall start
Vuurmuur
Vuurmuur - мощная свободная надстройка к iptables с curses интерфейсом. Псевдографический интерфейс значительно упрощает оперативную работу с сетевым экраном. К сожалению разработка программы продвигается очень медленно. Имеются deb пакеты в репозитории официального сайта. Раньше эти пакеты присутствовали в официальных репозиториях Debian, но были заброшены сопровождающим, что привело к их удалению. Программа полностью документирована и переведена на русский язык.
Аналогов даже близких по функциональности найдено не было. В итоге получаем что vuurmuur это единственный в современном linux интерактивный firewall менеджер c curses интерфейсом. Подобная функциональность оправдывает все усилия по его установке.
Пакеты установки можно взять с сайта разработчика и из репозиториев Ubuntu.
К сожалению оба варианта содержат в себе весьма досадные проблемы:
Репозиторий разработчика:
- Проблемы отображения кириллицы с системной кодировкой UTF8
- Собраны в бинарник только для i386
Ubuntu репозиторий:
- init.d скрипт запуска, как я понял, имеет проблемы совместимости с Debian
- В консоль постоянно сыпется мусор, который по-идее должен литься только в лог и то не всегда.
Компиляция пакетов - лишь один из вариантов решения проблемы. Оставим его профессионалам. А мы пойдем другим путём:
Основой будет пакет из Ubuntu, пару органов получим из пакета офф.сайта. Такой вот франкенштейн.
Установка
Устанавливаем утилиту просмотра сетевых соединений conntrack
aptitude install conntrack
Качаем 3 пакета из официальных репозиториев Ubuntu (пример для amd64)
wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/v/vuurmuur/vuurmuur_0.7+debian-2_amd64.deb wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/libv/libvuurmuur/libvuurmuur0_0.7+debian-2_amd64.deb wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/v/vuurmuur-conf/vuurmuur-conf_0.7+debian-2_amd64.deb
Устанавливаем пакеты:
dpkg -i lib* dpkg -i vuur*
Далее донором будет вполне подходящий i386 пакет из официального сайта.
Выкапываем тело из официального могильника
wget ftp://ftp.vuurmuur.org/debian/dists/squeeze/main/vuurmuur_0.7-1_i386.deb
Извлекаем внутренности
dpkg -x vuurmuur_0.7-1_i386.deb vrmr
Пересаживаем органы из одного тела в другое
cp vrmr/etc/init.d/vuurmuur /etc/init.d/vuurmuur cp vrmr/etc/default/vuurmuur /etc/default/vuurmuur
Рисуем магическое заклинание
nano /etc/default/vuurmuur VUURMUUR_START=1
И оживляем тело.
/etc/init.d/vuurmuur start
Установка завершена. 8)
Настройка rsyslog
Если оставить настройки rsyslog неизмеными, то messages лог будет забит сообщениями ядра о траффике. Перекинем этот поток в отдельный файл
nano /etc/rsyslog.conf # *.*;auth,authpriv.none /var/log/syslog *.*;auth,authpriv.none;kern.!debug /var/log/syslog # И добавляем в конец kern.=debug /var/log/vuurmuur/firewall.log
или одной строкой
sed -i '/\*.\*;auth/s/\(authpriv.none\)/\1;kern.!debug/' /etc/rsyslog.conf && echo "kern.=debug /var/log/vuurmuur/firewall.log" >> /etc/rsyslog.conf
Настраиваем vuurmuur (Настройки vuurmuur --> Ведение журналов)
vuurmuur_conf
Перезапускаем rsyslog
/etc/init.d/rsyslog restart
Настройка
Запускаем конфигуратор
vuurmuur_conf
1. Настраиваем пути к служебным утилитам Vuurmuur Config --> General
2. Настраиваем interfaces, т.е. указываем с какими сетевыми картами будем работать.
Будьте внимательны - опция Active в настройках должна быть Yes, иначе Vuurmuur будет их игнорировать.
3. Смотрим Services, если нет нужных добавляем свои (версия от Ubuntu не содержит служб вообще, но позволяет добавлять новые). Я добавил входящий порт для Web морды SWAT.
4. Настраиваем Zones, т.е. делим и\или объединяем наши сети в "зонах" на "свои" и "чужие". Каждая "зона" может содержать несколько сетей, хостов (т.е. компьютеров в сети) и групп хостов. Я создал две.
5. В каждую из "зон" я добавил по одной соответствующей ей сети: интернет
- и локальную:
6. В "домашнюю зону" я добавил хост, т.к. для него будут отдельные правила доступа.
7. Настраиваем "rules", т.е. правила доступа в сети. Ниже переброс портов на комп локальной сети временно отключен.
Настройки применяем в главном меню нажав F11.
Подсчёт трафика
В текущей стабильной версии подсчет трафика невозможен из-за бага
Решение проблем.
Все попытики соединений можно отследить в логах Logview --> Traffic.log.
- Пробуйте работу с выключенным Vuurmuur.
- Для проверки портов из интернет можно использовать ping.eu.
- К уже настроенным Services в Vuurmuur нужно быть внимательным, т.к. они могут быть настроены с более узкими диапазонами портов (rdp, например).
- Дополнительные возможности хорошо описаны на русском в /usr/share/doc/vuurmuur
- Проверье опцию Асtive (нужно Yes)
- Проверьте включено ли правило (нужно [х])
- Подумайте как бы выглядело бы правило в самописном скрипте.
- Гугл в помощь.
Диагностика DNS
Устанавливаем dnsutils: - получаем утилиту nslookup, позволяющую быстро диагностировать проблемы преобрзования доменных имен в IP адреса.
# aptitude install dnsutils
Пример использования: получаем IP адрес сервера lenta.ru. Если dns не работает, либо настроен неправильно, тогда получить такую информацию не удастся
root@tt400:~# nslookup lenta.ru Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: lenta.ru Address: 81.19.85.116
Или более мощный варинант
dig @8.8.8.8 -p 53 lenta.ru
Нагрузка на сеть
Устанавливаем nethogs: - получаем утилиту наглядно отображающую какой процесс насколько сильно и какую нагружает сетевую карту.
# aptitude install nethogs
Анонимный доступ в интернет
_В разработке
Устанавливаем ddclient: - службу, позволяющую привязать динамический IP от вашего провайдера к бесплатному домену второго уровня (например от dyndns.org) Регистрируемся на сайте dyndns.org и в итоге бесплатно получаем username, пароль и доменное имя. Я выбрал себе ххххх.dyndns.org При установке скармливаем конфигуратору имя, пароль и домен. Для проверки работы этой службы можно использовать сайт http://ping.eu Теперь служба будет автоматически обновлять Ваш IP в DNS сервере при его изменении.
Устанавливаем ssh: - комплекс программ, позволяющих соединяться с удалёнными машинами по защищённому каналу и выполнять команды в консоли: Этот метапакет содержит программу клиента ssh и службу sshd, обрабатывающую входящие ssh подключения к вашему компьютеру.
Вариaнт 1 (подходит для putty и native ssh клиентов Linux) Выбираем пользователя на сервере под которым будем логиниться в ssh. Например это будет "user". Входим с его правами в консоль. Далее генерируем ключи, при желании указываем пароль на создаваемый ключ. В итоге получаем в "/user/.ssh/" два файла "newserver.key" и "newserver.key.pub" Вариaнт 2 (для всех + проприетарный Bitvise Tunnelier) К сожалению, я не нашёл способа сконвертировать OpenSSH ключи в понятный Tunnelier-у формат. Поэтому действовать будем от обратного. На Windows машине запускаем Bitvise Tunnelier. На вклaдке "Login" выбираем раздел "Authentickation" --> "Use keypair manager". В новом окне жмём "Generate New ...", выставляем опции на свой вкус --> "Generate". Далее выбираем "Export" и сохраняем любым удобным способом публичный ключ в формате OpenSSH в файл /user/.ssh/newserver.key.pub на ssh сервере. Для использования в других ssh клиентах аналогично экспортируем и закрытый ключ. В итоге получаем в "/user/.ssh/" два файла "newserver.key" и "newserver.key.pub"
Перемещаем открытый ключ в список разрешённых ключей Например так Правим конфигурацию сервера Проверяем права доступа, должно быть так Если права доступа отличаются, то выставляем правильные: Перезапускаем сервер При появлении проблем доступа смотрим лог
Выбираем пользователя на клиенте под которым будем логиниться в ssh. Например это будет "user". Логинимся по юзером. Любым удобным способом копируем сгенерированный ранее файл newserver.key в папку /home/user/.ssh. Если хочется, чтобы ssh клиент подхватывал ключ автоматически, сохраняем ключ с новыми именем "id_dsa" Выставляем права доступа, иначе ssh клиент проигнорирует ключ. Запускаем ssh клиента. Всё должно работать.
К сожалению, Putty не понимает ключи в формате OpenSSH. Поэтому загружаем latest development snapshot Puttygen. Обычный Puttygen нам не подойдёт. Скармливаем проге наш newserver.key (Conversions --> Import key), если нужно вводим пароль для доступа ключу. Получаем окно Если надо меняем комментарий и пароль доступа к ключу. В разделе "Parameters" рекомендую выбрать SSH-2 RSA и 2048 bits. Далее жмём "Save private key" и получаем ключ в формате ppk, пригодный для скармливания обычному Putty в разделе Сonnection --> SSH --> Auth
Рекомендую следующие настройки
Устанавливаем transmission-daemon: - простой и не прожорливый до ресурсов torrent клиент. Останавливаем службу Создаём папку для хранения загружаемых файлов Открываем полный доступ к папке только для пользователя debian-transmission Если у Вас папка не на разделе ХFS, то смотрим примечание 5 Правим файл конфигурации Чтобы не засорять daemon.log настраиваем вывод в отдельный лог файл: Указываем путь к лог файлу (можно и в /dev/zero) Запускаем службу для применения новых настроек Далее можно управляеть загрузками по адресу http:\\ip_сервера:8091, либо с помощью клиентских программ. Также не забываем открыть порт 52413 для входящих соединений.
Устанавливаем samba: - набор утилит и служб, которые реализуют протокол SMB/CIFS в системах Unix, позволяя обслуживать запросы к файлам и принтерам Устанавливаем Выставляем базовые настройки: Далее для примера решаем 2 типовые задачи: 1. Открываем папку для любых пользователей с правом на запись. Создаём папку и выставляем разрешения Вносим новые настройки в файл /etc/samba/smb.conf 2. Открываем папку только для пользователя Ivan с правом на запись. Смотрим список пользователей в системе и в БД samba Создаём локального пользователя без права входа в систему и задаем пароль Создаём пользователя в базе пользователей samba. Автоматически для пользователя будет создана и расшарена домашняя папка /home/Ivan доступная по сети только ему. Если надо отменяем расшаривание домашних папкок, удаляя или комментируя раздел [homes] в /etc/samba/smb.conf Создаём папку и выставляем разрешения Если у Вас папка не на разделе ХFS, то смотрим примечание 5 Вносим новые настройки в файл /etc/samba/smb.conf Перезапускаем samba для применения новых настроек Если надо смотрим подключенных к шарам пользователей
Добавляем строки в раздел [global] Добавляем к каждой из выбранных расшаренных папок строки (или лишь один раз в [global]): Примечание: наличие опции "vfs object" в настройках шары полностью игнорирует опцию "vfs object" в разделе [global] Перезапускаем samba для применения новых настроек Теперь в каждой так настроенной шаре при удалении создаться каталог .deleted/пользователь и в нём будут храниться все удалённые файлы. Чистить эту «Корзину» нужно вручную
Можно будет узнать что, где, когда и кто сделал на Samba шаре. Вместо [global] все строки, начиная с vfs objects можно добавить в описание шары. В этом случае аудит будет проводиться только для этого ресурса. Далее переносим лог аудита из /var/log/syslog в /var/log/samba/audit.log Для этого правим /etc/rsyslog.conf В последнюю очередь настраиваем ротацию логов чтоб audit.log не разрастался и был удобен для поиска нужного события И перезапускаем samba для применения новых настроек
Сперва настраиваем принтер Далее вносим настройки: Перезапускаем samba для применения новых настроек Далее для Windows клиентов принтер устанавливается также, как и любой другой расшаренный из Windows принтер Проблемы, которые не удалось решить Из-за ошибки result was WERR_UNKNOWN_PRINTER_DRIVER не удалось обеспечить автоматическую установку драйверов из print$. Интеграция драйверов проводилась по Руководству
Устанавливаем swat: - веб-инструмент управления Samba. Примечание - после установки SWAT 2:3.5.6 аккуратно подхватывает настройки из smb.conf, вносит свои и удаляет ВСЕ параметры которые система использует по-умолчанию. Очень полезный способ наглядного изучения многих настроек Samba Устанавливаем swat и документацию к samba После установки SWAT будет доступен по адресу http:\\ip_сервера:901. Для применения внесённых изменений в SWAT изменений нужно на вкладке STATUS нажать кнопку "Перезапустить всё" Совместная работа с аудитом и корзиной не тестировалась
Устанавливаем Midnight commander mc: - утилита ставшая стандартом де-факто для быстрой навигации по файловой системе компьютера: См. примечание 3
Устанавливаем screen: - утилиту-мультиплексор, предоставляющую пользователю доступ к нескольким консолям в рамках одной сессии.: Далее настраиваем: или одной командой:
Устанавливаем htop: - "Диспетчер задач" для нашей системы
Устанавливаем less: - позволяет прокручивать текст на экране вверх\вниз Пример использования
По-умолчанию все сообщения ядра выводятся в консоль, что может мешать нормальной работе. Это можно отключить Или одной командой
Устанавливаем guake: - удобный терминал для Х. Достоинства: вкладки, горячие клавиши,
Устанавливаем mysql-server: - попyлярный сервер БД, требует не менее 256 МБ памяти. Необходим для множетсва Web интерфейсов. Устанавливаем Не забываем написать где-нибудь пароль root доступа к серверу БД.
Устанавливаем apache2: - самый функциональный и популярный Web сервер в мире. Рекомендуется для отдачи динамического содержимого. Также рекомендуется новичкам, т.к. многие Web интерфейсы (например Zabbix, Mantiss и т.д.)по-умолчанию подстроены именно по него. Сперва нужно определиться, что нам важнее - стабильность или скорость? Если скорость тогда так если надёжность и совместимость, то Далее Например хотим открыть доступ к /mnt/data/ Далее в браузере открываем адрес http://ip_адрес/data
Устанавливаем php5: - скриптовый язык программирования общего назначения. Необходим для множества Web-интерфейсов. Перезапускаем Apache2 Создаём файл для проверки Или одной командой Далее в браузере открываем адрес http://ip_адрес/test.php. Если всё работает, то увидим много интересного.
Устанавливаем lighttpd: - быстрый и простой Web сервер. Рекомендуется для отдачи статического содержимого. Настройки по-умолчанию вполне работоспособны и находятся в файле /etc/lighttpd/lighttpd.conf Далее Например хотим открыть доступ на чтение /mnt/data/ Далее в браузере открываем адрес http://ip_адрес/data
Работа PHP обеспечивается с помощью FastCGI Чтобы обеспечить работу PHP5 в Lighttpd, открываем /etc/php5/cgi/php.ini и раскомментируем строку cgi.fix_pathinfo=1: или одной командой Далее включаем поддержку При этом создаётся символическая ссылка к файлу /etc/lighttpd/conf-enabled/10-fastcgi.conf в каталоге /etc/lighttpd/conf-available Смотрим результат: Перезапускаем Lighttpd Создаём файл для проверки Или одной командой Далее в браузере открываем адрес http://ip_адрес/test.php. Если всё работает, то увидим много интересного.
Создаём папки для сайтов Создаём страницы заглушки Добавляем строки в файл настроек /etc/lighttpd/lighttpd.conf. Оба примера демонстрируют 2 разных способа описания виртуальных сайтов. Перезапускаем Web сервер Настраиваем dns в файле HOSTS или на DNS сервере Пример для dnsmasq - добавляем строки в dnsmasq.conf Перезапускаем dns сервер
Включаем модуль accesslog Перезапускаем Lighttpd Лог доступа смотрим в /var/log/lighttpd/access.log
По-умолчанию aptitude устанавливает рекомендумемые пакеты. Если это не нужно, к консольной команде установки следует добавить ключ "-R", либо в curses интерфейсе в настройках запретить автоустановку. }}}
Если установка проводилась по сети с настройкой по DHCP, то после перезагрузки сетевой интерфейс eth0 может не запуститься автоматически, а значит вы не сможете устанавливать новые пакеты из сети. Для решения проблемы настраиваем eth0: Применяем настройки:
Яркие синие цвета в mc некоторым уже могли надоесть. Чтобы изменить цвета нужно закрыть mc (чтобы настройка не затёрлась самим мс ). Папка .mc создаётся в домашней директории вашего пользователя при первом запуске mc.
В Debian 6 при запуске ядро по-умолчанию пытается загрузить уже задействованный модуль системного динамика, о чём и выдает ошибку. Исправляем баг.
Для устранения ошибки файловая система должна быть смонтирована с опцией acl. Для XFS эта опция применяется по-умолчанию. aptitude install tor
Динамическая регистрация в DNS
aptitude install ddclient
Удаленный доступ к консоли
# aptitude install ssh
Авторизация по ключам
Генерация ключей
ssh-keygen -t rsa -b 2048 -C "комментрий к ключу" -f /user/.ssh/newserver.key
Настройка сервера
mv /user/.ssh/newserver.key.pub /user/.ssh/authorized_keys
nano /etc/ssh/sshd_config
# Разрешаем авторизацию по парам ключей
PubkeyAuthentication yes
# Путь к списку отпечатков открытых ключей
AuthorizedKeysFile %h/.ssh/authorized_keys
root@gtw:~# ls -g .ssh
итого 4
-rw------- 1 root 392 Мар 24 20:03 authorized_keys
chmod 600 -R .ssh && chown root:root .ssh/authorized_keys
/etc/init.d/ssh restart
cat /var/log/auth.log | tail
Настройка клиента
cd /home/user
chmod 700 ./.ssh
chmod 600 ./.ssh/newserver.key
ssh -i /home/user/.ssh/newserver.key user@192.168.0.1
Настройка Putty
Усиленные настройки безопасности
nano /etc/ssh/sshd_config
#Запрещаем вход под root
PermitRootLogin no
# Меняем порт по умолчанию - может помочь против поверхностного сканирования портов
Port 17854
# Указываем на каком IP слушать порт
ListenAddress 192.168.0.1
# Запрещаем вход по паролям, усложняет брутфорс
PasswordAuthentication no
# Запрещаем пустые пароли
PermitEmptyPasswords no
# Только root может авторизоваться по ssh
AllowUsers root
# Меняем стандартный порт, но мне больше нравится реализовывать это через port mapping
# Port 4422
Параноидальные настройки безопасности (knock)
Общий доступ к файлам
Тorrent
# aptitude install transmission-daemon acl.
/etc/init.d/transmission-daemon stop
mkdir /mnt/data/downloads
setfacl -m u:debian-transmission:rwx /mnt/data/downloads
nano /etc/transmission-daemon/settings.json
"blocklist-enabled": false,
"download-dir": "/mnt/data/downloads",
"encryption": 1,
"peer-port": 52413,
"preallocation": 1,
"rpc-authentication-required": true,
"rpc-enabled": true,
"rpc-password": "password",
"rpc-port": 8091,
"rpc-username": "user",
"rpc-whitelist-enabled": false,
mkdir -p /var/log/transmission
echo > /var/log/transmission/transmission.log
setfacl -m u:debian-transmission:rwx /var/log/transmission
nano /etc/default/transmission-daemon
...
OPTIONS="--config-dir $CONFIG_DIR --logfile /var/log/transmission/transmission.log"
/etc/init.d/transmission-daemon stop start
SMB (CIFS)
aptitude install samba samba-common-bin acl:
dpkg-reconfigure samba
dpkg-reconfigure samba-common
nano /etc/samba/smb.conf
[global]
# сначала требуем вход с локальными логином и паролем клиента
security = user
# Если будет получен неправильный пароль, то клиенту будет дан гостевой доступ.
map to guest = Bad Password
# Принуждаем клиентов заходить под своим именем
client schannel = Yes
# Используем защищенную процедуру аутентификации
server schannel = Yes
# Работает только на нужной сетевой карте
interfaces = eth1
# Чтобы корректно отображались имена файлов, заканчивающиеся на точку
mangled names = no
mkdir /mnt/data/share && chmod 777 /mnt/data/share
# nano /etc/samba/smb.conf
[share]
path = /mnt/data/share/
browsable = yes
read only = no
guest ok = yes
cat /etc/passwd | cut -d: -f1
pdbedit -L
useradd -c "Ivan" -m -g users Ivan -s /bin/false && passwd Ivan
smbpasswd -a Ivan
mkdir /mnt/data/doc && setfacl -m u:Ivan:rwx /mnt/data/doc
# nano /etc/samba/smb.conf
[doc]
path = /mnt/data/doc/
browsable = yes
read only = no
guest ok = no
smbcontrol smbd reload-config
smbstatus
Корзина
nano /etc/samba/smb.conf
recycle:repository = .deleted/%U
recycle:keeptree = Yes
recycle:touch = Yes
recycle:versions = Yes
recycle:maxsize = 0
recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??|*.trace
recycle:exclude_dir = /tmp|/temp|/cache
recycle:noversions = *.doc|*.ppt|*.dat|*.ini
nano /etc/samba/smb.conf
...
vfs object = recycle
/etc/init.d/samba restart
Аудит
nano /etc/samba/smb.conf
...
[global]
...
#Отключаем запись сообщений в syslog.
syslog = 0
#Количество сообщений, записываемых в лог-файлы, для всех VFS модулей.
log level = 0 vfs:2
# Снимаем ограничение на max размер log файла.
max log size = 0
# Добавляем модуль к "vfs objects" модуль аудита
vfs objects = full_audit
# Указываем дополнительные параметры модулю full_audit. Префикс, сообщений в лог-файле,каждая строка будет начинаться с user|ip_adress
full_audit:prefix = %u|%I
#Какие ошибки должны отображаться в лог-файле: none не протоколируем ошибки.
full_audit:failure = none
#Действия пользователей, которые записываются в лог-файл:
full_audit:success = connect, open, mkdir, rmdir, unlink, write, rename
full_audit:failure = connect, open, mkdir, rmdir, unlink, write, rename
#Параметры, позволяющие управлять записью в журналы демоном syslogd:
full_audit:facility = local5
full_audit:priority = notice
nano /etc/rsyslog.conf
#*.*;auth,authpriv.none -/var/log/syslog
*.*;local5,auth,authpriv.none -/var/log/syslog
local5.notice -/var/log/samba/audit.log
nano /etc/logrotate.d/samba-audit
/var/log/samba/audit.log {
dateext
compress
copytruncate
daily
missingok
notifempty
rotate 300
}
smbcontrol smbd reload-config
Принтеры
nano /etc/samba/smb.conf
[global]
...
load printers = yes
printing = cups
printcap name = cups
...
[printers]
browseable = yes
printable = yes
guest ok = yes
smbcontrol smbd reload-config
Web интерфейс для администрирования
aptitude install swat samba-doc
Работа в консоли
Файловый менеджер
aptitude install mc
Сессии в консоли
Screen
# aptitude install screen
nano /etc/screenrc
# Отключаем приветствие
startup_message off
# Производить отключение сессии при разрыве связи с терминалом
autodetach on
# Включаем строку состояния
hardstatus on
# Параметры строки состояния
hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %=[ %w ] "
sed -i 's/^#startup_message.*/startup_message off/; s/^#autodetach.*/autodetach on/; s/^hardstatus off.*/hardstatus on/; s/^hardstatus string.*/hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %=[ %w ] "/' /etc/screenrc
Просмотр процессов
# aptitude install htop
Просмотр больших текстов в консоли
# aptitude install less
# ifconfig -a | less
Клавиши ↑ и ↓ позволят прокручивать текст
Для выхода нужно нажать Esc
Вывод сообщений ядра в консоль
nano /etc/sysctl.conf
#Расскоментируем строчку
kernel.printk = 3 4 1 4
sed -i '/kernel.printk/s/#//' /etc/sysctl.conf
Работа в X
Эмулятор терминала
guake
# aptitude install guake
Прочее
SQL сервер
aptitude install mysql-server mysql-client
Web-сервер
Apache2
aptitude install apache2-mpm-worker apache2
aptitude install apache2-mpm-prefork apache2
ln -s /mnt/data /var/www
Поддержка PHP5
aptitude install php5 libapache2-mod-php5
/etc/init.d/apache2 restart
nano /var/www/test.php
# test.php
<?php phpinfo(); ?>
echo "# test.php" > /var/www/test.php && echo -n "<?php phpinfo(); ?>" >> /var/www/test.php
Lighttpd
aptitude install lighttpd
ln -s /mnt/data /var/www
Поддержка PHP5
aptitude install php5-cgi
nano /etc/php5/cgi/php.ini
cgi.fix_pathinfo=1
sed -i '/cgi.fix_pathinfo=1/s/;//' /etc/php5/cgi/php.ini
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php
ls -l /etc/lighttpd/conf-enabled
/etc/init.d/lighttpd force-reload
nano /var/www/test.php
# test.php
<?php phpinfo(); ?>
echo "# test.php" > /var/www/test.php && echo -n "<?php phpinfo(); ?>" >> /var/www/test.php
Множество сайтов на одном сервере (virtual host)
mkdir /var/www/firstsite.home
mkdir /var/www/secondsite.home
cd /var/www/
echo 'Welcome on firstsite.home server!' > firstsite.home/index.html
echo 'Welcome on secondsite.home server!' > secondsite.home/index.html
$HTTP["host"] == "(\w+\.)?firstsite.home" {
server.document-root = "/var/www/test.home/"
}
$HTTP["host"] == "(secondsite.home|www.secondsite.home" {
server.document-root = "/var/www/secondsite.home/"
server.errorlog = "/var/log/lighttpd/secondsiteError.log"
accesslog.filename = "/var/log/lighttpd/secondsiteAccess.log"
}
/etc/init.d/lighttpd restart
address=/firstsite.home/192.168.0.100
address=/secondsite.home/192.168.0.100
/etc/init.d/dnsmasq restart
Лог доступа
lighttpd-enable-mod accesslog
/etc/init.d/lighttpd force-reload
Примечания
Примечание 1 (настройка aptitude)
Примечание 2 (ошибка запуска сети)
nano /etc/networking interfaces
Перед строкой "iface eth0 inet dhcp" добавляем новую строку "auto eth0"
# /etc/init.d/networking restart
Примечание 3 (настройка мс)
sed -i 's/^base_color=.*/base_color=normal=cyan,default::selected=black,cyan:directory=cyan,default:marked=brightgreen,default:errors=red,default:marked=yellow,default:executable=brightred,default:marked=brightgreen,default:link=grey,default:marked=brightgreen,default:device=brightmagenta,default:marked=brightgreen,default:menuhot=black,cyan:menusel=cyan,black:menuhotsel=gray,black:menu=black,cyan:helpnormal=cyan,black:editnormal=cyan,black:editbold=yellow,black:editmarked=cyan,black/; s/^confirm_delete=1*/confirm_delete=0/; s/^confirm_exit=1.*/confirm_exit=0/' /root/.mc/ini
Примечание 4 (ошибка pcspkr)
echo "blacklist pcspkr" >> /etc/modprobe.d/blacklist.conf
Примечание 5 (setfacl неподдерживаемая операция)