13.03.2011

Linux Server. 1 Поднимаем сервак на Debian по шагам

Будем экспериментировать с Debian 6.0 Squeeze. Пост не рассматривается как руководство к действию - просто эксперименты с Debian'ом. Попробуем поднять все известные нужные/не очень сервисы. Постараюсь подробно и по шагам.
Вообще, если это будет первый опыт с UNIX-подобными системами, то рекомендую заюзать Ubuntu - она попроще и дружелюбней к новичкам. В Debian'е многое придется делать руками. А в целом руководство должно подойти и для Ubuntu.


Сначала несколько самых важных команд:
cd - ходить по папкам (подняться на уровень выше cd ..), ls - просмотреть содержимое папки, nano - удобный текстовый редактор, ps ax - просмотреть все запущенные процессы, apt- утилита для работы с пакетами ПО (apt-get install packet - установка пакета(программы)).
Ещё нужно понять, что Линукс - не винда, и структура файловой системы здесь СОВСЕМ другая, хотя когда привыкаешь, понимаешь, что это достоинство Линукса. О файловой системе написано довольно много, поэтому не буду повторяться.


1. Установка системы. Ничего сверхсложного. Просто следуем рекомендациям установщика. Особо продвинутые могут вынести на разные диски разделы /home, /var, /usr и т.д. Из предложенных вариантов доп. софта отмечаем только стандартные утилиты, т.к. хочется сервисы поднимать ручками и увеличивать свои скиллы.

2. Настройка сети. Так как у нас сервер, то в нем должно быть минимум 2 сетевых карточки =) Условимся, что eth1 "смотрит" в инет, а eth0 - в локалку. Да, в Линуксах сетевые интерфейсы называются именно так - eth0, eth1 и т.д. Ещё есть lo, ppp0, но об этом позже.
Настройка сети сводится к редактированию файла /etc/network/interfaces . Проще всего это сделать с помощью редактора nano. Делать все нужно с правами суперпользователя, для этого нужно набрать su и ввести пароль, заданный на этапе установки. Набираем в терминале nano /etc/network/interfaces и прописываем настройки. Там уже должны быть строки вроде:


# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).


# The loopback network interface
auto lo
iface lo inet loopback

Всё, что идет после знака # - комментарии, они игнорируются системой. lo - это петля, чтобы система могла видеть себя по адресам 127.0.0.1 и localhost. Больше об этом ничего не скажу - сам толком не знаю.
Следующими строками добавляем примерно следующее:
auto eth0
iface eth0 inet static
        address 192.168.0.100
        netmask 255.255.255.0


auto eth1
iface eth1 inet static
        address 192.168.44.223
        netmask 255.255.255.0
        gateway 192.168.44.1

Думаю, здесь всё ясно - address - это наш IP-адрес, netmask - маска, gateway - шлюз. static - поясняет системе, что адрес присваивается статично. Если у вас dhcp, то вместо statiс нужно написать dhcp. Ну естественно циферки нужно вбить свои =) В винде нам бы пришлось ребутиться, но у нас же линукс - тут можно перезапустить сетевую подсистему без перезагрузки - /etc/init.d/networking restart Но можно и ребутнуться reboot
Адреса DNS-серверов прописаны в файле /etc/resolv.conf Если у вас его нет просто создайте его: nano /etc/resolv.conf и пропишите сервера в виде: 
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx

3. Поднимаем инет. У многих провайдеров интернет раздается посредством vpn-соединения. Чтобы получить сию благодать придется попариться =) Нужно узнать у провайдера настройки для UNIX-подобных систем. Мне пришлось сделать следующее:
3.1. Установить pptpclient. Его можно найти на диске с дистрибутивом.
3.2. Настроить маршрутизацию:
route del default
route add -net xxx.xxx.xxx.xxx netmask 255.255.255.0 gw xxx.xxx.xxx.xxx eth1
Здесь xxx.xxx.xxx.xxx - адрес, предложенный провайдером.
3.3. Настроить pptp - клиента как предлагает провайдер. Файл /etc/ppp/options:
local
lock
nodetach

mtu 1512
mru 1512

require-mppe-40
require-mppe-128
require-mppe

lcp-echo-interval 30
lcp-echo-failure 5

require-mschap-v2
refuse-pap
refuse-chap
refuse-mschap
refuse-eap

defaultroute

user ВАШ_ЛОГИН
noauth

Файл /etc/ppp/chap-secrets: ВАШ_ЛОГИН * ВАШ_ПАРОЛЬ *
Поменять права на chap-secrets: chmod 400 chap-secrets
3.4. Набрать в терминале pptp vpn.server.ru и всё заработало.
3.5. Будем надеяться, что у вас тоже всё получилось. Тогда можно написать скрипт для автоподнятия инета или перейти к обновлению. 
Чтобы инет поднимался автоматически после старта системы нужно все команды для поднятия инета завернуть в скрипт. nano /usr/local/bin/pptp-run.sh
#!/bin/bash 
route del default      #первая команда из п. 3.2
#вторая команда и т.д.

LOG="/var/log/pptp-run.log"
while true; do
        echo -e "\n=========================================\n `date`" >> $LOG
        /usr/sbin/pptp vpn.server.ru >> $LOG
        sleep 10;
done

Как видно из скрипта, он логирует свою работу, а значит можно увидеть как отработал скрипт в файле /var/log/pptp-run.log Теперь нужно дать скрипту права на выполнение, потому что сейчас система видит его как простой текстовый файл: chmod +x pptp-run.sh
Осталось прописать скриптик в автозагрузку. nano /etc/rc.local
Перед строкой exit 0 пишем путь до скрипта: /usr/local/bin/pptp-run.sh

4. Обновляем систему. Обновления выкачиваются из репозитариев, по умолчанию они не прописаны в системе.
4.1.  Поэтому нужно их прописать. nano /etc/apt/sources.list
Если не собираемся ничего ставить с диска, то закомментируем строки

 deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official i386 CD Binary-1 20110205-17:27]/ squeeze main

deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official i386 CD Binary-1 20110205-17:27]/ squeeze main

Также нужно добавить репозитарии:
#Offical Debian repository
deb http://ftp.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib

#Official Debian repository Russian mirrors
deb http://ftp.ru.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ squeeze main non-free contrib

4.2. Обновляем списки репозитариев: apt-get update
4.3. Обновляем систему: apt-get upgrade
Теперь можно заняться работой =))

5. Установка софта первой необходимости. 
5.1. Чтобы можно было удаленно работать с сервом нужен ssh-сервер.apt-get install openssh-server Теперь можно работать с серваком с любого другого компа, подключенного к сети через ssh-клиент. В винде это PuTTY.
5.2. Если боитесь командной строки, рекомендую поставить файловый менеджер mc (Midnight Commander - аналог виндового Norton Commaner, FAR и т.д.). apt-get install mc Запускается установленный ФМ командой mc
5.3. Работать в системе с правами суперпользователя (su) небезопасно. Можно поставить sudo. Она позволяет не входить в систему под суперюзером, а единожды выполнять команду с его правами, например sudo apt-get install. Как ставить софт думаю уже понятно, поэтому больше не буду повторяться (su; apt-get install имя_пакета). Без небольшой настройки sudo не заработает. Нужно подредактировать файлик /etc/sudoers (как редактировать надеюсь тоже ясно: su; nano имя_файла; Ctrl+X; Y). Добавляем строку:

имя_пользователя   ALL=(ALL) ALL
Можно сделать ещё проще: добавить нужного юзера в группу sudo: usermod username -aG  sudo
5.4. Для тех, у кого фобия командной строки рекомендую копать в сторону webmin. Но это не наш путь - с ним вы толком ничего не поймете, а лишь будете знать что можно сделать с линухом. Для экспериментов да похвастаться перед одноклассниками (превед школота!) что "Я паставил Линух!" сойдет, но не больше!
5.5. Продвинутый диспетчер процессов - htop

6. Настройка простейшего роутера.
Наш роутер будет передавать весь траффик с интернета в локальную сеть и обратно. Для этого нужно использовать NAT. Проптсываем в настройках фаервола натинг:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Но это ещё не всё. Для работы натинга необходимо разрешить пересылку пакетов в ядре. В файле /etc/sysctl.conf нужно раскомментировать строку net.ipv4.ip_forward=1 .
После перезагрузки настройки фаервола сбросятся, поэтому следует сохранить цепочки фаера:
iptables-save > /etc/iptables-save
И прописать восстановление этих настроек при загрузке системы. В файл /etc/network/interfaces добавить строку:
up iptables-restore < /etc/iptables-save

Конечно это простейший роутер, без ограничения траффика, проверки на вирусы и прочего, но он работает =)




7. Настройка Wi-Fi
Скомпилировано из этого:
1. http://bagow.org/nastrojka-wi-fi-v-debian/
2. http://gettoknowlinux.blogspot.com/2010/07/wifi-access-point-debian-atheros.htm
3. http://sudouser.com/linux-v-roli-wi-fi-tochki-dostupa.html
4. http://forum.ubuntu.ru/index.php?topic=61834.0
l
Можно  сделать наш серв точкой доступа и раздавать инет на мобильные устройства. Для этого нужна беспроводная сетевая карточка. Нужно узнать её производителя и, желательно, чип, на котором она работает. У меня была сетевушка D-Link DWA-510 (RaLink RT2561/RT61). Чип можно узнать на сайте производителя или у гугла на крайняк. 
Моя сетевушка  без проблем определилась системой.


Чёт поздно уже... Продолжение следует.......

===================================================================
На этом пока всё. Скоро будем копать дальше. В планах:
1. Правильная настройка iptables.
2. Настройка файл-сервера с разными уровнями доступа.
3. Квотирование диска.
4. Настройка контроллера домена.
5. Настройка dhcp-сервера.
6. Настройка прокси-сервера. И различных плюшек для него (статистика, баннерорезалка, антивирус, прозрачность).
7. Настройка Asterisk (IP-телефония).
8. Настройка LAMP (Linux, Apache, MySQL, PHP).

Комментариев нет:

Отправить комментарий