реклама
Ако сте потребител на Linux или UNIX, вероятно използвате SSH (Secure Shell) за достъп до командния ред на вашите машини от разстояние. В допълнение към осигуряването на сигурен достъп до черупкови акаунти, SSH може да транспортира сигурно и други видове уеб трафик. В известен смисъл може да ви осигури бърз и лесен VPN (виртуална частна мрежа) в отдалечената мрежа, където вашият SSH сървър пребивава.
На първо място, разбира се, ще ви трябва SSH сървър, работещ някъде. Linux и OS X се предлагат със SSH сървъри, но има и SSH сървъри, налични за Windows. freeSSHd е хубав безплатен SSH сървър за Windows. Той е бърз и лесен за инсталиране и сравнително лесен за конфигуриране. Разбира се, ще се нуждаете от администраторски права на машината, на която я инсталирате.
Тъй като ще получите достъп до вашия SSH сървър от разстояние, ако той е зад защитна стена или рутер, ще трябва да се уверите, че порт 22 (по подразбиране SSH порт) е изпратен правилно към него. Повечето рутери имат възможност да препращат портове към отделни машини в локалната мрежа. Ще трябва да се обърнете към инструкциите за вашия рутер / защитна стена как да направите това.
След като SSH сървърът ви е конфигуриран така, че да можете да се свържете с него от всяка интернет връзка, разбира се, ще ви трябва клиент, който да се свърже с него. И двете Linux и OS X имат вградени SSH клиенти. Ако сте в Windows, клиентът на избор е PuTTY. Ще дам инструкции за тунелиране с PuTTY, но със сигурност можете да използвате и други клиенти.
Първо посочете адреса на вашия SSH сървър в Сесия секция. Изберете SSH за Вид на връзката и въведете 22 за порт (или какъвто и да е външен интернет порт, който използвате за свързване към вашия SSH сървър).
След това отидете на Връзка > SSH > тунели. Има три типа тунели, които можете да настроите:
- динамичен - Това действа като SOCKS прокси, който може да се използва за тунел на трафика през мрежата, където SSH сървърът пребивава. След това можете да конфигурирате приложения, които поддържат SOCKS прокси (като уеб браузър), за да се възползвате от това. Ще демонстрирам как да настроя Firefox да работи през динамичен тунел.
- местен - Локален тунел ще ви позволи да се свържете с посочения порт на машина, намираща се в същата мрежа като SSH сървъра. Един полезен пример, който ще ви покажа, е как да се свържете с компютър с Windows, работещ с отдалечен работен плот.
- отдалечен - Както името донякъде подсказва, това е обратната страна на местен тунел. Вероятно е по-малко вероятно да използвате това, но това би позволило на машините в SSH сървърната мрежа да имат достъп до машина и порт в мрежата, където вашият SSH клиент пребивава. Няма да прегледам примери за настройка на отдалечен порт в тази статия.
Така че в примера, който ще дам, ще кажем, че домашната мрежа има два компютъра. Единият е кутия за Linux, работещ със SSH сървъра, а другият е кутия на Windows с активиран отдалечен работен плот. Искаме да настроим два тунела: динамичен тунел и локален тунел, който да се свърже с Windows машината чрез отдалечен работен плот.
Първо да настроим динамичен тунел за порт 1080. Портът, който използвате за динамичен тунел, всъщност е произволен, но тъй като порт 1080 често се използва за SOCKS прокси сървъри, което е това, което ще използваме. Въведете 1080 в Източник порт поле, изберете динамичен като тип порт и щракнете върху Добави бутон.
След това нека да настроим локалния тунел за компютъра в мрежата, работещ с Windows Remote Desktop. Да речем, локалните IP адреси в локалната мрежа, където SSH сървърът е 192.168.1.xxx адреси. Машината на Windows има локален IP от 192.168.1.100. Въведете 3390 за Източник порт, 192.168.1.100:40389 за Дестинация, изберете местен за типа порт и щракнете върху Добави бутон. По-късно ще видите защо съм конфигурирал изходния порт да е различен от дестинацията.
След като сте конфигурирали всичко за връзката, върнете се към Сесия секция и запазете вашата връзка. След това щракнете отворено и влезте в Linux полето си с вашите идентификационни данни, както обикновено.
Сега трябва да конфигурирате вашите приложения, за да използвате тунелите, които сте настроили. Нека да кажем, че искате да направите уеб сърфирането си чрез динамичния тунел, който създадохме. Това всъщност е изключително полезен начин да се възползвате от SSH.
Може да сте в мрежа с някаква защитна стена или филтриране на съдържание, която искате да заобиколите. Ако имате възможност да излезете на порт 22 (или който и да е друг порт, просто ще трябва да настроите вашия SSH сървър съответно), тогава ще можете да сърфирате където пожелаете без проблем през динамичния тунел.
Също така е полезно, ако сърфирате в мрежа, където може да сте загрижени за други, наблюдаващи вашия трафик. Може би се свързвате от хотел, клиентски сайт или от работа (не сте го научили от мен) и не искате други да наблюдават вашия трафик.
Най-добрият избор е да използвате Firefox, тъй като Firefox ви позволява да конфигурирате браузъра да изпраща DNS заявки през прокси сървъра. Ако използвате Internet Explorer, вашите DNS заявки все още се извършват чрез локалната мрежа, от която се свързвате и по този начин все още могат да бъдат наблюдавани. Така че Firefox би бил предпочитаният браузър, ако искате да запазите поверителност в мрежата, от която се свързвате.
За да настроите Firefox да използва динамичния тунел като прокси SOCKS, отидете на Firefox Настроики > напреднал > мрежа и щракнете върху Settings "| бутон. В страницата с настройки щракнете Ръчна конфигурация на прокси, въведете localhost за SOCKS домакин, и 1080 за порт.
Не сме съвсем готови. Все още трябва да конфигурираме Firefox да изпраща DNS заявки и до SOCKS прокси. За целта въведете about: config в лентата за навигация в Firefox. Може да получите подкана да ви попита дали знаете какво правите. Уверете се, че Firefox знаете какво правите и продължете.
Въведете socks_remote_dns за филтър и натиснете Enter. Трябва да видите една опция, която казва network.proxy.socks_remote_dns. Ако пише невярно за стойност, щракнете двукратно върху него, така че да казва истина. Вече сте готови. Трябва да можете да сърфирате в мрежата чрез новия си сигурен динамичен тунел!
За щастие, свързването с нашата машина за отдалечен работен плот на Windows е много по-лесно. Просто стартирате Клиента за отдалечен работен плот и въвеждате localhost: 3390 за адреса на машината. Това е всичко, което има за него!
Причината да настроим изходния порт на 3390 е, защото клиентът за отдалечен работен плот няма да ви позволи да се свържете към порта за отдалечен работен плот по подразбиране (3389) на локалната машина. Затова вместо това използвахме 3390 (можехме да използваме всеки порт; просто използвам 3390, защото ми е лесно да си спомням)
Изходният порт, който използвате за настройка на тунелите, е произволен. Можехме да използваме 1234, вместо 3390, ако искахме, стига нищо да не работи на локалната машина на порт 1234. Това, което не е произволно, е това, което използвате в целевия IP и порт. За целта ще трябва да използвате правилния IP адрес и порт за услугата, с която искате да се свържете.
Можете да настроите тунел за всяка услуга на всеки IP навсякъде. Просто ще трябва да настроите програмата, за да се свържете с localhost на изходния порт, който сте настроили за тунела. Това е доста изящен начин да се свържете с неща, които може да не успеете в противен случай поради проблеми със защитната стена, които може да срещнете. Всичко, от което се нуждаете, е един порт, за да стигнете до вашия SSH сървър и разбира се, че трябва да се изпълнява на този порт.
Използвате ли SSH тунели? За какви видове готини неща ги използвате?
Кредит за снимка: kreg.steppe
Аз съм доста типичен маниер, който прекарва часове пред компютърен монитор както на работа, така и у дома. Също така ми е приятно да сглобявам елегантни инструменти и джаджи.