Меню Рубрики

Установка ssh для freebsd

Установка ssh для freebsd

OpenSSH ЬФП ОБВПТ УЕФЕЧЩИ ЙОУФТХНЕОФПЧ, ЙУРПМШЪХЕНЩИ ДМС ЪБЭЙЭЕООПЗП ДПУФХРБ Л ХДБМЕООЩН ЛПНРШАФЕТБН. пО НПЦЕФ ВЩФШ ЙУРПМШЪПЧБО Ч ЛБЮЕУФЧЕ ОЕРПУТЕДУФЧЕООПК ЪБНЕОЩ rlogin , rsh , rcp Й telnet . лТПНЕ ФПЗП, ЮЕТЕЪ SSH НПЗХФ ВЩФШ ВЕЪПРБУОП ФХООЕМЙТПЧБОЩ Й/ЙМЙ РЕТЕОБРТБЧМЕОЩ РТПЙЪЧПМШОЩЕ TCP/IP УПЕДЙОЕОЙС. OpenSSH ЫЙЖТХЕФ ЧЕУШ ФТБЖЙЛ, ЬЖЖЕЛФЙЧОП РТЕДПФЧТБЭБС ЛТБЦХ ДБООЩИ, РЕТЕИЧБФ УПЕДЙОЕОЙС Й ДТХЗЙЕ УЕФЕЧЩЕ БФБЛЙ.

OpenSSH РПДДЕТЦЙЧБЕФУС РТПЕЛФПН OpenBSD, ПО ПУОПЧБО ОБ SSH v1.2.12 УП ЧУЕНЙ РПУМЕДОЙНЙ ЙУРТБЧМЕОЙСНЙ Й ПВОПЧМЕОЙСНЙ, УПЧНЕУФЙН У РТПФПЛПМБНЙ SSH ЧЕТУЙК 1 Й 2.

14.11.1. рТЕЙНХЭЕУФЧБ ЙУРПМШЪПЧБОЙС OpenSSH

пВЩЮОП РТЙ ЙУРПМШЪПЧБОЙЙ telnet (1) ЙМЙ rlogin (1) ДБООЩЕ РЕТЕУЩМБАФУС РП УЕФЙ Ч ОЕЪБЫЙЖТПЧБООПК ЖПТНЕ. рЕТЕИЧБФЮЙЛ РБЛЕФПЧ Ч МАВПК ФПЮЛЕ УЕФЙ НЕЦДХ ЛМЙЕОФПН Й УЕТЧЕТПН НПЦЕФ РПИЙФЙФШ ЙОЖПТНБГЙА П РПМШЪПЧБФЕМЕ/РБТПМЕ ЙМЙ ДБООЩЕ, РЕТЕДБЧБЕНЩЕ ЮЕТЕЪ УПЕДЙОЕОЙЕ. дМС РТЕДПФЧТБЭЕОЙС ЬФПЗП OpenSSH РТЕДМБЗБЕФ ТБЪМЙЮОЩЕ НЕФПДЩ ЫЙЖТПЧБОЙС.

14.11.2. чЛМАЮЕОЙЕ sshd

ч FreeBSD ДБЕНПО sshd ДПМЦЕО ВЩФШ ТБЪТЕЫЕО Ч РТПГЕУУЕ ЙОУФБММСГЙЙ. ъБ ЪБРХУЛ ПФЧЕФУФЧЕООБ УМЕДХАЭБС УФТПЛБ Ч ЖБКМЕ rc.conf :

рТЙ УМЕДХАЭЕК ЪБЗТХЪЛЕ УЙУФЕНЩ ВХДЕФ ЪБРХЭЕО sshd (8) , ДБЕНПО ДМС OpenSSH . чЩ НПЦЕФЕ ФБЛЦЕ ЧПУРПМШЪПЧБФШУС УЛТЙРФПН /etc/rc.d/sshd УЙУФЕНЩ rc (8) ДМС ЪБРХУЛБ OpenSSH :

14.11.3. SSH ЛМЙЕОФ

хФЙМЙФБ ssh (1) ТБВПФБЕФ РПДПВОП rlogin (1) .

чИПД РТПДПМЦЙФУС ФБЛ ЦЕ, ЛБЛ ЕУМЙ ВЩ УЕУУЙС ВЩМБ ЙОЙГЙЙТПЧБОБ У ЙУРПМШЪПЧБОЙЕН rlogin ЙМЙ telnet . SSH ЙУРПМШЪХЕФ УЙУФЕНХ ПРПЪОБЧБФЕМШОЩИ ЛМАЮЕК ДМС РТПЧЕТЛЙ РПДМЙООПУФЙ УЕТЧЕТБ РТЙ РПДЛМАЮЕОЙЙ ЛМЙЕОФБ. рПМШЪПЧБФЕМА РТЕДМБЗБЕФУС yes ФПМШЛП РТЙ РЕТЧПН РПДЛМАЮЕОЙЙ. дБМШОЕКЫЙЕ РПРЩФЛЙ ЧИПДБ РТЕДЧБТСАФУС РТПЧЕТЛПК УПИТБОЕООПЗП ЛМАЮБ УЕТЧЕТБ. SSH ЛМЙЕОФ УППВЭЙФ ЧБН, ЕУМЙ УПИТБОЕООЩК ЛМАЮ ВХДЕФ ПФМЙЮБФШУС ПФ ФПМШЛП ЮФП РПМХЮЕООПЗП. лМАЮЙ УЕТЧЕТПЧ УПИТБОСАФУС Ч

/.ssh/known_hosts2 ДМС SSH v2.

рП ХНПМЮБОЙА УПЧТЕНЕООЩЕ УЕТЧЕТЩ OpenSSH ОБУФТПЕОЩ ОБ РТЙЈН ФПМШЛП УПЕДЙОЕОЙК SSH v2. лМЙЕОФ ВХДЕФ ЙУРПМШЪПЧБФШ ЧЕТУЙА 2 ФБН, ЗДЕ ЬФП ЧПЪНПЦОП, Б ЪБФЕН ЧЕТУЙА 1. фБЛЦЕ, ЛМЙЕОФ НПЦОП ЪБУФБЧЙФШ ЙУРПМШЪПЧБФШ ЛПОЛТЕФОХА ЧЕТУЙА РТЙ РПНПЭЙ ПРГЙК -1 Й -2 ДМС ХЛБЪБОЙС УППФЧЕФУФЧХАЭЕК ЧЕТУЙЙ РТПФПЛПМБ. чЕТУЙС 1 РПДДЕТЦЙЧБЕФУС ТБДЙ УПЧНЕУФЙНПУФЙ УП УФБТЩНЙ УЕТЧЕТБНЙ.

14.11.4. вЕЪПРБУОПЕ ЛПРЙТПЧБОЙЕ

лПНБОДБ scp (1) ТБВПФБЕФ РПДПВОП rcp (1) ; ПОБ ЛПРЙТХЕФ ЖБКМ У ХДБМЕООПЗП ЛПНРШАФЕТБ, ОП ДЕМБЕФ ЬФП ВЕЪПРБУОЩН УРПУПВПН.

рПУЛПМШЛХ Ч РТЕДЩДХЭЕН РТЙНЕТЕ ЛМАЮ УЕТЧЕТБ ХЦЕ ВЩМ УПИТБОЕО, Ч ЬФПН РТЙНЕТЕ ПО РТПЧЕТСЕФУС РТЙ ЙУРПМШЪПЧБОЙЙ scp (1) .

рБТБНЕФТЩ, РЕТЕДБЧБЕНЩЕ scp (1) , РПИПЦЙ ОБ РБТБНЕФТЩ cp (1) , У ЖБКМПН ЙМЙ ЖБКМБНЙ Ч ЛБЮЕУФЧЕ РЕТЧПЗП БТЗХНЕОФБ Й РТЙЕНОЙЛПН ЛПРЙТПЧБОЙС ЧП ЧФПТПН. рПУЛПМШЛХ ЖБКМЩ РЕТЕДБАФУС РП УЕФЙ ЮЕТЕЪ SSH, ПДЙО ЙМЙ ВПМЕЕ БТЗХНЕОФПЧ РТЙОЙНБАФ ЖПТНХ user@host:

14.11.5. оБУФТПКЛБ

уЙУФЕНОЩЕ ЖБКМЩ ОБУФТПКЛЙ ДМС ДБЕНПОБ Й ЛМЙЕОФБ OpenSSH ТБУРПМПЦЕОЩ Ч ЛБФБМПЗЕ /etc/ssh .

жБКМ ssh_config ЙУРПМШЪХЕФУС ДМС ОБУФТПКЛЙ ЛМЙЕОФБ, Б sshd_config ДМС ДБЕНПОБ.

лТПНЕ ФПЗП, РБТБНЕФТЩ sshd_program (РП ХНПМЮБОЙА /usr/sbin/sshd ), Й sshd_flags rc.conf ДБАФ ДПРПМОЙФЕМШОЩЕ ЧПЪНПЦОПУФЙ ОБУФТПКЛЙ.

14.11.6. ssh-keygen

чНЕУФП ЙУРПМШЪПЧБОЙС РБТПМЕК, У РПНПЭША ssh-keygen (1) НПЦОП УПЪДБФШ ЛМАЮЙ DSA ЙМЙ RSA, ЛПФПТЩНЙ РПМШЪПЧБФЕМЙ НПЗХФ БХФЕОФЙЖЙГЙТПЧБФШУС:

ssh-keygen (1) УПЪДБУФ РБТХ РХВМЙЮОПЗП Й РТЙЧБФОПЗП ЛМАЮЕК, ЙУРПМШЪХЕНЩИ ДМС БХФЕОФЙЖЙЛБГЙЙ. рТЙЧБФОЩК ЛМАЮ УПИТБОСЕФУС Ч

/.ssh/id_rsa.pub (ДМС ЛМАЮЕК DSA Й RSA УППФЧЕФУФЧЕООП). дМС ЧЛМАЮЕОЙС БХФЕОФЙЖЙЛБГЙЙ РП ЛМАЮБН РХВМЙЮОЩК ЛМАЮ ДПМЦЕО ВЩФШ РПНЕЭЕО Ч ЖБКМ

/.ssh/authorized_keys ОБ ХДБМЕООПН ЛПНРШАФЕТЕ.

ьФП РПЪЧПМСЕФ УПЕДЙОСФШУС У ХДБМЕООЩН ЛПНРШАФЕТПН У РПНПЭША SSH-ЛМАЮЕК ЧНЕУФП РБТПМЕК.

еУМЙ РТЙ ЗЕОЕТБГЙЙ ЛМАЮЕК ВЩМ ЙУРПМШЪПЧБО РБТПМШ, ЛБЦДЩК ТБЪ РТЙ ЙУРПМШЪПЧБОЙЙ РТЙЧБФОПЗП ЛМАЮБ ПО ВХДЕФ ЪБРТБЫЙЧБФШУС Х РПМШЪПЧБФЕМС. дМС ФПЗП, ЮФПВЩ ЙЪВЕЦБФШ ОЕРТЕТЩЧОПЗП ОБВПТБ ЛПДПЧПК ЖТБЪЩ, НПЦОП ЙУРПМШЪПЧБФШ ХФЙМЙФХ ssh-agent (1) , ЛБЛ ПРЙУБОП Ч ТБЪДЕМЕ тБЪДЕМљ14.11.7, > ОЙЦЕ.

рТЕДХРТЕЦДЕОЙЕ:

рБТБНЕФТЩ Й ЙНЕОБ ЖБКМПЧ НПЗХФ ТБЪМЙЮБФШУС ДМС ТБЪОЩИ ЧЕТУЙК OpenSSH , ХУФБОПЧМЕООЩИ Ч УЙУФЕНЕ, ДМС ТЕЫЕОЙС РТПВМЕН ПВТБФЙФЕУШ Л УФТБОЙГЕ УРТБЧПЮОЙЛБ ssh-keygen (1) .

14.11.7. хФЙМЙФЩ ssh-agent Й ssh-add

хФЙМЙФЩ ssh-agent (1) Й ssh-add (1) РПЪЧПМСАФ УПИТБОСФШ ЛМАЮЙ SSH Ч РБНСФЙ, ЮФПВЩ ОЕ ОБВЙТБФШ ЛПДПЧЩЕ ЖТБЪЩ РТЙ ЛБЦДПН ЙУРПМШЪПЧБОЙЙ ЛМАЮБ.

хФЙМЙФБ ssh-agent (1) ПВЕУРЕЮЙЧБЕФ РТПГЕУУ БХФЕОФЙЖЙЛБГЙЙ ЪБЗТХЦЕООЩНЙ Ч ОЕЕ УЕЛТЕФОЩНЙ ЛМАЮБНЙ; ДМС ЬФПЗП ХФЙМЙФБ ssh-agent (1) ДПМЦОБ ЪБРХУФЙФШ ЧОЕЫОЙК РТПГЕУУ. ч УБНПН РТПУФПН УМХЮБЕ ЬФП НПЦЕФ ВЩФШ ЫЕММ-РТПГЕУУ; Ч ЮХФШ ВПМЕЕ РТПДЧЙОХФПН — ПЛПООЩК НЕОЕДЦЕТ.

дМС ЙУРПМШЪПЧБОЙС ssh-agent (1) УПЧНЕУФОП У ЫЕММПН, ssh-agent (1) ДПМЦЕО ВЩФШ ЪБРХЭЕО У ЙНЕОЕН ЬФПЗП ЫЕММБ Ч ЛБЮЕУФЧЕ БТЗХНЕОФБ. рПУМЕ ЬФПЗП Ч ЕЗП РБНСФШ РТЙ РПНПЭЙ ХФЙМЙФЩ ssh-add (1) НПЗХФ ВЩФШ ДПВБЧМЕОЩ ОЕПВИПДЙНЩЕ ЛМАЮЙ; РТЙ ЬФПН ВХДХФ ЪБРТПЫЕОЩ УППФЧЕФУФЧХАЭЙЕ ЛПДПЧЩЕ ЖТБЪЩ. дПВБЧМЕООЩЕ ЛМАЮЙ НПЗХФ ЪБФЕН ЙУРПМШЪПЧБФШУС ДМС ssh (1) ОБ НБЫЙОЩ, ОБ ЛПФПТЩИ ХУФБОПЧМЕОЩ УППФЧЕФУФЧХАЭЙЕ РХВМЙЮОЩЕ ЛМАЮЙ:

дМС ФПЗП ЮФПВЩ ЙУРПМШЪПЧБФШ ssh-agent (1) Ч X11, ЧЩЪПЧ ssh-agent (1) ДПМЦЕО ВЩФШ РПНЕЭЕО Ч ЖБКМ

/.xinitrc . ьФП ПВЕУРЕЮЙФ РПДДЕТЦЛПК ssh-agent (1) ЧУЕ РТПЗТБННЩ, ЪБРХЭЕООЩЕ Ч X11. жБКМ

/.xinitrc НПЦЕФ ЧЩЗМСДЕФШ, ОБРТЙНЕТ, ФБЛ:

рТЙ ЬФПН ВХДЕФ ЪБРХЭЕО ssh-agent (1) , ЛПФПТЩК, Ч УЧПА ПЮЕТЕДШ, ЧЩЪПЧЕФ ЪБРХУЛ XFCE , РТЙ ЛБЦДПН УФБТФЕ X11. рПУМЕ ЪБРХУЛБ X11, ЧЩРПМОЙФЕ ЛПНБОДХ ssh-add (1) ДМС ДПВБЧМЕОЙС ЧБЫЙИ SSH-ЛМАЮЕК.

14.11.8. фХООЕМЙТПЧБОЙЕ SSH

OpenSSH РПДДЕТЦЙЧБЕФ ЧПЪНПЦОПУФШ УПЪДБОЙС ФХООЕМС ДМС РТПРХУЛБ УПЕДЙОЕОЙС РП ДТХЗПНХ РТПФПЛПМХ ЮЕТЕЪ ЪБЭЙЭЕООХА УЕУУЙА.

уМЕДХАЭБС ЛПНБОДБ ХЛБЪЩЧБЕФ ssh (1) УПЪДБФШ ФХООЕМШ ДМС telnet :

лПНБОДБ ssh ЙУРПМШЪХЕФУС УП УМЕДХАЭЙНЙ РБТБНЕФТБНЙ:

хЛБЪЩЧБЕФ ssh ЙУРПМШЪПЧБФШ ЧЕТУЙА 2 РТПФПЛПМБ (ОЕ ЙУРПМШЪХКФЕ ЬФПФ РБТБНЕФТ, ЕУМЙ ТБВПФБЕФЕ УП УФБТЩНЙ SSH УЕТЧЕТБНЙ).

пЪОБЮБЕФ ЙУРПМШЪПЧБОЙЕ Ч ОЕ-ЛПНБОДОПН ТЕЦЙНЕ, ФПМШЛП ДМС ФХООЕМЙТПЧБОЙС. еУМЙ ЬФПФ РБТБНЕФТ ПРХЭЕО, ssh ЪБРХУФЙФ ПВЩЮОХА УЕУУЙА.

хЛБЪЩЧБЕФ ssh ЪБРХУЛБФШУС Ч ЖПОПЧПН ТЕЦЙНЕ.

пЪОБЮБЕФ МПЛБМШОЩК ФХООЕМШ Ч УФЙМЕ localport:remotehost:remoteport .

фХООЕМШ SSH УПЪДБЕФУС РХФЕН УПЪДБОЙС РТПУМХЫЙЧБАЭЕЗП УПЛЕФБ ОБ ПРТЕДЕМЕООПН РПТФХ localhost . ъБФЕН ЧУЕ РТЙОСФЩЕ ОБ МПЛБМШОПН ИПУФХ/РПТФХ УПЕДЙОЕОЙС РЕТЕРТБЧМСАФУС ЮЕТЕЪ SSH ОБ ПРТЕДЕМЕООЩК ХДБМЕООЩК ИПУФ Й РПТФ.

Читайте также:  Установки по производств бензина

ч ЬФПН РТЙНЕТЕ, РПТФ 5023 ОБ localhost РЕТЕОБРТБЧМСЕФУС ОБ РПТФ 23 ОБ localhost ХДБМЕООПЗП ЛПНРШАФЕТБ. рПУЛПМШЛХ 23 ЬФП РПТФ telnet , ВХДЕФ УПЪДБОП ЪБЭЙЭЕООПЕ УПЕДЙОЕОЙЕ telnet ЮЕТЕЪ ФХООЕМШ SSH.

ьФПФ НЕФПД НПЦОП ЙУРПМШЪПЧБФШ ДМС МАВПЗП ЮЙУМБ ОЕВЕЪПРБУОЩИ РТПФПЛПМПЧ, ФБЛЙИ ЛБЛ SMTP, POP3, FTP, Й ФБЛ ДБМЕЕ.

ьФПФ НЕФПД НПЦОП ЙУРПМШЪПЧБФШ ЧНЕУФЕ У ssh-keygen (1) Й ДПРПМОЙФЕМШОЩНЙ РПМШЪПЧБФЕМШУЛЙНЙ ХЮЈФОЩНЙ ЪБРЙУСНЙ ДМС УПЪДБОЙС ВПМЕЕ ХДПВОПЗП БЧФПНБФЙЮЕУЛПЗП SSH ФХООЕМЙТПЧБОЙС. лМАЮЙ НПЗХФ ВЩФШ ЙУРПМШЪПЧБОЩ ЧНЕУФП РБТПМЕК, Й ФХООЕМЙ НПЗХФ ЪБРХУЛБФШУС ПФ ПФДЕМШОЩИ РПМШЪПЧБФЕМЕК.

источник

Настройка Freebsd 10

В первой части мы установили свежую версию Freebsd 10.1. Теперь нам необходимо сделать некоторые минимальные системные настройки, которые позволят эффективно, удобно и в некотором смысле безопасно пользоваться сервером.

Настройка SSH сервера

Перво наперво нужно настроить sshd для удаленного подключения. Если сейчас попробовать подключиться к серверу, то ничего не выйдет. Мы увидим окно приветствия, но залогиниться не получится. Это из-за того, что в системе у нас нет ни одного пользователя, кроме root. А этому пользователю по-умолчанию запрещено подключаться через ssh. Соответственно, у нас два пути, либо разрешить подключаться руту, либо добавить других пользователей. Сделаем и то, и другое. Сначала разрешаем пользователю root подключаться по ssh. Для этого редактируем файл /etc/ssh/sshd_config. Пока у нас голая система, воспользуемся для этого редактором ee. Открываем файл на редактирование:

Находим строчку PermitRootLogin, раскомментируем ее и ставим напротив yes. По-умолчанию там стоит no.

Здесь же я рекомендую изменить стандартный порт ssh 22 на что-то более экзотическое. Делается это для того, чтобы роботы, которые постоянно сканируют интернет и пытаются залогиниться на серваки, остались не у дел. На 22 порт постоянно кто-то ломится с несуществующими учетками и подбирает пароли. Все это отражается в логах и может мешать. Сменив порт на нестандартный, мы частично избавляемся от этой проблемы. Ищем строчку со словом Port и меняем значение с 22, например, на 11222.

Сохраняем изменения и выходим из редактора. Теперь нам необходимо перезапустить sshd для принятия изменений. Делаем это командой:

Демон sshd перезапустится. Можно пробовать подключаться по ssh, должно получиться зайти под root.

Многие считают небезопасным подключаться удаленно под учетной записью рута. Это вопрос неоднозначный, все зависит от конкретной ситуации. Добавим одного пользователя для удаленного подключения. Воспользуемся командой:

Заполняем необходимые данные пользователя. Обязательно в качестве добавочной группы укажите wheel. Если пользователя не добавить в эту группу, то он не сможет зайти потом рутом. После добавления пользователя, подключаемся им по ssh. После логина используем команду:

Вводим пароль рута и оказываемся в учетной записи root.

Как подключаться и работать решайте для себя сами.

Установка Midnight Commander

Следующим шагом я всегда устанавливаю MC и делаю редактором по-умолчанию mcedit. Мне так удобно и проще делать дальнейшие настройки сервера. Установить можно как из портов, так и из пакетов. На вопрос, как лучше, однозначного ответа нет, каждый решает для себя сам. Я обычно MC ставлю из пакетов, а все остальное уже из портов. Почему именно так, да потому, что Midnight Commander ставится очень долго из портов, тянет кучу зависимостей, а у нас в настоящий момент порты даже не обновлены. На все про все уйдет минут 15-20. Так что я предпочитаю поставить сразу из пакетов. Делаем это командой:

Так как у нас система голая, увидим сообщение:

Соглашаемся. После установки pkg начнется установка MC. Перед этим будет выведен список зависимостей, отмечено, сколько места все это займет. Со всем соглашаемся и начинаем установку. После окончания запускаем файловый менеджер:

Если у вас вместо прямых линий крякозябры, то закрываем putty и в ее настройках меняем кодировку. Идем в Windows -> Translation и выбираем KOI8-U, сохраняем и заходим снова. Теперь все должно быть в порядке.

Дальше устанавливаем редактор по умолчанию mcedit. Если этого не сделать, то в качестве редактора будет выступать vi. Если вы случайно окажетесь в нем, то не сразу сможете банально выйти из него, я не говорю уже о том, что бы что-то там отредактировать и сохранить. Так что идем в домашнюю директорию пользователя, находим там файл .cshrc, открываем, ищем строку

меняем vi на mcedit, сохраняем, закрываем.

Настройка ntp для синхронизации времени

Минимально необходимый инструментарий для настройки мы получили, продолжаем работу. Чтобы время на сервере всегда было актуальным, его надо регулярно синхронизировать. Можно пойти двумя путями. Либо запускать через определенные промежутки времени утилиту ntpdate с ключами, либо настроить и запустить службу ntpd, которая будет постоянно работать и синхронизировать время. Более правильный вариант, использовать службу, но он чуть сложнее в настройке. Чтобы синхронизировать время через ntpdate, достаточно просто ввести команду:

и время будет синхронизировано. Можно запускать эту команду через cron с определенной периодичностью. Если у вас уже запущена служба ntpd, то ntpdate не сработает, выдаст ошибку:

Настроим в таком случае ntpd. Если она у вас уже запущена, то в файле /etc/rc.conf уже есть строчка

Дальше отредактируем файл /etc/ntp.conf В качестве серверов синхронизации укажем:

и добавим две строчки в конец:

Читайте также:  Установка порта для капельниц

Сохраняем, перезапускаем ntpd командой:

Теперь наш сервер будет автоматически синхронизировать свое время.

Установка и настройка ipfw

Настройка фаервола сервера это тема отдельной статьи, тут я подробно останавливаться на этом не буду. Мы просто запустим фаервол на нашей freebsd 10, установим скрипт для безопасного редактирования правил. А дальше каждый уже сам по своему желанию сможет безопасно настраивать удаленно фаервол, не боясь потерять доступ к серверу.

Для работы ipfw необходимо либо пересобрать ядро с нужными функциями, любо подгружать модуль во время загрузки. Второй вариант проще и быстрее, воспользуемся им. Добавим в /etc/rc.conf строку:

Если нам не нужен NAT, forward портов, то больше ничего делать не нужно, ipfw подключится во время загрузки сервера. Если мы оставим только эту строку и перезагрузим сервер, то удаленно мы к нему больше не подключимся, фаервол заблокирует все соединения. Чтобы того не произошло, указываем путь к файлу с правилами:

Идем в указанную папку и создаем файл следующего содержания:

Это полностью открытый фаервол, который разрешает все подключения. Делаем файл исполняемым. Перезагружаем сервер. После перезагрузки подключаемся удаленно. Проблем не должно возникнуть, фаервол у нас ничего не блокирует. Убеждаемся в этом, запустив команду:

На первом месте наше правило, которое все разрешает, на втором, запрещающее. Все пакеты попадают под первое правило. В Freebsd есть замечательный скрипт, с помощью которого можно безопасно настраивать ipfw. Работает он просто. Вы запускаете скрипт, редактируете правила, потом сохраняете их и принимаете изменения. Скрипт после применения правил выводит сообщение о том, что все ли в порядке, записываем правила или нет. Если вы где-то ошиблись и вас отключило от сервера, вы не сможете положительно ответить на вопрос. Скрипт ждет 30 секунд ответа и если его не получает, откатывается на предыдущую версию правил. Вы спокойно подключаетесь и смотрите, где ошиблись.

Теперь можно экспериментировать. При запуске скрипта будет открываться файл с правилами ipfw. После сохранения файла и выхода из него, скрипт спросит, применить или нет новые правила. Дальше я уже описал его логику.

Обновление портов

Основные настройки сделали. Теперь подготовим нашу систему к установке софта. обновим дерево портов с помощью утилиты portsnap. При первом запуске используем команду:

Утилита скачает и распакует порты в папку /usr/ports. Последующее обновление будет производиться командой:

Добавим ее в cron для регулярного обновления портов раз в сутки. Для этого идем в /var/cron/tabs и создаем там файл root.

Файл должен быть следующего содержания:

Обращаю внимание, что команда в планировщике записана не так, как мы запускали из консоли. Это сделано специально, чтобы не грузить сервера обновлений по крону в одно и то же время. Для обновления через планировщик используется специальная команда porsnap cron, которая делает небольшой случайный разброс по времени для обновления, чтобы все клиенты обновлялись в разное время, а не строго по часам.

На этом наша настройка системы закончена, переходим к следующей части, в которой займемся настройкой непосредственно компонентов web-сервера.

источник

Удаленный доступ из Windows на FreeBSD для начинающих

Часть 1, подготовительная. Создание пользователя и наделение его необходимыми правами.

Сначала вся работа ведется на удаленном компьютере под Фрюшей.
У меня не было своего пользователя на удаленном компьютере, поэтому надо сначала его создать.

% sudo adduser
далее пойдут вопросы, на которые можно ответить примерно так:
Username: shurchik
Full name: (на него можно не отвечать, это инфа для профиля пользователя),
UID (Leave empty for default): (разрешаем системе самой выбрать свободный идентификатор, пропускаем это),
Login group [shurchik]: wheel (сюда вписываем основную группу пользователя, по умолчанию она равна имени пользователя, но для создания системного администратора лучше поместить его в группу wheel),
Login group is wheel. Invite shurchik into other groups?: (Запрос тоже можно пропустить, поскольку не надо включать этого пользователя в другие группы. Потом тоже можно обавить его в группы),
Login class [default]: (Его тоже пропускаю, но теоретически можно задать локаль – раскладку и язык пользователя, сказав russian.),
Shell (sh csh tcsh bash nologin) [sh]: bash (Это запрос о командной оболочке, можно оставить и shell, который идет по умолчанию, но более удобный bash или zsh),
Home directory [/home/shurchik/]: (Если эта домашняя директория устраивает, то нажимаю Enter, если нет – пишу другую, например, /home/test/),
Home directory permissions (Leave empty for default): (можно принудительно задать права доступа, но я оставляю все как есть по умолчании),
Use password-based authentication? [yes]: (тоже оставляю по умолчанию, поскольку иначе войти обычным способом в систему не смогу),
Use an empty password? (yes/no) [no]: (тоже оставляю по умолчанию, поскольку вход без пароля не имеет смысла),
Enter password: (ввести пароль для пользователя, но учитывать, что пароль при вводе никак не обозначается, даже звездочками),
Enter password again: (тут тоже все понятно, повторить пароль),
Lock out the account after creation [no]:

После всего в терминале появится профиль пользователя с вопросом, согласны с ним или нет:
Username: shurchik
Password:******
Full name:
UID: 1010
Class:
Groups: wheel
Home directory: /home/shurchik/
Home mode:
Shell: /bin/bash
Locked: no
OK? (yes/no):
Набираю yes

Adduser: INFO: Successfully added (shurchik) to user database.
На новый запрос о создания еще одного пользователя ответить no:
Add another user? (yes/no): no
Goodbye!

Читайте также:  Установка переработки навоза в подстилку

Для того, чтобы свежесозданный user имел право на sudo надо либо всю группу wheel прописать в файле sudoers, либо только самого пользователя.
Это делается так:
В файле /PCBSD/local/etc/sudoers раскомментировать строку
% wheel ALL=(ALL) NOPASSWD: ALL
(Это означает, что теперь доступ к sudo (superuser do) открыт для всех членов группы wheel без пароля),
! Изменения в файле sudoers вступают в силу сразу же после его сохранения. Необходимо поставить на него права 440.

Теперь войдем в систему под новым пользователем:
% su shurchik
password:

Можно узнать, какие команды доступны этому пользователю
% sudo –l
Можно вывести список всех групп и их членов:
% less /etc/group

Часть 2, основная. Настройка работы демона sshd.
Генерация private и public key.

Работать я буду с программой Openssh.

1. Настройка программы ssh
Открыть 22 порт на шлюзе.

Сначала проверим, запущен ли демон на сервере. (Демона ssh зовут sshd)
Способы:
% ps auwx | grep sshd

Или
% sockstat -4l | grep :22
Если выведет:
sshd …tcp4 :22
значит, 22 порт слушается (по умолчанию. ssh идет через этот порт)
Если порт не слушается, значит, демон ssh не запущен.
Или же можно просто дать команду:
% sudo /etc/rc.d/sshd start
Если выругается, значит, надо изменить конфигурационный файл.

Тогда идем в конфигурационный файл rc.conf.local (Расположен в /etc). Если его еще нет, то создаем его и прописываем там sshd_enable = ”YES”. (Можно вместо этого такую же строку написать просто в rc.conf.)
Это нужно для того, чтобы можно было запускать демон ssh командой start. Изменения вступают в силу сразу же.

Теперь снова дадим команду запуска ssh:
% sudo /etc/rc.d/sshd start должен запуститься.
Теперь снова проверить его работу, слушается ли 22 порт:
% sockstat -4l | grep :22
Должен вывести:
sshd …tcp4 :22
Кроме того, можно дать команду, например, соединиться с локалхостом:
% ssh localhost
Если идет ..connection refused, значит, ssh не запущен. И надо снова смотреть конфиг.

2. Генерация ключей
Даем команду сгенерировать ключи:
% ssh-keygen
По умолчанию способ шифрования rsa. Чтобы сгенерировать, например, методом шифрования dsa, надо сказать % ssh-keygen –t dsa
Начнется генерация пары ключей private key/public key.
Скажет:
Enter passphrase: (лучше длинную и сложную)
Генерируются ключи в директории

Теперь проверим, что там лежит:
% ls –l

/.ssh
id_rsa – это private key (может называться, например, просто rsa),
id_rsa.pub – это public key (может называться, например, rsa.pub).

Далее надо положить публичный ключ на сервер в понятном тому виде. Для этого делаем следующее:
Добавляем содержимое файла id_rsa.pub к содержимому файла authorized_keys.
Это делается командой:
% cat id_rsa.pub >> authorized_keys
Она добавляет содержимое id_rsa.pub в конец файла authorized_keys. А если его нет, то создает. cat – сокращение от слова concatenate.

Если файла authorized_keys вообще нет, то можно его создать копированием id_rsa.pub:
% cp id_rsa.pub authorized_keys

Проверим еще раз содержимое папки .ssh:
% ls –l

/.ssh
(Должно быть примерно следующее)
id_rsa
id_rsa.pub
authorized_keys

Файл authorized_keys оставляем на удаленном компьютере, а id_rsa и id_rsa.pub сохраняем куда-нибудь в другое место и удаляем из папки

/.ssh. Важно не потерять публичный ключ, потому что в противном случае придется все генерировать заново.
И, напоследок, узнаем название хоста на удаленной машине (он нужен при подключении через ssh), после чего перейдем к рабочему компьютеру и будем мучать уже его.
% hostname
testhost

Теперь узнаем ip-адрес компа:
% host testhost

!Note: FreeBsd7 использует способ шифрования des-, который совместим с программой Putty. А вот FreeBsd9 уже использует другой способ шифрования, который данная программа не распознает. Поэтому в такой случае придется генерировать ключи уже в самой программе putty-gen, а потом их конвертировать в вид, понятный Юниксу.

3. Преобразование закрытого ключа в формат, понятный программе Putty.
(На Windows)
Скачать программу Putty, установить ее. Принести свежесгенерированный ключ на машинку с Windows. Putty понимает ключи только одного формата (своего=) .ppk

Запустить программу Putty-gen (устанавливается одновременно с основной или по отдельности).
а. File-load private key (поскольку у меня Putty установлена именно на рабочей машинке, которой требуется именно закрытый ключ, то конвертируем его.)
б. Save private key (например, id_rsa.ppk)

Часть 3, торжественная. Настройка Putty и установление шифрованного удаленного соединения.

1. Запустить Putty.
Настройки следующие:

Session: hostname testhost (или ip)

Logging: какие-нибудь логи, по желанию + отметить always overwrite it (или append to the end of it), чтоб не спрашивал каждый раз, перезаписывать ли логи;

Connection: auto-login username shurchik

SSH: browse… указать путь к файлу id_rsa.ppk (может лежать где угодно, putty абсолютно безразлично., откуда его брать.)

И теперь все сохраним:
Session: Saved sessions: new (задать имя этой сессии), нажать Save, сессия new появится в списке.
Чтобы потом ее вызвать, не настраивая все заново, после запуска Putty просто выбрать new из списка и нажать Load.
Теперь нажать Open и откроется терминал с просьбой ввести pass-фразу.
Если что-то с ключами пойдет не так, то программа, ругнувшись, запросит логин и пароль (shurchik и пароль к нему).

2. В конце можно запретить обращаться по шифрованному соединению на удаленный компьютер по логину-паролю (оставив только возможно подключения по пассфразе.)
На удаленном компьютере заходим в конфигурационный файл ssh:
/etc/ssh/sshd_config.
Там надо дописать (или раскомментировать) строку:
UsePAM no.

источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *