Содержание
Начальная подготовка к работе с системой FreeBSD
# portsnap fetch (обновляем порты)# portsnap extract (распаковываем их) # cd /usr/ports/ports-mgmt/portmaster && make install clean (устанавливаем portmaster для работы с портами) # portmaster -PP ru-freebsd-doc (документация по умолчанию в каталог /usr/share/doc, не обязательно) # portmaster /usr/ports/misc/mc (устанавливаем Midnight Commander) # drill ya.ru (проверяем DNS)
Русификация терминала FreeBSD с использованием UTF-8
При добавлении пользователя можно указать класс russian
pw useradd user_name -L russian
Если пользователь существует, то тогда редактируем:
pw usermod user_name -L russian
В том числе делаем это и для root:
pw usermod -n root -L russian
В /boot/loader.conf добавляем параметр
hw.vga.textmode=0
Далее выходим и заходим под этим пользователем, получаем русский язык в удаленной консоли.
Если нужен русский язык непосредственно на экране компьютера, а не через удаленное подключение, то нужно включить консольный драйвер vt, для этого добавить в /boot/loader.conf строку:
kern.vty=vt
После перезагрузки терминал будет отображать русские буквы.
Коротко о новом драйвере консоли FreeBSD — VT (aka newcons).
Редактор по умолчанию в FreeBSD
Чтобы вместо vi использовать другой редактор (например, для редактирования cron), можно поменять редактор, который используется по умолчанию.
Переходим в домашний каталог и редактируем файл .cshrc
cd ~
ee .cshrc
Ищем строчку setenv EDITOR vi и меняем vi на другой более удобный редактор. На новой системе можно испо\льзовать ee, а если же установлен Midnight Commander, то пишем mcedit.
Далее перечитываем настройки либо логинимся заново
source .cshrc
Работа с портами FreeBSD
Какие порты нужно обновить
pkg version -v | grep "need"
установить порт
portmaster lang/perl5.18
удалить порт
portmaster -e lang/perl5.18
переустановить порт с новой версией
portmaster -o lang/perl5.32 lang/perl5.30
# обновить порты, которые были собранные на старой версии perl
portmaster -R `pkg shlib -qR libperl.so.5.30`
обновление всех портов, для которых есть обновления
portmaster -a
# или если использовать пакеты:
pkg upgrade
удалять при установке старые версии пакетов
portmaster -d ...
пересобрать все что зависит от порта gettext
portmaster -r gettext
Просмотр доступных новых версий
portmaster -L
Обновить все PHP5 пакеты
portupgrade "php5-*"
Показать основные порты (не зависимости)
portmaster --list-origins
Удаление неиспользуемых зависимостей
# pkg autoremove
удалить все старые скаченные дистрибутивы пакетов из distfiles
portmaster --clean-distfiles-all
Аудит безопасности
pkg audit -F
Проверить все ли версии библиотек корректно установлены (если выдаются ошибки, то порты с ошибками нужно переустановить заново с учетом новых версий библиотек)
pkg check -Bd
Установить порт не взирая на уязвимости
make DISABLE_VULNERABILITIES=yes install clean
Удалить порты, которые нужны были только для установки и самостоятельной ценности не несут (правда при следующей установке приложений они опять установятся)
pkg autoremove
Обновить все порты, которые требуют обновления
portmaster -d `pkg version | grep "<" | awk '{ print $1 }'`
ОБНОВЛЕНИЕ ДЕРЕВА ПОРТОВ
Первый запуск
#portsnap fetch extract
Обновление дерева портов
# portsnap fetch update
Можно просто запустить с auto — само запустит extract или update в зависимости от того что необходимо:
# portsnap auto
Ежедневное обновление — прописать в файл /etc/crontab
0 3 * * * root portsnap -I cron update && pkg_version -vIL=
Если выводится ошибка Snapshot is corrupt, тогда удаляем и заново скачиваем базу портов
rm -rf /var/db/portsnap
mkdir /var/db/portsnap
portsnap fetch extract
Обновление списка пакетов
pkg update
КОМАНДЫ MAKE ДЛЯ РУЧНОЙ УСТАНОВКИ
извлечь исходники для сборки
make extract
указать параметры для сборки, они запомнятся для обновления порта
make config
показать варианты конфигурирования
make showconfig
удалить пользовательские настройки для сборки
make rmconfig
показать какие файлы будут загружены
make fetch-list
показать какие файлы будут загружены включая все зависимые
make fetch-recursive-list
собрать приложение
make
собрать и установить приложение
make install
удалить приложение
make deinstall
переустановить приложение
make reinstall
удалить рабочие файлы
make clean
Добавление подключения через SSH по файлу ключа во FreeBSD
Запускаем создание файлов ключа, лучше использовать ed25519
ssh-keygen -o -a 100 -t ed25519
если сервер не поддерживает ed25519, то используем RSA 4096 бит
ssh-keygen -o -a 100 -t rsa -b 4096
Если создаем ключ, для текущего пользователя, то файлы будут сохранены в домашнем каталоге: ~/.ssh/id_rsa (приватный ключ) и ~/.ssh/id_rsa.pub (публичный ключ).
Можно изменить расположение и название файлов при выполнении команды генерации ключа (если указать только название файла, то будут сохранены в корне папки пользователя).
Приватный ключ копируем и забираем себе на компьютер, на сервере его удаляем, а публичный ключ кладем в домашней папке пользователя (к которому хотим залогиниться) в файл ~/.ssh/authorized_keys, ставим этому файлу права 600, а папке ~/.ssh/ права 700
chmod 600 ~/.ssh/authorized_keys
chmod -R 700 ~/.ssh
В файле /etc/ssh/sshd_config включаем опцию
PubkeyAuthentication yes
После удачного тестирования авторизации по ключу не забываем выключить авторизацию по паролю и авторизацию для рута
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Можно сгенерировать файлы ключей на компьютере и также потом просто положить публичный ключ в файл ~/.ssh/authorized_keys пользователя (см. ниже как создать ключ на компьютере).
Если на сервере не сгенерированы серверные ключи ssh или сервер был клонирован со старыми ключами, то генерируем ключи на сервере:
rm -v /etc/ssh/ssh_host_*
ssh-keygen -A
rm -v /etc/ssh/ssh_host_dsa_*
Подключение по SSH с ключом из Windows
Для подключения из-под Windows используем старый добрый Putty, но нужно скачать последнюю версию (>=0.73), чтобы успешно импортировать ключи.
Добавление существующего ключа
Запускаем программу puttygen.exe, в меню выбираем Conversions -> Import key и выбираем наш сохраненный файл ключа. Если ключ был создан с паролем, то будет запрошен пароль на ключ.
В открывшемся окне увидим наш загруженный ключ, можно сменить там если нужно пароль, далее нажимаем Save private key и сохраняем ключ в файле *. ppk.
Генерирование ключа в Putty
Можно приватный и публичный ключ сгенерировать в Putty. Запускаем puttygen.exe, в параметрах выбираем ed25519 (или если сервер не поддерживает, то RSA с длиной ключа 4096). Нажимаем кнопку Generate, нужно подергать мышью для создания рандомности, затем вводим пароль доступа к ключу, можно ввести в key comment что-то осмысленное и сохраняем ключ кнопкой Save private key. Поле сверху содержит публичный ключ, который нужно скопировать на сервер в папку пользователя.
Добавление ключа для подключения в Putty
Идем в Putty, для нужного подключения заходим в меню слева в пункт Connection->SSH->Auth и в поле «Private key for authentification» выбираем наш сохраненный ключ.
Далее при подключении будет запрашиваться имя пользователя и автоматом подставляется сохраненный приватный ключ (плюс будет запрашиваться пароль для доступа к этому ключу, если такой пароль был установлен при генерации ключа).
Сохранение ключей и паролей в KeePass
Приватные ключи для соединения через SSH можно хранить в KeePass. Для этого ставим плагин KeeAgent. Файл ключа сохраняем для нужной записи во вкладке Advanced->File attachments. Далее идем во вкладку KeeAgent, отмечаем галку «Add KeeAgent to use this entry», из списка выбираем загруженный файл ключа и нажимаем ОК.
Далее идем в меню Tools->KeeAgent, снизу нажимаем кнопку «Add» и выбираем из меню «from KeePass». Ищем нашу запись и выбираем ее. Ставим галку «Require confirmation» если хотим чтобы перед авторизацией выводился запрос Да/Нет, иначе авторизация будет проходить автоматом, будет вылезать только уведомление (можно включать эту опцию глобально для всех ключей в настройках программы — Tools->Options->KeeAgent->Always require user confirmation…).
Чтобы при запросе выводился список из ключей для выбора (иначе будут для одного логина перебираться все возможные ключи и сервер может отказать после нескольких неудачных попыток) надо в глобальных настройках включить опцию Tools->Options->KeeAgent->Show key selection dialog…
Теперь в настройках Putty у нужного соединения идем в Connection->SSH->Auth, ставим галки «Attempt authentificationi using Peagant» и «Allow agent forwarding» и сохраняем настройки.
После этого в Putty после коннекта будет запрошен логин и автоматом подставится нужный ключ.
IPFW
Конфигурация
/etc/firewall.conf
Применить правила без перезагрузки
/bin/sh /etc/firewall.conf