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


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

Добавить комментарий для Обзор некоторых SEO инструментов дорвейщика Отменить ответ

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