Главная > Операционные системы > UNIX > BSD > FreeBSD Роемся в конфигах rc.conf и ssh configКак продолжение предыдущей статьи приведу пример того, что можно еще сделать с FreeBSD после ее установки. Займемся основными конфигурационными файлами: /etc/rc.conf /etc/ssh/ssd_config и т.д. /etc/rc.conf - в этом файле задаются начальные параметры загрузки системы. Точнее задаются они в дефолтовом файле /etc/defaults/rc.conf, однако дефолтовый файл править нерекомендуется. Если хотите что-то поменять в запуске системы, пишите это в /etc/rc.conf Директивы в /etc/rc.conf перекрывают аналогичные в /etc/defaults/rc.conf. Пример: # rc.conf for Crawler by Daemony # # Задаем шлюз по-умолчанию defaultrouter="XXX.XXX.XXX.XXX" # Устанавливаем имя хоста hostname="crawler.daemony.org" # Прописываем конфигурацию сети ifconfig_lnc0="inet XX.XX.XX.XX netmask X.X.X.X" # Вешаем, если необходимо, алиас # ifconfig_lnc0_alias0="inet X.X.X.X netmask X.X.X.X" # Принудительное выполнение проверки дисков при старте системы программой fsck с опцией -y fsck_y_enable="YES" # Не обновлять файл приветствия update_motd="NO" # Включаем квоты (требуется пересборка ядра) # enable_quotas="YES" # Проверяем квоты при старте? # check_quotas="NO" # Будем ли давать доступ в сеть другим"? gateway_enable="NO" # Включаем NAT если нужно # natd_enable="YES" # Если включили NAT, укажем какой интерфейс внешний # natd_interface="xl0? # Дополнительные параметры NAT'у # natd_flags="-f /etc/natd.conf" # Включаем супердемона inetd_enable="YES" # Включаем кеширующий DNS, если нужно named_enable="YES" # и задаем ему доп. параметры named_program="/usr/sbin/named" named_flags="-u bind" # Запускаем дополнительные сервисы # Сендмейл sendmail_enable="YES" sendmail_flags="-bd -q1m" # SSH сервер sshd_enable="YES" # Параметры локализации и настройки консоли keymap="ru.koi8-r" keyrate="normal" mousechar_start="3? moused_enable="NO" moused_port="/dev/psm0? moused_type="auto" saver="logo" scrnmap="koi8-r2cp866? font8?14="cp866-8?14? font8?16="cp866b-8?16? font8?8="cp866-8?8? # "Тюнинг" нулевой консоли (требуется пересборка ядра) allscreens_flags="-g 160?60 -c destructive MODE_27? Если Вы желаете, чтобы при входе в систему отображалось Ваш собственное сообщение вместо стандартного, отредактируйте файл /etc/motd. Кроме того, если Вы хотите, чтобы после передачи имени пользователя и до передачи пароля выдавалось еще какое-либо сообщение, раскомментируйте в конфиге /etc/ssh/sshd_config строку: #Banner /some/path А вместо /some/path укажите путь к Вашему текстовому файлу с "баннером". После редактирования sshd_config следует дать демону ssh перечитать его. Сделать это можно, послав процессу сигнал HUP: сrawler# killall -HUP sshd Правда, в этом случае у Вас отвалятся все активные ssh сессии. Лучше сделать это так: сrawler# /etc/rc.d/sshd restart Теперь при входе в систему мы увидим: login as: daemony Well, tell me your password? Password: Last login: Tue Jan 29 23:51:51 2008 from somehost Welcome to Crazy Crawler! Here's all for good job. $ _ Мелочь, но красиво. Через /etc/motd я как-то вешал публичные объявления для пользователей на одном из серверов. Вполне юзабельно. Тем более, что motd для этого и задумывался. Кроме баннера, в /etc/ssh/sshd_config можно поправить еще несколько опций. AllowGroups sshusers При этом следует добавить соответсвующую группу в /etc/group. Например: crawler# pw group add sshusers И прописать в эту группу всех пользователей, которые могут иметь возможность входить на этот сервер удаленно по ssh. Достаточно просто изменить (добавить или удалить) список пользователей группы sshusers как эти изменения вступят в силу. Замечание: если Вам вдруг взбредет в голову дать пользователю root возможность удаленно входить на сервер по ssh, Вам не только прийдется добавить его в группу sshusers, Вам также прийдется добавить в /etc/ssh/sshd_config строчку: PermitRootLogin yes Но это конечно же не самое лучшее решение. : В /etc/ssh/sshd_config можно исправить еще несколько полезных опций. # Здесь можно задать другой номер порта, указав нестандартный. Иногда спасает от брутфорса Port 22 # Можно sshd заставить слушать какой-то конкретный интерфейс # ListenAddress 0.0.0.0 # Максимальное количество попыток ввести пароль при входе MaxAuthTries 3 # Можно задать время (в секундах), в течении которого, если не ввели пароль, # сеанс связи будет закрыт сервером. LoginGraceTime 20 Естественно, это опции далеко не все. Но это то, чем пользуюсь обычно я. * * * В предыдущей статье рассказывалось о том, как задать начальные параметры конфигурации (переменные окружения пользователя). Так вот, изначально, когда Вы создаете нового пользователя его профиль создается из набора файлов, находящихся в /usr/share/skel. В данном каталоге помещены файлы вида: dot.cshrc dot.login dot.login_conf dot.mail_aliases dot.mailrc dot.profile dot.rhosts dot.shrc Все что Вы поместите в /usr/share/skel, будет скопировано по-умолчанию в домашний каталог каждого нового пользователя при его создании в системе. Естественно, имена файлов будут без приставки "dot.". Она будет заменена на точку, то есть будет создан скрытый файл. * * * Обычно сразу после установки BSD нам приходится сталкиваться с вопросом коммуникации FreeBSD с машинами Windows. Обязательно найдется что-то, что нужно будет скопировать с одной машины на другую. И тут нам поможет открытие банального FTP сервера, но не на Windows, а в FreeBSD. Это очень просто и быстро. Для того, чтобы заставить FreeBSD запустить стандартного демона ftpd, нам всего лишь в файле /etc/inetd.conf нужно раскоментировать всего одну строку: ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l После запуска/перезапуска inetd сервера (killall -HUP inetd), он запустит FTP демона и посадит слушать его на порт 21. То, что это так легко проверить: crawler# sockstat | grep 21<br>root inetd 1135 5 tcp4 *:21 *:* Все работает. Прекрасно. К слову сказать, иногда для экономии ресурсов рекомендуется не только ftpd запускать из-под inetd сервера. Например, SSH. Если надумали запускать sshd через inetd, то прежде всего Вам ssh stream tcp nowait root /usr/sbin/sshd sshd -i -4 А потом скоммандовать: crawler# /etc/rc.d/sshd stop ; killall -HUP inetd При этом Ваши активные SSH сессии не отвалятся. При следущем входе в систему мы увидим: crawler# sockstat | grep 22 root inetd 1135 8 tcp4 *:22 *:* Не забудьте установить sshd_enable="NO" в файле /etc/rc.conf. Иначе при следущем старте системы в логи посыпятся ошибки, мол "не могу слушать порт, поскольку порт уже занят." Это будут одновременно inetd и "автономный" sshd пытаться слушать один и тот же порт. Что ж, думаю, по данной теме говорить пока достаточно. Главная > Операционные системы > UNIX > BSD > FreeBSD |