Перейти к содержимому

Rc conf где находится

  • автор:

Chapter 2 Конфигурирование FreeBSD-системы

Если Вы выполняли установку FreeBSD, используя сетевое соединение, то некоторые параметры возможно уже сконфигурированы для Вашей FreeBSD-системы.

Даже, если Вы уверены, что FreeBSD-система была правильно сконфигурирована на момент установки, рекомендую Вам еще раз проверить правильность этой информации для предотвращения возникновения проблем в дальнейшем.

2.1 Проверка имени узла FreeBSD-системы

Возможно, что имя узла FreeBSD-системы уже было определено и сохранено в процессе первичной установки. Для проверки, что это действительно так, введите следующую команду:

# hostname

Появится имя узла FreeBSD-системы. Если имя выглядит корректным (а это очень субъективно 🙂 переходите к Section 2.2.

Например, для нашей локальной сети, в результате работы команды `hostname`, мы бы увидели ‘curly.my.domain’, если бы имя узла было установлено правильно в процессе или после установки. (На данном этапе не сильно обращайте внимание на часть «.my.domain», мы рассмотрим это позже. Самая важная часть — это имя, которое находится перед первой точкой.)

Если же имя узла не было определено в процессе установки FreeBSD возможно Вы увидите такой ответ ‘myname.my.domain`. Тогда Вам необходимо отредактировать файл /etc/rc.conf для установки имени машины.

2.1.1 Конфигурирование имени узла FreeBSD-системы

Памятка: Вы должны быть зарегистрированы в системе как пользователь ‘root’ для редактирования системных конфигурационных файлов!

ПРЕДУПРЕЖДЕНИЕ: Если Вы допустите ошибку при редактировании системных конфигурационных файлов, может случиться так, что система НЕ СМОЖЕТ ЗАГРУЗИТЬСЯ правильно! Будьте предельно осторожны!

Конфигурационный файл, в котором определяется имя узла FreeBSD-системы при загрузке называется /etc/rc.conf. Используйте обычный текстовый редактор (‘ ee ‘) для редактирования этого файла.

После того, как вы зарегистрируетесь в системе как пользователь ‘root’ загрузите файл /etc/rc.conf в редактор, используя следующую команду:

# ee /etc/rc.conf

Используя клавиши управления курсором, перемещайтесь в конец файла до тех пор, пока не найдете строку, которая определяет имя узла FreeBSD-системы. По умолчанию, эта строка выглядит так:

--- ### Basic network options: ### hostname="myname.my.domain" # Set this! ---

Внести в эту секцию такие изменения (в нашем примере):

--- ### Basic network options: ### hostname="curly.my.domain" # Set this! ---

Изменив имя узла, нажмите клавишу ‘Esc’ для выхода в командное меню. Выберите пункт «покинуть редактор» и ответьте утвердительно на запрос «сохранить изменения?».

Prev Home Next
Параметры локальной сети, принятые в данном руководстве Проверка конфигурации Ethernet-интерфейса

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в < questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите < doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите < frdp@FreeBSD.org.ua>.

Rc conf где находится

Основные настройки системы располагаются в /etc/rc.conf — например, имя машины, использование DHCP, тип мыши. Изначально этот файл очень маленький — большинство установок берется из /etc/defaults/rc.conf — файла установок по умолчанию. Администратор должен сделать записи в rc.conf, чтобы переопределить строки по умолчанию из /etc/defaults/rc.conf (непосредственно /etc/defaults/rc.conf редактировать нельзя).

В файле /boot/device.hints находятся настройки оборудования, которые FreeBSD применяет при загрузке (номера прерываний, диапазон портов и проч.).

Файлы конфигурации приложений обычно устанавливаются в /usr/local/etc. В случае, если приложению нужно большое количество конфигурационных файлов, для их хранения будет создан подкаталог. Обычно, вместе с установкой портов и пакетов, устанавливаются и примеры конфигурационных файлов. Обычно они имеют расширение .default. Если не существует конфигурационных файлов для этого приложения, они будут созданы путём копирования .default файлов.

Также автонастройка производится скриптами, которые находятся в каталоге /usr/local/etc/rc.d (они запускаются при старте системы). Каталог прописан в строке local startup=»/usr/local/etc/rc.d» файла /etc/rc.conf.

Rc conf где находится

Файлы rc являются конфигурационными скриптами системы. Эти файлы выполняются скриптом init , который запускается при загрузке системы и в свою очередь запускает основные «демоны» системы (такие как sendmail , cron и т.д.) и конфигурирует параметры сети, устанавливает имя компьютера и т.п. Обычно файлы rc находятся в каталоге /etc/rc.d , однако в некоторых версиях их помещают в каталог /etc . Дистрибутивы Slackware используют файлы rc.inet1 и т.д.\ в каталоге /etc/rc.d , а дистрибутивы RedHat и другие используют набор каталогов.

Далее будут описываться файлы rc , с помощью которых конфигурируется программное обеспечение протокола TCP/IP. Таких файлов два: rc.inet1 и rc.inet2 . Файл rc.inet1 служит для конфигурирования основных параметров сети (например, устанавливает IP-адрес и информацию о маршрутах), а файл rc.inet2 запускает демоны TCP/IP ( telnetd , ftpd и т.д.).

Во многих версиях системы эти два файла объединяются в один, называемый rc.inet или rc.net . Имя rc -файла не имеет значения; важно, чтобы он правильно исполнял свои функции и запускался во время загрузки скриптом init . Последнее обеспечивается соответствующими строками в файле /etc/inittab (при необходимости этот файл нужно отредактировать, «раскомментировав» строчки, относящиеся к нужным rc -файлам). В худшем случае пользователю придется создавать самому файлы rc.inet1 и rc.inet2 «с нуля» и добавить запускающие их строчки в файл /etc/inittab .

Как уже говорилось выше, файл rc.inet1 производит основное конфигурирование сетевого интерфейса. Сюда входит задание IP-адреса компьютера и информации о таблице маршрутов сети. Таблицы маршрутов используются для того, чтобы направлять входящие в сеть и выходящие из сети датаграммы (datagrams). В самом простом случае имеется всего три маршрута: один для пакетов, посылаемых на данный компьютер, второй — на другие компьютеры в той же сети, и третий — на компьютеры вне локальной сети (через шлюз). Для конфигурирования этих параметров используются две программы: ifconfig и route . Обе программы обычно находятся в каталоге /etc .

Программа ifconfig используется для конфигурирования интерфейса сетевых устройств. При этом задаются такие параметры, как IP-адрес, маска, широковещательный адрес и т.п. Программа route используется для создания и изменения элементов в таблице маршрутов.

Для большинства конфигураций файл rc.inet1 может выглядеть примерно следующим образом. Этот пример, разумеется, следует приспособить к конкретному компьютеру и не использовать те IP-адреса, которые указаны в этом примере (они соответствуют некоторым конкретным компьютерам в сети Интернет).

#!/bin/sh # Это пример файла /etc/rc.d/rc.inet1 - конфигурирование # интерфейсов TCP/IP # Сначала конфигурируем сетевую заглушку HOSTNAME=`host name` /etc/ifconfig lo 127.0.0.1 # используется маска # по умолчанию 255.0.0.0 /etc/route add 127.0.0.1 # маршрут к сетевой заглушке # Теперь конфигурируем устройства Ethernet. Если используются только # сетевая заглушка и/или SLIP, закомментируйте остальные строки. # Измените на значения для своего компьютера IPADDR="128.253.154.32" # ЗАМЕНИТЕ на ВАШ IP-адрес NETMASK="255.255.255.0" # ЗАМЕНИТЕ на ВАШУ маску NETWORK="128.253.154.0" # ЗАМЕНИТЕ на адрес ВАШЕЙ сети BROADCAST="128.253.154.255" # ЗАМЕНИТЕ на широковещательный # адрес ВАШЕЙ сети, если он есть. # Если нет, оставьте свободное # место и продолжайте редактировать # дальше. GATEWAY="128.253.154.1" # ЗАМЕНИТЕ на адрес ВАШЕГО шлюза /etc/ifconfig eth0 $ netmask $ broadcast $ # Если у вас нет широковещательного адреса, то замените # предыдущую строчку на следующую: # /etc/ifconfig eth0 $ netmask $ /etc/route add $ # Следующая строчка нужна только в случае, если есть шлюз # (т.е. сеть связана с внешним миром) /etc/route add default gw $ metric 1 # Конец конфигурирования подключения Ethernet

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

Файл rc.inet2 запускает различные серверы, входящие в обеспечение протокола TCP/IP. Наиболее важным из них является сервер inetd . Этот сервер находится в фоновом режиме и наблюдает за работой сетевых портов. Когда к компьютеру пытаются обратиться через какой-либо порт (например, на этот порт приходит команда telnet ), сервер inetd создает для этого порта копию соответствующего демона (в случае прихода команды telnet это будет демон in.telnetd ). Это оказывается проще, чем иметь сразу несколько отдельных работающих демонов (т.е. отдельных копий telnetd , ftpd и т.д.). В принятой схеме они запускаются по мере надобности программой inetd .

Демон syslogd — это демон протоколирования входов (login) в систему. Он собирает сообщения о входах в систему и складывает их в файлы протоколов согласно конфигурации, содержащейся в файле /etc/syslogd.conf . Функции сервера routed — поддерживать динамическую информацию о маршрутах. Если компьютер пытается послать пакеты сообщений на другую сеть, то для этого ему могут потребоваться дополнительные данные в таблице маршрутов. Заботы о действиях с таблицей маршрутов берет на себя сервер routed , и пользователь может не вмешиваться в этот процесс.

В приведенном ниже примере файл rc.inet2 запускает лишь необходимый минимум серверов. Помимо указанных, существует еще много других серверов, и многие из них относятся к конфигурированию NFS. Однако при попытке конфигурировать программное обеспечение протокола TCP/IP лучше всего начинать с минимальной конфигурации, а более сложные элементы (такие, как NFS) добавлять, когда часть программ уже работает.

Также отметим, что в приведенном ниже файле предполагается, что демоны работы в сетях располагаются в каталоге /etc . Разумеется, для конкретной конфигурации этот файл может быть отредактирован.

#! /bin/sh # Пример файла /etc/rc.d/rc.inet2 # Запуск демона syslogd if [ -f /etc/syslogd ] then /etc/syslogd fi # Запуск сервера inetd if [ -f /etc/inetd ] then /etc/inetd fi # Запуск сервера routed if [ -f /etc/routed ] then /etc/routed -q fi # Готово!

Среди дополнительных серверов, которые могут быть запущены скриптом rc.inet2 , имеется сервер named . Это сервер имен в сети, и его функция состоит в том, чтобы преобразовывать (локальные) IP-адреса в имена компьютеров и обратно. Если в сети нет другого сервера имен или если требуется дать (локальные) имена другим компьютерам того же домена, можно воспользоваться этим сервером (однако для большинства конфигураций это оказывается ненужным). Конфигурирование сервера named является довольно сложным и требует предварительного планирования; тем, кому это интересно, можно порекомендовать обратиться к книгам по администрированию сетей TCP/IP.

root
Sun Aug 29 12:01:30 MSD 1999

Рекомендации по настройке сервера FreeBSD 10.1

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

  • Создание простого брандмауэра, который блокирует большую часть трафика.
  • Настройка часового пояса.
  • NTP-синхронизация времени.
  • Добавление swap-пространства (или пространства подкачки).

Прежде чем приступить к выполнению руководства, нужно настроить среду оболочки сервера FreeBSD, что подробно описано в руководстве «Начало работы с FreeBSD 10.1».

Настройка брандмауэра IPFW

Сначала нужно настроить простой фаервол для защиты сервера от ненадёжного трафика.

Система FreeBSD поставляется с поддержкой трёх фаерволов, каждый из которых имеет свои преимущества и недостатки; это pf, ipfw и ipfilter. Данное руководство охватывает настройку самого простого и быстрого из них – ipfw.

Настройка базового брандмауэра

Почти все конфигурации фаервола находятся в файле /etc/rc.conf. откройте этот файл:

sudo vi /etc/rc.conf

В этот файл нужно добавить код для включения и управления фаерволом ipfw. Добавьте несколько основных правил в конец файла:

Первая строка включает фаервол ipfw, отвечает за его автоматический запуск при загрузке системы и позволяет запускать его при помощи команды service.

Вторая строка отключает автоматический вывод ipfw. Это может сначала показаться вопросом предпочтений или требований сервера, но на самом деле это существенно влияет на функциональность брандмауэра.

Эта опция важна по двум факторам. Во-первых, сценарий конфигурации фаервола выполняется в текущей среде оболочки, не в фоновом режиме. Во-вторых, когда команда ipfw читает конфигурационный скрипт без флага quiet, она выводит каждую прочитанную строку в standard out. Выведя строку, ipfw сразу же выполняет соответствующее действие.

Большинство конфигурационных файлов брандмауэра сбрасывают текущие правила в начало сценария. Если фаервол ipfw находит такие строки без флага quiet, он немедленно сбрасывает все правила и возвращается к политике по умолчанию, которая, как правило, блокирует все соединения. Если брандмауэр настроен по SSH, соединение будет прервано, текущий сеанс оболочки закроется, и фаервол перестанет обрабатывать правила, открывающие вам доступ на сервер, то есть, вы будете заблокированы на собственном сервере. Флаг quiet помогает брандмауэру воспринимать и обрабатывать правила как набор (не как отдельные, несвязанные правила).

Затем нужно добавить строки, управляющие поведением фаервола:

. . .
firewall_type=»workstation»
firewall_myservices=»22 80″
firewall_allowservices=»any»
firewall_logdeny=»YES»

Первая строка задаёт workstation как тип фаервола (это довольно надёжное стандартное поведение). Опции firewall_myservices и firewall_allowservices позволяют без труда выбрать и настроить сервисы, доступ к которым необходим клиентам. Последняя опция вносит в логи все соединения, не прошедшие фаервол.

Опция firewall_myservices должна содержать набор TCP-портов или сервисов (через пробел), которые должны быть доступны серверу. В примере выше указаны порты 22 (SSH-соединения) и 80 (HTTP). Сервисы можно указывать по имени. Все сервисы, чьи имена известны системе FreeBSD, перечислены в файле /etc/services. К примеру, вышеприведённую конфигурацию можно также задать следующим образом:

Если на сервере используется SSL, добавьте в этот список порт 443 или сервис https.

Опция firewall_allowservices содержит список компонентов и клиентов, которые должны иметь доступ к перечисленным ранее портам и сервисам. Ключевое слово any значит, что доступ есть у всех клиентов. При помощи этой опции можно также заблокировать доступ некоторым клиентам.

Опция firewall_logdeny вносит в лог /var/log/security все неудачные попытки доступа.

Итак, полностью код, который нужно добавить в /etc/rc.conf, имеет следующий вид:

. . .
firewall_enable=»YES»
firewall_quiet=»YES»
firewall_type=»workstation»
firewall_myservices=»22 80″
firewall_allowservices=»any»
firewall_logdeny=»YES»

Примечание: Не забудьте отредактировать опцию firewall_myservices, добавив все сервисы, необходимые вашим клиентам.

Сохраните и закройте файл.

Соединения UDP

Все перечисленные в firewall_myservices порты и сервисы доступны для соединений TCP. Если некоторые сервисы используют порты UDP, отредактируйте файл /etc/rc.firewall.

sudo vi /etc/rc.firewall

Ранее был настроен тип фаервола – workstation. Найдите в файле следующее:

В этом блоке есть раздел, обрабатывающий значения firewall_allowservices и firewall_myservices. Он выглядит так:

for i in $ ; do
for j in $ ; do
$ add pass tcp from $i to me $j
done
done

После этого раздела нужно указать все сервисы и порты, поддерживающие UDP-пакеты.

$ add pass udp from any to me port_num

В этой строке также можно использовать ключевое слово any, если соединение должно быть доступно всем клиентам; чтобы ограничиться отдельными клиентами, нужно указать IP-адрес или сетевой диапазон. Также в приведённой выше строке нужно заменить port_num номером порта или сервисом, которые должны поддерживать соединения UDP. К примеру, при наличии DNS-сервера можно добавить:

for i in $ ; do
for j in $ ; do
$ add pass tcp from $i to me $j
done
done
$ add pass udp from 192.168.2.0/24 to me 53

Это разрешит любому клиенту из диапазона 192.168.2.0/24 получить доступ к DNS-серверу на порте 53. Обратите внимание, что в таком случае нужно также открыть этот порт для подключений TCP.

Сохраните и закройте файл.

Запуск фаервола

Завершив настройку, запустите брандмауэр:

sudo service ipfw start

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

Также нужно настроить количество записей в логе для одного IP. Это позволит предотвратить переполнение логов одним IP-адресом. Для этого откройте файл /etc/sysctl.conf:

sudo vi /etc/sysctl.conf

В конец файла внесите следующую строку, которая ограничит количество записей до 5:

Сохраните и закройте файл. Данная настройка активируется после следующей перезагрузки.

Чтобы применить эту настройку в текущей сессии, используйте команду sysctl без аргументов.

sudo sysctl net.inet.ip.fw.verbose_limit=5

Такая команда применит данную настройку в текущей сессии.

Настройка часового пояса сервера

Правильно настроенный часовой пояс очень важен для производительности сервера и для настройки NTP-синхронизации (о которой речь пойдёт в следующем разделе).

Система FreeBSD поставляется с инструментом tzsetup, который отвечает за настройку часового пояса. Запустите с правами sudo следующую команду:

На экране появится окно меню, которое спросит, как настроены аппаратные часы, по Гринвичу (UTC)или по местному времени.

Is this machine’s CMOS clock set to UTC? If it is set to local time or you don’t know, please choose NO here!

Выберите «No». Затем программа предложит выбрать регион, в котором находится сервер.

Также нужно указать страну или субрегион.

В завершение выберите часовой пояс, в котором находится сервер. Подтвердите свой выбор.

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

Настройка NTP-синхронизации

Теперь часовой пояс настроен. После этого на сервере нужно настроить NTP (Network Time Protocol).Этот протокол позволяет синхронизировать внутренние часы сервера. Это очень важно для поддержки чувствительных ко времени взаимодействий клиентов и серверов, а также для точного журналирования.

Чтобы включить NTP, нужно отредактировать файл /etc/rc.conf.

sudo vi /etc/rc.conf

Добавьте в файл строку:

Также нужно добавить в него строку для синхронизации часов с серверами NTP при загрузке системы. Это позволит свести к минимуму влияние дрейфа.

Без этой троки демон NTP не сможет запуститься, поскольку настройки часового пояса исказят время системы.

Сохраните и закройте файл.

Запустите сервис ntpd:

sudo service ntpd start

Этот сервис будет синхронизировать часы сервера с серверами NTP, перечисленными в /etc/ntp.conf.

Настройка swap-пространства

Чтобы проверить, есть ли на сервере swap-пространство, введите:

sudo swapinfo -g

Вывод может выглядеть так:

Device 1G-blocks Used Avail Capacity
/dev/gpt/swapfs 1 0 1 0%

Но некоторые приложения требуют большего объёма swap-пространства. Для этого используется swap-файл.

Сначала нужно выделить участок памяти для swap. Для этого используйте команду truncate.

В этом руководстве swap-файл будет находиться в /swapfile; укажите своё место для этого файла в системе. Этот swap-файл будет предоставлять 1 гигабайт для подкачки; чтобы задать другой объём памяти, отредактируйте значение флага –s.

sudo truncate -s 1G /swapfile

Выделив пространство, запретите доступ к файлу.

sudo chmod 0600 /swapfile

Затем смонтируйте файл и настройте его автоматическое монтирование при загрузке:

sudo sh -c ‘echo «md99 none swap sw,file=/swapfile,late 0 0» >> /etc/fstab’

Эта команда добавит в файл /etc/fstab следующую строку:

md99 none swap sw,file=/swapfile,late 0 0

После этого включите swap-файл при помощи команды:

sudo swapon -aqL

Убедитесь, что swap-файл работает, запустив команду:

sudo swapinfo -g

Вывод будет выглядеть примерно так:

Device 1G-blocks Used Avail Capacity
/dev/gpt/swapfs 1 0 1 0%
/dev/md99 1 0 1 0%
Total 2 0 2 0%

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

Заключение

Теперь сервер FreeBSD надежно настроен, дальнейшие конфигурации зависят только от целей использования сервера. Фаервол, NTP-синхронизация и swap-пространство предоставляют более подготовленную к разработке среду, а также упрощают дальнейшую установку и настройку программ и сервисов.

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

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