FreeBSD - обновление base, ports средствами subversion

Разработчики FreeBSD уведомляют, что с 28.02.2013 обновление исходных текстов ОС средствами CVS более не будет доступно. Чтобы держать порты, исходные тексты и документацию в актуальном состоянии выполним переход на обновление средствами subversion.

Установка subversion

portmaster devel/subversion

subvesion потянет за собой sqlite3 (собираем только с THREADSAFE=on)

Удалим исх. тексты, порты и документацию

rm -rf /usr/src /usr/ports

Не забудьте сохранить конфиги ядра

FreeBSD - быстрый способ редиректнуть порты с помощью rinetd

Задача - обеспечить проброс TCP-портов 80,22618 с внешнего интерфейса во внутреннюю сеть. Обозначим внешний ip-адрес EXT_IP, внутренний ip-адрес назначения во внутренней сети LAN_IP.

Установим rinetd

rinetd - программа-демон, который умеет выполнять редиеркты под нашу задачу.

portmaster net/rinetd

Настроим rined

Создадим файл /usr/local/etc/rinetd.conf

EXT_IP 80 INT_IP 80
EXT_IP 22618 172.20.4.206 22618

Запустим rinetd

echo 'rinetd_enable="YES"' >> /etc/rc.conf
service rinetd start

Убедимся, что rinetd создал TCP-соединения:

# sockstat -4 |grep rinetd
root     rinetd     58506 4  tcp4   XXXX:85      *:*
root     rinetd     58506 5  tcp4   XXXX:22618   *:*

Итог

Для решения поставленной задачи также должен сгодиться штатный файрвол PF. При наличии нескольких внешних интерфейсов на роутере для правильного роутинга обратного маршрута в PF необходимо воспользоваться правилами rdr(+ tag) и reply-to. К сожалению, на практике мне не удалось решить задачу средствами PF.

Ссылки

FreeBSD - создать и добавить патч для порта www/squid32

Описание проблемы

На машине с FreeBSD 9.1, собранной без поддержки ipv6, squid 3.2.6 отказывается запускаться с ошибкой:

FATAL: Bungled Default Configuration line 6: acl localhost src 127.0.0.1/32 ::1
Squid Cache (Version 3.2.6): Terminated abnormally.

Само собой, в конфигурационном файле и в помине нет ip-адресов v6.

Решение проблемы

Решение состоит (см. - источник в ссылках) в том, чтобы переопределить конфигурацию по-умолчанию прямо в исходном коде порта.

Распакуем исходники squid32

make -C /usr/ports/www/squid32 extract
cd /usr/ports/www/squid32/work/squid-3.2.6/
cp src/cf.data.pre src/cf.data.pre.orig

Шпаргалка - NFS-сервер в FreeBSD

Синтаксис /etc/exports в FreeBSD отличается от Linux. Задача - сделать шару на чтение/запись для клиентов ЛВС. Внутренний ip-адрес NFS-сервера 192.168.1.2
Будем использовать NFSv3 (во FreeBSD 9 доступна также 4-я версия, но, к сожалению, у меня не получилось примонтировать шару под убунтой 12.04).

setup NFS-server (FreeBSD 9)

Реализация NFS входит в состав distribution, поэтому достаточно будет добавить соответствующие настройки и запустить сервисы.

edit /etc/rc.conf

## nfsd
mountd_enable="YES"
mountd_flags="-r -h 192.168.1.2"
rpcbind_enable="YES"
rpcbind_flags="-h 192.168.1.2"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4 -h 192.168.1.2"
nfs_reserved_port_only="YES"

edit /etc/exports.conf

/mnt/data -mapall=nobody -network 192.168.1.0/24

run NFS-server

service nfsd start

setup NFS-client (Ubuntu 12.10)

apt-get install nfs-common
mkdir /mnt/nfs
mount -t nfs -o rsize=65536,wsize=65536,noexec,nosuid,nodev,ro,soft,udp,nolock 192.168.1.2:/mnt/data /mnt/nfs

Ссылки

 
blog.txt · Последние изменения: 2013/01/23 14:51 — Антон Бугреев · []