Debian сервер: Debian настройка сервера | serveradmin.ru

Содержание

Debian настройка сервера | serveradmin.ru

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

Если у вас есть желание освоить Linux с нуля, не имея базовых знаний, рекомендую познакомиться с онлайн-курсом Administrator Linux.Basic в OTUS. Курс для новичков, для тех, кто хочет войти в профессию администратора Linux. Подробности по .

Данная статья является частью единого цикла статьей про сервер Debian.

Введение

Любая работа с сервером после установки чаще всего начинается со стандартных обязательных действий, без которых либо не получится продвинуться дальше, либо будет неудобно работать. Например, вам в любом случае необходимо выполнить сетевые настройки, желательно обновить систему и установить часовой пояс. Рекомендуется сразу настроить автообновление времени, подрихтовать параметры sshd, установить midnight commander и выполнить другие настройки.

Об этом я хочу рассказать в статье. Я буду делиться своим реальным опытом работы. Это не значит, что нужно делать так, как я. Я могу в чем-то ошибаться, что-то делать не так удобно, как можно было бы сделать. Это просто советы, которые кому-то помогут узнать что-то новое, а кто-то возможно поделится со мной чем-то новым для меня, либо укажет на мои ошибки. Мне бы хотелось, чтобы это было так. Своими материалами я не только делюсь с вами знаниями, но и сам узнаю что-то новое в том числе и из комментариев и писем на почту.

Указываем сетевые параметры

Итак, у нас в наличии только что установленная система. Узнать или проверить ее версию можно командами:

# uname -a
Linux debian10 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux

# lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	
Debian GNU/Linux 10 (buster)
Release: 10 Codename: buster

Очень подробно про настройку сети в Debian я написал в отдельной статье. Рекомендую с ней ознакомиться. Здесь же кратко выполним основное. Для настройки сети, необходимо отредактировать файл /etc/network/interfaces. Сделаем это:

# nano /etc/network/interfaces

Для получения IP адреса по dhcp достаточно будет следующего содержания:

allow-hotplug eth0
iface eth0 inet dhcp

Если у вас статический адрес, то его настроить можно следующими параметрами в файле:

allow-hotplug eth0
iface eth0 inet static
address 192.168.1.24
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1

Сохраняем файл. Теперь нужно выполнить перезапуск сети. В Debian это делается командой:

# systemctl restart networking.service

В системном логе /var/log/syslog при этом будут записи:

debian10 systemd[1]: Stopping Raise network interfaces...
debian10 systemd[1]: networking.service: Succeeded.
debian10 systemd[1]: Stopped Raise network interfaces.
debian10 systemd[1]: Starting Raise network interfaces...
debian10 systemd[1]: Started Raise network interfaces.

Будьте аккуратны при настройке и перезапуске сети, если подключаетесь к серверу удаленно. Обязательно должен быть доступ к консоли на случай, если где-то ошибетесь и потеряете доступ к серверу.

К сетевым настройкам я отношу установку пакета net-tools, в состав которого входят старые и привычные утилиты для работы с сетью — ifconfig, netstat, route и другие. В современных дистрибутивах их заменили одной командой ip, но лично мне вывод некоторых старых команд, конкретно, netstat, нравится больше, поэтому я иногда ими тоже пользуюсь.

# apt install net-tools

На этом настройка сети закончена.

Обновление системы, отличие apt upgrade от dist-upgrade и full-upgrade

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

# apt update

Посмотреть список пакетов, готовых к обновлению, можно с помощью команды:

# apt list --upgradable

Теперь выполним простое обновление всех пакетов системы:

# apt upgrade

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

Ключ dist-upgrade или full-upgrade (это одно и то же) в дополнение к upgrade обрабатывает все изменения зависимостей для новых пакетов и во время работы может удалять ненужные и ставить необходимые пакеты для обновления. Вот выдержка из документации по поводу этих двух ключей.

Так что после обычного обновления, делаем еще full-upgrade.

# apt full-upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  dh-python guile-2.0-libs libbind9-140 libdns162 libicu57 libisc160 libisccc140 libisccfg140 liblvm2app2.2 liblvm2cmd2.02 liblwres141 libperl5.24
  libpython3.5-minimal libpython3.5-stdlib linux-image-4.9.0-3-amd64 python3-distutils python3-lib2to3 python3.5 python3.5-minimal rename sgml-base tcpd
  xml-core
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Мне предлагается удалить старые пакеты, которые больше уже не нужны. Это зависимости от старых версий софта, который уже обновился и получил новые пакеты из зависимостей, а эти ему больше не нужны. Очистим их командой:

# apt autoremove

Рекомендую делать это регулярно после обновлений, чтобы старые пакеты не занимали лишнее место на диске.

На этом обновление системы закончено. Если вы хотите обновить версию релиза, например Debian 9 обновить до Debian 10 Buster, то читайте отдельный материал.

Настройка ssh

Теперь внесем некоторые изменения в настройки сервера ssh. Я рекомендую его запускать на нестандартном порту для исключения лишних общений с ботами, которые регулярно сканируют интернет и подбирают пароли пользователей по словарям.

Существует расхожее мнение, что менять порт ssh это наивность, а не защита. Надо просто настроить сертификаты, fail2ban или еще каким-то образом защитить ssh порт, к примеру, с помощью ограничений iptables, и т.д. Тем не менее, я все же рекомендую порт сменить на нестандартный. Даже если у вас все защищено от подбора паролей, так как вы используете сертификаты, лишние запросы к ssh порту тратят ресурсы сервера, хоть и не очень большие. Идет установка соединения, обмен рукопожатиями и т.д. Зачем вам это нужно?

По-умолчанию в Debian, впрочем как и в любом другом дистрибутиве Linux, ssh сервер работает на 22 порту. Изменим этот порт, к примеру, на 23331. Так же я еще изменяю конфигурацию для разрешения подключения по ssh пользователя root с использованием пароля. В Debian из коробки пользователь root по ssh паролем авторизовываться не может. Изменим и это. Открываем файл настроек:

# nano /etc/ssh/sshd_config

И изменяем там следующие строки. Приводим их к виду:

Port 23331
PermitRootLogin yes

Сохраняем изменения и перезапускаем сервер ssh следующей командой:

# service sshd restart

Проверяем изменения:

# netstat -tulnp | grep ssh

tcp 0 0 0.0.0.0:23331 0.0.0.0:* LISTEN 925/sshd
tcp6 0 0 :::23331 :::* LISTEN 925/sshd

Все в порядке, сервер слушает 23331 порт. Теперь новое подключение будет осуществлено только по порту 23331. При этом, после перезапуска ssh, старое подключение не будет разорвано.

Я знаю, что многие возражают против подключения рутом к серверу. Якобы это небезопасно и т.д. и т.п. Мне эти доводы кажутся не убедительными. Не понимаю, в чем может быть проблема, если у меня нормальный сложный пароль на root, который не получится подобрать или сбрутить. Ни разу за всю мою работу системным администратором у меня не возникло проблем с этим моментом. А вот работать так значительно удобнее, особенно, когда необходимо оперативно куда-то подключиться по форс мажорным обстоятельствам.

Отдельно тему подключения к серверу под root я рассмотрел в статье про sudo. Кому интересно, переходите в нее и делитесь своим мнением на этот счет.

Установка утилит mc, htop, iftop

Следующим шагом я настраиваю некоторые полезные утилиты, которыми регулярно пользуюсь в повседневной работе. Первая из них это всем известный двухпанельный файловый менеджер Midnight Commander. Установим mc на наш сервер:

# apt install mc

И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле 

/usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

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

# select-editor

Select an editor. To change later, run 'select-editor'.
 1. /bin/nano <---- easiest
 2. /usr/bin/mcedit
 3. /usr/bin/vim.tiny

Choose 1-3 [1]: 2

Так же я рекомендую очень удобный диспетчер задач — htop. Мне он помог, к примеру, решить проблему Взлома сервера CentOS. Ставим его на сервер:

# apt install htop

Полезной утилитой, позволяющей смотреть сетевую загрузку в режиме реального времени, является iftop. Очень рекомендую. Более простого и удобного инструмента мне не попадалось, хотя я много перепробовал подобных вещей. Устанавливаем iftop на сервер:

# apt install iftop

Настройка и обновление времени в Debian 

Теперь проверим установленный часовой пояс, время и включим автоматическую синхронизацию времени с удаленного сервера. Очень подробно этот вопрос я рассмотрел в отдельной статье — настройка времени в Debian.

Узнать дату, время, часовой пояс можно командой date:

# date

Mon 12 Aug 2019 02:29:03 PM MSK

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

# apt install tzdata

Теперь выберем правильный часовой пояс с помощью команды:

# dpkg-reconfigure tzdata

Выбирая соответствующие пункты визарда, указываете свой часовой пояс.

Дальше синхронизируем время с сервером времени в интернете. Для разовой или ручной синхронизации понадобится отдельная утилита. Установим ntpdate на сервер:

# apt install ntpdate

И синхронизируем время:

# ntpdate-debian

12 Aug 14:30:21 ntpdate[8688]: adjust time server 89.109.251.21 offset 0.004529 sec

Если получаете ошибку:

12 Aug 14:30:21 ntpdate[8688]: the NTP socket is in use, exiting

Значит у вас уже работает служба ntp. Ее нужно остановить и обновить время вручную. Хотя если она работает, то у вас и так должно быть все в порядке.

Для того, чтобы время автоматически синхронизировалось без вашего участия с определенной периодичностью, используется инструмент ntp. Установим его:

# apt install ntp

После установки он сам запустится и будет автоматически синхронизировать часы сервера. Проверим, запустился ли сервис ntpd:

# netstat -tulnp | grep ntp

udp        0      0 10.20.1.16:123          0.0.0.0:*                           8855/ntpd           
udp        0      0 127.0.0.1:123           0.0.0.0:*                           8855/ntpd           
udp        0      0 0.0.0.0:123             0.0.0.0:*                           8855/ntpd           
udp6       0      0 fe80::cce1:23ff:fe4:123 :::*                                8855/ntpd           
udp6       0      0 ::1:123                 :::*                                8855/ntpd           
udp6       0      0 :::123                  :::*                                8855/ntpd

Настройка firewall (iptables) в Debian

В качестве firewall в Debian по-умолчанию используется iptables, его и будем настраивать. Изначально фаервол полностью открыт и пропускает весь трафик. Проверить список правил iptables можно следующей командой:

# iptables -L -v -n

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Обращаю пристальное внимание на то, что настраивать firewall без прямого доступа к консоли сервера не следует. Особенно, если вы не очень разбираетесь в этом и копируете команды с сайта. Шанс ошибиться очень высок. Вы просто потеряете удаленный доступ к серверу.

Создадим файл с правилами iptables:

# mcedit /etc/iptables.sh

Очень подробно вопрос настройки iptables я рассмотрел отдельно, рекомендую ознакомиться. Хотя в примере другая ОС linux, принципиальной разницы нет, настройки iptables абсолютно одинаковые, так как правила одни и те же.

Добавляем набор простых правил для базовой настройки. Все необходимое вы потом сможете сами открыть или закрыть по аналогии с существующими правилами:

#!/bin/bash
#
# Объявление переменных
export IPT="iptables"

# Активный сетевой интерфейс
export WAN=ens18
export WAN_IP=10.20.1.16

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# разрешаем пинги
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Разрешаем исходящие соединения самого сервера
$IPT -A OUTPUT -o $WAN -j ACCEPT

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для уже инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из-за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы
# и поэтому не могут иметь определенного статуса.
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный
# обмен данными становится не возможным, обрубаем
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Открываем порт для ssh (!!!не забудьте указать свой порт, который вы изменили ранее!!!)
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
# Открываем порт для web сервера
$IPT -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i $WAN -p tcp --dport 443 -j ACCEPT

# Записываем правила в файл
/sbin/iptables-save > /etc/iptables_rules

Даем файлу права на запуск:

# chmod 0740 /etc/iptables.sh

Запускаем скрипт:

sh /etc/iptables.sh

Проверяем правила:

# iptables -L -v -n

Проверяем, что правила записались в файл /etc/iptables_rules. Если их там нет, то записываем их вручную.

# /sbin/iptables-save > /etc/iptables_rules

Правила применились и произошла их запись в файл /etc/iptables_rules. Теперь нужно сделать так, чтобы они применялись при загрузке сервера. Для этого делаем следующее. Открываем файл /etc/network/interfaces и добавляем в него строку pre-up iptables-restore < /etc/iptables_rules Должно получиться вот так:

# cat /etc/network/interfaces

allow-hotplug eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables_rules

Для проверки перезагрузите сервер и посмотрите правила iptables. Должен загрузиться настроенный набор правил из файла /etc/iptables_rules.

Настройка логов cron

По-умолчанию, в Debian нет отдельного лог файла для событий cron, они все сыпятся в общий лог /var/log/syslog. Лично мне это не очень нравится, я предпочитаю выводить эти события в отдельный файл. Об этом я написал отдельно — вывести логи cron в отдельный файл. Рекомендую пройти по ссылке и настроить, если вам это необходимо. Там очень кратко и только по делу, не буду сюда копировать эту информацию.

Установка и настройка screen

Я привык в своей работе пользоваться консольной утилитой screen. Изначально она задумывалась как инструмент, который позволяет запустить что-то удаленно в консоли, отключиться от сервера и при этом все, что выполняется в консоли продолжит свою работу. Вы сможете спокойно вернуться в ту же сессию и продолжить работу.

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

Позже я решил подробнее ознакомиться с этим инструментом и обнаружил, что там есть несколько удобных моментов, которые можно использовать в ежедневной работе. Вот как использую утилиту screen я. При подключении к серверу у меня запускается screen с тремя окнами 1, 2, 3. Первое окно автоматически переходит в каталог /, второе в /etc, третье в /var/log. Я осмысленно назвал эти окна: Main, etc, logs соответственно. Внизу находится строка состояния, в которой отображен список всех открытых окон и подсвечено активное окно.

С помощью горячих клавиш я очень быстро переключаюсь между окнами в случае необходимости. Вот как выглядит мое рабочее окно ssh подключения:

Переключаюсь между окнами с помощью стандартных горячих клавиш screen: ctrl+a 1,  ctrl+a 2, ctrl+a 3. Я специально изменил нумерацию, чтобы она начиналась не с 0 по-дефолту, а с 1. Так удобнее на клавиатуре переключать окна. Кнопка 0 находится слишком далеко от 1 и 2.

Чтобы настроить такую же работу screen, как у меня, достаточно выполнить несколько простых действий. Сначала устанавливаем screen:

# apt install screen

Создаем в каталоге /root конфигурационный файл .screenrc следующего содержания:

# mcedit /root/.screenrc
#Выводим строку состояния
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"

# Добавляем некоторые настройки
startup_message off
defscrollback 1000
defutf8 on
shell -$SHELL

# Создаем несколько окон
chdir
screen -t Main 1
chdir /etc
screen -t etc 2
chdir /var/log
screen -t logs 3

# Активное первое окно после запуска
select 1

Для знакомства с настройками, горячими клавишами и вариантами применения утилиты screen можно по адресу http://itman.in/ssh-screen/ Мне помог этот материал. Написано кратко, по делу и доходчиво.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Теперь можно перезагрузить сервер и проверить, все ли в порядке. У меня все в порядке, проверил 🙂 На этом базовая настройка сервера debian окончена. Можно приступать к конфигурации различных сервисов, под которые он настраивался. Об этом я рассказываю в отдельных статьях.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Настройка домашнего сервера на базе Debian / Хабр

Привет.

Хочу рассказать вам о том, как я реализовал дома серверное решение 🙂
Прошу строго не судить, т.к. это первая моя публикация на хабрахабр, и русский — не родной мне язык.
Так что все исправления приветствуются.

Речь пойдет о:
Старом компьютере на базе VIA Ezra с 256 мегабайт оперативной памяти, работающем на базе Debian Etch, выполняющем функции музыкального плеера, торрент-клиента, web+ftp+nfs сервера.

Дополнительное оборудование: 2 ноутбука (Dell, Asus) на базе Ubuntu, Fedora и Wi-Fi рутер/DSL-модем D-link DSL-2640u.


Один мой друг на Новый Год подарил мне сие творение инженеров прошлого века:

Было решено, что тазик простаивать зря не должен. Debian потому, что дистрибутив стабильный и простой в настройке/использовании.
Процесс установки ОС описывать не буду — задача понятная, да и в интернете достаточно помощи по этому делу. Сразу перейду к настройке.

Настройка

Т.к. ноутбуки у меня подключены через wi-fi, а сервер я подключил через витую пару — все компьютеры находятся в локальной сети.
Первым делом я установил ssh и отключил монитор, разместив машину в укромном месте, чтоб не мешалось.

Необходимо на рутере пробросить порты для доступа к серверу извне.
Я сделал DHCP-резервацию по MAC-адресам, и мой сервер всегда будет иметь локальный адрес 192.168.1.2

Скриншот из админки рутера:

Вы видите, что я открыл порты для web, ftp, shoutcast и ssh.
Тут важно знать, что внешние адреса для некоторых (и моей в часности) моделей рутеров не будут работать из локальной сети.
Т.е. если я наберу на ноутбуке мой_внешний_айпи_адрес:21 — то я ничего не увижу.
Теперь сервер виден из сети.

Подключимся по ssh и проведем настройку.
По умолчанию Debian использует Gnome как оконный менеджер, но он кушает оперативную память, поэтому мы его отключим.
Делается это очень легко:

Вариант от gribozavr
apt-get install sysv-rc-conf
sysv-rc-conf

UPD: либо так, предложил Greignar
update-rc.d -f gdm remove

Сохраняем, перезагружаемся.
Вуаля! Gnome отключен.
Таким образом можно поотключать ненужные нам сервисы.

Так получилось, что мой домашний провайдер не предоставляет мне статического айпи-адреса, поэтому пришлось искать решение.
Я остановился на dyndns.com. Сервис, который бесплатно предоставляет домен третьего уровня + возможность серверным софтом обновлять айпи для данного домена, при изменении оного.
Регистрируемся, добавляем новый аккаунт, качаем inadyn, ставим в автозагрузку с помощью update-rc.d

update-rc.d inadyn defaults

Теперь мы имеем домен, который всегда будет привязан к нашему серверу!

Настройка screen + rtorrent

Решение пало на эту связку, т.к. rtorrent — не демонической природы, а нужно, чтоб он работал в фоне.
Если вы еще не знаете, что такое screen, зайдите на сайт GNU Project.
Установим нужные нам пакеты:

apt-get install screen rtorrent

Я создал скрипт автозагрузки:

nano /etc/init.d/screen

#!/bin/sh
screen -d -m rtorrent
echo "Started..."

И добавил его, опять же, через update-rc.d
Поясню: при загрузке сервера в фоновом режиме запускается screen с запущенным внутри rtorrent.

Немного подправим конфиг:

nano /home/username/.rtorrent.rc

directory = /data/downloads/
schedule = watch_directory,5,5,load_start=/data/torrents/*.torrent

Теперь наш торрент-клиент складывает закачки в папку /data/downloads/, и каждые 5 секунд проверяет папку /data/torrents/ на наличие новых torrent-файлов.

Настройка apache, ftp, nfs

Для работы с веб-клиентами mpd нужен веб-сервер. Я выбираю apache. Для работы с веб-клиентами плеера нам еще потребуется php.
Также, nfs для монтирования сетевых дисков, и ftp для просто доступа к файлам.
Тут все очень просто:

apt-get install apache2 libapache2-mod-php5 php5-cli php5-common php5-cgi proftpd nfs-kernel-server

Отлично, все пакеты установлены, демоны запускаются автоматически.
В конфиге proftpd нужно добавить одну строчку для того, чтобы пользователи локальной системы могли логиниться как ftp-пользователи:

nano /etc/proftpd/proftpd.conf

DefaultRoot ~

При логине на ftp-сервер пользователь попадает в домашнюю директорию.

Для nfs-сервера я расшарил одну папку /data:

nano /etc/exports

/data 192.168.1.1/24(rw,no_root_squash,async)

Это говорит о том, что пользователи локальной сети имеют право на чтение и запись папки /data на сервере.
Перезагружаем демоны:

/etc/init.d/proftpd restart
/etc/init.d/nfs-kernel-server restart

Все, NetFileSystem и FTP готовы к работе.

Настройка клиентских машин

Для удобной работы с nfs я сделал запись в fstab:

sudo nano /etc/fstab

192.168.1.2:/data /server/data nfs rw,hard,intr 0 0

После достаточно написать

sudo mkdir /server/data
sudo mount /server/data

И мы увидим папку из файловой системы сервера!

Настройка mpd + relaxxplayer + icecast

Mpd — отличный плеер-демон, для которого есть множество gui. Как и Qt, GTK+, так и web-based.
Остановимся на веб-интерфейсе, т.к. мне это показалось наилучшим вариантом.

Установим пакеты:

apt-get install mpd icecast2

Для установки клиента для плеера нужно скачать исходники с домашнего сайта и распаковать их в /var/www
Apache у нас уже запущен, поэтому набрав адрес 192.168.1.2 мы увидим собственно плеер.
Немного из настройки mpd:

nano /etc/mpd.conf

music_directory "/mnt"

Я указываю плееру, что мои музыкальные файлы лежат в директории /mnt сервера.

А теперь самое интересное!
Я решил пойти путем монтирования на сервере nfs-директории лептопа, в которой содержится музыка.
Установив на ноутбуке nfs-kernel-server и расшарив папку /home/romantik/music я подмонтировал ее на сервере в директорию /mnt/music

Теперь, обновив базу даных mpd

mpd --create-db

мы увидим в ней музыку с лептопа 🙂
При воспроизведении байты данных риал-тайм несутся по локальной сети.
Удобнее и не придумаешь, теперь я практически независим от проводов 🙂

И немного об icecast.

В настройках mpd раскомментировав блок shoutcast мы получаем вещание в сеть стрим-потока прямо из плеера.
Доступно оно по адресу 192.168.1.2:8000

Заключение

Для меня это было серьезным шагом в мир полнофункциональной консоли. Скажу вам, испытываю только удобство от проделанных процедур 🙂
А что посоветуете реализовать на сервере вы?

Установка Debian 10 на сервер

Любая работа по администрированию сервера начинается с самого очевидного и обязательного процесса — инсталляции необходимой ОС, чем мы и займемся. Скачаем и установим Debian 10 в минимальной конфигурации с загрузочной флешки на обычный диск или raid раздел. Перед этим выполним небольшую подготовительную работу и познакомимся с подробностями нашего дистрибутива, которые могут быть полезны в будущем.

Если у вас есть желание освоить Linux с нуля, не имея базовых знаний, рекомендую познакомиться с онлайн-курсом Administrator Linux.Basic в OTUS. Курс для новичков, для тех, кто хочет войти в профессию администратора Linux. Подробности по .

Цели статьи

  1. Кратко рассказать о системе Debian 10.
  2. Объяснить различия установочных образов.
  3. Показать, как сделать загрузочную флешку с Debian для установки с флешки или по сети.
  4. Подробно описать все этапы установки Debian 10 Buster на сервер.
  5. Объяснить смысл различной разметки диска.
  6. Показать установку Debian 10 на программный рейд mdadm на тех серверах, где нет физического рейд контроллера. Продемонстрировать выход из строя и замену одного из дисков.

Данная статья является частью единого цикла статьей про сервер Debian.

Введение

Debian один из старейших дистрибутивов Linux. Последнее время, как мне кажется, он немного потерял популярность за счет Ubuntu, которая построена на кодовой базе Debian и не может без него существовать. И тем не менее, за счет более свежих пакетов и каких-то своих небольших фич Ubuntu набрал популярность, а Debian немного потерял.

Традиционно считается, что Debian более надежный, чем Ubuntu за счет более взвешенной политики принятия пакетов и новых версий. Если говорить простым языком, то в Debian более старые пакеты. Обновлений версий обычно не дождешься. В связи с этим лично я почти не использую Debian.

В качестве надежной и стабильной системы c 10-ти летним сроком поддержки я выбираю Centos, а когда нужно все новое, современное, молодежное, использую Ubuntu, так как под нее сейчас затачивается весь современный web стек. Все новье чаще всего доступно под Ubuntu. Debian получается такой середнячок. Ни то, ни се.

И все же дистрибутив известный и популярный. Его использует proxmox и многие другие продукты. Так что не обхожу его стороной. Скорее по старой памяти. Под Ubuntu так и не создал раздел на сайте, а вот для Debian он есть.

Так что приступаем к установке последней версии Debian 10 Buster. В сети полно инструкций на эту тему, но чаще всего их пишут любители ставить linux на десктопы. Я же сделаю упор именно на серверную установку под типовые серверные задачи. Если кому интересно, то основные отличия 10-й версии я уже упоминал в статье про обновление debian c 9-й на 10-ю версию.

Системные требования

Начнем с системных требований. Debian, как и любой linux дистрибутив в минимальной установке, требует очень мало системных ресурсов. Согласно официальной документации, минимальные системные требования для установки Debian 10 следующие.

Рекомендуемые минимальные требования к системе
Тип установки Память (минимум) Память (рекомендуется) Жесткий диск
без приложений 128 Мб 512 Мб 2 Гб
с приложениями 256 Мб 1 Гб 10 Гб

На практике, я обычно начинаю с виртуалок c 1 CPU,  512 Мб и 20 Гб диска для небольших задач (web сайт, шлюз, и т.д.) Дальше уже смотрите по загрузке и потребностям. Такие же минимальные значения системных ресурсов обычно стоят в начальных VDS или VPS хостеров.

Загрузка дистрибутива (iso образа)

Существует 3 формата дистрибутива, различающиеся по типу носителя:

  1. CD образы.
  2. DVD образы.
  3. BD (Blu-Ray) образ (только для версии Debian Edu)

Я лично использую только CD образы:

  • netinst.iso — Минимальный по объему образ, который содержит только самое необходимое для запуска установщика debian. Все остальное в процессе установки загружается из интернета. Без доступа к интернету, возможна установка голой системы с минимальным набором системных утилит.
  • xfce-CD-1.iso — Стандартный iso образ, который подходит для offline установки минимальной конфигурации сервера с графическим окружением xfce (хотя зачем он на сервере?). По размеру сопоставим с обычным cd диском. Можно записать на флешку и устанавливать с нее.

Название образа netinst вводит в заблуждение, намекая на то, что для установки нужен интернет. На самом деле это не так. Базовую установку с минимальным набором программ, которые включают в себя основные системные утилиты, можно выполнить даже без наличия интернета.

Есть еще так называемые live дистрибутивы. Набор live образов позволяет попробовать систему дебиан без установки на железо. Отличаются друг от друга эти образы графической оболочкой. Данные iso образы актуальны для проверки работы системы на десктопах у обычных пользователей. Для системных администраторов, которые ставят систему на серверы, они вряд ли представляют интерес. Так что, если вам хочется просто посмотреть на работу системы, не устанавливая ее, можете воспользоваться live образами.

Для установки Debian на сервер, можно использовать любой дистрибутив, так как вам фактически нужна только голая система. Все остальное устанавливается отдельно по мере необходимости. Для жителей России удобно использовать зеркало яндекс для загрузки дистрибутива Debian — https://mirror.yandex.ru/debian-cd/current/amd64/iso-cd/ Скорость будет выше, чем с официального сайта. Я и потом использую этот репозиторий для установки пакетов и обновлений.

Запись образа на флешку

Обычные CD диски сейчас уже становятся редкостью. Для меня не понятно, почему размеры iso образов до сих пор частенько подгоняют под размер CD или DVD диска. Я уже много лет использую загрузочные флешки для установки систем на железо. С ними быстрее, удобнее, проще обновлять образ.

Есть много способов записать образ debian на флешку для последующей установки. У меня в комплекте есть несколько популярных программ для создания загрузочных usb:

  1. Rufus.
  2. Unetbootin.
  3. Win32DiskImager.
  4. Etcher.

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

В данном случае нам подойдет программа Rufus. Вы без проблем найдете ее на просторах интернета, не буду приводить ссылки. Сам всегда держу ее под рукой. Никаких особенных настроек не надо. Просто запускаете программу, выбираете флешку, образ и вперед.

Если у вас система Linux, то для создания загрузочной флешки с Debian 10 используйте программу Etcher.

Установка Debian 10 Buster

К установке системы Debian 10 у нас все готово. Вставляйте флешку в сервер, если будете ставить на голое железо, либо подключайте iso образ к виртуальной машине и приступайте. Нас встречает традиционное первоначальное меню загрузочного образа.

Я лично предпочитаю использовать консольный (Install), а не графический (Graphical Install) установщик. У меня в нем быстрее получается выбирать необходимые разделы. В целом, это вопрос личных предпочтений. Все этапы установки и варианты выбора настроек идентичны при любом способе. Я продолжаю в консольном.

Не буду приводить скриншоты всех этапов установки Debian 10. Не вижу в этом смысла. Там все достаточно очевидно. Буду останавливаться только на ключевых моментах и давать советы. Итак, после запуска установки системы, вам предложат выбрать язык. На серверах я всегда выбираю английский язык и английскую раскладку. Не вижу тут никаких альтернатив. Язык современной техносферы — английский и глупо идти поперек. Если вам понадобятся другие языки, то можете их настроить потом, по мере работы с системой.

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

На первом экране представлены такие популярные и известные страны, как Замбия, Нигерия, Филлипины, Зимбабве, Ботсвана, но пропущены почти все (или все?) европейские страны. Для того, чтобы выбрать Россию, нужно пройти в other, выбрать Europe, а потом уже Russian Federation. Может быть такая группировка не случайна и есть какая-то байка на этот счет. Если кто-то в курсе, прошу поделиться.

После выбора страны нам предлагают указать кодировку и раскладку клавиатуры. Я всегда выбираю en_US.UTF-8 и American English. Если понадобится дополнительный язык, его всегда можно добавить позже. Далее необходимо подождать некоторое время, пока установщик не подгрузит следующие компоненты, необходимые для установки дебиан. После этого он попытается настроить сеть. Если у вас все в порядке с сетевой картой, и в сети работает dhcp-сервер, на моменте настройки сети не будет остановки, и она пройдет без каких-либо ваших действий. Если же у вас нет dhcp-сервера, то вам будет предложено вручную указать все сетевые параметры:

  • ip адрес
  • маску сети
  • ip шлюза и dns сервера

После сетевых параметров нас попросят указать имя сервера и его домен. Можете указывать что угодно. Если у вас нет никакого домена, можете оставить поле пустым, либо указать домен local.

Далее надо задать пароль root, потом создать обычного пользователя с произвольным именем и указать пароль к нему. По-умолчанию, после установки, войти удаленно по ssh пользователем root на сервер невозможно. Для этого нужно использовать учетную запись обычного пользователя и через него выполнять административные действия. Поэтому при установке debian нужно обязательно создать обычного пользователя.

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

Разметка жесткого диска

Тема разметки диска раньше была достаточно спорной и вызывала много дискуссий и споров. Делали отдельно разделы под корень /, домашнюю директорию /home, под логи /var/logs и т.д. Мне кажется, что сейчас все это стало неактуально. Сервера общего назначения переехали в виртуальные среды, а там можно и дополнительный диск выделить под образовавшиеся нужды, либо увеличить текущий. Нет необходимости заранее продумывать на много шагов вперед, можно без проблем потом добавить дисковое пространство.

Если же вы настраиваете железный сервер, то скорее всего четко знаете для чего он нужен и разбиваете уже в зависимости от его прямого назначения. Я сам лично, если нет каких-то особых требований к серверу, создаю только один общий раздел / на lvm.

Если у вас есть свое мнение по поводу разбивки диска, предлагаю поделиться соображениями в комментариях. Переходим к разметке диска для нашего debian сервера. Выбираем Guided — user entire disk and set up LVM.

Далее нужно выбрать жесткий диск, на который будет установлена система. Если у вас он только один, как у меня, то выбирать не из чего. Дальше выбираем схему разбивки диска. Как я уже сказал ранее, все будет храниться в одном корневом разделе, так что выбираем All files in one partition.

Затем вас спросят, записать ли изменения — соглашайтесь. Далее надо указать размер группы томов LVM. По-умолчанию указан весь размер диска, можно с этим согласиться. Далее увидите окончательный вариант разбивки диска.

В принципе, можно с ним согласиться. Но лично мне не нравится swap на отдельном lvm томе. Я люблю хранить swap в файле прямо на файловой системе. Теоретически, это чуть медленнее, чем отдельный раздел, но практически это не важно. В современных серверах swap редко используется, нужен больше для стабильности работы системы, нежели для скорости. Со swap в отдельном разделе не получится гибко работать, как с обычным файлом. Я на серверах ставлю минимальный размер свопа в 1 Гб, увеличиваю по мере необходимости. Когда своп это обычный файл, с этим нет проблем.

Так что изменения не записываем, выбираем No. Вы попадаете в раздел управления разметкой диска. Необходимо удалить LV раздел под swap, затем удалить LV раздел root и создать его заново максимального размера. Потом на нем же еще раз создать корневую систему в точке монтирования /. Должно получиться вот так.

В принципе, раздел /boot тоже можно было бы разместить в корне, но в целом можно оставить и так. Я сталкивался с неожиданными проблемами, когда /boot раздел был на lvm. Так что не буду вам рекомендовать его куда-то переносить.

Когда будете соглашаться с новой разметкой, получите предупреждение, что забыли про swap. Не обращайте на него внимание. Дальше пойдет непосредственно установка Debian 10 в виде копирования системных файлов на диск.

На следующем этапе установки системы, вам будет задан вопрос по поводу дополнительного диска с пакетами. Вам будет предложено проверить другой диск для установки дополнительных пакетов. Отказываемся и идем дальше. Теперь нужно выбрать зеркало, с которым будет работать пакетный менеджер apt. Выбираем свою страну и подходящее зеркало. Я выбираю Russian Federation и зеркало mirror.corbina.net. Раньше всегда выбирал зеркало Яндекса, но в Debian 10 его почему-то нет для выбора.

Далее нас просят указать прокси. Скорее всего вы им не пользуетесь, поэтому строку можно оставить пустой. Если это не так, то укажите адрес proxy сервера. На следующем этапе установки debian 10 вопрос о том, хотим ли мы делиться анонимной статистической информацией об использовании различного ПО на сервере. Я обычно не делюсь.

Дальше выбираем набор дополнительного ПО, которое будет установлено на сервер debian 10 вместе с основной системой. Я никогда не ставлю ничего, кроме ssh сервера и системных утилит.

Все остальное можно установить потом. На последнем этапе установки нас спрашивают про загрузчик grub — установить ли нам его. В подавляющем большинстве случаев это нужно сделать. Если вы не знаете, нужно или нет, значит 100% нужно. Без загрузчика можно обойтись в очень специфических ситуациях, которые мы рассматривать не будем в этой инструкции по установке debian. Так что устанавливаем  grub на единственных жесткий диск.

Перезагружаем сервер. Установка завершена, он полностью готов к работе. Не забывайте, что по-умолчанию, на сервер нужно подключаться под учетной записью обычного пользователя, не root. После установки системы, предлагаю выполнить предварительную настройку сервера.

Установка по сети (netinstall)

С сетевой установкой Debian есть определенная путаница. Как я уже ранее говорил, название iso образа netinst.iso вводит в заблуждение. На самом деле, с этого образа можно установить минимальную систему даже без наличия локальной сети. Но в то же время, при наличии интернета можно загрузить любой дополнительный пакет.

Настоящее руководство по netinstall представляет из себя совсем другую процедуру. Подробно она описана в официальном мануале — Подготовка файлов для загрузки по TFTP. Смысл сетевой установки в том, что вы со своего компьютера, на который хотите установить систему Debian, подключаетесь по технологии PXE к TFTP серверу и с него начинаете загружать установочные файлы.

При такой процедуре, вам для установки системы на компьютер не нужно ничего, кроме локальной сети и настроенного tftp сервера. Кроме этого, сетевая карта компьютера должна поддерживать технологию PXE. Такой вариант сетевой установки дебиан будет удобен, если вам необходимо развернуть систему на большое количество машин.

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

Установка Debian 10 на raid

Рассмотрим вариант установки debian на софтовый рейд mdadm. Эта актуальная ситуация, когда вы разворачиваете систему на железе, а не виртуальной машине. К примеру, такая конфигурация будет полезна для установки proxmox. В этой статье я уже рассматривал установку debian на raid1. Но там более старая версия Debian. Так что рассмотрю еще раз эту тему уже на примере Debian 10.

Итак, начинаем установку системы по приведенной ранее инструкции. Доходим до этапа разбивки диска и выбираем режим Manual.

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

  1. Массив raid1, объединяющий оба диска.
  2. /boot раздел прямо на mdadm рейде.
  3. Поверх массива LVM том на всем остальном пространстве, кроме /boot.
  4. Корневой раздел по всему lvm.

В конечном итоге, в конфигураторе это выглядит так:

Последовательность действий для этой конфигурации следующая:

  1. На каждом диске создаете по 2 раздела — один под /boot 500 Мб и второй все остальное пространство.
  2. Объединяете эти разделы в 2 raid1 mdadm. Один массив под /boot, второй под остальную систему.
  3. На массиве под /boot сразу же делаете раздел /boot и файловую систему ext2.
  4. Создаете volume group на весь второй массив, потом в этой группе создаете logical volume под корневой раздел.
  5. В logical volume создаете корневой раздел / и файловую систему ext4.

В итоге у вас должно получиться то же, что и у меня на картинке. Дальше ставите debian 10 как обычно. После установки на raid нужно выполнить несколько важных действий.

  1. Зайти в систему и создать swap.
  2. Установить загрузчик на оба диска. Во время установки он был установлен только на один диск.
  3. Протестировать отказ одного из дисков.

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

# dpkg-reconfigure grub-pc

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

Смотрим теперь, что с дисками.

Картина такая, как и было задумано. Выключим сервер, отсоединим один диск и включим снова. При запуске, нормально отработал grub, дальше посыпались ошибки в консоль.

Тем не менее, сервер через некоторое время загрузился. Смотрим, в каком состоянии диски.

В целом, все в порядке, система полностью работает. Просто не хватает одного диска. Теперь снова выключим сервер и воткнем в него чистый диск такого же объема. То есть имитируем замену сломанного диска на новый. Запускаем сервер и проверяем список дисков в системе.

# fdisk -l | grep /dev
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
/dev/sda1  *      2048   999423   997376  487M fd Linux raid autodetect
/dev/sda2       999424 20969471 19970048  9.5G fd Linux raid autodetect
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk /dev/md1: 9.5 GiB, 10215227392 bytes, 19951616 sectors
Disk /dev/md0: 475 MiB, 498073600 bytes, 972800 sectors
Disk /dev/mapper/vg00-root: 9.5 GiB, 10213130240 bytes, 19947520 sectors

Старый диск sda c двумя разделами и новый диск sdb без разделов. Нам нужно на новый диск скопировать структуру диска sda. Делаем это следующей командой.

# sfdisk -d /dev/sda | sfdisk /dev/sdb

Проверяем результат:

# fdisk -l | grep /dev
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
/dev/sda1  *      2048   999423   997376  487M fd Linux raid autodetect
/dev/sda2       999424 20969471 19970048  9.5G fd Linux raid autodetect
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
/dev/sdb1  *      2048   999423   997376  487M fd Linux raid autodetect
/dev/sdb2       999424 20969471 19970048  9.5G fd Linux raid autodetect
Disk /dev/md1: 9.5 GiB, 10215227392 bytes, 19951616 sectors
Disk /dev/md0: 475 MiB, 498073600 bytes, 972800 sectors
Disk /dev/mapper/vg00-root: 9.5 GiB, 10213130240 bytes, 19947520 sectors

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

# mdadm --add /dev/md0 /dev/sdb1

Дожидаемся окончания ребилда массива под boot. Это будет быстро. И возвращаем диск в корневой раздел.

# mdadm --add /dev/md1 /dev/sdb2

Не забываем добавить загрузчик на новый диск.

# dpkg-reconfigure grub-pc

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

На этом иснтрукция по установке Debian 10 на софтовый рейд массив закончена. По-моему, получился очень функциональный вариант. Дальше на этот сервер можно установить proxmox и получить устойчивый к отказу дисков гпервизор. Причем по надежности он будет не хуже, чем железный рейд, а возможно и лучше.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Как я уже говорил, Debian в чистом виде я почти не использую. Лично мне он в основном интересен, как базовый дистрибутив под гипервизор proxmox. Именно поэтому я не обхожу его стороной и пишу статьи про установку. Вариант с установкой debian на софтовый рейд как раз актуален именно для proxmox. Получается бюджетное надежное решение под виртуализацию.

Буду рад советам и замечаниям по существу в комментариях. Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Онлайн курс по Linux

Если у вас есть желание освоить операционную систему Linux, не имея подходящего опыта, рекомендую познакомиться с онлайн-курсом Administrator Linux. Basic в OTUS. Курс для новичков, адаптирован для тех, кто только начинает изучение Linux. Обучение длится 4 месяца. Что даст вам этот курс:
  • Вы получите навыки администрирования Linux (структура Linux, основные команды, работа с файлами и ПО).
  • Вы рассмотрите следующий стек технологий: Zabbix, Prometheus, TCP/IP, nginx, Apache, MySQL, Bash, Docker, Git, nosql, grfana, ELK.
  • Умение настраивать веб-сервера, базы данных (mysql и nosql) и работа с сетью.
  • Мониторинг и логирование на базе Zabbix, Prometheus, Grafana и ELK.
  • Научитесь командной работе с помощью Git и Docker.
Смотрите подробнее программу по .
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Настройка сервера Debian: установка, локальный, ssh

Установка debian на живой сервер или на виртуалку Virtual Box, настройка сети

Начнём с VirtualBox. Установка виртуальной машины стандартная, о ней уже рассказывалось в статье Установка Debian 9.3 — пошаговая инструкция

При установке имеется небольшая разница относительно того, какая операционная система установлена — Windows или unix системы.

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

Указываем имя Debian сервер, virtualbox сам выбирает операционную систему Linux Debian (он по названию определит).

Заходим в настройки и загружаем образ предварительно скачанные с сайта — www.debian.org/distrb/

Скачивать нужно дистрибутив net Install, что означает установка по сети, дистрибутив весит около 250 МБ, он достаточно быстро скачивается. Пакеты и программное обеспечение будет доустанавливаться по сети. Т.е. если у вас нет интернета, дистрибутив net Install вам не подойдёт, и нужно скачивать полную версию.

Заходим в настройке, выбираем накопители, и в контроллере IDE 10 монтируется образ ISO. Далее стартуем сервер. В открывшемся меня нажимаем Install. Подробная установка Debian рассмотрена здесь.  После завершения установки перезагружаем сервер.

Установка SSH

SSH (от англ. Secure Shell «безопасная оболочка») представляет собой сетевой протокол для соединения по сети Internet, который позволяет выполнять удалённое управление системой. Имеется бесплатная модификация SSH, которая именуется OpenSSH и включена в пакет ssh Debian.

sudo apt-get install ssh

Подключиться к серверу через ssh (с компьютера под управлением unix подобной операционной системы)

ssh [email protected]

Знакомство с командной строкой и протоколом ssh, sftp, настройка доступов по ключам (вместо паролей), root доступ

Базовые утилиты: su ls pwd cp scp locate updatedb which

Команда cd означает change directory (сменить директорию)

su – Superuser (суперпользователь).

Если мы находимся под логином текущего пользователя, то прописав su + имя пользователя, можно зайти в систему с правами root. Root имеет доступ ко всем папкам, может запускать и удалять всё что угодно, поэтому от имени суперпользователя необходимо работать внимательно и осторожно.

ls – показывает содержимое папки.

Указанные команды необходимо хорошо знать или иметь шпаргалку по ним, потому что без них вы ничего не сможете сделать.

Сочетание клавиш

Ctrl+c  отменяет запущенный процесс

Ctrl+d  разлогиниться

Настройка сети

Для того, чтобы наш сервер стал доступен из нашей операционной системы, например, для того, чтобы из Windows зайти на свой сервер, через пути или просто пинговать его, или просто зайти в браузер. Выключаем сервер правильным способом (команда halt). Включаем питание в виртуально машине, идем в настройки – сеть — включаем режим моста, выбираем подключение.

Сейчас IP адрес у сервера будет такой же, как и у компьютера.

Вводим ip a —  посмотреть все интерфейсы и их IP адреса.

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

Потребуется отредактировать следующий файл:

# nano /etc/network/interfaces

Пример config для ручной настройки IP:

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

allow-hotplug eth0

iface eth0 inet static

        address 10.0.0.10

        netmask 255.0.0.0

        network 10.0.0.0

        broadcast 10.255.255.255

        gateway 10.0.0.1

        # dns-* options are implemented by the resolvconf package, if installed

        dns-nameservers 10.0.0.1

        dns-search debian

Публичные ключи

Для начала нам нужно сгенерировать ключ уже на нашем же сервере с помощью утилиты ssh-keygen. Ключи нужны чтобы каждый раз не вводить пароль.

На сервер нужно загрузить публичный ключ (приватный ключ хранится только у нас на компьютере).

Если ключ, который вы желаете использовать, уже имеется перейдите к разделу «Копирование публичного ключа».

Для создания пары (pair) ключей, пропишите команду в терминале вашего компьютера:

ssh-keygen

Ключ будет сгенерирован в текущем каталоге пользователя в папке …/.ssh/id_rsa.

Этот файл необходимо держать у себя на компьютере.

Чтобы зайти на аккаунт под публичным ключом нужно создать файл .ssh/authorized_keys

Необходимо скопировать публичную часть ключа в этот файл.  После создания пары SSH-ключей, пропишите команду в терминале на локальной машине для вывода публичного ключа:

cat ~/.ssh/id_rsa.pub

Закрываем файл сочетанием клавиш ctrl+x. Сохраняем – y.

Теперь попробуем зайти на сервер:

ssh имя_пользователя@ip-адрес-сервера

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

Псевдонимы в Unix ssh/config

Это относится опять же к операционным системам на базе unix. К Windows это никакого отношения не имеет. Но если вы будете с одного Debian сервера заходить на другой Debian сервер, тогда это вам пригодится или если ваш домашний компьютер будет Debian и вы будете администрировать удаленный компьютер Debian, то вам это в принципе поможет.

В папке ssh создается файл config, в нем прописывается хост, придумывается псевдоним. Теперь можно сразу заходить с помощью псевдонима под логином и паролем.

Знакомство с менеджером пакетов apt и принципом установки приложений

Что такое .deb пакеты в Debian?

Это файлы, подобные MSI файлам в Windows. То есть это набор файлов и мета-данных для установки того или иного определённого приложения. Там хранится скомпилированный бинарник уже сразу под вашу операционную систему. Например, если установлена 64 битная Debian версия 9.3, то значит в этом в пакете будет именно этот бинарный файл для установленной системы.

Вся установка deb пакетов означает скопировать бинарник в одну папку, config в другую папку, ну и попросить какие-то зависимости, без которых эта программа не запустится.

В Debian по умолчанию установлена системная программа dpkg, которая при установке системы ставит приложения. Существует принципиальное отличие dpkg и apt.

Утилита dpkg просто устанавливает бинарники, и предупреждает о зависимостях, которые нужны для этой программы, при этом она эти зависимости устанавливать не будет.

Утилита apt автоматически всё продумывает, необходимые зависимости она установит.

apt-get – это менеджер пакетов, который устанавливает deb пакеты и автоматически устанавливает все нужные зависимости. То есть если нужен, к примеру, PHP с поддержкой xml или ещё с чем-то, то apt-get автоматически устанавливает целый комплект нужных программ (это своего рода как AppStore для для iOS).

Установка утилит mc

Попробуем установить полезную утилиту mc, она часто используется для работы сервера. Она представляет собой популярный 2х-панельный файловый менеджер Midnight Commander.

Установка mc на сервер:

# apt-get -y install mc

Добавляем пользователя в группу root

Выполнение команд от суперпользователя:

sudo command

Установка и настройка окружения nginx, php-fpm, mysql;

Устанавливаем nginx php5 и mysql-server:

sudo apt-get install nginx

sudo apt-get install php5-fpm php5-mysql

Настройка nginx

sudo cp /etc/nginx/sites-available/default

 

Установка и настройка домашнего сервера на Debian

Когда домашний «зоопарк» электронных девайсов разрастается от простого десктопа до ноутбука, десктопа, планшета, смартфона, телевизора с поддержкой SmartTV и т.д., появляется желание не просто объединить их в одну локальную сеть, а и иметь доступ к необходимым файлам с любого устройства, плюс, возможность администрировать каждое (ну почти) устройство сети, находясь в любой точке мира. В таком случае в сети нужно выделить главный ПК, который и будет заведовать всеми остальными. О том, как установить и настроить домашний сервер на Debian, вы узнаете из этого материала.

Intro

Зачастую, подобные домашние сервера собираются из устаревшего железа, которое либо стало не нужным после апгрейда основного ПК, либо уже давно просто пылится на полке. Да и в такой области применения не нужны разнообразные серверные навороты вроде контроллера домена, Active Directory, управления лесом и т.д. А потому сразу же, как операционная система, отпадает Windows Server ввиду прожорливости и перегруженности (как для нас) разнообразными функциями. И остается только один вариант – Debian. Для тех, кто еще не знаком с миром Linux, загляните в Википедию (https://ru.wikipedia.org/wiki/Linux), ознакомьтесь с историей, а также базовыми принципами работы в linux-системах.

Почему не Ubuntu Server, спросите вы? А потому что, первое – Debian это синоним слова «стабильность», и второе – в репозиториях Debian лежит более 43000 пакетов ПО. Из этих двух причин появляется третья – гиперпопулярность Debian-а, огромное комьюнити и неисчерпаемое количество информации по ОС.

Установка

Идем на https://www.debian.org/, и на странице «Где взять Debian» выбираем, что хотим скачать: маленький установочный образ netinst (для установки по сети), или же полные образы для CD или DVD. В первом случае получаем iso размером примерно в 300 МБ, во втором же – все торренты суммарно потянут на 12.5 ГБ. Я выбрал первый.

С помощью Win32DiskImager (http://sourceforge.net/projects/win32diskimager/) или другой аналогичной утилиты для записи образов на USB-диски, закидываем Debian на флешку (в той же Win32DiskImager это делается очень просто – выбираем диск, месторасположение образа, жмем «Write», соглашаемся на запись и ждем).

Для верности съемный диск стоит предварительно отформатировать в FAT32, потому что некоторые старые материнские платы не умеют загружаться с NTFS-флешек. 

Небольшой совет: что бы не перетыкать флешку по несколько раз из одного ПК в другой, для проверки корректности записи образа можно воспользоваться улиткой Xboot (http://www.pendrivelinux.com/xboot-multiboot-iso-usb-creator/), в которую встроен эмулятор QEMU.

Итак, вставляем «прожжённую» флешку в будущий сервер и включаем его. Но предварительно зайдем в BIOS, выставим порядок загрузки, переместив съемные диски на первое место. Сохраняем изменения, перезагружаемся. В появившемся меню жмем «Install».

Сразу выбираем язык, страну и раскладку клавиатуры. Когда загрузятся необходимые компоненты, нам будет предложено ввести сетевое имя ПК и имя домена, которое мы оставим пустым. 

Следующим пунктом будет ввод пароля для суперпользователя (root). Из соображений безопасности стоит придумать достаточно сложный пароль (kv_by_forever_2015, например). Подтверждаем, введя его еще раз. 

Далее необходимо создать основную учетную запись, от имени которой мы будем работать большую часть времени. Вводим полное имя пользователя, имя учетной записи (логин), и дважды пароль. Ждем, пока подтянется сеть и загрузятся нужные файлы.

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

Далее выбираем диск для разметки (скришоты делались в виртуальной машине с одним жестким диском).

В следующем окне предстоит выбор: сложить все фалы в один раздел, установить систему в /boot, а пользовательские файлы в /home, или то же, но еще с /var и /tmp. Выберем второе, так как пока что var и tmp нам не нужны, а в первом случае, при возможной переустановке системы, мы потеряем все свои файлы. А если отвести под наши нужды отдельный раздел home, то при переустановке или установке любого другого дистрибутива, достаточно будет просто подмонтировать /home, и все файлы снова будут доступны. Соглашаемся на внесение изменений,  смотрим, что и как будет размечено, соглашаемся, и еще раз соглашаемся.

Пока устанавливается базовая система, приведу конфигурацию моего тестового сервера:

  • Процессор AMD Sempron [email protected] GHz
  • Материнская плата Foxconn 6100K8MB
  • 1.5 GB RAM (одна планка Samsung M3 68L6523CUS-CCC 512 MB DDR, вторая – Hexon неопределенной модели 1 GB DDR)
  • Жесткий диск Samsung 040GJ на 40 GB SATA 2
  • Интегрированная видеокарта NVIDIA GeForce 6100

«Динозавр классический» получился .

Базовая система установлена, нам предлагают настроить менеджер пакетов apt. Указываем страну, в которой размещено зеркало, с которого мы хотим качать пакеты, собственно само зеркало, и, при необходимости, вводим адрес используемого прокси-сервера. Ждем пока закачается еще одна порция пакетов.

После нам предложат поучаствовать в программе сбора статистики использования пакетов . Тут выбираем по собственному желанию. Я ответил «нет».

А вот теперь нам заманчиво предлагают выбрать, какой дополнительный софт необходимо установить. Но, поскольку у нас сервер, то снимаем звездочку с окружения рабочего стола, ну и заодно с сервера печати (потом все необходимое доустановим уже в системе), оставив только стандартные утилиты.

Когда притянутся и настроятся стандартные утилиты, соглашаемся на установку загрузчика , и указываем, куда его ставить . Еще полминуты настроек и, как только увидим сообщение об удачном завершении установки, вынимаем флешку и жмем «Продолжить». Система установлена.

Первый вход

После перезагрузки первое, что мы увидим –  это менеджер загрузки GRUB.

Первый пункт меню «Debian GNU/Linux» загрузится автоматически через 2 секунды, потому просто ждем. И видим приветствие. Входим, введя свой логин и, по запросу, пароль. Далее делать скриншоты бессмысленно, потому я ограничусь вводом и выводом терминала.

Sudo

Что бы иметь возможность запускать программы от имени администратора, необходимо установить утилиту под названием sudo. Выполняем в терминале:

su

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

apt-get install sudo

Когда sudo установится, добавим нашего пользователя в группу sudo:

adduser username sudo

Перезагружаемся:

reboot

Перед дальнейшей настройкой примем за данность, что в интернет все наши устройства ходят через роутер. В моем случае это Huawei HG532e.

Для удобства в дальнейшем, присвоим MAC-адресам наших устройств статические ip-адреса. MAC-адрес можно узнать в свойствах сетевого адаптера в Windows, или выполнив (в Debian):

sudo ifconfig

MAC-адрес будет отбражен в поле HWaddr.

SSH

По идее, сервер должен тихо и неприметно выполнять свою работу, стоя, например, в кладовке или подвале (если частный дом). Но сервером все так же нужно управлять. Лучший и общепринятый способ – это терминал через сетевой протокол SSH. Для этого нам понадобится SSH-сервер. Выполняем:

sudo apt-get install ssh

И соглашаемся на установку. Теперь надо правильно настроить сервер SSH. Открываем файл настроек во встроенном редакторе nano:

sudo nano /etc/ssh/sshd_config

И начинаем с самого начала. Поскольку планируется, что мы сможем получить доступ к системе из любого места на планете, сразу сменим стандартный 22-й порт, к примеру, на 2020:

Port 2020

Поскольку на пост-советском пространстве с IPv6 все еще плохо, ограничим подключения только протоколом IPv4. Сразу после порта вставляем новую строку:

AddressFamily inet

Возвращаемся в начало. Поскольку мы уже настроили sudo, запретим вход через SSH под root-ом. Правим строку:

PermitRootLogin no

Идем дальше. Поскольку мы не будем использовать графическую среду, отключим форвардинг сервера окон X11 через ssh:

X11Forwarding no

По умолчанию, аутентификация по паре логин/пароль отключена, и это правильное решение. Гораздо безопаснее входить по RSA-ключу. Для этого сначала на клиентских машинах нужно сгенерировать по паре ключей (приватный и публичный), а потом скопировать публичный на сервер. Для Windows существует просто отличный клиент для работы с SSH под названием PuTTY. Скачиваем zip-файл (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) со всеми необходимыми утилитами сразу, распаковываем и запускаем PuTTYgen. Жмем «Generate», и хаотично «мотыляем» мышкой по окну, пока процесс генерации не закончится. После, жмем «Save public key» и «Save private key», и сохраняем куда-нибудь.

Однако, чтобы скопировать свой публичный ключ на сервер, войти один раз по логину/паролю все же придется. Для этого удаляем # перед строкой:

PasswordAuthentication yes

Снимаем комментарий и правим строку на:

AuthorizedKeysFile .ssh/authorized_keys

Жмем Ctrl+O, Enter и Ctrl+X. Перезапускаем сервис ssh:

sudo systemctl restart ssh

Запускаем PuTTY, в поле «Host» пишем ip-адрес сервера, указываем порт, в поле «Saved Sessions» вводим имя подключения, жмем «Save» и «Open». Соглашаемся с предупреждением, вводим по предложению логин и пароль. 

Теперь надо завести файл с публичными ключами. Создаем в каталоге профиля папку .ssh:

mkdir .ssh

Переходим в нее, потом на нашем ПК открываем блокнотом файл с публичным ключом и копируем собственно сам ключ (строки между «comment…» и «—-end—-»), создаем файл authorized_keys и вписываем в него (последовательность команд сохранена):

cd .ssh

nano authorized_keys

ssh-rsa AAAAA…..(key)…..== [email protected]

Примечание: когда вставите в окно PuTTY с открытым файлом authorized_keys, ключ (просто жмите ПКМ) нужно удалить переходы на новую строку (чтобы весь ключ был в одну строчку).

Жмем Ctrl+O, Enter и Ctrl+X. Перезапускаем сервис ssh:

sudo systemctl restart ssh

Возвращаемся в окно новой сессии PuTTY, выбираем сохраненную сессию, нажимаем «Load», слева в панели с деревом настроек выбираем «SSH», а в нем подпункт «Auth». Жмем «Browse», указываем файл с приватным ключом (с расширением .ppk), возвращаемся в сайдбаре в пункт «Session», клацаем «Save» и «Open». Вводим логин, если все хорошо, нас авторизуют. Снова открываем /etc/ssh/sshd_config и отключаем вход по паролю:

sudo nano /etc/ssh/sshd_config

Правим:

PasswordAuthentication no

Жмем Ctrl+O, Enter и Ctrl+X. Перезапускаем сервис ssh:

sudo systemctl restart ssh

С ssh разобрались, едем дальше.

Samba

Самое первое, что нам нужно – это возможность расшаривания файлов в нашей локальной сети. Для этой цели идеально подходит протокол Samba. В репозиториях восьмого Debian-а уже лежит новая Samba 4, потому просто устанавливаем (соглашаемся на установку всех дополнительных пакетов):

sudo apt-get install samba

Теперь настраиваем Samba. Открываем файл конфигурации:

sudo nano /etc/samba/smb.conf

Итак, значение параметра workgroup определяет название рабочей группы, в которую входит наш сервер. Имя должно быть одинаковое на ВСЕХ ПК нашей сети. Я оставил WORKGROUP. Поскольку наш «парк» состоит и из windows-ПК, нужно поднять WINS-сервер для того, что бы все компьютеры нормально работали через NetBIOS-имена (папка Сеть в Windows 7/8/10), а не только через «голые» ip-адреса. Для этого раскомментируем и поправим строку:

wins support = yes

И сразу под ней укажем приоритет нашего сервера (99 будет достаточно, максимально 255):

os level = 99

Далее перемещаемся почти в самый конец конфига, в раздел «Share Definitions». Именно тут нужно указать все папки и принтеры, которыми мы хотим поделиться в локальной сети. А потому, например, после подсекции [printers], вписываем примерно такие строки:

[share]

comment = public folder

browseable = yes

path = /home/username/share

guest ok = yes

read only = no

create mask = 0777

Параметров общих ресурсов в Samba на самом деле гораздо больше, потому и на этих я не буду детально останавливаться, все это отлично описано в документации (https://www.samba.org/samba/docs/). Как обычно, сохраняем, выходим. Теперь главное не забыть создать ту папку, которую мы прописали в конфигурационном файле. А потому:

cd ~

mkdir share

chmod 0777 share

Стоит сказать пару слов касательно поддержки Samba в Windows 7/8/8.1 и, возможно, 10. Их тоже можно сделать серверами Samba, выполнив пару скриптов в PowerShell-е. Но нам нужно активировать только клиент для Samba. Запускаем командную строку от имени администратора и выполняем по очереди:

sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi

sc.exe config mrxsmb20 start= auto

Без этого вы с большой долей вероятности получите ошибку 0x80070035. Также может потребоваться выход всех ПК из Домашней группы Windows. Вообще сеть в Windows 8 это повод для отдельного материала, потому просто загляните сюда https://support.microsoft.com/en-us/kb/2696547. После всех манипуляций, не забудьте перезапустить Samba:

sudo systemctl restart smbd

CUPS

Следующей областью применения для домашнего сервера, которая приходит в голову – это сервер печати. Для этого установим CUPS:

sudo apt-get install cups

Ждем, когда все притянется из сети. По умолчанию веб-интерфейс CUPS доступен по адресу http://localhost:631. Но у нас не localhost, потому придется подправить файлик с конфигом. Открываем:

sudo nano /etc/cups/cupsd.conf

Поскольку в роутере мы задали привязку MAC-адресов к ip-адрес

Безопасный и шустрый веб-сервер на Debian 7 / Хабр

Статья, находится в процессе написания, но я готов выслушать дельные советы и комментарии, а затем доплнить или поправить материал.
Прежде всего, данный материал ориентирован на новичков и тех, кто держит на одном VPS сразу несколько сайтов, при этом хочет иметь как безопасный, так и шустрый веб-сервер.
В качестве веб-сервера у нас будет выступать связка:

Apache 2.2 + PHP 5.4.4 + MySQL 5.5 + NGINX 1.2.1 + eAccelerator + memcached + vsftpd 3.0.2 + exim.

Все это чудо будет крутиться на Debian 7.

Начнем.


Итак, прежде всего после установки ОС, выполняем:

apt-get update
apt-get dist-upgrade

Затем одной командой ставим весь необходимый софт:

apt-get install htop atop vsftpd exim4-base exim4-daemon-light mailutils rcconf apache2 apache2-mpm-itk nginx mysql-server-5.5 mysql-client-5.5 php5 php5-dev memcached libmysqlclient-dev apache2-utils libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-common php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl make automake checkinstall gcc gzip libreadline-dev libssl-dev libncurses5-dev zlib1g-dev

В процессе установки система попросит вас придумать и ввести пароль для пользователя root БД MySQL, вводим.
После полной установки софта, приступаем к настройке. Все сайты у нас будут лежать в директории /home/директория_пользователя/директория_сайта, но вы можете разместить их в любой удобной для вас директории. В директории сайта у нас будут 3 поддиректории: tmp (для временных файлов и файлов сессий), logs (логи сайта), public_html (директория сайта).

Создаем пользователя dapf с одноименной группой, домашним каталогом и запретом на использование консоли:

useradd dapf -b /home -m -U -s /bin/false

Устанавливаем пароль пользователя dapf:

passwd dapf 

Создаем каталоги пользователя с выставлением прав и группы:

mkdir -p -m 755 /home/dapf/dapf.ru/public_html
mkdir -p -m 777 /home/dapf/dapf.ru/logs
mkdir -p -m 777 /home/dapf/dapf.ru/tmp
chmod 755 /home
chmod 755 /home/dapf
chmod +t /home/dapf/dapf.ru/logs
chmod +t /home/dapf/dapf.ru/tmp
chown -R dapf:dapf /home/dapf

Запретим консоль пользователю www-data:

usermod -s /bin/false www-data

Теперь приступим к настройке Apache.
Включаем необходимые нам модули:

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include


Правим конфиг портов в файле /etc/apache2/ports.conf:
nano /etc/apache2/ports.conf

Необходимо заменить 80 порт на 81 (т.к. на 80м у нас будет nginx):

NameVirtualHost *:81
Listen 81

Поскольку у нас VPS слабенький (256 мб ОЗУ), то нам необходимо настроить /etc/apache2/apache2.conf

nano /etc/apache2/apache2.conf

Устанавливаем следующие значения:

KeepAlive Off
StartServers 1
MinSpareServers 3
MaxSpareServers 6
ServerLimit 24
MaxClients 24
MaxRequestsPerChild 3000

Теперь создадим новый VirtualHost (сайт):

nano /etc/apache2/sites-available/dapf.ru
<VirtualHost *:81>
ServerName www.dapf.ru
ServerAlias dapf.ru
ServerAdmin [email protected]
DocumentRoot "/home/dapf/dapf.ru/public_html"
  <Directory />
  Options FollowSymLinks
  AllowOverride None
  </Directory>
  <Directory /home/dapf/dapf.ru/public_html/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
  </Directory>
  ErrorLog /home/dapf/dapf.ru/logs/errors.log
  LogLevel warn
  CustomLog /home/dapf/dapf.ru/logs/access.log combined
  AssignUserId www-data dapf
  php_admin_value open_basedir "/home/dapf/:."
  php_admin_value upload_tmp_dir "/home/dapf/dapf.ru/tmp"
  php_admin_value session.save_path "/home/dapf/dapf.ru/tmp"
</VirtualHost>

Благодаря apache2-mpm-itk мы имеем возможность использовать в конфигах виртуалхоста директиву AssignUserId www-data dapf, которая позволяет запретить web-шеллу, править файлы нашего проекта, кроме тех, на которых стоят права o+w. Т.е. apache сможет спокойно прочитать php-файл, выполнить его и отдать в браузер, но не сможет внести изменения в его содержимое, что создаст определенные проблемы для хэкеров. Если хотите разрешить апачу править файлы, то используйте вместо www-data dapf, значение dapf dapf. Директивы open_basedir, upload_tmp_dir, session.save_path исключают получение сессий с соседнего сайта и переходы выше пользовательской директории.

Включаем сайт:

a2ensite dapf.ru

И перезагружаем апач:

service apache2 restart

С апачем закончили, теперь настроим nginx.
Для начала настроим gzip сжатие, назначим пользователя www-data и установим 1 ядро процессора.

nano /etc/nginx/nginx.conf
user www-data;
worker_processes 1;
pid /var/run/nginx.pid;
error_log /var/log/nginx/error.log;
events {
  worker_connections 768;
  # multi_accept on;
}
http {
  ##
  # Basic Settings
  ##
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  types_hash_max_size 2048;
  # server_tokens off;
  # server_names_hash_bucket_size 64;
  # server_name_in_redirect off;
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  ##
  # Logging Settings
  ##
  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;
  ##
  # Gzip Settings
  ##
  gzip on;
  gzip_disable "msie6";
  # gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 7; #Level Compress
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  gzip_types text/plain text/css application/json application/x-javascri$
  ##
  # Virtual Host Configs
  ##
  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}

После создадим новый конфиг нашего виртуалхоста:

nano /etc/nginx/sites-enabled/dapf.ru
server {
listen 80;
server_name dapf.ru www.dapf.ru;
access_log /var/log/nginx.access_log;
location ~* .(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|html|htm|mp3|docx|xlsx)$ {
root /home/dapf/dapf.ru/public_html/;
error_page 404 = @fallback;
index index.html index.php;
access_log off;
expires 30d;
}
location ~ /.ht { deny all; }
location / {
proxy_pass http://127.0.0.1:81/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_redirect off;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
location @fallback {
  proxy_pass http://127.0.0.1:81;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header X-Real-IP $remote_addr;
  }
}  

Теперь за всю динамику отвечает апач, а за статику nginx, при появлении ошибки 404, которая может возникнуть при использования mod_rewrite(ЧПУ), будет вызываться функция @fallback, которая перенаправит запрос на апач для проверки.

Перезагружаем nginx: service nginx restart

Для настройки FTP правим файл конфига vsftpd

nano /etc/vsftpd.conf

Удаляем всё и вставляем следующие настройки:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
pasv_min_port=50000
pasv_max_port=60000
dirmessage_enable=YES
xferlog_enable=YES
file_open_mode=0644
local_umask=022
connect_from_port_20=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to our FTP service.
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

Это позволит запретить вход анонимным пользователям, разрешить использование старых FTP клиентов, а также ограничить перемещение пользователей только их домашним каталогом.

Затем необходимо поправить файл /etc/pam.d/vsftpd, чтобы включить возможность авторизации FTP пользователям, не имеющим доступ к консоли.

nano /etc/pam.d/vsftpd

Находим и комментируем строку: auth required pam_shells.so

#auth  required  pam_shells.so

Перезагружаем vsftpd и пробуем войти:

service vsftpd restart

Если у вас возникла ошибка: 500 OOPS: vsftpd: refusing to run with writable root inside chroot(), не расстраиваемся — это баг vsftpd, и решается он простым обновлением, для этого выполняем:

echo "deb http://ftp.us.debian.org/debian jessie main contrib non-free" >> /etc/apt/sources.list
aptitude update
aptitude upgrade vsftpd
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf
service vsftpd restart

Возможно, вам придется заново поправить конфиги vsftpd, но после перезапуска сервиса всё будет работать нормально.

Настраиваем MySQL.

nano /etc/mysql/my.cnf

Устанавливаем следующие значения директив:

key_buffer = 16K
max_allowed_packet = 1M
thread_stack = 64K
table_cache = 4
sort_buffer = 64K
net_buffer_length = 2K

Если вы не используете таблицы InnoDB, можно добавить директиву skip-innodb

Далее создадим пользователя и его БД, выполнив команду:

echo "CREATE USER 'база_данных'@'localhost' IDENTIFIED BY 'пароль_пользователя'; GRANT USAGE ON * . * TO 'база_данных'@'localhost' IDENTIFIED BY 'пароль_пользователя' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; CREATE DATABASE IF NOT EXISTS база_данных DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; ; GRANT ALL PRIVILEGES ON база_данных . * TO 'база_данных'@'localhost';" | mysql --user=root --password=пароль_рута_мускула mysql

Значения база_данных, пароль_пользователя, пароль_рута_мускула указываем свои.

Основную часть работы мы закончили, теперь необходимо настроить PHP+ eAccelerator+ exim.

Начнем с настройки exim, выполняем:

dpkg-reconfigure exim4-config

Выбираем ОК, потом internet site; mail is sent and received directly using SMTP, указываете ваш System mail name (у меня это dapf.ru), IP-addresses to listen on for incoming SMTP connections можно оставить просто 127.0.0.1, далее по вкусу, пока не дойдете до Root and postmaster mail recipient, там указываем ваш email, на который будут возвращаться письма.

Выполняем для проверки:

echo "test" | mail -s Test ваш@email.com

Если письмо пришло, значит все отлично, если нет, то возвращаемся и перенастраиваем exim.
Теперь установим eAccelerator.

Качаем последнюю на данный момент версию и распаковываем:

wget https://codeload.github.com/eaccelerator/eaccelerator/legacy.tar.gz/master -O ea.tar.gz
tar xvfz ea.tar.gz

Переходим в директорию с исходниками eaccelerator(у меня это eaccelerator-eaccelerator-42067ac) и устанавливаем:

cd eaccelerator-eaccelerator-42067ac
phpize
./configure
make
make install

Создадим директорию для кеша eAccelerator

mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator

Редактируем файл php.ini

nano /etc/php5/apache2/php.ini

Здесь нам необходимо добавить настройки eAccelerator, sendmail, в качестве которого у нас exim, настройки безопасности и т.д.
Добавляем перед [ PHP ] настройки для eAccelerator

; eAccelerator configuration
; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension
; If you are using a thread safe build of PHP you must use
; zend_extension_ts instead of zend_extension
extension  = "eaccelerator.so"
eaccelerator.shm_size  = "16"
eaccelerator.cache_dir  = "/var/cache/eaccelerator"
eaccelerator.enable  = "1"
eaccelerator.optimizer  = "1"
eaccelerator.check_mtime  = "1"
eaccelerator.debug  = "0"
eaccelerator.filter  = ""
eaccelerator.shm_max  = "0"
eaccelerator.shm_ttl  = "0"
eaccelerator.shm_prune_period  = "0"
eaccelerator.shm_only  = "0"
eaccelerator.compress  = "1"
eaccelerator.compress_level  = "9"
eaccelerator.allowed_admin_path = "/var/www/eaccelerator"

Теперь раскомментируем sendmail_path и укажем путь до exim

sendmail_path = /usr/sbin/exim -t

Далее выставим следующие настройки:

;Отключаем вывод ошибок и включаем их запись в файл
display_errors =Off
log_errors=On
;Отключаем опасные функции
disable_functions = exec,ini_get,ini_get_all,parse_ini_file,passthru,php_uname,popen,proc_open,shell_exec,show_source,system,dl, show_source, readfile, popen, cwd,getcwd
;По вкусу можно отключить и функции: diskfreespace, disk_free_space, disk_total_space, eval, fileperms, fopen, opendir, phpinfo, phpversion, posix_getpwuid, posix_getgrgid, posix_uname, но не рекомендуется.
;Прочие настройки
error_reporting = E_ALL & ~ E_NOTICE

Остальные настройки PHP делайте по вашему желанию, на эту тему в сети имеется куча мануалов.

Настройку SSH я рассматривать не буду, а остановлюсь на фаерволе, т.к. в Debian по умолчанию разрешены все подключения.

Создаем файл my.iptables.rules

nano /etc/my.iptables.rules
*filter
-A INPUT -i lo -j ACCEPT
-AINPUT -d 127.0.0.0/8 -jREJECT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 50000 -j ACCEPT
-A INPUT -p tcp --dport 60000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT

Активируем и сохраняем правила:

iptables-restore < /etc/my.iptables.rules
iptables-save > /etc/iptables.rules

Проверяем командой iptables –L

Прописываем загрузку в файле /etc/network/interfaces

nano /etc/network/interfaces

После iface lo inet loopback добавляем

pre-up iptables-restore < /etc/iptables.rules

Сохраняем и перезагружаем VPS.

Debian Server для новичка | Блог Линуксоида

Как-то обеспокоился наличием собственного FTP-сервака. Тем более под это дело «на помойку» был отдан комп этак десятилетней давности. Так как я человек хоть и виндовый, но начинал с чистого ДОСа (про книжки тов. Фигурнова кто помнит?), то я решил сделать все на линуксе. В линуксе я был ноль полный. Еще и усложнил задачу — только консоль, никаких исков (как же — это ж линукс). Дистрибутивом был выбран Debian. Так получилось, что надобность в 2Тб личном хранилице отпала через год и комп был отдан в хорошие руки, а хард пристроен в нужное место. Но был накоплен неплохой опыт стопроцентного новичка. Какие только глупые ошибки я не совершал поначалу!

Что и как хотим получить в результате:

  • консольная установка ОС с флешки;
  • навыки консольного управление;
  • создание собственного репозитория;
  • обеспечение удаленного доступа по протоколу FTP/SFTP;
  • обеспечение удаленного управления по протоколу SSH;
  • дистанционное включение сервера, находящегося за маршрутизатором;
  • создание условий работы веб-сервера (в идеале связка nginx+apache).

В инете куча всяких пошаговых инструкций. Порой там бывают досадные ошибки, а если еще линуксоид и сопливый еще покамест, то можно пару часов потратить только на то, что бы понять, что не нужна лишняя палочка или точечка — в линуксе важно все! Нижеизложенное делается для практических целей поставленных задач — не надо воспринимать все как серьезную инструкцию для создания серьезного сервера. Тем более в процессе «восстановления опыта» могут и ошибки тоже быть и у меня…

Итак, имеется пустой комп с подключенной периферией.

Для начала нужно установить саму ОС. Имеется так же образы всех дисков Debian 6.0.0 stable. От лазерных носителей я давно отказался, т.е. для установки нужно изготовить загрузочную флешку. Флешка нашлась на 2Gb. После поисков оказалось, что изготовить можно, но из самой линуксовой среды. Пришлось установить с образа первого диска дебиан на виртуальную машину (подключаем образ к виртуалке в качестве виртуального CD-ROM и установка выполняется «честно» как бы с лазерного диска). Устанавливал «оптом» — т.е. и GUI тоже (в 6 версии был только GNOME). Тем не менее, после того, как все сделалось, грузим деабиан, подключаем флешку к виртуалке и открываем консоль.

Выполняем команду:

# dmesg

Видим что-то типа этого:

[373982.581725] sd 8:0:0:0: [sdc] 4001760 512-byte hardware sectors (2049 MB)
[373982.582718] sd 8:0:0:0: [sdc] Write Protect is off
[373982.582718] sd 8:0:0:0: [sdc] Mode Sense: 03 00 00 00
[373982.582718] sd 8:0:0:0: [sdc] Assuming drive cache: write through
[373982.584152] sd 8:0:0:0: [sdc] 4001760 512-byte hardware sectors (2049 MB)
[373982.585718] sd 8:0:0:0: [sdc] Write Protect is off
[373982.585718] sd 8:0:0:0: [sdc] Mode Sense: 03 00 00 00
[373982.585718] sd 8:0:0:0: [sdc] Assuming drive cache: write through
[373982.585718] sdc:
[373982.589280] sd 8:0:0:0: [sdc] Attached SCSI disk

Это значит, что флешка определилась в системе.

Скачиваем файл boot.img.gz (debian.org) для нужной архитектуры (в моем случае i386) и копируем его в какую-нибудь директори. Далее выполняем команду из этой директории:

# zcat boot.img.gz > /dev/sdc

Теперь надо вытащить и воткнуть обратно USB флешку, чтобы новая структура/таблица разделов распозналась. Это обновит таблицу разделов, хранимую udev. Для проверки выполняем следующие команды:

# mkdir /mnt
# mount /dev/sdс /mnt/
# ls /mnt

и видим инсталляционные файлы, такие как syslinux.cfg, setup.exe, и так далее. Значит все нормально — флешку примонтировали.

Далее скачиваем ISO образ netinstall (debian.org) размером 150-180MB для соответствующей архитектуры (в моем случае i386). Netinstall устанвливает базовую систему, сеть не нужна. Копируем этот образ в какую-нибудь директорию и из этой директории выполняем и отмонтируем флешку:

# cp debian-6.0.1a-i386-netinst /mnt
# umount /dev/sdс

Уф. Теперь при себе есть всегда флешка для установки.

Если же необходимо включить такой инсталлятор на флешку с другими ОСами, то можно обратиться к загрузчику grub. У меня уже имеется загрузочная флешка с grub4dos. Создаем папку debian в корне флешки и кидаем туда: debian-6.0.1a-i386-netinst.iso, initrd.gz, initrdg.gz, linux — последние 3 файла можно выдернуть с первого установочного диска Debian 6.0.0 stable или скачать (debian.org). А в меню grub’a (menu.lst) нужно добавить следующее:

title Debian 6.0.1a - Netinstall (Basic System, VGA Install)
kernel /debian/linux video=vesa:ywrap,mtrr vga=788 -- quiet
initrd /debian/initrdg.gz

title Debian 6.0.1a - Netinstall (Basic System, TXT Install)
kernel /debian/linux -- quiet
initrd /debian/initrd.gz

Теперь втыкаем флешку в наш импровизированный сервак, через BIOS выбираем загрузку с флешки и штатно устанавливаем Debian. При установке ничего особого я не обнаружил: выбираем установку с графическим интерфейсом и далее диалоговый режим. Разметить файловую систему можно автоматом — на первый раз сойдет. После установки и перезагрузки, а так же входа в систему мы будем радостно лицезреть черный экран с приглашением командной строки — базовая установка выполнена!

Далее необходимо настоить доступ и управление по протоколу SSH.

Так же, что бы особо не париться с консолью нужно бы установить mc (Midnight Commander) — аналог nc (Norton Commander) в DOS или tc (TotalCommander) в Windows. Но для установки нужно скопировать из сети пакет и установить его. Сети же нет. В то же время практически весь хоть сколько-то нужный софт есть на дисках Debian 6.0.0 stable (дисков, кажется, 6). Но я отказался от работы с дисками. Можно настроить сеть и воспользоваться официальным сетевым репозиторием — способ проще некуда. Однако это решение не для нас — нужна широкая автономность на первом этапе. Да и с каких пор мы идем по легкому пути — знакомство носит все же больше исследовательский характер. Значит нужно сделать свой локальный репозиторий.

1) подготовка…

Придется опять еще раз вернуться в виртульную машину. Входим в консоль под root’ом (на сервере мы в будущем настроим sudo, что бы по каждой ерунде не светить root’а). Создаем директории:

# mkdir debian/pool
# mkdir debian/pool/contrib
# mkdir debian/pool/main

В эти директории копируем содержимое одноименных директорий со всех дисков. Получится одна папочка объемом этак с 30Гб. После того, как содержимое всех дисков скопировано, создаём директории для хранения информации об находящихся в репозитарии пакетах:

# cd /debian
# mkdir -p debian/dists/stable/contrib/binary-i386
# mkdir -p debian/dists/stable/main/binary-i386

Далее все команды выполняются исходя из текущего каталога debian — за его пределы никуда не выходим! Собираем списки пакетов:

# apt-ftparchive packages pool/main/ > dists/stable/main/binary-i386/Packages
# apt-ftparchive packages pool/contrib/ > dists/stable/contrib/binary-i386/Packages

Сжимаем списки:

# gzip -c dists/stable/contrib/binary-i386/Packages > dists/stable/contrib/binary-i386/Packages.gz
# gzip -c dists/stable/main/binary-i386/Packages > dists/stable/main/binary-i386/Packages.gz

Создаём файлы Release:

# apt-ftparchive release pool/contrib/ > dists/stable/contrib/binary-i386/Release
# apt-ftparchive release pool/main/ > dists/stable/main/binary-i386/Release
# cd /debian/pool/dists/stable
# apt-ftparchive release. > Release

Теперь папку /debian можно скопировать на жесткий диск и при желании подключать и организовывать локальные репозитории в других системах. Что и делаем — копируем папку на съемных USB-хард.

2) подключение… заходим на сервер под root’ом

Подключаем USB-хард к серверу. Далее соображаем как определился хард:

# dmesg

Монтируем его и сливаем все что натворили раньше:

# mount /dev/sda1 /mnt/
# mkdir /dpool
# cp -r /mnt/* /dpool

Правим файл /etc/apt/sources.list — комментим все репозитории и прописываем наш:

deb file:/debian/ stable contrib main

Тут надо сделать краткое отступление. Как поправить файл, если одна консоль? Для этого есть редактор vi:

# cd /etc/apt
# sudo vi sources.list

Далее делаем что нужно: передвигаем курсор в нужную позицию и жмем «i». Это режим ввода. Делаем что нужно. Сделали и жмем ESC для возврата в командный режим. Далее — все по новой. После того как все завершено жмем последовательность «ESC: w! Enter» — это команда возврата с сохранением изменений. Страшно? После установки mc жизнь упростится…

Делаем апдейт:

# apt-get update
# apt-cache gencaches

Готово наше локальное хранилище!

Теперь наконец-то добрались до SSH вплотную почти.

1) не всю же жизнь под root’ом работать…

Но сначала немного облегчим себе жизнь — настроим sudo. Sudo — система позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Проще говоря user сможет выполнять действия, которые изначально предполагалось выполнять только от root’а.

Заходим на сервер под root’ом и открываем файл /etc/sudoers. Используем опять же редактор vi:

# cd /etc
# vi sudoers

Ищем строку:

root ALL=(ALL) ALL

И под ней дописываем:

user ALL=(ALL) ALL

Выходим с сохранением. Готово! Теперь можно заходить под user’ом, но при выполнении критических команд просто перед командой добавлять «sudo». В первый раз система запросит текущий пароль для идентификации. Выходим из системы и заходим под user’ом. Пароль от root’а можно отныне записать на бумажке — пользоваться будем сильно редко, можно и забыть)

2) замучила консоль и vi…

Ставим пакет:

# sudo apt-get install mc

После установки введя команду

# mc

Теперь можно радоваться и забыть про команды mkdir, cp, ls, cd, а так же консольное управление в vi. Править файлы теперь можно по F4. Ностальгия по 2000ым — тогда я на 386ом только нортом и пользовался…

3) наконец-то SSH…

Ставим пакет:

# sudo apt-get install ssh

После успешной установки нужно добавить в конец файла /etc/ssh/sshd_config строку для ограничения доступа:

AllowUsers root, user

Выполняем:

# sudo mc

Далее идем по указанному пути и правим файл. После правки проблем с сохранением не будет — mc запущен под root’ом же. После правки нужно обновить сервис ssh — выходим в консоль и выполняем рестарт сервиса:

# sudo /etc/init.d/ssh restart

Для последнего штриха перед переходом на удаленное управление нужно только настроить сеть.

У меня ситуация простая: комп подключен к маршрутизатору проводом. Так как на маршрутизаторе включен DHCP, то интернет получим от него автоматом.

Настройки сетевых интерфейсов хранятся в файле: /etc/network/interfaces

Вот пример рабочего содержимого файла:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.0.0.0
network 10.0.0.0
broadcast 10.255.255.255
gateway 10.0.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 10.0.0.1
dns-search debian

Запускаем mc через sudo и правим этот файл в соответствии с теми сетевыми настройками, которые справедливы для вашей сети.

Настройка имени сервера и хостов находятся: /etc/hostname, /etc/hosts
Если наш сервер называется «debian», то проверяем:
В hostname значится только:

debian

А в host первые строчки:

127.0.0.1 localhost debian
10.0.0.10 debian.localhost debian

После всего этого гасим компьютер:

# sudo poweroff

2) удаленное управление…

Отключаем все кабели, тянем наш сервер в самый дальний угол и подключаем его в розетку и к сети. При этом надо заранее позаботится что бы на этапе загрузки BIOS не ждал нажатия кнопки с названием «any» после того как он с удивлением обнаружит, что клавиатура и мышь не обнаруживаются. Нажимаем кнопку питания и возвращаемся к рабочему компьютеру. На этом компе у меня винда. Как же теперь подключиться к серверу?

Есть такая программа putty. Добыть ее можно в интернете. После ее запуска во вкладке «Session» прописываем IP адрес нашего сервера, в качестве порта оставляем значение 22 (это стандартный порт для Shell). Проверяем, что во вкладке «Translation» выставлено UTF-8, что бы неогрести крякозяблев при отображении кириллицы. Возвращаемся в «Session» и открываем канал: «Open». После соединения нас попросят подтвердить создание ключей соединения с нами — подтверждаем. Вводит логин: user. Далее вводим пароль — пароль при вводе не отображается, т.е. это нормально. После соединения видим приглашение сервера и родную консоль, только не на всем мониторе, а в маленьком окошке, которое можно и подрястянуть мышкой. Это значит «Ура, товарищи!».

В принципе, для досутпа к файловой системе можно использовать WinSCP.

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

Ставим пакет:

# sudo apt-get install samba

Теперь редактируем файл /etc/samba/smb.conf. Вот пример рабочего содержимого:

[global]

workgroup = WORKGROUP
server string = %h server
dns proxy = no

log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d

security = share
encrypt passwords = true
passdb backend = tdbsam

obey pam restrictions = yes

unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes

[homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

[user]
path = /ftp/pub
readonly = no
guest ok = yes

В качестве комментария можно заметить следующее:
— необходимо указать рабочую группу, в которой работают виндовые машины;
— параметр security должен быть установлен в share;
— в секции «user» нужно указать реальный путь и разрешить гостевой доступ — собственно именно эту секцию мы в файл и добавляем.

После всего этого дела создаем указанные каталоги:

# mkdir /ftp
# mkdir /ftp/pub

И разбираемся с правами на эти папки:

# sudo chmod 0755 /ftp
# sudo chmod 0777 /ftp/pub
# sudo chown -R root /ftp

В таком случае доступ будет осуществлен к папке ftp, но в ней изменить ничего нельзя будет. А вот в папке pub — делаем что угодно. Естественно, можно все упростить выкинув папочку pub и поправив права для ftp…

Ну и напоследок перезагружаем сервис, что бы все настройки заработали:

# sudo /etc/init.d/samba restart

Теперь пора выпустить нашего малыша в сеть.

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

У нас должен быть выход в интернет с статичным реальный IP-адресом. Т.е. доступ из вне должен осуществляться напрямую, а не через коммутацию сетей провайдера. Например, пользователи сети Рамнет все сидят за большим NAT’ом, т.к. выходят в сеть через несколько пулов. Это значит, что IP выданный при регистрации вовсе и не совпадает с тем IP, который «отпечатывается», например, при посещении сайтов. Реальный IP — это однозначно тот IP, который прописан в сетевых настройках драйвера сетевой платы. Узнать реальный IP или нет можно воспользовавшись каким-нибудь сетевым сервисом в интернете, который показывает ваш IP-адрес. Допустим у нас имеется реальный IP.

Далее, если сетевой провод напрямую заведен на сервер, то проблем особых уже и нет — сервер уже в сети. А если стоит какое-то маршрутизирующее устройство (маршрутизатор, или промежуточный разветвитель-коммутатор на базе того же линукса)? В таком случае мы оказываемся уже за своим NAT’ом, который нужно немного настроить: осуществить проброс портов. Для каждой сетевой службы на машине имеется свой порт: SSH — 22, FTP — 21. Т.е., маршрутизатор нужно настроить так, что бы при обращении к порту по нашему реальному IP осуществлялось обращение именно к серверу по этому порту. Если наш сервер имеет адрес 10.0.0.10, а провайдером выдан реальный IP 172.122.34.89, то в маршрутизаторе необходимо выполнить проброс портов (Port Forwarding) 21 и 22 из вне (172.122.34.89) на сервер (10.0.0.10). Просто настраивается пара строчек в админке маршрутизатора или правится таблица маршуртизации промежуточного линукса-коммутатора. Допустим это тоже все сделали.

В таком случае для досутпа по SSH через putty необходимо просто будет указать реальный IP-адрес, порт 22 (см. выше, где описана небольшая настройка клиента putty). Осуществляем вход и получаем доступ к консоли сервера.

А файловый доступ? Тут чуть сложнее. Можно использовать WinSCP, но как уже упоминалось, это не наш метод. Samba работает только в локалке. Придется настроить FTP доступ…

Для FTP используем сервис proftpd. Ставим пакет:

# sudo apt-get install proftpd

Файл конфигурации находится здесь: /etc/proftpd/proftpd.conf. Вот пример рабочего файла:

Include /etc/proftpd/modules.conf

ServerName "Debian"
ServerType standalone
DeferWelcome off

MultilineRFC2228 on
DefaultServer on
ShowSymlinks on

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"

DenyFilter \*.*/

DefaultRoot ~

RequireValidShell off

Port 21

<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>

MaxInstances 10

User nobody
Group nogroup

Umask 022 022
AllowOverwrite on

TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>

<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

<Anonymous /home/ftp/pub>
User user1
Group nogroup
UserAlias anonymous user1
#RequireValidShell off
MaxClients 10
TransferRate RETR,STOR 4096

<Limit LOGIN>
AllowAll
</Limit>
<Limit READ>
AllowAll
</Limit>
<Limit WRITE>
AllowAll
</Limit>
</Anonymous>

<Anonymous /home/ftp/pub>
User user2
Group nogroup
#UserAlias anonymous user2
#RequireValidShell off
MaxClients 3
#TransferRate RETR,STOR 4096

<Limit LOGIN>
AllowAll
</Limit>
<Limit READ>
AllowAll
</Limit>
<Limit WRITE>
AllowAll
</Limit>
</Anonymous></code>

Комментарии:
— сервер FTP запускаем отдельным процессом «standalone», хотя для слабых компов это и не будет оптимальным;
— секции «Anonymous» прописываем сами: для user1 будет открыт анонимный доступ с ограничением скорости в 4МБ/с и ограничением количества запускаемых серверов 10, для user2 ограничения скорости нет, а ограничение запускаемых таких серверов установлено в 3.

Перезапускаем ftp-сервер:

# sudo /etc/init.d/proftpd restart

В таком случае мы сможем подключиться к нашему серверу используя любой FTP-клиент из любой точки сети. Учитываем, что порт 21 мы уже пробросили через маршрутизатор ранее. При этом можно использовать анонимный доступ или введя логин/пароль для авторизации снять лимит скорости скачивания/отправки. Но для авторизации нужно иметь зарегистрированные учетные записи на сервере. Создадим пользователей без создания для них домашних каталогов:

# sudo useradd user1
# sudo useradd user2

И зададим им пароли:

# sudo passwd user1
# sudo passwd user2

Ну вот теперь появилось уже что-то более-менее полезное)))

В идеале хотелось бы настроить защищенный SFTP доступ. Для proftpd существует модуль mod_sftp. Я очень долго (3 вечера) курил мануалы по этой теме и кое как сумел настроить. Но сервер нещадно резал скорость на уровне 10мегабит как при доступе внутри сети, так и снаружи. Ничего с этим не поделав пришлось отказаться пока от этого решения.

Так же SFTP можно настроить через SSH — в нем уже имеется такая возможность. Однако при такой организации у меня никак не получалось нормально запереть пользователя в нужной директории, т.к. иначе ему, после авторизации, открывался доступ сразу ко всей системе.

SFTP идея гораздо полезнее (при FTP пароли вообще в открытом виде передаются, если это не анонимный доступ), но пока ее пришлось забросить.

Может быть будет кому-то интересно подключение mod_sftp. Я реализовывал так, что бы ключи авторизации цеплялись с SSH:

<source lang="bash"><IfModule mod_sftp.c>
SFTPEngine on
SFTPLog /var/log/proftpd/sftp.log
TransferLog /var/log/proftpd/xferlog-sftp.log
Port 2220
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPAuthorizedUserKeys file:~/.sftp/authorized_keys
SFTPCompression delayed
MaxLoginAttempts 6
</IfModule>

Это дело вставляется в proftpd.conf и доступ осуществляется через порт 2220. Но при этом mod_sftp должен быть установлен вместе с proftpd. В штатном репозитории proftpd собран без mod_sftp. Его придется «дособирать» самостоятельно. «Впатчивал» я по какой-то английской инструкции — уже не помню. Процесс это не менее творческий, чем сборка своего репозитория, а результат все равно не порадовал, поэтому это все описывать не буду.

Итак, мы настроили FTP.

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

Тут есть одна тонкость. К нашему серверу подключено только электропитание и сеть. Но сетевые карты давно научились «будить» компьютер: достаточно только включить такую поддержку в BIOS компьютера и послеать не него «магический» пакет (Magic packet). Читаем в wikipedia:

Magic packet — это специальная последовательность байтов, которую для нормального прохождения по локальным сетям можно вставить в пакеты UDP или IPX. Обычно для WOL пакеты протоколов верхнего уровня рассылают широковещательно, так как в случае динамического присвоения адресов неизвестно, какой, скажем, IP-адрес соответствует какому MAC-адресу. Однако, для корректного прохождения через маршрутизатор, запрещающий широковещательные пакеты, можно послать пакет по какому-то определённому адресу.

Состав magic packet

Вначале идет так называемая «цепочка синхронизации»: 6 байт, равных 0xFF. Затем — MAC-адрес сетевой платы, повторённый 16 раз. То есть, если бы адрес платы выглядел как 01:02:03:04:05:06, то магический пакет оказался бы таким:

FFFFFFFFFFFF010203040506010203040506010203040506010203040506
010203040506010203040506010203040506010203040506010203040506
010203040506010203040506010203040506010203040506010203040506
010203040506010203040506

Есть куча программ, половина из которых работает, а другая нет, которые формируют и отсылают такие пакеты по указанному IP. Но это справедливо только в локальной сети. Но ведь у нас реальный IP — значит можно попробовать просто отослать пакет на него, а маршрутизатор настроить на ретрансляцию этого пакета серверу. Пакеты на «побудку» рассылаются обычно по портам 7 или 9. Прокидываем их через маршрутизатор на IP сервера. Далее проще всего воспользоваться сетевым ресурсом wakeonlan.ru: забиваем свой реальный адрес IP и MAC адрес сетевой платы сервера. Жмем кнопочку «Включить компьютер!». После пары отправок система вполне может и написать о неудаче включения — сервер-то все же за NAT’ом, а отклик на пингование маршрутизатора разумнее выключить в настройках маршрутизатора. Такой способ включения удобен, правда придется выучить наизусть IP и MAC. Но у нас же память хорошая — мы же задаем и помним правильные пароли составом не менее 14 символов?) Зато теперь сервер можно включить с сотового телефона (при наличии в нем браузера и GPRS доступа).

Интересная так же штука вышла с маршрутизатором. Дело в том, что пока сервер включен маршрутизатор точно знает к какому его порту этот сервер подключен. Но как только сервер выключаем маршрутизатор, через некоторое время, начисто забывает этот факт. Заставить делать широковещательную рассылку «магического» пакета по всем портам я не сумел его заставить. Пришлось на разбирательство потратить приличное время. В результате на маршрутизатор установил прошивку от DD-WRT (на базе линукса). Прошивка по сравнению с штатными прошивками от производителей просто блещет функционалом. Он явно избыточен) Однако и она забывала порт, хотя широковещательно пакеты рассылать уже могла (только комп почему-то не включался). Если был бы вместо маршрутизатора коммутатор-комп на линукс, то можно было бы просто подредактировать таблицу маршрутизации и делов-то… Аналогично и тут — нужно внести изменения в таблицу ARP маршрутизатора. В данной прошивке есть некая консоль и можно при загрузке маршрутизатора добавить скрипт запуска. Что и делаем, скрип таков:

ip neigh change 10.0.0.10 lladdr 00:10:20:1F:C4:57 nud permanent dev br0
ip neigh add 10.0.0.10 lladdr 00:10:20:1F:C4:57 nud permanent dev br0

Подразумевается, что на физическом аппаратном уровне порты маршрутизатора и платы друг друга «узнают» по своим MAC-адресам (они же с собой постоянно общаются при наличии питания) и маршрутизатор «догадается» что вышеуказанный IPшник будет принадлежать именно этому адресату (пока комп не включен это знание маршрутизатору недосутпно ибо еще нет никакого интерфейса сетевого уровня — однако эта знание мы и заложили при загрузке в ARP) после включения.

Ну вот — на этом и закончивается мое первое знакомство с линуксом. Если кому-то это помогло — всегда пожалуйста.

Взято тут

Загрузка образов CD / DVD Debian через HTTP / FTP

Пожалуйста, не загружайте образы CD или DVD с помощью веб-браузера. вы скачиваете другие файлы! Причина в том, что если ваша загрузка прерывается, большинство браузеров не позволяют возобновить работу с того места, где не смогли.

Вместо этого используйте инструмент, поддерживающий возобновление — обычно описывается как менеджер загрузок . Есть много плагинов для браузера которые выполняют эту работу, или вы можете захотеть установить отдельный программа.В Linux / Unix вы можете использовать aria2, wxDownload Fast или (на командная строка) wget -c URL или curl -C — -L -O URL . Там есть еще много вариантов, перечисленных в сравнении менеджеров закачек.

Следующие образы Debian доступны для скачать:

См. Также:


Чтобы установить Debian на машину без подключения к Интернету, можно использовать образы CD (650 МБ каждый) или DVD (4,4 ГБ каждый). Загрузите первый файл образа CD или DVD, запишите его с помощью записывающего устройства CD / DVD (или USB-накопитель на портах i386 и amd64), а затем перезагрузитесь с него.

Первый CD / DVD диск содержит все необходимые файлы. для установки стандартной системы Debian.
Чтобы избежать ненужных загрузок, пожалуйста, сделайте , а не загрузок другие файлы образов CD или DVD, если вы не знаете, что вам нужны пакеты на их.

CD

Следующие ссылки указывают на файлы изображений размером до 650 МБ. по размеру, что делает их пригодными для записи на обычные носители CD-R (W):

DVD

Следующие ссылки указывают на файлы изображений, количество которых не превышает 4.4ГБ по размеру, что делает их пригодными для записи на обычные DVD-R / DVD + R и аналогичные СМИ:

Обязательно ознакомьтесь с документацией перед установкой. Если вы читали только один документ перед установкой, прочтите наш Инструкции по установке, быстрое пошаговое руководство по установке. Другая полезная документация включает:


Обратите внимание, что некоторые зеркала устарели — перед загрузкой проверьте номер версии изображений. такой же, как на этом сайте! Кроме того, обратите внимание, что многие сайты не отражают полный набор образы (особенно образы DVD) из-за их размера.

Если есть сомнения, используйте первичный Сервер образов компакт-дисков в Швеции, или попробуйте экспериментальный автомат селектор зеркала, который автоматически перенаправит вас к ближайшему зеркало, имеющее текущую версию.

Вы заинтересованы в размещении образов компакт-дисков Debian на своем зеркало? Если да, см. Инструкции на как установить зеркало изображения компакт-диска.

  • Аргентина: debian.xfree.com.ar: HTTP
  • Армения: mirrors.asnet.am: HTTP
  • Австралия: debian.mirror.digitalpacific.com.au: HTTP
  • Австралия: mirror.overthewire.com.au: HTTP
  • Австралия: mirror.rackcentral.com.au: HTTP
  • Австралия: mirror.waia.asn.au: HTTP
  • Австрия: debian.anexia.at: HTTP
  • Австрия: debian.inode.at: HTTP
  • Беларусь: ftp.byfly.by: HTTP
  • Беларусь: mirror.datacenter.by: HTTP
  • Бельгия: mirror.as35701.net: HTTP
  • Бразилия: debian.c3sl.ufpr.br: HTTP
  • Бразилия: debian.pop-sc.rnp.br: HTTP
  • Канада: debian.mirror.estruxture.net: HTTP
  • Канада: debian.mirror.iweb.ca: HTTP
  • Китай: mirror.lzu.edu.cn: HTTP
  • Китай: mirrors.163.com: HTTP
  • Китай: mirrors.hust.edu.cn: HTTP
  • Коста-Рика: mirrors.ucr.ac.cr: HTTP
  • Хорватия: debian.carnet.hr: HTTP
  • Чешская Республика: debian-cd.mirror.web4u.cz: HTTP
  • Чешская Республика: debian.ignum.cz: HTTP
  • Чехия: debian.superhosting.cz: HTTP
  • Чехия: mirror.dkm.cz: HTTP
  • Дания: mirror.asergo.com: HTTP
  • Дания: mirror.one.com: HTTP
  • Дания: mirrors.dotsrc.org: HTTP
  • Дания: mirrors.rackhosting.com: HTTP
  • Эквадор: mirror.cedia.org.ec: HTTP
  • Эквадор: mirror.ueb.edu.ec: HTTP
  • Эквадор: mirror.uta.edu.ec: HTTP
  • Франция: debian.univ-lorraine.fr: HTTP
  • Франция: ftp.crifo.org: HTTP
  • Франция: ftp.iut-bm.univ-fcomte.fr: HTTP
  • Грузия: debian.grena.ge: HTTP
  • Германия: debian-cd.repulsive.eu: HTTP
  • Германия: debian.inf.tu-dresden.de: HTTP
  • Германия: debian.uni-duisburg-essen.de: HTTP
  • Германия: ftp.fau.de: HTTP
  • Германия: ftp.gwdg.de: HTTP
  • Германия: ftp.halifax.rwth-aachen.de: HTTP
  • Германия: ftp.hosteurope.de: HTTP
  • Германия: ftp-stud.hs-esslingen.de: HTTP
  • Германия: ftp.uni-bayreuth.de: HTTP
  • Германия: ftp.uni-hannover.de: HTTP
  • Германия: ftp.uni-stuttgart.de: HTTP
  • Германия: mirror.23media.de: HTTP
  • Германия: mirror.checkdomain.de: HTTP
  • Германия: mirror.daniel-jost.net: HTTP
  • Германия: mirror.de.leaseweb.net: HTTP
  • Германия: mirror.netcologne.de: HTTP
  • Греция: debian.noc.ntua.gr: HTTP
  • Гонконг: mirror.xtom.com.hk: HTTP
  • Венгрия: ftp.bme.ху: HTTP
  • Индонезия: kartolo.sby.datautama.net.id: HTTP
  • Индонезия: mirror.poliwangi.ac.id: HTTP
  • Израиль: debian.co.il: HTTP
  • Италия: debian.connesi.it: HTTP
  • Италия: giano.com.dist.unige.it: HTTP
  • Италия: mirror.crazynetwork.it: HTTP
  • Япония: ftp.jaist.ac.jp: HTTP
  • Япония: ftp.kddilabs.jp: HTTP
  • Япония: ftp.nara.wide.ad.jp: HTTP
  • Япония: ftp.riken.jp: HTTP
  • Япония: ftp.yz.yamagata-u.ac.jp: HTTP
  • Япония: hanzubon.jp: HTTP
  • Корея: ftp.harukasan.org: HTTP
  • Корея: ftp.kaist.ac.kr: HTTP
  • Корея: ftp.lanet.kr: HTTP
  • Латвия: debian.koyanet.lv: HTTP
  • Латвия: debian.linux.edu.lv: HTTP
  • Литва: debian.mirror.vu.lt: HTTP
  • Литва: mirror.litnet.lt: HTTP
  • Люксембург: debian.mirror.root.lu: HTTP
  • Нидерланды: debian.mirror.cambrium.nl: HTTP
  • Нидерланды: debian.snt.utwente.nl: HTTP
  • Нидерланды: mirror.duocast.net: HTTP
  • Нидерланды: mirror.nl.datapacket.com: HTTP
  • Нидерланды: mirror.nl.leaseweb.net: HTTP
  • Новая Каледония: debian.lagoon.nc: HTTP
  • Новая Каледония: debian.nautile.nc: HTTP
  • Норвегия: ftp.no.debian.org: HTTP
  • Норвегия: ftp.uio.no: HTTP
  • Филиппины: mirror.pregi.net: HTTP
  • Польша: ftp.icm.edu.pl: HTTP
  • Польша: ftp.ps.pl: HTTP
  • Португалия: debian.uevora.pt: HTTP
  • Португалия: ftp.pt.debian.org: HTTP
  • Португалия: ftp.rnl.tecnico.ulisboa.pt: HTTP
  • Португалия: mirrors.up.pt: HTTP
  • Румыния: mirrors.pidginhost.com: HTTP
  • Румыния: mirrors.xservers.ro: HTTP
  • Россия: ftp.psn.ru: HTTP
  • Россия: mirror.corbina.net: HTTP
  • Россия: mirror.mephi.ru: HTTP
  • Россия: mirror.truenetwork.ru: HTTP
  • Сингапур: зеркало.0x.sg: HTTP
  • Южная Африка: debian.mirror.ac.za: HTTP
  • Южная Африка: debian.saix.net: HTTP
  • Южная Африка: ftp.is.co.za: HTTP
  • Испания: debian.uvigo.es: HTTP
  • Испания: ftp.caliu.cat: HTTP
  • Испания: ftp.cica.es: HTTP
  • Швеция: cdimage.debian.org: HTTP
  • Швеция: ftp.acc.umu.se: HTTP
  • Швейцария: debian.ethz.ch: HTTP
  • Тайвань: debian.cs.nctu.edu.tw: HTTP
  • Тайвань: ftp.ncnu.edu.tw: HTTP
  • Тайвань: ftp.ntou.edu.tw: HTTP
  • Тайвань: ftp.tku.edu.tw: HTTP
  • Турция: ftp.linux.org.tr: HTTP
  • Украина: debian.volia.net: HTTP
  • Соединенное Королевство: debian-iso.mirror.anlx.net: HTTP
  • Соединенное Королевство: ftp.ticklers.org: HTTP
  • Соединенное Королевство: mirrorservice.org: HTTP
  • Великобритания: mirrors.m247.com: HTTP
  • Соединенное Королевство: mirror.sov.uk.goscomb.net: HTTP
  • Соединенное Королевство: mirror.sucs.swan.ac.uk: HTTP
  • Великобритания: зеркало.vorboss.net: HTTP
  • США: debian.mirrors.pair.com: HTTP
  • США: debian.osuosl.org: HTTP
  • США: mirror.cogentco.com: HTTP
  • США: mirror.keystealth.org: HTTP
  • США: mirrors.advancedhosters.com: HTTP
  • США: mirrors.bloomu.edu: HTTP
  • США: mirrors.gigenet.com: HTTP
  • США: mirror.sjc02.svwh.net: HTTP
  • США: зеркала.lug.mtu.edu: HTTP
  • США: mirrors.ocf.berkeley.edu: HTTP
  • США: mirrors.syringanetworks.net: HTTP
  • США: mirror.steadfast.net: HTTP
  • США: mirror.us.leaseweb.net: HTTP
.

Debian — универсальная операционная система

Скачать Debian 10.6 (сетевой установщик для 64-битного ПК)

Debian — это бесплатная операционная система (ОС) для вашего компьютера. Операционная система — это набор основных программ и утилит, которые делают ваш компьютер работает.

Debian — это больше, чем просто ОС: в нем более 59000 пакетов, предварительно скомпилированное программное обеспечение в комплекте в удобном формате для легкой установки на вашем компьютере. Подробнее …

Последним стабильным выпуском Debian является 10.6. Последнее обновление этого выпуска было выполнено 26 сентября 2020 г. Подробнее о наличии версии Debian.

Начало работы

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

Кроме того, пользователи, говорящие на языках, отличных от английского, могут проверить международный раздел, и, люди, которые используют другие системы чем Intel x86 следует проверить раздел портов.


Новости

[26 сен 2020] Обновленный Debian 10: 10.6 выпущено
[30 августа 2020] DebConf20 online закрывается
[01 августа 2020] Обновленный Debian 10: выпущен 10.5
[18 июля 2020] Обновленный Debian 9: выпущен 9.13
[09 июля 2020] Debian 8 Срок службы долгосрочной поддержки истекает
[16 июня 2020] Ampere жертвует серверное оборудование Arm64 для Debian для укрепления экосистемы Arm

Более старые новости см. На странице новостей. Если вы хотите получать почту всякий раз, когда появляются новые новости Debian, подпишитесь на Список рассылки debian-announce.


Рекомендации по безопасности

[28 сен 2020] DSA-4768 firefox-esr — обновление безопасности
[25 сен 2020] DSA-4767 mediawiki — обновление безопасности
[24 сен 2020] DSA-4766 rails — обновление безопасности
[18 Сен 2020] DSA-4765 modsecurity — обновление безопасности
[18 сен 2020] DSA-4764 inspircd — обновление безопасности
[14 сен 2020] DSA-4763 teeworlds — обновление безопасности
[7 сен 2020] DSA -4762 limonldap-ng — обновление безопасности
[7 сен 2020] DSA-4761 zeromq3 — обновление безопасности
[6 сен 2020] DSA-4760 qemu — обновление безопасности
[4 сен 2020] DSA-4759 ark — обновление безопасности
[4 сен 2020] DSA-4758 xorg-server — обновление безопасности

Более старые рекомендации по безопасности см. Страница безопасности.Если вы хотите получать советы по безопасности сразу после их объявления, подпишитесь на дебиан-безопасность-объявление список рассылки.

.

Debian — установщик Debian

[16 марта 2020] Программа установки Debian Bullseye Alpha 2, выпуск
[05 дек 2019] Программа установки Debian Bullseye Alpha 1, выпуск
Старые новости

Для официального установочного носителя Debian 10.6 и информация , см. страница бастера.

Все изображения, указанные ниже, относятся к версии установщика Debian. разработан для следующего выпуска Debian и установит тестирование Debian ( bullseye ) по умолчанию.

Для установки Debian testing мы рекомендуем использовать выпуск установщика Bullseye Alpha 2 после проверки его опечатки. Следующие изображения доступны для Bullseye Alpha 2:

Официальный релиз

netinst (обычно 180-450 МБ) образы компакт-дисков другие образы (netboot, USB-накопитель и т. Д.)

Или установите текущий еженедельный снимок тестирования Debian который использует ту же версию установщика, что и последний выпуск:

Текущие еженедельные снимки

Текущие дневные снимки

netinst (обычно 150-280 МБ) образы компакт-дисков образов компакт-дисков netinst (через jigdo) мультиархитектурные образы компакт-дисков netinst других образа (netboot, USB-накопитель и т. Д.))

Если какое-либо оборудование в вашей системе требует, чтобы прошивка была загруженный с драйвером устройства, вы можете использовать один из tar-архивы распространенных пакетов прошивки. Инструкции по использованию архивов и общая информация о загрузке прошивки во время установки может можно найти в Руководстве по установке (см. документацию ниже).

Банкноты

  • Архитектура может быть (временно) исключена из обзора ежедневных созданные образы, если ежедневные сборки недоступны (надежно).
  • Для установочных образов файлы проверки (SHA512SUMS и SHA256SUMS) доступны в тот же каталог, что и изображения.
  • Для загрузки полных образов CD и DVD используйте jigdo Рекомендовано.
  • Только ограниченное количество образов из полных наборов DVD доступны в виде файлов ISO для прямой загрузки. Большинству пользователей не нужны все программное обеспечение доступно на всех дисках, поэтому для экономии места на серверы загрузки и зеркала полные наборы доступны только через jigdo.
  • Образ multi-arch netinst CD поддерживает i386 / amd64; то установка аналогична установке из netinst с единой архитектурой образ.

После использования Debian-Installer отправьте нам отчет об установке, даже если бы не было никаких проблем.

Если вы читали только один документ перед установкой, прочтите наш Установка Howto, краткое описание процесса установки. Другое полезное документация включает:

Debian-boot список рассылки является основным форумом для обсуждения и работы над Установщик Debian.

У нас также есть канал IRC, # debian-boot на irc.debian.org. Эта канал используется в основном для разработки, но иногда и для поддержки. Если вы не получили ответа, попробуйте вместо этого воспользоваться списком рассылки.

.

Debian — Информация об установке Debian «jessie»

Для установки Debian 8.11 ( jessie ), загрузите любой из следующих образов (все i386 и amd64 Образы CD / DVD также можно использовать на USB-накопителях):

образ компакт-диска netinst (обычно 150-280 МБ)

другие образы (сетевая загрузка, гибкий USB-накопитель и т. Д.)

Если для какого-либо оборудования в вашей системе требуется несвободная прошивка. загруженный с драйвером устройства, вы можете использовать один из tarballs с общими пакетами прошивок или загрузите неофициальный образ , включая эти несвободных прошивок .Инструкции по использованию архивов и общая информация о загрузке прошивки во время установки может можно найти в Руководстве по установке (см. документацию ниже).

netinst (обычно 240-290 МБ) несвободно Образы компакт-дисков с прошивкой

Банкноты

  • Для загрузки полных образов CD и DVD используйте BitTorrent или jigdo. Рекомендовано.
  • Для менее распространенных архитектур только ограниченное количество изображений из наборов CD и DVD доступен как файл ISO или через BitTorrent.Полные наборы доступны только через jigdo.
  • Образы multi-arch CD поддерживают i386 / amd64; установка аналогична установке из единого образа netinst архитектуры.
  • Образ multi-arch DVD поддерживает i386 / amd64; то установка аналогична установке из единой архитектуры полной Образ компакт-диска; DVD также включает исходный код для всех включенных пакетов.
  • Для установочных образов файлы проверки (SHA256SUMS, SHA512SUMS и другие) доступны из того же каталога, что и изображений.

Если вы читали только один документ перед установкой, прочтите наш Инструкции по установке, быстрое пошаговое руководство по установке. Другая полезная документация включает:

Это список известных проблем в установщике, поставляемом с Debian 8.11. Если у вас возникла проблема устанавливаете Debian и не видите здесь свою проблему, отправьте нам отчет об установке описание проблемы или проверьте вики для других известных проблем.

Исправление к выпуску 8.11

pkgsel не устанавливает обновления с изменениями ABI (по умолчанию)
Ошибка № 908711: во время установки с включенными сетевыми источниками установленные обновления безопасности не включают обновления, зависящие от нового двоичный пакет из-за изменения ABI ядра или библиотеки.
Статус: Это было исправлено в установщике, включенном для новых выпусков (Debian 9 stretch). Для установок Debian 8, поскольку новых Предоставляется установщик Debian, обновления безопасности, зависящие от новых пакетов необходимо установить вручную:
— Запустить apt-get upgrade --with-new-pkgs
— Перезагрузитесь, чтобы завершить обновление.
APT был уязвим для атаки типа «злоумышленник посередине»
Ошибка в методе транспорта HTTP APT. (CVE-2019-3462) может быть использован злоумышленником, находящимся посередине между APT и зеркало, чтобы вызвать установку дополнительных вредоносных пакетов.
Это можно смягчить, отключив использование сети во время первоначальная установка и последующее обновление, следуя инструкциям в DLA-1637.
Статус: Это было исправлено в 8.11,1

Исправление для выпуска 8.0

Настольные установки могут не работать с использованием только компакт-диска №1
Из-за нехватки места на первом компакт-диске не все ожидаемые пакеты рабочего стола GNOME помещаются на компакт-диск №1. Для успешного установки, используйте дополнительные источники пакета (например, второй компакт-диск или сетевое зеркало) или используйте вместо него DVD.
Статус: Вряд ли можно приложить больше усилий, чтобы поместите больше пакетов на компакт-диск №1.
Сообщения загрузки Powerpc устарели
Ошибка № 783569: компакт-диски powerpc по-прежнему говорят об использовании командной строки ядра для выберите рабочий стол, который сейчас устарел — используйте меню задач вместо.
Статус: Исправлено в 8.1
Проблемы при установке нескольких задач на рабочем столе одновременно
Ошибка № 783571: Невозможно установить одновременно GNOME и Xfce. время. Конфликт в зависимостях приводит к тому, что package установки выйти из строя.
Статус: Исправлено в 8.1
.

Добавить комментарий

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

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa