FreeBSD з нуля або Посібник на згадку

Написано так-авно собі і перенесено зЖЖ. :) Т.к. Юнікс / Лінукс тільки недавно впритул став займатися, то багато що робив вперше, забувається, якщо не записати десь. Ось вирішив у ЖЖ оформити: може кому ще знадобиться. Здійснюю установкуFreeBSD 8.1на серверIBM System x3550з 2,5"SAS"гвинтами". Умовимося, що всі команди, назви файлів і, тим більше, опції команд, даються в тексті саме такими, які повинні бути: в необхідному регістрі, що описується ситуацією, І як звичайно:$означає, що користувач зі звичайними правами (не повними, природно),#- права користувачаroot. Встановлюємо систему через пунктStandart(опис установки - окрема тема, добре освітлена в Інеті та книгах).sshd, щоб потім можна було віднести сервер в серверну і поставити в стійку, щоб розуміти, шумом своїм не заважав нам. програми будемо ставити за потребою з портів. Після установки виконуємо налаштування користувача, яким підключатимемося до сервера заSSH:FreeBSDвіддалено не дає доступ повний доступ користувачам за командою

якщо вони не входять до групиwheel. Для цього реєструємо потрібних користувачів уFreeBSDкомандамиadduser(простіше та рекомендованіше) абоpw(для досвідчених користувачів). Після цього вводимо:

НатискаємоA(курсор зміщується за останній символ) і через ком дописуємо потрібних нам користувачів). Вийде приблизно таке:

Звичайно, додавати сюди требаТІЛЬКИтих користувачів, які повинні мати віддалений доступ. Міркування безпеки.Для віддаленого входу запускаємопрограму, що дозволяє підключатися за протоколомSSH(наприкладPuTTY). Перше підключення до сервера викликає пропозицію прийняти сертифікат сервера для шифрування трафіку. Але для того, щоб підключитися поSSHдо відповідної системи, на ній повинен бути запущений демонsshd. Він може бути запущений двома способами: 1. одночасно системою стартових скриптівrc.dчерез конфігураційний файл/etc/rc.conf, додавши до нього:

Аinetd, у свою чергу, запускається через той самий/etc/rc.conf:

Віддалений вхід з правами користувачаrootпроходить у два зразки: 1. На запит'login as:'вводимо ім'я користувача, потім тиснемоEnterі на запит'Password:'- пароль цього користувача. Якщо все правильно - отримуємо права користувача. 2. Вводимо команду

та на запит'Password:'- пароль користувачаroot. Все - віддалено можна робити практично все. :):):)

3. Утиліта для роботи з пакетами: pkgng

Або, якщо при першому викликуpkgцієї утиліти в системі не було встановлено, система запропонувати її встановити. Погоджуємось. Тепер все готове переходити наpkgng. Зробимо ("на всякого пожежника") архів з інформацією щодо встановлених пакетів у старому форматі:

Для вказівки того, що ми перейшли на нову систему, в/etc/make.confпропишемо таке:

І переведемо базу зі старого формату до нової спеціальної утиліти:

Наприкінці роботи утиліти pkg2ng, ймовірно, буде видано повідомлення:

Для вирішення цієї проблеми відновив файл pkg.conf "за замовчуванням":

Створимо конфігураційний файл до роботи з віддаленими репозитаріями:

І в цей файл/usr/local/etc/pkg/repos/FreeBSD.confвпишемо:

І оновимо базу пакетів:

Тепер у каталозі/var/db/pkg/з'явилися нові файли з даними про пакети у форматахSQLIteтаXML:

, деlocal.sqlite- база встановлених пакетів та портів у форматіpkgng;repo-FreeBSD.sqlite- дані про віддалені репозиторії (з'явиться при першому використанні);vuln.xml- дані аудиту безпеки (з'явиться при використанніpkg audit. Все, тепер старі утиліти зpkg_installповідомлятимуть, що замість їх необхідно використовуватиpkg. Для позбавлення "від старих звичок" видалимо (тепер уже за допомогоюpkgng) раніше використовувані утиліти. Наприклад, мій список був такий:

Функціонал цих утиліт "вшитий" тепер уpkg:

4. Порти: встановлення, налаштування, видалення програм

Обслуговування (установка, оновлення, видалення) програм з допомогою системи портів - головне зручністьBSDсистем. А багато користувачівBSDкажуть - істотна перевагаBSDсистем передLinux.

а) Конфігурування порту

Для конфігурування порту перед його встановленням необхідно зайти в каталог порту і там вже конфігурувати його:

Скидання конфігурації порту на стандартну:

Не всі порти потребують конфігурації. Якщо потрібно подивитися, у якій конфігурації встановлена ​​програма, це можна зробити, подивившись результати роботи команд:

де замістьpostfixзадається ім'я програми, що проглядається, а результатом є список використовуваних бібліотек, що підключаються; та

Результатом роботи якої буде список опцій компіляції, які були використані, встановлені при запускуmake configпередкомпіляцією програми.

б) Встановлення програм із портів

Попередньо необхідновстановити портина систему, де стоїтьFreeBSD. Для цього може знадобитися знайти, де знаходиться порт програми, що встановлюється:

А можна інакше:

Після цього можна встановити програми. Для цього достатньо зайти в каталог програми, скомпілювати та встановити програму. Наприклад, для встановлення командного інтерпретатораbashтреба виконати таке: 1. переходимо до каталогу програми:

2. компілюємо і чистимо каталог порту (перед компіляцією, залежно від програми, що встановлюється, може бути видане віконце з налаштуванням конфігурації програми: додавання/видалення модулів/можливостей; треба буде вибрати потрібно і'Ok'). Якщо не було видано повідомлень про помилку - програма встановлена ​​і готова до роботи або попереднього налаштування, про що зазвичай видається відповідне повідомлення.

3. Якщо необхідно, щобbashбув завантажуваним за замовчуванням для якогось користувача, то:

Все: після чергової реєстрації в даній системі користувачу, вказаному в параметрі, буде автоматично завантажений командний процесорbash. Варто, однак, сказати, що окрім себе програми встановлюють (або можуть вимагати) додаткові компоненти, програм, бібліотеки, потрібні їм для роботи. Тому, якщо після встановлення програми глянути список встановлених програм, то можемо побачити щось подібне:

Ще ситуація: буває, що раніше встановлена ​​програма скомпільована не з тією функціональністю, яка необхідна зараз. У мене, наприклад, було встановлено postfix у " чистому " вигляді, тобто. без додатків для роботи з іншими програмами (MySQL,PostgreSQL,OpenLDAPта ін.), а треба було забезпечити підтримкуOpenLDAP. Сама переустановка. Що може бути простішим! :) Тільки перед оновленням рекомендується зберегти каталог/usr/local/etc/postfix/десь - це каталог з основними конфігураційними файламиpostfix. Перед оновленням необхідно перейти в каталог порту програми, що оновлюється (для прикладу -postfix)

і вже після цього виконати

Налаштувати потрібну конфігурацію та

Якщо програма відмовляється встановлюватися, т.к. її стара копія ще активна, попередньо необхідно видалити стару установку (див. нижче).

в) Оновлення програм

Для оновлення встановлених портів існує безліч методів та утиліт. Особисто на мою думку, зараз дуже зручно користуватися портом portupgrade:

Перед використанням рекомендується обновити базу портів до актуальної . Перегляд портів, які потребують оновлення:

Список усіх пакетів без опису:

Список залежностей, необхідних додатком, та ще не встановлених у системі:

г) Зміна версій програм

У разі необхідності зміни версії програми, встановленої з портів спочатку треба перевірити базу портів на суперечливість і виправити, якщо такі є:

Безпосередньо зміна версії (у прикладіperl 5.16наperl 5.20):

І останній штрих - оновлення рекурсивно всіх пакетів, для якихperl- основний:

Після закінчення версія ПЗ змінена і супутні компоненти - теж.

д) Видалення програм

І останнє, але не менш важливе, ніж попередні пункти: видалення програми, утиліти, бібліотеки виконується командою

в каталозівідповідної програми. Або

у будь-якому місці – не обов'язково в каталозі відповідної програми. Одне 'але': видалення конфігураційних та інших файлів, крім виконуваних, залишається ручною роботою, тому бажано, щоб десь це фіксувалося на випадок можливого 'відкату'. Правда і для цього випадку за роки розвитку FreeBSD з'явилися нові утиліти, так і розширилися можливості старих. Так, наприклад, можна видалити відразу все (пакети та залишки від них (бібліотеки та ін.)):

Тут використано дуже корисну утилітуportsclean, яка дозволяє дуже якісно вичищати залишки деінстальованих портів, пакетів і непотрібні бібліотеки або застарілі пакети:

е) Видалення залежностей, що не використовуються.

е) Аудит безпеки портів

Для автоматичного контролю проблем з безпекою у встановлених у системі портів (замість постійного штудування відповідних розсилок) створено спеціальну утилітуportaudit:

Утилітою користуватися дуже просто:

5. Підсвічування синтаксису (less, man)"

Для зручнішого читання тексту вlessпередбачено кілька стилів написання. Але всі вони виводяться одним кольором, що дуже зручно. Між тим можна використовувати перевизначення змінних утилітиlessдля встановлення своїх колірних переваг:

Знаючи коди кольорів, можна вказати свої кольори. Наприклад, варіант дляcsh:

Тут вказується (але не обов'язково) спеціальний символ"^[", який вводиться кодом символу027після натискання комбінації клавішCtrl-O, наприклад, уee(FreeBSD),nano(Linux). Або інший варіант колірної схеми дляbash:

Після виправлення конфігів оболонок не обов'язковоперелогінуватися: достатньо зробити команду (дляbash):

6. Установка FreeBSD через SSH

а) Запуск локального сервера sshd

Завантажуємося з інсталяційного диска, виходимо в консоль. Створюємо каталог та монтуємо розділ /etc:

Дозволяємо вхід підrootуSSH:

Задаємо пароль дляroot:

Запускаємо демонSSHсервера:

Приймаємо ключ та логінимся. Все - тепер можна не напружуватись у локальній консолі сервера. :)

7. Віртуальні віконні менеджери

Створюємо та відкриваємо на редагування конфігураційний файл.screenrc(за замовчуванням він не створюється):

Заповнюємо зразковим вмістом:

Можна ще додати створення під час запуску необхідних вікон:

У файлі.screenrcі в "командному" режимі доступні наступні команди (їх можна ввести в процесі роботи програми, натиснувши 'Ctrl-a :'):

  • acl-команди, що визначають доступ до сесії, привілеї - як користувачів, так груп;
  • bind-команди – прив'язка клавіш;
  • команди оформлення;
  • інші команди. Для керування можна використовувати параметри командного рядка:
  • Також доступний великий "парк" комбінацій гарячих клавіш. Короткий список найбільш уживаних (інше - в "манах"):