Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: No_root__No_cry в Oct 05, 2008, 18:02



Титла: Socks, tunneling, сигурна връзка - как?
Публикувано от: No_root__No_cry в Oct 05, 2008, 18:02
Здравейте!

Имам домашен компютър :D (ще го наричам сървър) с IP адрес 100.100.100.100. Имам лаптоп (ще го наричам клиент) с адрес 200.200.200.200. На клиента му се налага да се свързва към Интернет през различни мрежи - на работата, в университета, в някое кафене, които мрежи могат да бъдат sniff-вани (подслушвани), а някои и firewall-нати с разрешен порт само 80. Целта ми е клиента вместо да се свързва директно към Интернет, да се свързва към сървъра и вече през него да се свързва към Интернет. Полза от цялата работа ще има ако връзката между клиента и сървъра е криптирана. Въпросите ми са следните:

1. Как да осъществя връзката между клиента и сървъра?
2. Как да направя тази връзка сигурна?
3. Мога ли да използвам прозиволен файл за криптиране на връзката? Файл който е едновременно и на сървъра и на клиента и е много голям? С други думи weak algorithm/strong key, при което и самото кодиране ще става доста по-бързо и лесно.
4. Къде има лесно и разбираемо ръководсвто, което да отговаря на горните въпроси?

Това са главните въпроси. Ако знаете отговора на който и да е от тях - пишете.

Какво знам аз, докъде съм стигнал:
Трябва да се направи някакъв tunneling между клиента и сървъра. Струва ми се, че в случая не може да се ползва IPsec, а трябва протокол от по-горен слой, примерно SOCKS.
Тия дни си тровя живота с Dante, но явно не ми стигат мозъчните клетки и не разбирам какво пише в ръководствата за него, макар, че изглеждат доста прости http://www.trekweb.com/~jasonb/articles/dante_tunnel.shtml

Ще се радвам ако някой може с прости думи да разясни каква точно последователност от действия, команди трябва да направя за да подкарам нещата.

Допълнително въпросче: как да направя връзката между VNC сървър и клиент криптирана?


Титла: Socks, tunneling, сигурна връзка - как?
Публикувано от: teleport в Oct 05, 2008, 23:35
1. ОpenVPN
2. Използвай TLS, сертификатите да са поне 2048 bit. Клиента задължително да проверява валидноста на сървърния сертификат.
3. Няма нужда. При TLS сървъра и клиента генерират random ключове които се предават криптирани със сертификатите. Връзката се rekey-ва през няколко минути. За няколко минути не може да премине достатъчно трафик за да бъдат разбити случайните ключове.
4. http://openvpn.net

Пускаш клиента като демон. В момента в който се появи интернет връзка клиента ще се свърже със сървъра и ще направи тунел. Щом решиш да си secure просто трябва да добавиш 2 рутинг правила:

route add -host <ип-то на домашната ти машина> <текущия ти gw> ; това за да остане връзката на openvpn тунела активна.
route del default gw
route add default gw <ип-то на openvpn тунела на домашната ти машина>

Така целия трафик ще преминава през тунела към домашната ти машина. Тя съответно трябва да е настроена да рутира и nat-и пристигащото през тунела.

И последно: когато искаш да се свържеш със домашната ти машина ползвай ip-то на тунела, не реалното.

Можеш предварително да си подготвиш няколко конфиг файла: с tcp и udp транспорт, на високи портове, на порт 80 и т.н. Естествено ще трябва да пуснеш съответното количесто сървъри със правилни настройки.

Аз работя със udp транспорт на подразбиращия се порт 1194 и досега няма случай да не се е вързал от всякъде. А ако попадна на мрежа която пропуска единствено и само 80-ти порт ( предполага се през прокси ), просто няма да я ползвам, ще си пусна gprs-а колкото да свърша работа.