Я пробовал. В 2004 году, после 2 лет Дебиана. BSD - это стабильно, надёжно, работает как танк. Но ... мало софта было в портах. А инет на работе отсутствовал по причине режима секретности. Как сейчас легко живется БСДшнику - не знаю. Пробовал 4.7, 5.2, 6.0, 7.x(?).
Мигрируй на макос. Это объективно лучшая операционная система, полагаю, тебя полностью устроит. Никаких дебильных нововведений, всё чётко и по делу всегда.
#PF:2010-08-22
#-------------------
#1/Macros
# Сетевой интерфейс
ext_if="net0"
# Разрешенные типы icmp сообщений
allowed_icmp_types="{ echoreq, unreach }"
# Разрешённые сервисы
# 1. разрешить запросы к серверу NFS и RPCBIND только из локальной сети
# 2. обеспечить запуск с флагами mountd -p 883, rpc.lockd -p 884, rpc.statd -p 885 в rc.conf
# 3. выделенные порты для torrent и http/https/ssh-серверов доступны всем
allowed_lan_tcp_services="{ ssh, www, http, https, ntp, nfsd, rpcbind, 883, 884, 885, 6881:9991, 8080 }"
allowed_lan_udp_services="{ ntp, nfsd, rpcbind, 883, 884, 885, 6881:9991 }"
allowed_wan_tcp_services="{ ssh, www, 6881:9991, 8080, 8081, 55822, 63952 }"
allowed_wan_udp_services="{ ntp, 5501, 6881:9991, 55822, 63952 }"
#-------------------
#2/Tables
#-------------------
#3/Options
# тем, кто лезет туда, куда не нужно, - бить по рукам
set block-policy drop
# на интерфейсах петли пакеты не фильтровать
set skip on { lo }
# укороченный таймаут для состояния установленного tcp соединения
set timeout { frag 10, tcp.established 7200, icmp.first 10, icmp.error 5 }
#-------------------
#4/Scrub
# Нормализовать все входящие пакеты
scrub in all
#-------------------
#5/Queueing
#-------------------
#6/Translations
# Перенаправить tcp трафик с порта 80 на порт 8080 для пользовательского Web-сервера
rdr proto tcp from any to any port http -> self port 8080
#-------------------
#7/Filter Rules
# Антиспуффинг
antispoof for $ext_if
# Блокировать всё, что не разрешено
block all
#-------------------
# Разрешить входящий ICMP (ping)
pass inet proto icmp all icmp-type $allowed_icmp_types
# Разрешающий доступ откуда угодно (ограниченные службы)
pass in quick on $ext_if proto tcp to port $allowed_wan_tcp_services
pass in quick on $ext_if proto udp to port $allowed_wan_udp_services
# Разрешающий доступ из локальной сети (ограниченные службы)
pass in quick on $ext_if proto tcp from $ext_if:network to port $allowed_lan_tcp_services
pass in quick on $ext_if proto udp from $ext_if:network to port $allowed_lan_udp_services
# Разрешить исходящий трафик
pass out all
- устанавливается в стартовом скрипте пользовательского шелла (~/.cshrc):
> cat ~/.cshrc
# $FreeBSD: src/share/skel/dot.cshrc,v 1.13 2001/01/10 17:35:28 archie Exp $
#
# .cshrc - csh resource script, read at beginning of execution by each shell
#
# see also csh(1), environ(7).
#
alias h history 25
alias j jobs -l
alias la ls -a
alias lf ls -FA
alias ll ls -lA
alias ls ls -F -all -h
alias du du -H
alias df df -h
# A righteous umask
umask 22
set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin)
setenv EDITOR ee
setenv PAGER more
setenv BLOCKSIZE 1M
setenv LANG ru_RU.UTF-8
setenv LC_CTYPE ru_RU.UTF-8
setenv LC_ALL ru_RU.UTF-8
setenv LC_COLLATE POSIX
# Gtk HIG in Eclipse
setenv GDK_NATIVE_WINDOWS 1
if ($?prompt) then
# An interactive shell -- set some stuff up
#set prompt = "┌[`/bin/hostname -s`][`/bin/pwd`]\n└► "
set prompt = "[%m][%/]\n> "
set autolist = ambiguous #alternate autoselect
set watch = (1 any any)
set who = "%n has %a %l from %M."
set filec
set history = 100
set savehist = 100
set mail = (/var/mail/$USER)
if ( $?tcsh ) then
bindkey "^W" backward-delete-word
bindkey -k up history-search-backward
bindkey -k down history-search-forward
endif
endif
[system=10]
add path 'da*' mode 0666 group operator
add path 'acd*' mode 0666 group operator
add path 'cd*' mode 0666 group operator
add path 'fd*' mode 0666 group operator
add path 'umass*' mode 0666 group operator
add path 'xpt*' mode 0666 group operator
add path 'usb*' mode 0770 group cups
add path 'ugen*' mode 0660 group cups
И, да, пользователи X'ов должны хотя бы входить в группу operator (см. файл /etc/group), чтобы иметь доступ к периферийным устройствам (принтеры, флешки, сидюки). И то есть разнообразные косяки с доступом, например, пользователь без прав рута не сможет записать болванку в графической среде Xfce. Есть проблемы с автомонтированием флешек от имени пользователя после отмены агентов HAL/PolicyKit в последних версиях Xfce4 4.8-4.10.