Поразителни пристанища (на английски чукане на пристанището) Несъмнено е практика, която всички ние, които управляваме сървъри, трябва да знаем добре, тук обяснявам подробно какво е това и как да внедрим и конфигурираме това 😉
В момента тези от нас, които управляват сървър, имат SSH достъп до този сървър, някои променяме порта по подразбиране на SSH и вече не използва порт 22, а други просто го оставят така (нещо не се препоръчва), но сървърът е разрешил SSH достъп през някакъв порт и това вече е „уязвимост“.
с Чукане на порт можем да постигнем следното:
1. SSH достъпът не е активиран от нито един порт. Ако сме конфигурирали SSH за порт 9191 (например), този порт (9191) ще бъде затворен за всички.
2. Ако някой иска да получи достъп до сървъра чрез SSH, очевидно няма да може, тъй като порт 9191 е затворен ... но, ако използваме „магия“ или тайна комбинация, този порт ще бъде отворен, например:
1. Аз се свързвам към порт 7000 на сървъра
2. Правя още един телнет към порт 8000 на сървъра
3. Правя още един telnet към порт 9000 на сървъра
4. Сървърът открива, че някой е направил тайната комбинация (сензорни портове 7000, 8000 и 9000 в този ред) и ще отвори порт 9191, за да поиска влизането от SSH (ще го отвори само за IP, от който е направена комбинацията задоволително).
5. Сега, за да затворя SSH, просто телне до порт 3500
6. Ще направя още един телнет към порт 4500
7. И накрая още един телнет към порт 5500
8. Извършването на тази друга тайна комбинация, която сървърът открие, ще затвори порт 9191 отново.
С други думи, обясняването на това още по-просто ...
с Чукане на порт нашият сървър може да има затворени определени портове, но когато сървърът открие това от X IP е направена правилната комбинация от портове (конфигурация, предварително дефинирана в конфигурационен файл) ще изпълни определена команда върху себе си очевидно (comando също дефиниран в конфигурационния файл).
Не се ли разбира? 🙂
Как да инсталирам демон за Port Knocking?
Правя го с пакета изкопан, което ще ни позволи по много, много прост и бърз начин да внедрим и конфигурираме Чукане на порт.
Инсталирайте пакета: knockd
Как да конфигурирам Knocking на порта с knockd?
Веднъж инсталиран, ние продължаваме да го конфигурираме, за това редактираме (като корен) файла /etc/knockd.conf:
nano /etc/knockd.conf
Както можете да видите в този файл, вече има конфигурация по подразбиране:
Обяснението на настройките по подразбиране е наистина просто.
- Първо, UseSyslog означава, че за записване на активност (дневник) ще използваме / Var / дневник / Syslog.
- Второ, в раздела [OpenSSH] Тук очевидно ще отидат инструкциите за отваряне на SSH, първо имаме последователността от портове (тайната комбинация), която е конфигурирана по подразбиране (порт 7000, порт 8000 и накрая порт 9000). Очевидно портовете могат да се променят (всъщност го препоръчвам), както и не е задължително да са 3, те могат да бъдат повече или по-малко, зависи от вас.
- Трето, seq_timeout = 5 означава времето за изчакване на тайната комбинация от портове. По подразбиране е зададено на 5 секунди, това означава, че след като започнем да извършваме чукането на порта (т.е. когато се свържем към порт 7000), имаме максимум 5 секунди, за да завършим правилната последователност, ако минат 5 секунди и не сме завършили порт чука, тогава просто ще бъде така, сякаш последователността е невалидна.
- четвърто, команда не се нуждае от много обяснения. Това просто ще бъде командата, която сървърът ще изпълни, когато открие комбинацията, дефинирана по-горе. Командата, която е зададена по подразбиране, това, което прави, е отворен порт 22 (променете този порт за вашия SSH порт) само на IP, който е направил правилната комбинация от портове.
- Пето, tcpflags = syn С този ред ние посочваме вида на пакетите, които сървърът ще разпознае като валидни за чукащия порт.
След това има секцията за затваряне на SSH, че конфигурацията по подразбиране не е нищо повече от същата последователност от портове по-горе, но в обратен ред.
Ето конфигурация с някои модификации:
Как да стартирам knockd демона?
За да го стартираме, първо трябва да модифицираме (като корен) файла / etc / default / knockd:
nano /etc/default/knockd
Там сменяме ред номер 12, който казва: «START_KNOCKD = 0»И променете това 0 на 1, ще получим:«START_KNOCKD = 1«
След като това стане сега, ние просто го стартираме:
service knockd start
И voila, той е конфигуриран и работи.
Порт Knocking с почукано и работещо!
Както можете да видите в предишната конфигурация, ако се извърши чук на порт към порт 1000, след това до 2000 и накрая до 3000, тогава ще се отвори порт 2222 (моят SSH), а тук е друг компютър, изпълняващ чук на порта:
След като натисна [Enter] на Knock No.1, на No2 и накрая на No3, портът ще се отвори, ето дневника:
Както можете да видите, когато чуках порт 1000, беше регистриран етап 1, след това в 2000 ще бъде етап 2 и накрая в 3 с 3000, когато правим това, командата, която декларирах в .conf, се изпълнява и това е всичко. .
Тогава, за да затворите порта, би било само да почукате 9000, 8000 и накрая 7000, ето дневника:
И тук обяснението за употреба свършва 😀
Както можете да видите, чукването на порта е наистина интересно и полезно, защото въпреки че не искаме просто да отворим порт след определена комбинация от портове, командата или заповедта, която сървърът ще изпълни, може да варира, тоест ... вместо да отворим порт, ние можем декларирайте да убиете процес, спрете услуга като apache или mysql и т.н. ... ограничението е вашето въображение.
Е и засега статията ... Аз не съм далеч експерт по този въпрос, но исках да споделя с вас този интересен процес.
Поздрави 😀
Отлична статия, доста интересна е и не знаех, че съществува ... би било чудесно, ако продължавате да пускате статии за sysadmin начинаещи и това 😀
Поздрави и благодарности ^ _ ^
Благодаря ви за коментар.
Да ... това е, че със статиите за DNS на FICO, не искам да бъда изоставен LOL !!!
Нищо сериозно. Преди няколко месеца чух нещо за Port Knocking и той веднага привлече вниманието ми, но тъй като мислех, че ще бъде много сложно по това време, не реших да вляза в него, точно вчера, преглеждайки някои пакети от репото, открих knockd и реших да опитам и ето урок
Винаги съм обичал да поставям технически статии, някои може да не са достатъчно интересни, но ... Надявам се, че други 😉
поздрави
Здравейте, знам, че тази статия съществува от известно време, но стартирам заявката си, за да видя дали някой може да я реши вместо мен.
Факт е, че съм приложил чукване на портове към моята малина, за да се опитам да подобря сигурността, когато се свържа с нея извън локалната мрежа. За да работи това, трябваше да отворя гамата от портове на рутера 7000-9990, насочващи към машината. Безопасно ли е да отворите тези портове на рутера или, напротив, когато се опитвам да имам по-голяма сигурност, правя ли обратното?
Поздрави и благодаря.
Чудесно, аз съм сисадмин от години и не го познавах.
Един въпрос ... как се прави "ударите"?
Телнете ли срещу тези пристанища? Какво ви отговаря telnet? Или има някаква команда "чук" вълна?
Страхотна готина е статията. Грандиозен. Благодаря много
Направих теста с telnet и всичко направи чудеса ... но, любопитното е, че има команда "почукване", направете човек почука така че можете да видите 😉
Telnet всъщност изобщо не ми отговаря, iptables с политиката DROP го кара да не реагира изобщо и telnet остава там в очакване на отговор (който никога няма да пристигне), но демонът knockd ще разпознае удара, дори ако никой не отговори 😀
Благодаря ви много за коментара, удоволствие е да знам, че моите статии все още харесват ^ _ ^
Добавено към любими! : Д!
Благодаря ви!
Благодаря 😀
Ааа охрана, онова приятно усещане, когато осигурим компютъра към отвес, а след това дни / седмици по-късно се опитваме да се свържем от някое отдалечено място, до което нямаме достъп, тъй като защитната стена е в режим „никой за никого“, това се нарича оставане извън замъка по отношение на сисадмините. 😉
Ето защо тази публикация е толкова полезна, с knockd можете да получите достъп от всяко място, което може да изпрати пакет до вашата локална мрежа, а нападателите губят интерес, когато видят, че ssh портът е затворен, не мисля, че ще почукат груба сила за отваряне на пристанището.
Ей, статията е страхотна.
Едно нещо: служи ли за свързване извън локалната мрежа?
Казвам това, защото имам рутера със затворени портове минус този, който съответства на ssh, който е пренасочен към сървъра.
Предполагам, че за да работи извън локалната мрежа, ще е необходимо да се отворят портовете на рутера, съответстващи на Port Knocking, и те да бъдат пренасочени към сървъра.
Ммм ...
Не знам колко безопасно е да направя това.
Какво мислиш?
Не съм наистина сигурен, не съм направил теста, но мисля, че да, трябва да отворите портове на рутера, защото в противен случай няма да можете да чукнете сървъра.
Направете теста, без да отваряте портове на рутера, ако не работи за вас е жалко, защото съм съгласен с вас, не е препоръчително да отваряте тези портове на рутера.
Всъщност трябва да отворим портовете и да ги пренасочим към компютъра, който се обаждаме.
Жалко.
Много благодаря! Тепърва започвам да уча мрежи и тези уроци са чудесни за мен! благодаря, че отделихте време за споделяне на знанията
През годините научих много с глобалната общност на Linux ... от няколко години и аз исках да допринеса, точно затова пиша 😀
Благодаря ви много, не знаете как ми помага, на път съм да настроя сървър и това ми върви чудесно.
поздрави
За това сме, за да помогнем 😉
Отлична статия! Не знаех за това и това ми помага много (използвам RackSpace, който използва KVM, така че ми подхожда като ръкавица!). Добавено към любимо.
Благодаря за коментара 🙂
Como siempre DesdeLinux предлага ни отлични публикации с уроци, които са наистина полезни за прилагане, благодаря за споделянето!! 🙂
Благодаря ви за коментара 🙂
Да, ние винаги се опитваме да задоволим жаждата за знание, която имат нашите читатели 😀
Интересно, не знаех опцията.
Отидете направо към угояване на моята библиотека с котлети.
Благодаря ви!
Удоволствие за мен 😀
поздрави
Поздрави KZKG ^ Гаара !!! Стиснахте. Огромна статия за сигурни сървъри. Няма @% * & ^ идея, че такова нещо съществува. Ще го опитам. Благодаря ти
това е страхотно…. ^ - ^
Здравейте, бихте ли обяснили как да го инсталирате в CentOS 5.x?
Изтеглих rpm:
http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm
Инсталиран:
rpm -i knock-0.5-3.el5.rf.x86_64.rpm
Конфигурирайте конфигурационния файл с 15 секунди време и порта, който използвам за свързване чрез ssh към моя vps
Демонът започва:
/ usr / sbin / knockd &
Аз telnet и нищо портът не се затваря, по подразбиране портът е отворен, но не се затваря.
Правя ли нещо нередно?
Мммм, заявките за telnet към тези портове могат да бъдат научени от администратора на нашата локална мрежа или от нашия доставчик на услуги, не? Това би блокирало външни хора, но не и тях, така че ако те искат да активират нашия порт, те биха могли да го направят, защото Вижте заявките, които отправяме, да кажем, че защитава, но не на 100%
Може да бъде, но не мисля, че те ще си представят, че определен telnet изпълнява X действие. Освен ако не видят, че се следват същите модели на telnet.
Интересна статия, имам въпрос. Мисля, че има грешка в изображението на конфигурационния файл, защото ако анализирате добре, и в двата реда на командата използвате ACCEPT в Iptables. Мисля, че един трябва да бъде ПРИЕМ, а друг трябва да бъде ОТХВЪРЛЕН.
В противен случай отлична инициатива. Благодаря ви много, че отделихте време да обясните знанията си на другите.
поздрави