Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...


SSH (англ. Secure SHell — «безопасна обвивка») е мрежов протокол на ниво сеанс, позволяващ дистанционно управление на операционна система и тунелиране на ТСР - съединение, например, за пренос на файлове. Подобни протоколи са telnet и rlogin, но за разлика от тях SSH кодира целия трафик включително паролите за достъп.

OpenSSH (англ. «отворена безопасна обвивка») е безплатна версия на SSH инструмента. Тази разновидност на SSH е дело на екипа на OpenBSD. Разработчиците утвърждават, че продукта им е по-безопасен от оригинала - SSH, благодарение на политиката за аудитинг на кода.
За OpenSSH мислете като за швейцарски нож, защото възможностите са потресаващи. В тази статия ще впрегнем OpenSSH за нас, за да командваме отдалечено Ubuntu 10.04. Схемата е следната. Имаме машина с инсталиран Ubuntu 10.04 desktop, която в последствие ще превърнем в домашен http - сървър. На този сървър ще поместим свой сайт: блог, форум, личен сайт, галерия и т.н. Достъпът до този сървър ще бъде под произволна windows машина, чрез програма PuTTY.

Инсталация на SSH - Сървър

OpenSSH има две лица. Демонът може да бъде сървър или клиент. За нашите цели е нужен сървър. Kлиентът по първоначално условие е PuTTY.
Най-лесния начин идва от терминала и следните команди въведени в него:

Инсталиране на SSH - сървър
$ sudo apt-get install openssh-server

Статус на SSH
$ sudo /etc/init.d/ssh status

(Ре)стартиране на SSH
$ sudo /etc/init.d/ssh start
$ sudo /etc/init.d/ssh restart

Спиране на SSH
$ sudo service ssh stop

Конфигуриране на SSH
$ sudo gedit /etc/ssh/sshd_config

Премахване на SSH - сървър
$ sudo apt-get remove openssh-server

Съдържание на OpenSSH

  • ssh-add – помощна програма за добавяне на лични ключове в кеш;
  • ssh-agent – демон, занимаващ се с кеширане на дешифрирани лични ключове;
  • scp – утилка за безопасно копиране на файлове между хостове;
  • sftp – клиентска програма на sftp-server;
  • sftp-server – сървърна реализация на защитено ftp;
  • ssh – клиент, обезпечаващ безопасно съединение;
  • sshd – демон, очакващ включване, изпълняващ аутентификация и обслужващ ssh-клиента;
  • ssh-keygen – утилка за създаване и модификация на ключове;
  • ssh-keyscan – утилка за сбор на публични ключове;
  • ssh-keysign – помощник при използване на метод аутентификации, основан за проверка на хостове.

Настройка на PuTTY

PuTTY е свободно разпространяем клиент за различни протоколи за отдалечен достъп. Той работи под: SSH, Telnet, rlogin. PuTTY позволява съединение и управление на отдалечен възел, например, сървър. В PuTTY е реализирана само клиентска страна на съединението. Първите разработки на програмата са били насочени към Microsoft Windows, но по-късно бива портиран за Unix. Днес разработката предлага портове за Mac OS, Symbian OS и Windows Mobile. Програмата се разпространява под лиценз MIT. Отлична съвместимост с Windows98/XP/Vista/7.

Изтегляне на програмата от PuTTY Download Page.
  1. Създайте папка в вашата Windows - машина и там поместете PuTTY. Програмата е апликация и не се нуждае от инсталиране.
  2. Стартирайте програмата и отворете пункт Translation.
  3. Задайте кодировка UTF-8.
  4. Върнете се в първи пункт Session.
  5. Дайте произволно име на бъдещото ви съединение.
  6. Добавете IP-то на Ubuntu машината.
  7. Съхранете настройките.
Готово. Можете да се опитате съединение с сървъра.

Putty

Следва пояснение на частен случай

Спомнете си моята орбитална станция, за която писах в тема EW-7128g и WEP. Нещата от картинката следват доуточнение. Моят излаз в интернет се обезпечава от модем Motorola SB4200. Наличието на три мобилни машини и три телефона с Wi-Fi (вече са толкова на брой) плюс два десктопа наложи оборудване с рутер. Доверих се на модел TP-LINK TL-WR841ND. Редица online IP сканери показват некоректно адреса на Ubuntu машината. Те на практика показват адреса на рутера. Отделно е нужно да се знае състоянието на порта за съединение, съобразно настройката на огнената стена. Отговори на тези нюанси ме отведоха до следния адрес:
Free Port Scan & Firewall Test

В края на теста се извежда подобна диаграма.

portscandiagram

Хватить пиздить, товарищи!

Време е да видим къде се зимува баба Меца. Нека се логнем от PuTTY в нашия съръвър като root и инсталираме програма KompoZer.

KompoZer е WYSIWYG HTML-редактор, основан на Nvu. През март '07 года Download.com обяви KompoZer за най-добра безплатна алтернатива на Adobe® Dreamweaver® CS3. Подобен редактор е добре дошло за нашата идея.

Команда за инсталиране на KompoZer
# aptitude install kompozer

Единственото телодвижение, когато сте под Ubuntu e да препишете спомената команда в прозореца на PuTTY и да отговорите с Y (да). Останалото интелигентно ще бъде свършено вместо вас, без да ви се налага да ровите интернет, да се съгласявате с лицензионни споразумения и натискате n-пъти бутон Next.

LogIn


Ловим мишката и преминаваме пътя посочен на картинката. Ура, имаме KompoZer в Ubuntu. По показания начин можем да инсталираме/премахваме произволна програма или демон в Ubuntu, и това е само началото.

Kompozer
В Ubuntu нещата не следват горе посоченото. Подразбира се, че под root въобще няма да се работи. По време на инсталация на системата се създава потребител, под когото ще се работи. При необходимост за работа под root нещата ще минават чрез команда "sudo". Ако това дразни, то спокойно може да се превключи чрез "sudo su -" и да станете root - потребител.

LogIn

Базови Настройка на SSH

Това е най-деликатната част на темата и в нея ще застъпя само базовите настройки на ssh-сървъра за безопасно ползване. Преди всичко е необходимо резервно копие на конфигурационния файл, което ще намерите в вашата home директория. Постигаме по следния начин:
$ sudo cp /etc/ssh/sshd_config ~

Следва същинско редактиране:
$ sudo gedit /etc/ssh/sshd_config

Подключеният текстови редактор gedit ще покаже на длан съдържанието на файла и пряко там ще редактираме нужните неща.

Port 22 - променете значението на този порт на 8822, например. Пробивите започват с този номер - 22. Разбира се в случай на промяна също се сканира за различен номер на порта, но това не пречи за повишаване на нашата сигурност.

 PermitRootLogin no - задължително променете значението на no. Това забранява влизането като root в ssh-сървъра.

AllowUsers peshootVarna - този параметър го няма в конфигурационния файл. Допишете го! peshootVarna е потребителското ви име, примерно. Много мощен параметър, защото разрешава единствено peshootVarna да се логва. Linux системите са чувствителни към регистъра на имената и въведени малки или големи букви подсилва степента на сигурност. Отделно колко по-дълго име, толкова по-трудно разбиваемо. Към името можете да добавите конкретен ip-адрес. Например, peshootVarna@218.147.58.101. Подобен параметър ще разрешава вход единствено на peshootVarna и то ако се свързва от клиентски адрес 218.147.58.101.

PermitEmptyPasswords no - Забранява празните пароли. Логично избираме no.

LoginGraceTime 60 - по подразбиране този параметър е 120 секунди. Значението е завишено. Параметърът определя при какво количество от време на бездействие съединението ще бъде прекъснато.

MaxStartups 2:50:10 - определя количеството на паралени неаутентифицирани свързвания към сървъра. Записът има форма "start:rate:full". В случая се тълкува изключване с вероятност 50% при наличие на 2 неаутентифицирани връзки с линеен ръст на вероятност до 100% при достигане на 10.

Protocol 2 - използвайте само протокол SSH 2. При протокол SSH 1 са налични проблеми свързани с атака "man-in-the-middle" (човек по средата). В случая атакуващия може да чете и видоизменя съобщенията. SSH 1 се счита за морално остарял и неговата употреба е нежелателна.

GSSAPIAuthentication no - в системи Debian и Ubuntu за аутентификация по подразбиране се използва GSSAPI (Generic Security Services Application Programming Interface), а това иска време. Този механизъм има смисъл само ако се ползва съвместно с Kerberos 5, иначе спокойно може да се изключи. Възможно е да е коментиран. Премахнете решетката (#) пред параметъра.

ChallengeResponseAuthentication no - забранява използване на еднократни пароли на база системи S/Key.

TCPKeepAlive no - параметър в sshd_config, позволяващ контрол на времето на работа и бездействие на клиента, чиято полезност е под въпрос. По подразбиране стои значение yes. Това означава, че сървъра периодично ще проверява за наличие на клиента на линия и ако не постъпи отговор, съединението автоматически ще прекъсне. Подобни запитвания сървър към клиент са угодни на хакер, анализиращ пакетите.

Съхраняваме измененията. Презареждаме sshd, за да влязат в сила новите правила:
$ sudo /etc/init.d/ssh restart

I'm going to enjoy watching you die, Mr. Anderson!

Методът на грубата сила на практика е разбиване на криптографическата схема, чрез подбор на голямо количество варианти, осъществявани от един компютър или такива разпределени в мрежа. За да защитите SSH от brute force атака съществуват редица програми. Моят избор се спря на Fail2ban. След време ще забележите в логовете на сървъра как ssh - роботи или индивиди се опитват да влязат.

Инсталация на Fail2ban:
$ sudo apt-get install fail2ban

Този демон работи в фонов режим и силно ще облекчи страховете ви. Демонът сканира логовете в директории: /var/log/pwdfail или /var/log/apache/error_log и др. Той търси записи от вида “Failed password for invalid user condor” за служби като sshd, apache, vsftpd и др. След няколко несполучливи опита задейства бан по IP адрес.

Количеството опити за авторизация, време за блокировки и много други настройки се намира в файл:
/etc/fail2ban/jail.conf

Нещата са интуитивни и всичко се настройва просто, Neo.


28.08.2010 profruit 

0 Response to "Настройка на SSH"

Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога