Начало работы с виртуальным сервером VPS — RUVDS

Начало работы с виртуальным сервером VPS - RUVDS Хостинг

Начало работы с виртуальным сервером vps — ruvds

Аутентификация с использованием ssh-ключей

Авторизация пользователей при помощи SSH-ключей может значительно повысить уровень безопасности вашего VPS. Если вы планируете использовать такой вариант аутентификации, придётся выполнить несколько несложных действий.

Сначала необходимо сгенерировать этот SSH-ключ. Для чего на локальной рабочей станции (не на сервере) в командной строке нужно набрать:

ssh-keygen

В процессе генерации ключа вы можете изменить имя файла ключа и его каталог, а также его пароль passphrase, а можете оставить эти настройки по умолчанию:

Далее, созданный ключ необходимо скопировать на сервер. Для чего нужно:

Подключиться к вашему VPS по SSH:

Брандмауэр

Для управления межсетевым экраном в операционных системах семейства Linux часто используется утилита iptables. Упрощённым её интерфейсом для настройки брандмауэра является Uncomplicated Firewall или UFW.

Для открытия доступа к серверу со стороны какого-либо приложения, необходимо выдать разрешение этому приложению на доступ, зарегистрировав его в UFW. Список приложений знакомых утилите UFW можно посмотреть набрав команду:

$ sudo ufw app list

Чтобы разрешить подключение к системе какому-нибудь приложению или протоколу, например, SSH, используйте инструкцию:

$ sudo ufw allow OpenSSH

Если брандмауэр отключен, его нужно включить:

$ sudo ufw enable

И проверить его статус:

$ sudo ufw status

Теперь вы можете настроить данный межсетевой экран так, чтобы он ограничивал доступ к вашему VPS в соответствии с вашими требованиями. Например, вы можете разрешить доступ к нему с одного определённого IP-адреса:

$ sudo ufw allow from XXX.XXX.XXX.XXX

Или из определённой подсети:

$ sudo ufw allow from XXX.XXX.XXX.0/24

Так же есть возможность ограничить подключения к серверу определённым IP-адресом, при этом разрешив подключение только к определённому порту. Так например, чтобы открыть доступ только к порту 22, то есть только подключение по SSH, используйте команду:

$ sudo ufw allow from XXX.XXX.XXX.XXX to any port 22

Если же вы не хотите ограничиваться подключениями только с определённых адресов, вы можете защитить вашу систему установив запрет на соединения с IP-адресов, с которых происходит больше пяти попыток подключиться за последние полминуты. Запустить такую схему защиты можно командой:

$ sudo ufw limit ssh

Быстрая настройка vps как web сервера для новичка или свой web сервер за 20 шагов

1 — Соединяемся по SSH с сервером от рута:

login: root

root@85.*.*.*’s password:

Linux prcy 3.2.0-4-686-pae #1 SMP Debian 3.2.54-2 i686

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

2 — проверяем обновления

apt-get update

apt-get upgrade

3 — Устанавливаем curl , если его нет

apt-get install curl

4 — Устанавливаем VestaCP (Легкая панель от русских разработчиков)

curl -O http://vestacp.com/pub/vst-install.sh

bash vst-install.sh

Сервер спросит Do you want to proceed? [y/n]):

Читайте также:  Hosting a Ruby on Rails App? – Solutions Comparison (UPDATED)

соглашаемся (y) и жмем enter

Прописываем email (туда придет пароль) и хост, можно тот, что в скобках

По окончанию установки вы получите :

=======================================================

———————————

https://85.*.*.*:8006

username: admin

password: dskaDSacs

———————————

Congratulations,

you have successfully installed Vesta Control Panel.

5 — можно зайти и проверить панель

https://85.*.*.*:8006/list/user/

6 — добавляем новые источники в файл

nano /etc/apt/sources.list

в конце дописываем

deb http://packages.dotdeb.org wheezy all

deb-src http://packages.dotdeb.org wheezy all

deb http://packages.dotdeb.org wheezy-php55 all

deb-src http://packages.dotdeb.org wheezy-php55 all

Жмем CTRL O и энтер. Закрываем файл по CTRL X.

7 — Скачиваем и устанавливаем ключи

wget http://www.dotdeb.org/dotdeb.gpg

apt-key add dotdeb.gpg

8 — Обновляем доступный список приложений

apt-get update

apt-get upgrade

Во время обновления соглашаемся на все, кроме *** my.cnf (Y/I/N/O/D/Z) [default=N] ?

Отвечаем N

9 — Запускаем обновление самой системы:

apt-get dist-upgrade

10 — БД

apt-get install python-software-properties

apt-key adv —recv-keys —keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

Обновляем список приложений

apt-get update

11 — устанавливаем БД

apt-get install mariadb-server

Если выдаст ошибку, значит нам мешает MySQL

11.2 — Удаляем MySQL

apt-get purge mysql* mariadb*

11.3 — устанавливаем БД

apt-get install mariadb-server

12 — Открываем

nano /usr/local/vesta/conf/mysql.conf

Видим — PASSWORD=’jbknjknkj34′. => Запоминаем

13 — фиксим exim4 (удаляем light, нам нужен heavy)

apt-get remove exim4-daemon-light

apt-get install phpmyadmin

14 — Проверка

https://85.*.*.*/phpmyadmin/

15 — Даем все права

chmod 777 -R /var/lib/phpmyadmin/tmp

16 — php.ini

nano /etc/php5/apache2/php.ini

Находим, меняем или на Ваше усмотрение

max_execution_time = 180

upload_max_filesize = 64M

post_max_size = 64M

17 — Перезапускаем apache2

service apache2 restart

18 — Убираем жор памяти

nano /etc/apache2/apache2.conf

Находим блок

<IfModule mpm_prefork_module>

StartServers 8

MinSpareServers 5

MaxSpareServers 20

ServerLimit 256

MaxClients 200

MaxRequestsPerChild 4000

</IfModule>

меняем на

<IfModule mpm_prefork_module>

StartServers 3

MinSpareServers 3

MaxSpareServers 9

ServerLimit 256

MaxClients 20

MaxRequestsPerChild 3000

</IfModule>

Если сервер мощный, можем сделать параметры больше

Жмем CTRL O и энтер. Закрываем файл по CTRL X.

Перезапускаем apache2

service apache2 restart

19 — БД

nano /etc/mysql/my.cnf

Находим нужные значения и меняем

Перезапускаем

service mysql restart

20 — Заменяем кофиг ngix

Перезагружаем сервер => Готово

Ваш сайт живет тут

/home/admin/web/yourdomain/public_html

my.conf

max_connections = 50

connect_timeout = 5

wait_timeout = 30

max_allowed_packet = 16M

thread_cache_size = 128

sort_buffer_size = 512K

bulk_insert_buffer_size = 16M

tmp_table_size = 16M

max_heap_table_size = 16M

myisam_recover = BACKUP

key_buffer_size = 8M

#open-files-limit = 2000

table_open_cache = 400

myisam_sort_buffer_size = 8M

concurrent_insert = 2

read_buffer_size = 512K

read_rnd_buffer_size = 512K

innodb_buffer_pool_size = 8M

innodb_log_buffer_size = 8M

innodb_file_per_table = 1

innodb_open_files = 400

innodb_io_capacity = 400

innodb_flush_method = O_DIRECT

nginx.conf

# Server globals

user www-data;

worker_processes 2;

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;

# Worker config

events {

worker_connections 1024;

use epoll;

}

http {

# Main settings

sendfile on;

tcp_nopush on;

tcp_nodelay on;

client_header_timeout 1m;

client_body_timeout 1m;

client_header_buffer_size 2k;

client_body_buffer_size 256k;

client_max_body_size 100m;

large_client_header_buffers 4 8k;

send_timeout 30;

keepalive_timeout 60 60;

reset_timedout_connection on;

server_tokens off;

server_name_in_redirect off;

server_names_hash_max_size 512;

server_names_hash_bucket_size 512;

# Log format

log_format main ‘$remote_addr — $remote_user [$time_local] $request ‘

‘»$status» $body_bytes_sent «$http_referer» ‘

‘»$http_user_agent» «$http_x_forwarded_for»‘;

log_format bytes ‘$body_bytes_sent’;

#access_log /var/log/nginx/access.log main;

access_log off;

# Mime settings

include /etc/nginx/mime.types;

default_type application/octet-stream;

# Compression

gzip on;

gzip_comp_level 9;

gzip_min_length 1000;

gzip_buffers 8 64k;

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml rss text/javascript application/javascript image/svg xml;

gzip_proxied any;

# Proxy settings

Читайте также:  .com или .ru? Влияет ли доменная зона на продвижение сайта? | Форум MMGP

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass_header Set-Cookie;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffers 32 4k;

# Cloudflare https://www.cloudflare.com/ips

set_real_ip_from 199.27.128.0/21;

set_real_ip_from 173.245.48.0/20;

set_real_ip_from 103.21.244.0/22;

set_real_ip_from 103.22.200.0/22;

set_real_ip_from 103.31.4.0/22;

set_real_ip_from 141.101.64.0/18;

set_real_ip_from 108.162.192.0/18;

set_real_ip_from 190.93.240.0/20;

set_real_ip_from 188.114.96.0/20;

set_real_ip_from 197.234.240.0/22;

set_real_ip_from 198.41.128.0/17;

set_real_ip_from 162.158.0.0/15;

set_real_ip_from 104.16.0.0/12;

set_real_ip_from 172.64.0.0/13;

#set_real_ip_from 2400:cb00::/32;

#set_real_ip_from 2606:4700::/32;

#set_real_ip_from 2803:f800::/32;

#set_real_ip_from 2405:b500::/32;

#set_real_ip_from 2405:8100::/32;

real_ip_header CF-Connecting-IP;

# SSL PCI Compliance

ssl_session_cache shared:SSL:10m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

ssl_ciphers «ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4»;

# Error pages

error_page 403 /error/403.html;

error_page 404 /error/404.html;

error_page 502 503 504 /error/50x.html;

# Cache

proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=512m;

proxy_cache_key «$host$request_uri $cookie_user»;

proxy_temp_path /var/cache/nginx/temp;

proxy_ignore_headers Expires Cache-Control;

proxy_cache_use_stale error timeout invalid_header http_502;

proxy_cache_valid any 3d;

map $http_cookie $no_cache {

default 0;

~SESS 1;

~wordpress_logged_in 1;

}

# Wildcard include

include /etc/nginx/conf.d/*.conf;

server {

location ~* ^. .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {

expires max;

}

}

}

Полезные утилиты

Стоит упомянуть некоторые полезные утилиты, которыми я пользуюсь в администрировании, и которые могут пригодиться вам.

WP-CLI

Это командная утилита для администрирования WordPress из терминальной консоли Linux. Умеет очень много, бэкапить, копировать данные в базе данных, отключать и включать плагины и так далее. Очень полезно, в случаях если у вас конфликт плагинов, или вы где-то накосорезили и админка сайта у вас отвалилась. Подробнее тут.

Multitail

Программа для чтения логов с продвинутым выводом. Выводит содержимое лог-файлов и позволяет наблюдать за их изменениями в реальном времени с подсветкой синтаксиса. Смотрим здесь.

Htop

Полный аналог «Диспетчера задач» из Windows для терминальной консоли. Очень полезная вещь для мониторинга процессов, памяти, загрузки и управления процессами. Ставиться командой:

sudo apt-get install htop

И вызывается (кто бы думал) командой:

htop

Let’s Encrypt

Пользователь с привилегиями администратора

При установке операционной системы вы получаете доступ к ней при помощи учётной записи, имеющей права суперпользователя. Имя этого пользователя – root, и он в вашей системе, что называется, “может всё”. Регулярно производить запуск инструкций, зарегистрировавшись в системе учётной записью root, весьма неосмотрительно с точки зрения безопасности. Именно поэтому, необходимо создать учётную запись с ограниченными правами для её использования в повседневной работе.

Для создания нового пользователя введите команду:

Чек лист по настройке vps/vds, выделенного сервера linux с нуля [айти бубен]

Эту инструкцию я просто скопировал у самого адекватного (как по цене, так и уровню техподдержки) украинского хостинг провайдера СХОСТ.

При выборе выделенного сервера и VPS/VDS очень важно обратить внимание на процессор. Не все знают, что большие показатели CPU и количества ядер не всегда гарантируют большую мощность. В частности, более современный процессор 1.6 ГГц может ощутимо превосходить процессор 4 ГГц.

Существует проверенный способ оценить реальную мощность практически любого процессора до покупки выделенного сервера/ВПС:

  1. Выберите процессоры, которые нужно сравнить.

  2. Изучите сравнительную таблицу.

Рассмотрим, как работает сервис на примере. Мы сравнили два процессора – Intel Xeon X5675 @ 3.07GHz (процессор А) и Intel Xeon E5-2680 v2 @ 2.80GHz (процессор В).

При том что мощность (поле Clockspeed) процессора А равна 3.1 ГГц, а мощность процессора В – 2.8 ГГц, рейтинг одного ядра (поле Single Thread Rating) процессора В составляет 1826, а процессора А – лишь 1392. Что касается суммарного рейтинга (поле CPU Mark), то и здесь процессор В показал лучшие результаты: 15904 против 8124.
Начало работы с виртуальным сервером VPS - RUVDS

Читайте также:  Изучение VNC в Linux: основные возможности и преимущества

Вывод: у процессора 2.8 ГГц каждое ядро почти на 50% мощнее, чем у процессора 3.1 ГГц. Следовательно, так как ядер больше, процессор В почти в два раза сильнее, чем процессор В.

Не помещает, сразу после покупки VPS замерить скорость интернета, которую вам предоставил хостинг провайдер. Скорость можно замерить разными способами, например утилитой iperf, но самым простым способом будет использование приложения Speedtest CLI.

Speedtest CLI позволяет использовать глобальную серверную сеть Speedtest с помощью командной строки. Speedtest CLI позволяет измерять такие показатели интернет-соединения, как скорость загрузки и передачи, потеря пакетов и задержка, без использования веб-браузера.

Установка утилита speedtest в Debian/Ubuntu (скачать установочные скрипты):

curl -s https://install.speedtest.net/app/cli/install.deb.sh |bash
apt install speedtest-cli

Установка утилита speedtest в Centos:

curl -s https://install.speedtest.net/app/cli/install.rpm.sh | sudo bash
yum install speedtest

Запускаем без всяких параметров, обычно этого достаточно. В более новых версиях лучше использовать дополнительный ключ, auto-binary-bytes который будет показывать скорость в kiB/s, MiB/s, GiB/s.

speedtest -u auto-binary-bytes
# speedtest
Retrieving speedtest.net configuration...
Testing from JSC IOT (212.109.219.242)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by INETCOM LLC (Moscow)[1.61 km]: 2.945 ms
Testing download speed..............
Download: 97.56 Mbit/s
Testing upload speed................
Upload: 109.68 Mbit/s

Как видим мой VPS сервер подключен в 100 Mbit/s порт. Если это соответствует заявленной хостером, вам при покупке виртуального сервера, скорости — значит все ОК.

К слову, чтобы увидеть ближайшие сервера Speedtest введите команду:

# speedtest -L
Closest servers:
 
    ID  Name                           Location             Country
==============================================================================
 22774  DediPath                       Secaucus, NJ         United States
   982  Interserver, inc               Secaucus, NJ         United States
 22069  TeleBermuda International Limited New York, NY         United States

Читайте также: Что такое тест скорости Интернета? Единицы измерения скорости интернета

Обычно я использую на серверах Debian или Ubuntu, поэтому команды будут приводиться для этих систем. Для остальных ОС буду приводить ссылки, если есть различия.

На начальном этапе у нас есть свежеустановленная операционная система на VPS/VDS и доступ по SSH. Логинимся на сервер под пользователем root.

1) Обновление операционной системы. Для Debian, Ubuntu рекомендую использовать встроенные менеджер пакетов APT, альтернатива Aptitude, dpkg.

# apt update
# apt list --upgradable
# apt upgrade

Добавим системные утилиты:

# apt install lsb-release htop net-tools

2) Настройка переменных локализации в Linux удаление локалей и локализаций, проверка языка консоли вашего VDS.

3) Настройка времени и часового пояса при помощи tzdata.

4) Имя сервера проверьте командой hostname с ключом f. Вы должны увидеть имя в формате FQDN (без точки в конце), например

# hostname -f
vps100.mirax-hotel.com

Если вы хотите установить почтовый сервер также проверьте обратную запись DNS. В самом простом случае достаточно чтобы ваш VPS был доступен по доменному имени.

5) Настройка SSH доступа, для повышения безопасности и удобства использования вашего сервера — дадут вам прочную основу для последующих действий.

6) Настройка брандмауэра (firewall, файрвол) в разных дистрибутивах отличается или же используются разные программные надстройки на ними:

Оцените статью
Хостинги