Как пользоватся Last.FM не смотря на запреты

июля 31, 2013 , , 0 Comments

Как пользоватся Last.FM не смотря на запреты
Всем известно, что 15 января 2013 года сервис lastfm прекратил вещание в ряде стран, в том числе России и СНГ. Исключений не было не для кого, даже те люди, которые приобрели платную подписку были лишены возможности прослушивать рекомендуемые музыкальные треки, а как известно lastfm делал это с высокой точностью. Я как заядлый поклонник lasfm долгое время искал способ, который позволял бы опять пользоваться этим замечательным сервисом, и наконец то я его нашел.






Введение в курс дела

Было испробовано много разнообразных вариантов, например я поднимал прозрачный прокси на удаленном сервере в США и пытался его использовать в качестве посредника для проигрывания, но разработчики lastfm не такие уж и дураки и это вариант не сработал. Наконец было принято решение проблемы в лоб. Как известно с 15 января пользоваться сервисом могут жители Великобритании, США и Германии. Получается, если мы притворимся жителем одного из этих государств, то доступ будет разрешен. А поможет нам в этом замечательная технология VPN.

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

Что потребуется?

Самый дешевый VPS/vds сервер обойдется в 10 баксов в месяц, я себе брал в США. Первый месяц по промокоду, стоил всего 150 рублей
3 доллара в месяц за подписку на lastfm, можно конечно будет пользоваться бесплатно, но это извращение, поверьте
При покупке подписки понадобится реальная банковская карта, либо виртуальная, которую достаточно легко сделать отправив смс.
Внимательность


Я хочу попробовать

Окей, тогда запаситесь терпением. На самом деле все не так сложно как кажется на первый взгляд.
Перво наперво следует купить vps'ку на месяц, мало ли вдруг чего не получится. Проходим по ссылке и обращаем внимание на тариф z-512, заказываем его введя промокод z50 чтобы получить 50% скидку на 1 месяц. Этот хостинг хорош тем, что его можно оплатить в том числе через Яндекс деньги, знаю что у многих возникают затруднения при работе с другими платежными системами. При заказе нас попросят ввести имя и данные.

Обязательно выбираем расположение сервера в "США - USA (Phoenix, AZ)". Далее выбираем: Operating system - Ubuntu 13.04. OS architecture - 32 bit (i386, x86). Оплачиваем и ждем ответа по почте. Я сначала даже думал, что это развод какой то, т.к. после оплаты довольно долго пришлось ждать этого самого ответа, но все оказалось в порядке.

Спустя какое то время нам на почту приходит письмо с данными для входа и тут начинается наш квест:
Заходим под рутом на шелл и вводим пароль полученный при покупке хостинга:
# ssh xxx.xxx.xxx.xxx -l root

Первым делом поменяем пароль на свой и обновим систему:
# passwd root
# apt-get update && apt-get upgrade

Поставим MC и OpenVPN:
# apt-get install mc openvpn (mc нам понадобится для того чтобы скачать будущие сертификаты по ftp)

Зайдем в директорию
# cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

и немного поколдуем
# nano ./vars

Ищем строки:
export KEY_SIZE=1024  # Длинна ключа
export KEY_EXPIRE=3650 # Срок действия ключа в днях

И приводим их к такому виду:
export KEY_SIZE=2048
export KEY_EXPIRE=3650

Ниже подредактируем инфу:
export KEY_COUNTRY="US" # тут вписываем абривиатуру страны хостинга
export KEY_PROVINCE="AZ" # тут вписываем абривиатуру штата хостинга
export KEY_CITY="Phoenix" # тут вписываем абривиатуру города хостинга
export KEY_ORG="http://domain.org" # тут вписываем основной домен
export KEY_EMAIL="mail@gmail.com" # тут вписываем свою почту для связи
export KEY_EMAIL=mail@host.domain
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234 # вроде можно от балды вписать свой
и сохраняем фаил при помощи "CTRL + O"

По очереди выполняем команды:
# ./vars
# ./clean-all

Приступаем к генерации сертификатов:
# ./build-ca   # корневой сертификат
# ./build-key-server server # сертификат сервера
# ./build-dh   # ключ Диффи Хельман

Копируем сертификаты в другую папку(обязательно проверьте все ли скопировали):
# cp ./keys/ca.crt /etc/openvpn
# cp ./keys/server.crt /etc/openvpn
# cp ./keys/server.key /etc/openvpn
# cp ./keys/dh2048.pem /etc/openvpn

Генерируем  пользовательские сертификаты, по очереди, отвечая на вопросы и нажимая enter, самое главное хорошо запомните введенный пароль:
# ./build-key-pkcs12 vpn.android
# ./build-key-pkcs12 vpn.home


Вытаскиваем и редактируем конфигурационный фаил:
# zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
# nano /etc/openvpn/server.conf

Меняем настройки "под себя", некоторые строки придется раскомментировать:
local АДРЕС_ip_ВАШЕГО_СЕРВЕРА
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
port 1194 # я советую поменять его на любой произвольный, дабы не создавать палева для ботов
# client-to-client # раскомментируйте, если хотите иметь доступ между клиентами внутри вашего VPN
Сохраняем изменения


Добавляем правила для файервола
# nano /etc/rc.local

И вписываем, обязательно выше надписи "exit 0"
test -e /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Сохраняем

Разрешаем форвардинг пакетов в sysctl:
# nano /etc/sysctl.conf

Раскомментируем строку:
net.ipv4.ip_forward=1
Сохраняем


Перезагружаем сервер:
# shutdown -r now


Настройку сервера мы закончили, теперь необходимо настроить клиент для подключения к vpn


Для начала, нам нужно скачать наши сертификаты. Сливать их будем с помощью sftp. Для этого устанавливаем клиент filezilla на компьютер и открываем его.

Создаем новое подключение при помощи "CTRL + S" и заполняем данные для входа:
ip адрес шелла
протокол sftp
тип входа нормальный
пользователь root и ниже его пароль


Входим и скачиваем ключи из /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ в безопасное место к себе на компьютер





Настройка Linux клиента openvpn


На домашнем компьютере с Linux ставим пакет openvpn
# apt-get install openvpn

Создаем папку, в любом удобном месте для хранения сертификатов и скрипта подключения к VPN
# mkdir /opt/openvpn

Копируем туда ключи, которые скачали на прошлом этапе


создаем команду для запуска vpn:
# nano /opt/openvpn/start_vpn.run

с таким содержанием:
cd /opt/openvpn && /usr/sbin/openvpn --config /opt/openvpn/myvpnconfig.ovpn

сохраняем и делаем скрипт исполняемым
# chmod +x start_vpn.run


а здесь будут настройки для этой команды:
# nano /opt/openvpn/myvpnconfig.ovpn

remote xxx.xxx.xxx.xxx 1194 # ip адрес сервера и порт, смените 1194 на другой если вы меняли его при настройке сервера
client
dev tun
ping 10
#tls-auth ta.key 1
comp-lzo
proto udp
tls-client
remote-cert-tls server
pkcs12 vpn.home.p12 # название вашего сгенерированного сертификата
verb 3
pull


Теперь, чтобы активировать vpn нужно выполнить команду:
# sudo /opt/openvpn/./start_vpn.run
введя сначала рут пароль, а потом ключевую фразу сертификата.


Если линуксом вы не пользуетесь, то вот настройка клиента openvpn для Windows


Для начала скачиваем и устанавливаем клиент: 32 bit | 64 bit

Создаем папку C:\openvpn\ а в ней текстовый файл с таким содержанием:

remote xxx.xxx.xxx.xxx 1194 # ip адрес сервера и порт, смените 1194 на другой если вы меняли его при настройке сервера
client
dev tun
ping 10
#tls-auth ta.key 1
comp-lzo
proto udp
tls-client
remote-cert-tls server
pkcs12 vpn.home.p12 # название вашего сгенерированного сертификата
verb 3
pull

переименовываем этот фаил в myvpnconfig.ovpn
создаем еще 1 текстовый фаил

cd C:\openvpn\
"C:\Program Files\OpenVPN\bin\openvpn.exe" --config C:\openvpn\myvpnconfig.ovpn

переименовываем его в start_my_vpn.cmd

теперь чтобы активировать vpn нужно открыть start_my_vpn.cmd и ввести ключевую фразу вашего сертификата
Поздравляю, сложная часть закончена.


Клиент ласт фм и подписка


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



При сборке скроблера из исходных кодов, сначала успешно собирался liblastfm, а вот сам скробблер выдавал error на финальном шаге компиляции. С бинарниками та же история. О проблеме было известно как на официальном форуме, так и самим разработчикам, однако, никакие действия среди них не предпринимались.

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

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

Опишу процесс установки под Ubuntu, т.к. под винду достаточно просто скачать и установить Clementine с официального сайта:
Добавляем репозиторий и устанавливаем проигрыватель такой последовательностью команд:

sudo add-apt-repository ppa:me-davidsansome/clementine
sudo apt-get update
sudo apt-get install clementine


Теперь с активированным vpn, заходим на сайт lastfm и регистрируемся. Если учетная запись уже есть, то открываем Clementine и вводим логин и пароль в соответствующем разделе:



На первом этапе нас попросят предоставить доступ к приложению, появится сообщение с предложением перейти на сайт и подтвердить доступ:



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

Финальным шагом будет приобретение подписки, тут по сути ничего сложного, нужна обычная дебетовая банковская карта, mastercard или visa, либо какая нибудь виртуальная, например от QIWI.





В результате получаем:



0 коммент.: