Настраиваем “Дедик” (выделенный сервер)


Предыдущая статья в этой ветке Полезняшки в -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 комментариев на «“Настраиваем “Дедик” (выделенный сервер)”»

  1. А зачем мускул компилировать вручную? Он ставится как всё остальное. И пароль лучше уже в мускул-консоли писать, а то он запишется в хистори.

  2. Менять рута это жестко =)
    Я своим юзерам категорически запрещаю менят рута, а вдруг чего случится, без тебя никто на сервак зайти не сумеет.

  3. Хорошая статья, но по-моему недостаточно внимания уделено iptables. После такой настройки сервак будет открыт, и ничто не помешает злоумышленнику брутфорсить пароли по ftp/ssh.
    По-хорошему, следует ограничить доступ по ssh/ftp с известных IP адресов и/или ограничить число коннектов к определенным портам в единицу времени, благо iptables это позволяет делать.

  4. Согласен, но в таком маленьком обзоре всё не ухватишь…
    По IPTables можно впринципе отдельный обзорчик написать

Добавить комментарий для Always last Отменить ответ

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