вторник, 18 декабря 2012 г.

Удаленное администрирование серверов и настройка серверов


Разовые работы. Стоимость: 500 рублей за час работы. Минимальная оплата за пол часа (250 рублей)

Установка, настройка программного обеспечения (Apache, MySQL, nginx, php, и т.д.) под управлением операционных систем Linux.

Установка дополнительных скриптов и программного обеспечения.

Настройка сервера на оптимальную производительность.

Настройка и оптимизация Apache/Nginx

Настройка и оптимизация PHP/Mysql

Оптимизация нагрузки на сервер

Базовая защита от DDoS

Установка и настройка EAccelerator, APC, XCache, memcached php, ioncube loader

Установка отдельных модулей PHP

Установка и настройка панелей ISPmanager на сервер

Помощь в настройке и конфигурации тарифных планов хостинга

Настройка облачного сервера

Консультации по выбору сервера

Поиск и удаление вирусов с сайта

Установка CMS на хостинг

Восстановление сайтов из бэкапа

Перенос сайтов на другой хостинг

Абонентское обслуживание проектов. От 1500 руб/мес в зависимости от объема работ.

Размещение текстов и изображений

Техническая поддержка

Поиск материалов в интернете

Установка обновлений безопасности системы управления сайтом

Обновление версии системы управления сайтом и ее модулей

Установка обновлений безопасности системы управления сайтом


Для заказа свяжитесь с trigger@team.abcd.bz

Бекап на Dropbox в Debian/Ubuntu

ISPmanager'у он не мешает
Регистрируемся в Dropbox
Устанавливаем консольный клиент:
cd ~/
wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86_64
tar -zxof dropbox.tar.gz

или для «обычной» 32 битной системы:
cd ~/
wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86
tar -zxof dropbox.tar.gz

Запускаем клиент:
~/.dropbox-dist/dropboxd

Через несколько секунд в консоле появится ссылка для привязки сервера к вашему аккаунту на dropbox.com
Пройдите по ссылке.
Создаем скрипт автозапуска /etc/init.d/dropbox 
wget -P /etc/init.d http://dl.dropbox.com/u/37472737/dropbox

Делаем исполняемым, разрешаем запуск при загрузке и запускаем:
chmod +x /etc/init.d/dropbox
update-rc.d dropbox defaults/etc/init.d/dropbox start

В ISPmanager в «Настройка резервного копирования» создаем новое задание, вводим все на свои усмотрения.
Директория: /root/Dropbox/backup
Выделяем задание и выбираем «Данные» (справа, вверху) и настраиваем на свое усмотрение.

Проверяем работу:
/etc/init.d/dropbox status

если выдает ошибку (что маловероятно, но у меня была), то выполните команду 
~/.dropbox-dist/dropboxd &

Dropbox теперь будет синхронизировать ваши резервные копии.

Установка дополнительного жесткого диска в CentOS

Итак. У нас есть установленная система CentOS 5.6 и есть желание поставить еще один диск на котором планируем размещать файлы ftp.
В ОС Linux разделы называются:
/dev/hda — это Primary Master
/dev/hdb — Primary Slave
/dev/hdc — Secondary Master
/dev/hdd — Secondary Slave
Первый раздел на Primary Master называется /dev/hda1, второй — /dev/hda2 и т.д.

Создаем в корне каталог hdd00. Суда мы будем монтировать наш новый диск. 
# mkdir /hdd01

Набираем fdisk -l чтобы узнать что у нас есть.
[root@localhost ~]# fdisk -l
Disk /dev/hda: 250.0 GB, 250059350016 bytes255 heads, 63 sectors/track, 30401 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14       30401   244091610   8e  Linux LVM
Disk /dev/hdc: 500.1 GB, 500107862016 bytes255 heads, 63 sectors/track, 60801 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1           1           0    0  Empty
Partition 1 does not end on cylinder boundary.
[root@localhost ~]# 

Поключаемся к диску
[root@localhost ~]# fdisk /dev/hdc
The number of cylinders for this disk is set to 60801.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): help
h: unknown commandCommand action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Создаем новую партицию
Command (m for help): nCommand action
   e   extended
   p   primary partition (1-4)
pPartition number (1-4): 1
First cylinder (1-60801, default 1): Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-60801, default 60801): Using default value 60801

Записываем изменения на диск
Command (m for help): wThe partition table has been altered!
Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@localhost ~]#

Смотрим что получилось
[root@localhost ~]# fdisk -l
Disk /dev/hda: 250.0 GB, 250059350016 bytes255 heads, 63 sectors/track, 30401 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14       30401   244091610   8e  Linux LVM
Disk /dev/hdc: 500.1 GB, 500107862016 bytes255 heads, 63 sectors/track, 60801 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1               1       60801   488384001   83  Linux
[root@localhost ~]#

Создаем файловую систему ext3
[root@localhost ~]# mkfs.ext3 /dev/hdc1
mke2fs 1.39 (29-May-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61063168 inodes, 122096000 blocks6104800 blocks (5.00%) reserved for the super userFirst data block=0
Maximum filesystem blocks=4294967296
3727 block groups32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000
Writing inode tables: done                            Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]#

Примонтируем наш новый диск
[root@localhost /]# mount /dev/hdc1 /hdd00

Проверим на ошибки
[root@localhost /]# fsck /dev/hdc1
fsck 1.39 (29-May-2011)
e2fsck 1.39 (29-May-2011)
/dev/hdc1: clean, 12/61063168 files, 1966938/122096000 blocks[root@localhost /]# 

Поверим правильность монтирования 
Создадим файлик test в /hdd00/
[root@localhost /]#touch /hdd00/test

Посмотрим что есть в директории /hdd00 
[root@localhost /]# ls /hdd00
lost+found  test [root@localhost /]# 

Отмонтируем диск и посмотрим еще раз.
[root@localhost /]# umount /dev/hdc1
umount: /dev/hdc1: not mounted[1]+  Done                    umount /dev/hdc1[root@localhost /]# ls /hdd00/
[root@localhost /]# 

Файлика нет. Он остался на на отмонтированном диске.
Монтируем его обратно 
[root@localhost /]# mount /dev/hdc1 /hdd00

Добавим автоматическое монтирование жестких дисков при загрузке, отредактируем файл /etc/fstab
[root@localhost /]# vi etc/fstab

Добавим строку:
/dev/hdc1     /hdd00            ext3    defaults    0 0

Получилось:
[root@localhost /]# cat /etc/fstab 
/dev/VolGroup01/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/VolGroup01/LogVol01 swap                    swap    defaults        0 0
/dev/hdc1               /hdd00                  ext3    defaults        0 0
[root@localhost /]# 


Ошибки: 
если в системе присутствуют только одни sda и на hda нет не единого намека, то вам прямая дорого в bios.

Установка cs 1.6 сервера на Linux


  • Создание сервера CS 1.6 и его настройки
  • Создание сервера сounter-strike 1.6 в Linux
  • Установка сервера counter strike 1.6 (Linux)
  • Установка сервера CS 1.6 на Linux

Установку будем производить на операционной системе CentOS 6.0. Перед установкой сервера counter-strike 1.6 имеем чистую систему, как раз после установки. Единственное, были выполнены команды:
yum update
yum install mc

Создадим папку где будем хранить весь исходный материал для серверов
[root@cs hdd2]# mkdir source

Скачаем hldsupdatetool.bin
[root@cs hdd2]# wget http://www.steampowered.com/download/hldsupdatetool.bin

Даём нужные права на файл:
[root@cs hdd2]# chmod +x hldsupdatetool.bin

Запускаем hldsupdatetool.bin
[root@cs hlds]# ./hldsupdatetool.bin
-bash: ./hldsupdatetool.bin: /lib/ld-linux.so.2: bad ELF interpreter: Нет такого файла или каталога
[root@cs hlds]#

У меня возникла ошибка. Решил её установкой:
[root@cs hlds]# yum install ld-linux.so.2 
Пробуем снова
[root@cs hlds]# ./hldsupdatetool.bin

На вопрос отвечаем «YES»
Enter 'yes' to accept this agreement, 'no' to decline: yes

Выдало ошибку: «sh: uncompress: команда не найдена»
Enter 'yes' to accept this agreement, 'no' to decline: yes
sh: uncompress: команда не найдена
tar: Это не похоже на tar-архив
tar: Завершение работы с состоянием неисправности с из-за возникших ошибок
[root@cs hlds]# 

Решаем её следующим образом:
[root@cs hlds]#ln -s /usr/bin/gunzip /usr/bin/uncompress

Пробуем снова:
[root@cs hlds]# ./hldsupdatetool.bin

Если увидим ниже написанное, то все ок.
Enter 'yes' to accept this agreement, 'no' to decline: yes
extracting steam.tar.Z...done

Проверяем, появились ли нужные нам файлы:
[root@cs hlds]# ls
hldsupdatetool.bin  readme.txt  steam

Обновляемся, причем нас попросят это сделать два раза:
[root@cs hlds]# ./steam
Checking bootstrapper version ...
Getting version 45 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .
Steam Linux Client updated, please retry the command[root@cs hlds]#
[root@cs hlds]# ./steam
Checking bootstrapper version ...
Getting version 45 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .
Steam Linux Client updated, please retry the commandCAsyncIOManager: 0 threads terminating.  0 reads, 0 writes, 0 deferrals.
CAsyncIOManager: 21 single object sleeps, 0 multi object sleepsCAsyncIOManager: 0 single object alertable sleeps, 0 multi object alertable sleeps[root@cs hlds]#

Создаем файл, через который будем в дальнейшем обновлять сервер:
[root@cs hlds]# touch update.sh

Даем нужные права на файл:
[root@cs hlds]# chmod +x update.sh

Записываем необходимое для обновления в файл:
[root@cs hlds]# echo ./steam -command update -game cstrike -dir . > update.sh

Проверяем:
[root@cs hlds]# cat update.sh
./steam -command update -game cstrike -dir .
[root@cs hlds]#

Скачиваем (обновляем) сервер:
[root@cs hlds]# ./update.sh
Checking bootstrapper version ...
Updating Installation
No installation record found at .
No installation record found at .
No installation record found at .
Checking/Installing 'Counter-Strike Base Content' version 35
0.16%   downloading ./cstrike/cl_dlls/client.dll0.16%   downloading ./cstrike/classes/ak47.res0.16%   downloading ./cstrike/classes/arctic.res0.16%   downloading ./cstrike/classes/aug.res0.16%   downloading ./cstrike/classes/autoselect_ct.res0.16%   downloading ./cstrike/classes/autoselect_t.res0.16%   downloading ./cstrike/classes/awp.res0.16%   downloading ./cstrike/classes/cancelbutton.res0.16%   downloading ./cstrike/classes/default.res0.16%   downloading ./cstrike/classes/defuser.res0.16%   downloading ./cstrike/classes/deserteagle.res0.16%   downloading ./cstrike/classes/elites.res0.16%   downloading ./cstrike/classes/equipment.res

Ждем пока скачается 
99.06%  downloading ./valve/valve.rc99.06%  downloading ./valve/valvecomm.lst100.00% downloading ./valve/xeno.wad
Connection Reset, errno 104 "Connection reset by peer"
CAsyncIOManager: 0 threads terminating.  0 reads, 0 writes, 0 deferrals.
CAsyncIOManager: 76 single object sleeps, 0 multi object sleepsCAsyncIOManager: 0 single object alertable sleeps, 0 multi object alertable sleeps[root@cs hlds]#

Создадим скрипт для запуска-проверки сервера:
[root@cs hlds]# chmod +x start.sh
[root@cs hlds]# vi start.sh

Содержимое файла «start.sh»
#!/bin/bash
echo «Starting CS:1.6»
sleep 1
./hlds_run -binary ./hlds_i686 -game cstrike -secure -console -pingboost 1 +exec server.cfg -verify_all +port 27015 +maxplayers 22 +map de_dust2 +ip 0.0.0.0

Запускаем
[root@cs hlds]# ./start.sh
Starting CS:1.6
Auto-restarting the server on crash
Console initialized.
scandir failed:/hdd2/source/hlds/./valve/SAVE
scandir failed:/hdd2/source/hlds/./platform/SAVEProtocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 16:56:12 Mar  8 2010 (4883)
STEAM Auth Server
couldn't exec listip.cfg
couldn't exec banned.cfgServer IP address 0.0.0.0:27015
scandir failed:/hdd2/source/hlds/./valve/SAVE
scandir failed:/hdd2/source/hlds/./platform/SAVE[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.

scandir failed:/hdd2/source/hlds/./valve/SAVE
scandir failed:/hdd2/source/hlds/./platform/SAVE[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.

couldn't exec listip.cfg
couldn't exec banned.cfg
scandir failed:/hdd2/source/hlds/./valve/SAVE
scandir failed:/hdd2/source/hlds/./platform/SAVE[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
Connection to Steam servers successful.
   VAC secure mode is activated.
Птн Сен  2 07:22:45 NOVST 2011: Server Quit
[root@cs hlds]#

Исправляем ошибки:
couldn't exec listip.cfg

Создаем файл в listip.cfg папке cstrike:
[root@cs hlds]# touch cstrike/listip.cfg

Ошибка
couldn't exec banned.cfg

Создаем файл в banned.cfg папке cstrike:
[root@cs hlds]# touch cstrike/banned.cfg

Ошибка
scandir failed:/hdd2/source/hlds/./valve/SAVE

Создаем папки valve/SAVE в корне сервера
[root@cs hlds]# mkdir valve/SAVE

Ошибка
scandir failed:/hdd2/source/hlds/./platform/SAVE

Создаем папки platform/SAVE в корне сервера
[root@cs hlds]# mkdir platform
[root@cs hlds]# mkdir platform/SAVE

Пробуем запустить снова:
[root@cs hlds]# ./start.sh
Starting CS:1.6
Enabling debug mode
./hlds_run: line 134: gdb: команда не найдена
Please install gdb first.

Исправляем ошибку:
[root@cs hlds]# yum install gdb

Проверяем:
[root@cs hlds]$ ./start.sh
Starting CS:1.6
Enabling debug mode
Auto-restarting the server on crash

Console initialized.
Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 16:56:12 Mar  8 2010 (4883)
STEAM Auth Server
Server IP address 0.0.0.0:27015
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
Connection to Steam servers successful.
   VAC secure mode is activated.

Пользователь для сервера
Создадим пользователя от которого будем управлять и запускать сервер:
[root@cs hlds]# useradd gsrv

Установим пароль для пользователя «gsrv»:
[root@cs hlds]# passwd gsrv
Смена пароля для пользователя gsrv.
Новый пароль :
Повторите ввод нового пароля :
passwd: все токены проверки подлинности успешно обновлены.
[root@cs hlds]# 

Передаем права пользователю gsrv
[root@cs hlds]# chown -R gsrv:gsrv source/

Дальше все действия будем выполнять от пользователя gsrv
[root@cs hdd2]# su gsrv
[gsrv@cs hdd2]$


Настройка IPTABLES
Создадим файл
[root@cs rc.d]# vi /etc/rc.d/rc.fw

со следующим содержимым:
#! /bin/sh
WAN_IF="eth0"
WAN_IP="ИП_АДРЕС_ВАШЕГО_СЕРВЕРА"

LO_IF="lo"
LO_IP="127.0.0.1"
LO_MASK="255.0.0.0"
LO_NET="$LO_IP/$LO_MASK"

SERV_PORT="27015:27025"
SHH_PORT="22"

IPT="/sbin/iptables"
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -A INPUT -i $LO_IF -j ACCEPT
$IPT -A OUTPUT -o $LO_IF -j ACCEPT
$IPT -A INPUT -p ICMP --icmp-type 8 -j ACCEPT
$IPT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p TCP --dport 22 -j ACCEPT
$IPT -A INPUT -p tcp --dport 27015 -j ACCEPT
$IPT -A INPUT -p udp --dport 27015 -j ACCEPT

[root@cs rc.d]# chmod +x rc.fw

[root@cs init.d]# yum install screen