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


Предыдущая статья в этой ветке Полезняшки в -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 можно впринципе отдельный обзорчик написать

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

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