Форум   Статьи   Новости   Файлы   Bugtraq   Сниффер   Друзья   О Клубе
  , 13:18   #1
Admin
 
Аватар для SokoL
 
Локация: hpc.name
Регистрация: 17.05.2008
Сообщений: 1,206
По умолчанию Базовые приемы скрытия айпи и шифрования трафика: SSH-туннель и VPN

В данной статье мы пошагово поднимем SSH-туннель и openvpn сервер. Так же будет рассказано о настройке клиентов. Читать статью https://hpc.name/text/index.php?mid=790

Данная тема для обсуждения статьи.
__________________
You never know how better can be.
http://newday.name/sokol
Пользователь вне форума    
Наши Спонсоры
  , 13:40   #2
Постоянный
 
Аватар для stix666
 
Локация: Earth
Регистрация: 16.07.2011
Сообщений: 810

Репутация: 15 / 1
По умолчанию

хорошая статья
подробно всё описано))
__________________
Вернулся
Пользователь вне форума    
  , 16:29   #3
Новичок
 
Аватар для VandalSmuz
 
Регистрация: 23.07.2012
Сообщений: 1

Репутация: 0 / 0
По умолчанию

Спасибо за статейку, помогла ))
 
Пользователь вне форума    
  , 05:35   #4
Admin
 
Аватар для SokoL
 
Локация: hpc.name
Регистрация: 17.05.2008
Сообщений: 1,206
По умолчанию

Решил написать дополнение к статье.

Как не засветить айпи при обрыве vpn-туннеля

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

Итак, при запуске openvpn автоматически меняется маршрутизация. Основная схема такая:

Цитата:
[route add (openvpn endpoint)/32 via (your real gateway)
(connect to openvpn)
route delete default
route add default (openvpn internal endpoint exposed by the tunnel)
То есть прописыаем статик маршрут к vpn-серверу, удаляем маршрут по умолчанию, и добавляем новый, уже используя адрес из vpn-сети. Но без разницы, пропишем ли мы это всё вручную, или же это сделает openvpn, после разрыва инета, или остановки openvpn он вернет старый маршрут, и удалит интерфейс tun0. Даже если в конфиге опция persist-tun. Зачем такое коварное поведение? Ну, может, чтоб неопытных хацкеров ловить

В общем если вы начнете гуглить на эту тему, то найдете множество плясок с бубном на основе NAT'a. Особенно занятные пляски с применением ipfw. Но нам же нужен нормальный вариант, верно? Точнее, вам, у меня то он уже есть

Итак, вернемся к основам. Начинающим обязательно необходимо изучать маршрутизацию в начале. Гуглим на тему "freebsd маршритузация". Вводим netstat -r и изучаем таблицу маршутизации ДО и ПОСЛЕ запуска openvpn.

Что по сути нам необходимо. Чтобы ВЕСЬ трафик шел к vpn-серверу, и ничего не пошло мимо. Для этого прописываем следующие правила фаервола:

Bash highlight
#!/bin/sh

FwCMD="/sbin/ipfw "

${FwCMD} -f flush

${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any

${FwCMD} add deny icmp from any to any frag

${FwCMD} add allow icmp from any to any out icmptype 8
${FwCMD} add allow icmp from any to any in icmptype 0

${FwCMD} add check-state

${FwCMD} add deny tcp from any to any established

${FwCMD} add allow tcp from any to 1.2.3.4 out via re0 setup keep-state
${FwCMD} add allow udp from any to 1.2.3.4 out via re0 keep-state

${FwCMD} add allow tcp from any to any out via tun0 setup keep-state
${FwCMD} add allow udp from any to any out via tun0 keep-state

${FwCMD} add 10000 deny log ip from any to any
Элегантно и просто

Здесь у нас re0 - интерфейс сетевухи нашей. 1.2.3.4 - адрес впн-сервака. Запрещаем весь трафик, идущий мимо через re0. И разрешаем всё остальное через tun0. При этом применяются динамические правила, и машина остается недоступной для внешних коннектов, разрешаются только исходящие соединения. Входящий icmp-трафик разрешается.

После применения этих правил у вас скорее всего перестанет работать обычный ping в консоли. Потому что откажет dns. Лично у меня dhcp, и вручную прописывать нет желания:

Цитата:
ifconfig_re0="DHCP"
И в /etc/resolv.conf пишется локальный адрес dns-сервака. А в таблице маршрутизации он идет через re0 интерфейс. Ну, как говорится, не беда, да-да-да. Впишем сервак гугла (днс в локалке от греха подальше):

Bash highlight
#!/bin/sh
echo "nameserver 8.8.8.8" > /etc/resolv.conf
(да, я в курсе, что у гугла есть еще один днс-сервак)

И это в crontab на каждую минуту. Решение не самое элегантное, но на большее нет времени.

Так вот, ping заработал. А если впн оборвется то и ping не будет работать (первым делом откажет конечно же днс), потому что траф через re0 будет идти только к vpn-серваку. Ну а теперь можно написать скрипт, автоматически поднимающий vpn при обрыве коннекта, а заодно и tor, чего уж там мелочиться

Автоматический мониторинг работы openvpn и tor

Bash highlight
#!/bin/sh

status=0;

echo "Testing internet connection....please wait..."
       if ping -W 1 -c 3 [url]www.google.com[/url] | grep -q "3 packets received"; then
          
                        echo "VPN is OK"
                        status=1;

                if /usr/local/bin/curl --proxy socks5://127.0.0.1:9050 --max-time 10 -I [url]http://www.google.com[/url] | grep -q "200 OK"; then

                        echo "TOR is good"
 
                else

                        echo "TOR not working"
                        echo $(date +"%y-%m-%d %T") Restarting tor >> journal.txt
 
                        /usr/local/bin/sudo /usr/local/etc/rc.d/tor onestop
                        /usr/local/bin/sudo /usr/local/etc/rc.d/tor onestart

                fi

        else
                echo "NO INTERNET CONNECTION"
        fi


if [ $status -eq 0 ]; then
     echo "Restarting openvpn and tor..."
     echo $(date +"%y-%m-%d %T") Restarting openvpn >> journal.txt

     /usr/local/bin/sudo /usr/local/etc/rc.d/tor onestop
     sleep 5
     /usr/local/bin/sudo /usr/local/etc/rc.d/openvpn restart
     sleep 10

     /home/testinet/test_connection.sh &
fi
Если тор начинает глючить (нет ответа в течении 10 секунд), то он автоматически перезапустится.

Скрипт ставим в crontab. Не забудьте создать отдельного юзера и прописать эти команды в файл sudoers для запуска без пароля. В rc.conf у нас только openvpn, тор запускается потом автоматически этим скриптом, поэтому у нас onestart и onestop. И не забудьте поставить в систему curl. В файл journal.txt пишется, когда были перезапуски.

Раз уж начали говорить про тор, немного затронем тему работы через прокси. Сам порт тора поставить не составит труда, настройки в /usr/local/etc/tor/torrc. В гугле можно найти довольно много информации по настройке тора. Там в конце дописываете опции. Можно настроить чтоб на выходе была какая-то определенная страна, и так далее. В общем, гуглим.

Если нужно запустить какое-то приложение через прокси (впн у нас уже поднят, так что траф через него пойдет автоматически), то ставим порт proxychains-ng (продолжение проекта proxychains). Настройки в файле /usr/local/etc/proxychains.conf
Там можно прописать работу через целую цепочку прокси. Ну а по умолчанию там уже стоит тор:

Цитата:
# defaults set to "tor"
socks4 127.0.0.1 9050
Запускаем, к примеру, оперу через proxychains (и заодно с отдельного юзера, для этого юзаем gksu):

code:
% sudo gksu -u opera 'proxychains opera'
Опера запустится с заметными глюками, но запросы будут честно отрабатываться через заданную цепочку прокси

Итак, задача выполнена, траф не будет сливаться куда не надо, плюс были предоставлены некоторые бонусы. А если вдруг понадобится посидеть напрямую, без vpn, то в скрипте настройки фаервола заменяем 1.2.3.4 на any. Успехов
__________________
You never know how better can be.
http://newday.name/sokol

Последний раз редактировалось SokoL; 05.12.2018 в 12:49.
Пользователь вне форума    

Часовой пояс GMT +2
Powered by vBulletin® 3.x.x Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

Copyright © 2008 - 2013 «HPC» Реклама на сайте Правила Форума Пользовательское соглашение Работа на сайте
При копировании материалов ставьте ссылку на источник
Все материалы представлены только в ознакомительных целях, администрация за их использование ответственности не несет.