Translation(s): - Русский
Подготовка свежеустановленной системы Debian к использованию
Этот раздел поможет наглядно подготовить чистую систему Debian squeeze к полноценному использованию в качестве того, что вы выберите сами. Нижеуказанные настройки рекомендую выполнять в пошаговом режиме. Каждый блок проверен, теория, практика и описания подаются кратко, без излишеств. Если мало, подробности ищите в Google.
Настоятельно рекомендую использовать только чистый Debian, т.е. без "заранее подобранных наборов ПО".
Такой подход наиболее полно реализует преимущества Debian перед Ubuntu и Gentoo - оптимальное сочетание затрат на установку\настройку к эффективности\захламлённости ненужным ПО.
Страница находится в активной разработке
TODO: перевести и добавить http://wiki.debian.org/HowTo/CpuFrequencyScaling
Если есть что добавить, дополняйте разделы новой информацией. Наши опечатки и ошибки в статье можно править смело, нет необходимости сообщать об этом на почту, просьба соблюдать стилевое оформление этой страницы и использовать разделители разделов (серые линии различной толщины).
Contents
- Подготовка свежеустановленной системы Debian к использованию
- Система
- Аппаратное обеспечение
- Интернет и сети
- Работа в консоли
- Прочее
- Примечания
Система
Политика установки ПО
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. Для раздачи времени в локальной сети нужно раскомментировать строку "broadcast" и добавить широковещательный адрес вашей сети.
Пример для сети 192.168.0.xx
broadcast 192.168.0.255
Перезапускаем службу для применения новых настроек
/etc/init.d/ntp restart
Далее можно прописывать IP адрес компьютера в качестве источника синхронизации.
Автоматическое обновление
Устанавливаем unattended-upgrades:
# 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
Вход в систему
Автологин в консоли с 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
Решение проблем с кракозябрами
При установке корневого раздела на зашифрованный диск GRUB может в главном меню показывать кракозябры. Это происходит из-за недоступности стандартного шрифта /usr/share/grub/unicode.pf2. Копируем шрифт
cp /usr/share/grub/unicode.pf2 /boot/grub/
Указываем настройку
nano /etc/default/grub GRUB_FONT=/boot/grub/unicode.pf2
Применяем настройку:
update-grub
Управление запуском служб
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 (пока только для i386)
Vuurmuur - мощная свободная надстройка к iptables с curses интерфейсом. Псевдографический интерфейс значительно упрощает оперативную работу с сетевым экраном. К сожалению разработка программы заморожена уже более двух лет. Раньше она присутствовала в официальных репозиториях Debian, но была заброшена сопровождающим, что привело к её удалению. Программа полностью документирована и переведена на русский, но к сожалению пока что имеет проблемы отображения русского интерфейса конфигуратора с системной кодировкой UTF8. К сожалению, в официальных репозиториях аналогов найдено не было.
Подключаем "родной" источник установки
echo "deb ftp://ftp.vuurmuur.org/debian/ squeeze main" >> /etc/apt/sources.list
Обновляем список пакетов
aptitude update
Устанавливаем Vuurmuur и утилиту просмотра сетевых соединений conntrack
aptitude install vuurmuur conntrack -r
Разрешаем автозапуск
nano /etc/default/vuurmuur VUURMUUR_START=1
Запускаем службу
/etc/init.d/vuurmuur start
Запускаем конфигуратор
LANG=en vuurmuur_conf
1. Настраиваем пути к служебным утилитам Vuurmuur Config --> General
2. Настраиваем interfaces, т.е. указываем с какими сетевыми картами будем работать.
Будьте внимательны - опция Active в настройках должна быть Yes, иначе Vuurmuur будет их игнорировать.
3. Смотрим Services, если нет нужных добавляем свои. Я добавил входящий порт для 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]): Перезапускаем samba для применения новых настроек Теперь в каждой шаре у нас при удалении создаться каталог .recycle и в нём будут все удалённые файлы. Чистить эту «Корзину» нужно в ручную
Можно будет узнать что, где, когда и кто сделал на 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, вносит свои и удаляет ВСЕ параметры которые система использует по-умолчанию. Устанавливаем swat и документацию к samba После установки SWAT будет доступен по адресу http:\\ip_сервера:901. Для применения внесённых изменений в SWAT изменений нужно на вкладке STATUS нажать кнопку "Перезапустить всё" Совместная работа с аудитом и корзиной не тестировалась
Устанавливаем Midnight commander mc: - утилита ставшая стандартом де-факто для быстрой навигации по файловой системе компьютера: См. примечание 3
Устанавливаем screen: - утилиту-мультиплексор, предоставляющую пользователю доступ к нескольким консолям в рамках одной сессии.: Далее настраиваем: или одной командой:
Устанавливаем htop: - "Диспетчер задач" для нашей системы
Устанавливаем less: - позволяет прокручивать текст на экране вверх\вниз Пример использования
Устанавливаем 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. Если всё работает, то увидим много интересного.
Включаем модуль 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
/etc/init.d/ssh restart
Настройка клиента
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
Параноидальные настройки безопасности (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/recycle.conf
##Recycle Bin Configuration File##
repository = .recycle/%U
mode = KEEP_DIRECTORIES|VERSIONS|TOUCH
maxsize = 0
exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??|*.trace
excludedir = /tmp|/temp|/cache
noversions = *.doc|*.ppt|*.dat|*.ini
keeptree = Yes
versions = Yes
nano /etc/samba/smb.conf
...
vfs object = recycle
config-file = /etc/samba/recycle.conf
smbcontrol smbd reload-config
Аудит
nano /etc/samba/smb.conf
...
[global]
...
#Отключаем запись сообщений в syslog.
syslog = 0
#Количество сообщений, записываемых в лог-файлы, для всех VFS модулей.
log level = 0 vfs:2
# Снимаем ограничение на max размер log файла.
max log size = 0
# Добавляем модуль аудита
vfs objects = full_audit recycle
# Указываем дополнительные параметры модулю 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
Прочее
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
Лог доступа
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 неподдерживаемая операция)