Programming, electronics, lifestyle
Фото взято из livejournal.com
Как видно из названия, эту статью я хочу посвятить опыту настройки моего сервера под хранение бекапов на Time Capsule.
Проблема: Увеличение объёма жесткого диска сервера стоит денег, а на домашней Time Capsule есть много свободного места, следовательно возникают упущенные возможности.
Задача: Есть удаленный VPS/VDS сервер с Linux/Unix операционной системой, на котором есть система бекапов. Надо настроить выгрузку бекапов или прямое создание бекапов на домашнюю Time Capsule.
Немного больше конкретики:
Начало: Первым делом я настроил DDNS
. Роутер поддерживает несколько провайдеров DDNS
среди которых мне понравился asuscomm.com
и широко известный сервис NO-IP
, исходя из своей практики asuscomm последнее время очень долго обновлял DNS записи, в связи с чем я быстро вспомнил свой пароль от второго сервиса).
Потом я просканировал порты Time Capsule с помощью nmap
:
nmap -p 1 65535 192.168.1.178
PORT STATE SERVICE
139/tcp open netbios-ssn
445/tcp open microsoft-ds
548/tcp open afp
5009/tcp open airport-admin
10000/tcp open snet-sensor-mgmt
После сканирования стало ясно, что капсула работает с двумя файловыми протоколами Samba
и AFP
.
Подходы: Для решения задачи я вижу три варианта:
Начал я с первого варианта и сразу понял, что реализовать это будет сложно из-за того, что есть несколько аспектов:
Samba - на сколько мне известно основана на протоколе локального уровня, поэтому она не работает в интернете;
AFP по умолчанию не поддерживается в CentOS, и для работы необходима установка пакета fuse-afp-0.8.1-6
из нестандартного репозитория, который содержит afpfs-ng-0.8.1
при установке которого у меня возникли пару ошибок решать которые я не захотел.
mount_afp 'afp://login:[email protected]/Data' /mnt/time_capsule
Заниматься третьим вариантом я не захотел, так как в принципе не знаком с тем как подобраться к роутеру или к капсуле и написать такой скрипт.
Я остановился на втором варианте. Для установки я воспользовался статьей redhat-club.org.
По сути устанавливаем pptp-клиент через менеджер пакетов:
yum install pptp
И настраиваем. Первым дело изменяем файл /etc/ppp/chap-secrets
, в который дописываем логин и пароль:
# client server secret IP addresses
USERNAME * PASSWORD *
После чего создаем файл /etc/ppp/peers/PROVIDER_NAME
, в который пишем следующее:
pty "/usr/sbin/pptp VPN_SERVER --nolaunchpppd"
debug
lock
lcp-echo-interval 30
lcp-echo-failure 4
noipdefault
# defaultroute
usepeerdns
persist
refuse-eap
refuse-mschap
# Turn off compression protocols we know won't be used nobsdcomp no deflate
# Require MPPE 128-bit encryption
#mppe required,stateless
require-mope-128 #подключаем шифрование
А потом создаем следующие файл /etc/sysconfig/network-scripts/ifcfg-PROVIDER_NAME
:
DEVICE=ppp0
TYPE=Modem
BOOTPROTO=dialup
ONBOOT=yes
USERCTL=yes
PEERDNS=no
PROVIDER=PROVIDER_NAME
DEFROUTE=no
PERSIST=yes
PAPNAME=USERNAME
DEMAND=no
Для управления данным туннелем есть несклько комманд:
# запуск
ifup PROVIDER_NAME
# остановка
ifdown PROVIDER_NAME
# логи
egrep '(ppp|pptp)' /var/log/messages
Примечания:
VPN_SERVER
- доменное имя или IP-адрес VPN-сервера;USERNAME
- имя пользователя;PASSWORD
- пароль пользователя;PROVIDER_NAME
- название провайдера.После запуска сервер подключается автоматически к точке доступа через протокол pptp и здесь возникает проблема, дело в том что каждый раз при подключении к vpn надо прописывать маршрут.
Для дополнительных скриптов в папке /etc/ppp
есть файл ip-up
он запускается после поднятия соединения. Если его открыть то можно увидеть инклуд ip-up.local
.
Следовательно создаем файл ip-up.local
в который пишем следующее:
logger -t 'add_route_hnwu.sh' 'executing...'
route add -net 192.168.1.0/24 gw 192.168.1.1
exit 0
Посмотреть интерфейсы можно выполнив команду ifconfig
.
Посмотреть маршруты можно выполнив команды route -n
.
После всех проделанных действий у сервера есть подключение к домашней сети, к пулу 192.168.1.0
- 192.168.1.255
.
Теперь необходимо настроить команду mount
для этого надо скачать пару библиотек:
yum install smbfs cifs-utils
После чего можно монтировать Time Capsule по протоколу Samba:
mount -t cifs -o user=имя,password=пароль //192.168.1.35/Data /mnt/time_capsule