Предыдущая статья в этой ветке Полезняшки в -nix системах получилась несколько скомканная т.к. пытался вспомнить нужные полезности и сразу в статью — сейчас буду более последовательным, потому, что мне как раз в Кейвебе проинитили свеженький дедик (панель не заказывал). Так что статью буду писать параллельно с настройкой — так точно ничего не упущу.
Итак — из письма имеем айпишник и рутовый пароль …
1. Знакомство с системой
Настраиваем в putty соединение на наш IP — коннектимся.
Законнектиться не получилось 🙁 мой рутовый пасс не воспринимает — отписываем тикет в тех. поддержку кейвеба — через 9 hrs 41 mins получаю ответ с тем же паролем, но пояснением что «Пароль сброшен.»
Коннектимся — на этот раз удачно.
Первым делом меняем рутовый пасс командой passwd.
Далее пускаем оболочку mc. Запустился, но псевдографика какая то косяковая — гасим, идём в putty настройка соединения — windiws/translation/ — ставим usb-8. Теперь с mc всё окей.
Для информации выложу удобные хот-кеи при работе с mc:
Alt+S — Самый удобный хоткей 🙂 После нажания этого сочетания вводим первые буквы интересуемого нас файла и курсор позиционируется на этом файле.
Alt+P — последняя набранная команда в ком.строке
Ctr+O — экран стандартного вывода
Alt+Enter — копируется в комм.строку текущее имя файла
Ctr+X + C — выставляем права на файл (аналог chmod но поудобнее)
(это основные которыми я пользуюсь, может конечно что то и упустил). Поехали далее:
Поинтересуется, что же за железо мне подогнали.
Глянем содержимое /proc/cpuinfo
«… Dual-Core AMD Opteron ….» — то что и заказывал — двухядерный серверный АМД
/proc/meminfo
«… total 1945416 kb free 1280320 kb» — 2 гига оперативы
на всякий глянем информацию о винте — как побили на разделы (а то был блин прецедент один — под систему оставили хрен да маленько … со всеми вытекающими …) комманда df -h
/dev/sda1 285G / 1%
tmpfs 950V /dev/shm
Ну вроде все путем — всё свободное отвели под корень, занято 1%.
Смотрим информацию о ядре uname -a и операционной системе — файл /etc/redhat-release
Red Hat Enterprice Linux Server release 5 (Tikanga)
Попутно глянем текущую загрузку top — тут всё в порядке la 0.00 0.00 0.00 и текущая загрузка cpu(s): 0,0%
для более детального изучения запущенных процессов создаём скриптик shnow.sh (ставим права на запуск 744) следующего содержания
#!/bin/bash
ps -waux —cols 300 >ps-$(date +%Y%m%d)
ну и после запуска оного изучаем запущенные процессы уже в файле (имхо так удобнее)
Информация о установленных сервисах и уровнях их запуска chkconfig —list, а так же изучаем содержимое /etc/init.d/
2. Установка webmin
Не имея панели рекомендую поставить удобную админ утилиту webmin — много чего можно удобно порулить с её помощью. Заходим на офсайт смотрим последнюю версию, тянем rpm
wget http://prdownloads.sourceforge.net/webadmin/webmin-1.360-1.noarch.rpm
устанавливаем его rpm -ihv webmin-1.360-1.noarch.rpm
после установки нам любезно сообщают порт управления 10000 (по умолчанию), но попытка зацепиться на http://xxx.xxx.xxx.xxx:10000 оказалась безуспешной.
Проверяем запущен ли ? /etc/init.d/webmin status говорит, что запущен.
Похоже рубит фаервол … гасим /etc/init.d/iptables stop проверяем — о.к.
фаервол пока запускаем назад /etc/init.d/iptables start и делаем дырочку на 10000 порт:
смотрим где лежит конфиг для фаервола в скрипте запуска оного /etc/init.d/iptables
получаем /etc/sysconfig/iptables — сюда и добавляем правило по десятитысячному порту:
в моём случае это такая строчка в блок :RH-Firewall-1-INPUT — [0:0]
-A RH-Firewall-1-INPUT -p tcp —dport 10000 -j ACCEPT
(так же неплохо бы сюда добавить все айпишники с которых будет разрешен доступ)
всё — рестрартим service iptables restart — ура вебмин работает ! заходим под рутовым паролем и ставим русский язык — на этом пока всё (ещё к вебмину вернёмся)
3. Установка и настройка AMP (Apache MySQL PHP)
Мускул и PHP не нашел, а Апач какой то уже стоит (был в сервисах — правда не запущен) посмотрим какой.
Делаем в фаерволе дырочку под 80 порт (по аналогии с 10000), стартуем службу service httpd start и обращаемся браузером по айпишнику сервера http://IP — получаю дефолтную страницу апачей 2.0 — апач работает, версия 2.0 — дальнейшую настройку будем выполнять уже по конфигам. Сразу (пока не забыли) воткнём апач в автозагрузку 3его уровня chkconfig —level 3 httpd on проверим chkconfig —list httpd — всё окей.
С апачем пока всё — настройками займёмся позже.
Ставим mysql
Сливаем с офсайта последнюю стабильную версию мускула — в моём случае это mysql-5.0.45.tar.gz (с рпм-а не захотел устанавливаться — разбираться не стал)
разархивируем tar xzf mysql-5.0.45.tar.gz заходим в папку cd ./mysql-5.0.45 и устанавливаем всё строго по инструкции INSTALL-SOURCE
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf —
shell> cd mysql-VERSION
shell> ./configure —prefix=/usr/local/mysql
shell> make
shell> make install
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db —user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> bin/mysqld_safe —user=mysql &
меняем рутовый пароль # /usr/local/mysql/bin/mysqladmin -u root password ‘new_pass’
правим настройки мускула в вебмине, стартуем и уже можем порулить юзерами и БД-шками 🙂
собственно с сервером mysql всё …
Ставим PHP
Сливаем с офсайта последнюю стабильную версию в моём случае это php-5.2.3.tar.gz разворачиваем и пытаемся ставить по инструкции, а в инструкции при компиляции php нужно указывать путь до apxs …
locate apxs ничего не дал, поблизости с бинарниками апача /usr/sbin/ тоже apxs не обнаружили … поэтому принято решение о переустановке апача.
Ставим Apache
гасим старый апач service httpd stop
./configure —prefix=/usr/local/apache2 —enable-module=so
./make
./make install
страртуем для проверки ./bin/apacheclt -start запрашиваем серавак по айпишнику — должно отработать, на этом пока всё …
Продолжаем ставить PHP
./configure —disable-debug —with-apxs2=/usr/local/apache2/bin/apxs —with-mysql=/usr/local/mysql —with-curl —enable-ftp —with-ftp —with-gd —with-zlib —enable-sockets —enable-memory-limit
не нашел libpng — ставим
wget http://mesh.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.16.tar.gz
tar -xvzf libpng-1.2.16.tar.gz
./configure
make
make install
повторяем конфиг для пхп — у меня прошел, далее make, make install
пробую запустить апач руками /usr/local/apache2/bin/apachectl start
получаю ошибку при загрузке нашего libphp5.so
cannot restore segment prot after reloc: Permission denied
погуглив нахожу решение — в /etc/sysconfig/selinux ставим SELINUX=disable
отрубили какую то приблуду … 🙂 ребутимся reboot и пробуем снова — вроде стартанул
для проверки лепим файл phpinfo.php и дёргаем его — выдаётся текстом.
Добавим в httpd.conf обработку php файлов AddType application/x-httpd-php .php а так же обработку index.php как индексного DirectoryIndex index.php
Снова дёргаем наш phpinfo.php — ура — получаем информацию о всяких разных интересных вещах 🙂
Теперь нужно сделать чтоб наш апач грузился автоматом — правим скрипт запуска старого аппача на наш /etc/init.d/httpd (все пути прописываем наши)
На этом вроде бы всё 🙂
Для проверки работоспособности полученной системы поставлю очень хороший скриптец для управления базами данных mysql phpmyadmin
Сливаем архив, разворачиваем, создаём конфиг — запускаем. Запустился — значит всё установили нормально.
4. Настройка FTP
Необходимость FTP доступа к серверу думаю объяснять не нужно 🙂
Скачиваем, устанавливаем proftpd. Делаем дырку в фаерволе по 21му порту. Для автозапуска готового скрипта в дистрибутиве не нашел поэтому погуглив юзаем такой:
#!/bin/sh
# ProFTPD files
FTPD_BIN=/usr/local/sbin/proftpd
FTPD_CONF=/usr/local/etc/proftpd.conf
PIDFILE=/usr/local/var/proftpd.pid
# If PIDFILE exists, does it point to a proftpd process?
if [ -f $PIDFILE ]; then
pid=cat $PIDFILE
fi
if [ ! -x $FTPD_BIN ]; then
echo «$0: $FTPD_BIN: cannot execute»
exit 1
fi
case $1 in
start)
if [ -n «$pid» ]; then
echo «$0: proftpd [PID $pid] already running»
exit
fi
if [ -r $FTPD_CONF ]; then
echo «Starting proftpd…»
$FTPD_BIN -c $FTPD_CONF
else
echo «$0: cannot start proftpd — $FTPD_CONF missing»
fi
;;
stop)
if [ -n «$pid» ]; then
echo «Stopping proftpd…»
kill -TERM $pid
else
echo «$0: proftpd not running»
exit 1
fi
;;
restart)
if [ -n «$pid» ]; then
echo «Rehashing proftpd configuration»
kill -HUP $pid
else
echo «$0: proftpd not running»
exit 1
fi
;;
*)
echo «usage: $0 {start|stop|restart}»
exit 1
;;
esac
exit 0
Обзываем proftpd, ставим права на запуск, кидаем его в /etc/init.d и делаем на него сим-линки
ln -s /etc/init.d/proftpd /etc/rc3.d/S82proftpd
ln -s /etc/init.d/proftpd /etc/rc0.d/K17proftpd
В вебмине заводим нового пользователя, ставим ему домашний каталог на DocomentRoot (туда откуда идёт обработка наших http запросов) и вуаля — цеплямся по ftp.
Работу с кроном так-же удобнее вести с вембина.
Для использования покупных скриптов необходимо ещё установить Zend Optimizer (качаем, ставим ./install.sh 🙂 — ниразу проблем не возникало)
Вроде всё — система готова к работе со всякого рода спамилками и прочими «добрыми» скриптами 🙂
11 комментариев на «“Настраиваем «Дедик» (выделенный сервер)”»
А зачем мускул компилировать вручную? Он ставится как всё остальное. И пароль лучше уже в мускул-консоли писать, а то он запишется в хистори.
запишется в хистори ??? неужели ?!
и как же её просмотреть?
Менять рута это жестко =)
Я своим юзерам категорически запрещаю менят рута, а вдруг чего случится, без тебя никто на сервак зайти не сумеет.
а зачем кому то без меня на мой сервак заходить ?
Хорошая статья, но по-моему недостаточно внимания уделено iptables. После такой настройки сервак будет открыт, и ничто не помешает злоумышленнику брутфорсить пароли по ftp/ssh.
По-хорошему, следует ограничить доступ по ssh/ftp с известных IP адресов и/или ограничить число коннектов к определенным портам в единицу времени, благо iptables это позволяет делать.
Согласен, но в таком маленьком обзоре всё не ухватишь…
По IPTables можно впринципе отдельный обзорчик написать
Самое обсуждаемое на блогах:
[…] сервер с LAMP системой (апач + мускул + пхп) плюс FTP и webmin Настраиваем “Дедик” (выделенный сервер) 2. Скриптец для авторегистрации доменов у […]
[…] некоторые старые посты просто офигенные) К примеру, Настройка выделенного сервера (я вообще в консоли нуб полный, но иногда vds вообще весь […]
спасибо за отличную инфу
Облагородить сервак под себя милое дело 😉
А менять рута очень полезно…