Архив за месяц: Октябрь 2013

Полезные команды FreeBSD

Полезные команды FreeBSD
Набор наиболее часто используемых команд FREEBSD для админиcтрирования серверов

Пользователи:
adduser Добавить пользователя в интерактивном режиме.

rmuser user Удалить пользователя user.

passwd user Смена пароля пользователя user.

vipw Ручная правка файла паролей. Если нет желания работать с vi, нужно предварительно установить переменной окружения EDITOR имя желаемого текстового редактора, например ее, mcedit и др.

Группы:
pw groupadd groupname Создание группы.

pw groupmod groupname -m user1,user2 Добавляет пользователей в группу.

pw groupmod groupname -d user1,user2 Удаляет пользователей из группы.

pw groupshow groupname Отображает пользователей группы.

id username Отображает принадлежность пользователя к группам.

Samba пользователи:
smbpasswd -a username Добавить новый логин.

smbpasswd -x username Удалить логин.

smbpasswd username Сменить пароль.

smbpasswd -d username Отключить логин.

smbpasswd -e username Включить логин.

Samba:
testparm Проверка файла конфигурации.

smbclient //server/share -U 'user%password' -D RempteDirectory -c 'prompt off;del *;mput *' 2>/dev/null Копирование текущей папки на удаленный SMB сервер, с предварительной очисткой удаленной папки, 2>/dev/null отключает вывод сообщений при использовании в сценарии.

mount_smbfs -E KOI8-R:CP866 //user@host/share node Монтирование сетевого диска Windows. -E KOI8-R:CP866 задает конечную и исходную кодировку, если кодировка системы не KOI8-R, необходимо вписать верную кодировку. Samba для работы не требуется.

Устройства:
devinfo -r Дерево устройств с информацией об используемых ресурсах (IRQ, DMA, Memory).

devinfo -u Дерево устройств с группировкой по типу ресурса.

pciconf -lcv Информация о PCI устройствах.

usbdevs -dv Информация о USB устройствах.

vmstat -i Информация о количестве прерываний.

ndisgen InfFile SysFile Конвертация сетевого драйвера Windows, скопировать результат в /boot/kernel, запустить kldload name, прописать в /boot/loader.conf: name_load="yes" для загрузки при старте системы. Подробности.

kldload Загрузить драйвер

kldstat Список динамически загруженных драйвкров

kldunload Выгрузить драйвер

cu -l cuadN Подключение интерактивным терминалом к устройству на COM-порте N. Для завершения сессии ввести "~." с новой строки.

Сеть:
ifconfig Информация о текущей конфигурации сети.

ifconfig ifn inet 192.168.0.1 netmask 255.255.255.0 Установка IP-адреса и маски сети для интерфейса ifn.

ifconfig ifn up Включение интерфейса ifn.

ifconfig ifn down Отключение интерфейса ifn.

ifconfig ifn scan Сканирование и отображение доступных точек доступа WiFi на интерфейсе ifn.

tcpdump -i ifn -n host 192.168.0.11 Мониторинг сетевой активности по заданному IP на интерфейсе ifn.

tcpdump -i ifn tcp port 110 Мониторинг сетевой активности по порту TCP 110 на интерфейсе ifn.

sockstat -l Список прослушиваемых сокетов.

sockstat -c Список соединенных сокетов.

netstat -r Отобразить таблицу маршрутизации.

route add -net 192.168.1.0/24 192.168.2.1 Добавить маршрут к сети 192.168.0.0, маска /24 через шлюз 192.168.2.1.

route add -host 192.168.1.123 192.168.2.1 Добавить маршрут к хосту 192.168.0.0, через шлюз 192.168.2.1.

route add default 192.168.2.1 Установить шлюз по умолчанию 192.168.2.1.

traceroute -P ICMP address Трассировка маршрута ICMP пакетами до заданного адреса (по умолчанию трассировка идет UDP пакетами, по портам, которые обычно закрыты файрволом).

Система:
systat -ifstat Мониторит текущую нагрузку сетевых интерфейсов.

systat -netstat Мониторит текущие сетевые соединения.

systat -iostat Мониторит текущую загрузку процессора и дисковой подсистемы.

systat -ip Мониторит текущее состояние IP протокола.

systat -vmstat Мониторит различные параметры системы: использование памяти, прерывания, нагрузку дисковой подсистемы и др.

top -P Отображение нагрузки на процессор в реальном времени с раздельным отображением нагрузки для каждого ядра процессора.

Файлы:
cp file1 file2 ... dst Копирование файлов в папку dst.

chown user:group file1 file2 ... Смена владельца файлов.

chmod access file1 file2 .. Установка прав доступа  файлам.

cat filename, more filename,. less filename Отображение содержимого файла.

cat filename1 filename2 >filename3 Объединение файлов.

head Отображает первые десять строк файла

tail Отображает последние десять строк файла

tail -f file Отображает последние десять строк файла ожидает и отображает последующие изменения файла. Удобно при мониторинге логов.

script LogFile Command Сохраняет копию вывода команды Command в файл LogFile, ввод пользователя также сохраняется в файле.

cmd1 | tee filename | cmd2 Сохраняет вывод команды cmd1 в файл и передает на ввод команды cmd2 .

Дата и время:
date Отображение текущей системной даты и времени.

date 200902200351 Установка системной даты и времени в 20.02.2009 03:51.

date 0351 Установка системного времени в 03:51 без изменения даты.

tm=`date "+%Y-%m-%d-%H_%M"` Извлечение текущей даты и времени в формате 2009-02-20-03_51 в переменную shell скрипта.

ncal [-my месяц год] Календарь на текущий или заданный месяц.

Шелл (sh):
cmd >log 2>&1 Перенаправление вывода cmd в файл вместе с ошибками.

Порты и пакеты (пакет portupgrade)
portsclean -C Удаление всех рабочих папок с исходниками из дерева портов

portsclean -DD Удаление дистрибутивов, устаревших или не установленных в системе портов.

pkg_deinstall -r pgkname Удаление пакета (порта) и всех зависящих от него пакетов

pkgdb -F Восстановление целостности базы пакетов (поиск дубликатов, восстановление зависимостей после принудительного удаления зависимых пакетов и др.)

portupgrade -fa Пересборка всех установленных портов, включая те, что не обновлялись. Полезно после установки новой версии ОС, для перелинковки на новые системные библиотеки.

portupgrade -Rf name Установка порта name с пересборкой всех портов, от которых зависит устанавливаемый порт. Полезно при проблемах со сборкой портов после установки новой версии ОС.

Прочие
echo text | mail -E -s Mail\ topic user@domain.net Отправка стандартного вывода на почту с темой Mail topic (пробелы придется экранировать) адресату user@domain.net. Ключ -E предотвращает отправку пустых писем.

Nload – просмотр загрузки канала в консольном режиме FreeBSD

Nload - просмотр загрузки канала в консольном режиме

Установку выполним из портов:

# cd /usr/ports/net/nload

# make install clean && rehash

Делаем попытку запуска утилиты. В результате получилось следующее:

# nload

Экран разделен на две области. В верхней отображается загрузка интерфейса входящим трафиком, в нижней - исходящим. Есть возможность переключаться между интерфейсами в режиме реального времени, "гоняя" их по кругу (в моем случае количество сетевых интерфейсов - 6 штук). Для переключения можно использовать клавиши "вправо" и "влево".

Попробуем разобраться с доступными опциями (тоесть ознакомимся со страницей руководства - man nload):

"-a" - задает промежуток времени в секундах, для подсчитывания среднего значения. По умолчанию 300 секунд;

"-i" - задает планку 100%  (килобит за секунду) для графического отображения пропускной способности интерфейса для входящего трафика. Значение по умолчанию - 10240;

"-m" - отображение нескольких интерфейсов. Не отображаются графики;

"-o" - то же, что и опция "-i", только для исходящего трафика;

"-t" - задает интервал обновления в милисекундах. Значение по умолчанию - 500. Не рекомендуется устанавливать меньше 100;

"-u" - задает режим отображения: Bit/s, kBit/s, MBit/s... Значение по умолчанию - kBit/s;

"-U" - задает режим отображения для подсчета количества проходящего траффика. Значение по умолчанию - MByte;

"device" - конкретизируем интерфейс.

Итак, задаем следующие параметры: 

конкретизируем интерфейс - nfe0

"верхняя" планка отображения - 500 килобит в секунду, как для входящего, так и для исходящего траффика

подсчет трафика - в гигабайтах

интервал обновления - 400 милисекунд

Команда будет выглядеть следующим образом:

# nload nfe0 -i 500 -o 500 -U G -t 400

Результат выполнения команды:

nload

И напоследок - режим отображения нескольких интерфейсов. Вызывается запуском утилиты с ключем "m":

Мониторинг системы под FreeBSD

Мониторинг системы под FreeBSD. Полезные команды.

Системные команды, которыми можно проверить ресурсы системы, текущую нагрузку и различную информацию.

HDD:

atacontrol list - просмотр всех жестких дисков в системе (показывает в том числе и их модели)
mount – показывает смонтированные подразделы и флаги из монтирования
cat /etc/fstab – таблица монтирования при загрузке
disklabel /dev/ad0s1 – показывает список подразделов в первом разделе диска ad0
swapinfo – показывает список подразделов свопинга на дисках и их использование

gstat – нагрузка на диски
fstat – показывает список открытых файлов (имена файлов не выводятся)
pstat -f – выводит список открытых файлов (имена файлов не выводятся)
iostat – выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки.
iostat -d -w1 -c7 – нагрузка на диски. Статистика в удобном виде
vmstat – выводит количество операций на диске в секунду
sysinstall – можно посмотреть и изменить разметку диска и монтирование

systat -vmstat n – каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.
systat -io start 1 - HDD + CPU
diskinfo -t ad4 – тест на дисковую производительность
tunefs -p /var/ – информация о настройках файловой системы (UFS)

df -H – количество свободного места
df -i – количество свободных инодов

Network:

ifconfig – список сетевых интерфейсов с ip-адресами, масками, mac-адресами, типами карт и их статусами (названия карточек можно посмотреть в файле конфигурации ядра)
ifconfig -d  - Просмотреть список отключенных интерфейсов
ifconfig -u  - Список включенных сетевух
netstat – вывод активных сетевых соединений (сокетов)
netstat -i ошибки на интерфейсах
netstat -m - просмотр хватает ли mbuf и т.д.
netstat -inb – сколько передано через интерфейс в байтах
netstat -ibt – список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера
netstat -hdw 1 -i net1 - Просмотр количества пакетов в сек, ошибок и дропов на интерфейсе (online)
netstat -r – таблица маршрутизации

systat -ifstat n– интенсивность передачи трафика (online) по всем сетевым интерфейсам за n секунд
systat -netstat n – аналог netstat в реальном времениsysctl kern.ipc.numopensockets – количество открытых сокетов
systat -ip n – таблица IP-пакетов и ошибок по типам за n секунд
systat -tcp n – таблица TCP-пакетов и ошибок по типам за n секунд
systat -icmp n – таблица ICMP-пакетов и ошибок по типам за n секунд

arp -a – просмотр всей таблицы ARP
arp -ad – очистка всей таблицы ARP

tcpdump -i rl0 host 192.168.61.20 and port 80 – сниффер пакетов на интерфейсе rl0, фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80
trafshow -i rl0 – программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов)

System:

top -mio – показать I/O по процессам
top -S – показать системные процессы в топе (по дефолту они не показываются)
top -SHPI - показать загрузку по ядрам, в том числе и системные процессы, кроме тех что в простое. Наиболее удобный вариант.

vmstat -z чего не хватает
vmstat -i прерывания по устройствам
systat -vmstat n – просмотр всей сводной статистики по системе(online).  вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска (см)
uptime - можно просмотреть время работы системы без перезагрузок и load averages системы
pcpustat - мониторинг CPU (порт)
ps afx – список запущенных процессов и время процессора на каждый
rcorder /etc/rc.d/* /usr/local/etc/rc.d/* - Посмотреть очередность запуска сервисов в freebsd.

Memory:

freecolor – очень симпатичная утилита для мониторинга использования памяти (ставится из портов)
Для детальной информации по расходу памяти:

fetch -o /usr/local/bin/free http://people.freebsd.org/~rse/dist/freebsd-memory
chmod +x /usr/local/bin/free
free

Службы времени:

date – выводит текущее время и дату
w – выводит, сколько времени назад система загрузилась и список залогиненных пользователей
last – выводит историю перезагрузок и входов пользователей
lastlogin - выводит по пользователям дату и время последнего входа в систему

 

Обзор и установка почтового сервера iRedMail FreeBSD

iRedMail является полнофункциональным почтовым сервером, он обеспечивает основные функции, такие как неограниченные виртуальные почтовые ящики, POP3/IMAP/SMTP, AJAX веб-почты.
 
iRedMail — это:

1) Полноценный почтовый сервер.
2) Работает под управлением Red Hat® Enterprise Linux (5.x), CentOS (5.x), Debian(5.0.x), Ubuntu (8.04, 9.04, 9.10), FreeBSD (7.x, 8.0).
3) Работает как и на обычной системе, так и под управлением виртуальной машины: пр. VMware, OpenVZ, Xen.
4) Поддержка архитектур i386 и x86_64.
5) Использует для установки и настройки совместимые компоненты, такие как Postfix, Dovecot, SpamAssassin и т.д.
6) При установке использует бинарные пакеты из вашего дистрибутива.
7) Проект с открытым исходным кодом, распространяемый под лицензией GPL v2.
8) Поддержка двух бэкэндов для хранения виртуальных доменов и пользователей: OpenLDAP и MySQL.
9) Безлимитное число поддержки доменов, пользователей, почтовых алиасов.
10) Поддержка двух Web-Интерфейсов (RoundCube и SquirrelMail).

Этот пакет очень удобен в настройке и установке.

1) Удобен этот пакет в том, что: 
а. Не нужно много знаний, т.е. процесс установки и настройки совсем не сложный.
б. Требует минимум времени на разворот корпоративной почты. Я потратил на установку этой сборки буквально 20 минут.
в. В комплекте идет весь необходимый софт для почтового сервера.(Антивирус, Антиспам, 2 Web-Интерфейса(по выбору)

2) Аналогов данного пакета не существует.

Анти-Спам и Анти-вирус.
В качестве антиспама и антивируса выступают 2 популярных пакета, это SpamAssassin и ClamAV

Что поддерживает iRedMail для защиты почты:
1. Поддержка SPF (Sender Policy Framework).
2. Поддержка DKIM (DomainKeys Identified Mail).
3. Поддержка Greylist.
4. Поддержка «Белых списков» ( на основании DNS имени и IP адреса)
5. Поддержка «Черных списков» ( на основании DNS имени и IP адреса)
6. Поддержка «Черного списка» HELO запросов.
7. Поддержка HPR (HELO Randomization Prevention)
8. Поддержка Spamtrap.
9. Интерграция SpamAssassin
10. Интеграция ClamAV, автообновление вирусных баз.

Поддержка почтовых клиентов:

Почтовые клиенты с поддержкой POP3/POP3S и IMAP/IMAPS. Haпример: Mozilla Thunderbird, Microsoft Outlook, Sylpheed.

Установка iRedMail.

В качестве почтового сервера я выбрал iRedMail. Это сборка Postfix+LDAP(MySQL)+SpamAssassin+ClamAV+AmaViS+Dovecot+RoundCube (SquirrelMail) и т.д. В данной статье мы будем рассматривать настройку этого замечательного сервера на базе OpenLDAP.

Внимание! Не забудьте сменить example.com на имя вашего домена.

Немного поправим наше имя хоста:
ee /etc/hosts
127.0.0.1 mail.example.com localhost localhost.localdomain

ee /etc/hostname
mail.example.com

Сохраняем изменения.

Проверим FQDN имя хоста:
hostname –f

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

Устанавливаем пакет bash-static
# cd /usr/ports/shells/bash-static
# make install clean && rehash

Скачиваем в директорию /root данный файл:
cd /root
fetch https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.8.4.tar.bz2

Нужно распаковать данный архив:
tar -xvjf iRedMail-x.y.z.tar.bz2

Переходим в директорию
cd /root/iRedMail-x.y.z

и запускаем установочный скрипт:
bash iRedMail.sh

1.Появится окно инсталлятора:
2.Выбираем путь, где будет храниться вся наша почта:
3.Выбираем бэкэнд для нашего сервера. Поддерживаются MySQL и OpenLDAP. Мы выберем OpenLDAP:

4.LDAP суффикс для нашего сервера добавляется так: dc=example,dc=com
5.Введем пароль для администратора LDAP сервера. Учетная запись администратора по умолчанию находиться в /etc/ldap/slapd.conf. Обычно это: cn=Manager,dc=example,dc=com

6.Пароль Mysql:

7.Вводим имя нашего домена:
8.Вводим пароль администратора(postmaster):
9.Пароль для первого пользователя:
10.Ставим все компоненты:
Конфигурация завершена.

Нажимаем Y или y и ждем окончания установки, перегружаем сервер и пользуемся следующими ссылками.

Список доступа к компонентам:
Component
URL
Webmail
https://your_server/mail/
iRedAdmin (admin panel)
httpS://your_server/iredadmin/
phpMyAdmin
httpS://your_server/phpmyadmin/
phpLDAPadmin
httpS://your_server/phpldapadmin/
Awstats
httpS://your_server/awstats/awstats.pl?config=web (or ?config=smtp)
Сервер готов 🙂

Настройка PPPoE в FreeBSD

Для начала логинимся в нашу систему FreeBSD под пользователем root и отредактируем файл /etc/ppp/ppp.conf

# cd /etc/ppp/

Файла может не быть, создадим его командой:

# touch ppp.conf

Далее редактируем:

# ee ppp.conf

Меняем или вставляем в него содержимое:

default:
 set log Phase tun command # you can add more detailed logging if you wish
 set ifaddr 10.0.0.1/0 10.0.0.2/0

vpn-pppoe:                   # Ваше любое имя подключения
 set device PPPoE:el0        # el0  сетевая карта которой подключен провайдер (может быть другое обозначение)
 set timeout 10
 set redial 40 5
 set reconnect 10 10
 set authname Ваш логин
 set authkey Ваш пароль
 set dial
 set login
 add default HISADDR
 alias enable yes

Сохраняем и затем редактируем файл загрузки /etc/rc.conf для запуска  PPPoE клиента:

ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"            # Если нет FireWall
ppp_profile="vpn-pppoe"

Для запуска вводим команду:

# ppp -ddial vpn-pppoe

При перезагрузке или включение сервера соединение будет автоматическим.

Все как всегда очень просто!

 

VirtualBox X11 на FreeBSD

Управлять VirtualBOX будем через vnc, для начала поставим библиотеки которые понадобятся для его работы:

# cd /usr/ports/net/libvncserver
# make install clean

Далее установим модули ядра VirtualBox:

# cd /usr/ports/emulators/virtualbox-ose-kmod
# make install clean

Далее ставвим VirtualBox:

# cd /usr/ports/emulators/virtualbox-ose
# make config

Отметим следующие опции:
[ ] QT4 Build with QT4 Frontend
[ ] DEBUG Build with debugging symbols
[ ] GUESTADDITIONS Build with Guest Additions
[X] DBUS Build with D-Bus and HAL support
[ ] PULSEAUDIO Build with PulseAudio
[ ] X11 Build with X11 support
[ ] VDE Build with VDE support
[X] VNC Build with VNC support
[ ] WEBSERVICE Build Webservice
[ ] NLS Native language support

далее:

make install clean

Добавим в /boot/loader.conf
vboxdrv_load="YES"

в /etc/rc.conf
vboxnet_enable="YES"

Запустим модуль ядра и скрипт:

# kldload vboxdrv
# /usr/local/etc/rc.d/vboxnet start

теперь создаем виртуальную машину:

# VBoxManage createvm --name WindowsXP --ostype WindowsXP --register --basefolder /usr/vbox
Virtual machine 'WindowsXP' is created and registered.
UUID: aa82ea3d-9f44-4545-a94d-775c295e24d0
Settings file: '/usr/vbox/WindowsXP/WindowsXP.vbox'

Задаем парамерты виртуальной машины (bridgeadapter1 указывает адаптер хоста, к которому привязываем виртуалку)

# VBoxManage modifyvm WindowsXP --memory 512 --floppy disabled --audio none --nic1 bridged --bridgeadapter1 em0 --vram 4 --accelerate3d off --boot1 disk --acpi on --cableconnected1 on
пришло время создать винт для виртуалки, размер указывается в мегабайтах:
# VBoxManage createhd --filename /usr/local/vbox/iso/WindowsXP.vdi --size 4096
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 2fccd366-e242-4631-b262-3f93552e9449

IDE контроллер:

# VBoxManage storagectl WindowsXP --name "IDE Controller" --add ide

подключаем HDD к контроллеру:

# VBoxManage storageattach WindowsXP --storagectl "IDE Controller" --port 0 --device 0 --type

hdd --medium /usr/local/vbox/iso/WindowsXP.vdi

подключим образ к контроллеру:

# VBoxManage storageattach WindowsXP --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/virtual/WinXPSP3.iso

Загружаемся с dvd:

# VBoxManage modifyvm WindowsXP --boot1 dvd

Запускаем виртуальную машину, указав параметры vnc:

# VBoxHeadless -s WindowsXP -n -m 5900 -o passw
Oracle VM VirtualBox Headless Interface 4.0.8_OSE
(C) 2008-2011 Oracle Corporation
All rights reserved.
28/07/2011 13:06:10 Listening for VNC connections on TCP port 5900
Set framebuffer: buffer=43604000 w=800 h=600 bpp=32
Set framebuffer: buffer=468a0000 w=640 h=480 bpp=32
Set framebuffer: buffer=47204000 w=720 h=400 bpp=32
Set framebuffer: buffer=46e25000 w=640 h=480 bpp=32
Set framebuffer: buffer=46e25000 w=720 h=400 bpp=32

Теперь качаем UltraVNC, если у вас он не установлен, скачать можно с оффсайта.
Все как всегда очень просто.

 

Руссификация FreeBSD (UTF-8)

Руссификация FreeBSD (UTF-8)

Почему utf8:
- это удобно
- это кроссплатформенно (работая на многих разных системах: freebsd, linux, windows и хочу везде иметь возможность беспроблемного доступа к своим файлам)
- utf8 это родная кодировка во многих системах (linux), а также в файловых системах.
- в базах данных давно самая беспроблемная кодировка -utf8 (особенно когда есть необходимость работы с несколькими языками)
- рано или поздно во freebsd все равно будет utf8 по умолчанию.

Приступим:

# ee /etc/login.conf:

russian|Russian Users Accounts:\
:charset=UTF-8:\
:lang=ru_RU.UTF-8:\
:tc=default:

# cap_mkdb /etc/login.conf
# pw usermod -n $username -L russian

Собственно, этого достаточно - вот так все просто 😉
Альтернативно, либо дополнительно к вышеприведенному способу, можно прописать переменные в используемом шеле:
ee /etc/csh.cshrc:

setenv LANG ru_RU.UTF-8
setenv LC_CTYPE ru_RU.UTF-8
setenv LC_COLLATE POSIX
setenv LC_ALL ru_RU.UTF-8

# ee /etc/profile: (опционально, для тех кто любит баш.)

LANG="ru_RU.UTF-8"; export LANG
LC_CTYPE="ru_RU.UTF-8"; export LC_CTYPE
LC_COLLATE="POSIX"; export LC_COLLATE
LC_ALL="ru_RU.UTF-8"; export LC_ALL

# ee /root/.cshrc: (руту русификации не положены)

setenv LANG C
setenv LC_CTYPE C
setenv LC_COLLATE POSIX
setenv LC_ALL C

# ee /etc/fstab:

# NTFS data
/dev/ad0s4      /mnt/data2 ntfs-3g  default,rw,locale=ru_RU.UTF-8 0 0

Из консоли можно так:

# mount_ntfs -C UTF-8 /dev/ad0s4 /mnt/winda # ro mount
# mount_ntfs-3g /dev/ad0s4 /mnt/winda -o deafult,rw,locale=ru_RU.UTF-8 # right way; portinstall sysutils/fusefs-ntfs

Вышеприведенный спрособ руссификации не затрагивает системную консоль, но этого достаточно, чтобы в юзерском шеле был utf8
Также о процессе перевода и системной консоли на utf8можно посмотреть тут: http://www.opennet.ru/tips/info/1448.shtml

Переключение раскладки клавиатуры в X11:

# ee /etc/X11/xorg.conf:
(Можно обойтись и без этого, если вы настроите переключение в соотвествующем оконном менеджере, но данный вариант более универсален.)

Section "InputDevice" 
Identifier "Keyboard0" 
Driver "keyboard" 
Option "XkbModel" "microsoftpro" 
Option "XkbLayout" "us,ru" 
Option "XkbOptions" "grp:ctrl_shift_toggle,grp:lwin_switch,grp_led:scroll" 
Option "XkbVariant" ",winkeys" 
EndSection

Переключение раскладки клавиатуры в KDE:

Тут можно все сделать через kcontrol типа (Пуск -> Настройка -> Региональные и спец.настройки -> Настройка клавиатуры) но это не по джидайски. Посему идем классическим unix way:

~/.kde/share/config/kdeglobals должна быть строчка

Switch to Next Keyboard Layout=Ctrl+Shift_L;

xxkb индикатор раскладки c привязкой к приложению:

~./.kde/share/config/kxkbrc

[Layout]
DisplayNames=
EnableXkbOptions=true
IncludeGroups=ru(winkeys):us
LayoutList=us,ru(winkeys)
Model=pc104
Options=grp:lctrl_lshift_toggle,grp_led:scroll
ResetOldOptions=true
ShowFlag=true
ShowSingle=false
StickySwitching=false
StickySwitchingDepth=2
SwitchMode=WinClass
Use=true

Links:

http://www.lissyara.su/?id=1444 FreeBSD как десктопная система
http://community.livejournal.com/ru_linux/1147523.htmlрусификация аудиопроигрывателей (конвертация mp3 тегов).

http://pcbsd.ru/doc/statyi/article21-2008-03-23.html PC-BSD 1.5: установка, настройка, русификация. (utf-8)
http://www.pcbsd.ru/forum/index.php/topic,93.0.htmlРуссификация компонентов системы
http://forum.pcbsd.org.ua/viewtopic.php?t=120Русификация системы (koi8-r)