Показаны сообщения с ярлыком freebsd. Показать все сообщения
Показаны сообщения с ярлыком freebsd. Показать все сообщения

четверг, октября 29, 2009

SIP и NAT

Читаем о том как подружить SIP и NAT в переведенной мною статье SIP через NAT

вторник, июля 29, 2008

Клонирование дисков в freebsd

Меня тут спросили, как я бекаплю freebsd. Отвечаю ВОТ ТАК

Вот еще вариантик, кстати больше понравился /usr/ports/sysutils/clonehdd Описание тут: Клонирование дисков во FreeBSD
Памятка по запуску из cron (в файл /etc/crontab добавить строку)

0 2 * * * root clonehdd -src=ad0 -dst=ad1 -swap=1024 -force >/dev/null

где src исх диск
dst диск назначения
swap размер раздела swap
force специально для cron не задавать вопросы

понедельник, июня 16, 2008

Измеряем скорость доступа в интернет

Озадачился тут я измерением скорости в канале до провайдера, нарисовал скриптик. Может кому пригодится. Измеряем скорость доступа в интернет. Сильно не пинать, не силен в программировании. :)

пятница, февраля 08, 2008

Настройка syslog.conf freebsd 6.2

Утомил меня демон dhcpd сыпать сообщения в /var/log/messages и на /dev/console. Решил я их перенаправить в файлик /var/log/dhcpd.log
Для начала смотрим файлик /usr/local/etc/dhcpd.conf на предмет логов. Находим там строчку log-facility local7; (если нет, то добавим). Если добавили, перегрузим dhcpd командой /usr/local/etc/rc.d/isc-dhcpd restart.
Далее открываем /etc/syslog.conf и добавим в конце

!dhcpd
*.notice /var/log/dhcpd.log

Это значит сообщения важности notice от демона dhcpd писать в файл /var/log/dhcpd.log
При этом надо создать этот файл. Владелец у него root:wheel, права 600.
Для того чтобы сообщения от dhcpd не валились на /dev/console и в файл /var/log/messages нужно добавить в 2 строки
local7.none
Ниже приведено содержимое файла /etc/syslog.conf



*.err;kern.warning;auth.notice;mail.crit;local7.none /dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err;local7.none /var/log/messages
security.* /var/log/security
auth.info;authpriv.info /var/log/auth.log
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
ftp.info /var/log/xferlog
cron.* /var/log/cron
*.=debug /var/log/debug.log
*.emerg *
!dhcpd
*.notice /var/log/dhcpd.log



Изменения в файле выделены красным цветом.
После изменения syslog.conf применим изменения в syslog командой /etc/rc.d/syslogd reload
Надеюсь кому нибудь эта информация прогодится :)

Ссылка по теме Настройка syslog





Обсудить сообщение можно в форуме admins.arg.su

среда, января 30, 2008

pf и freebsd 6.2

Обстоятельства диктуют переходить с ipfw на pf. Ну чтобы не попасть в просак решил я для начала поставить его на домашнем сервере.

Самое главное в осмыслении работы любого фаервола это понять принцип его работы. На самом деле все просто. Нужно рассматривать прохождение пакетов через интерфейсы относительно системы на которой установлен фаервол. Я хочу сказать что пакет входящий может может прийти в систему из интернета или из локальной сети (LAN). А исходящий пакет - это пакет в интернет или в LAN. Это очень важно.

В нашем случае требовалось обеспечить следующее.
  • Сетевых интерфейсов 2 (внешний и внутренний), включен nat.
  • С сервера наружу в интернет можно все.
  • Ping можно везде.
  • Из интернета на сервер можно пассивный ftp, ssh.
  • Из LAN и обратно можно все через туннель.
  • Из LAN в интернет можно dns, ssh, pop3, smtp, 1723, gre (остальное через прокси).
  • Необходимо пробросить порт на определенную машину в LAN чтобы работал torrent.
В ядро добавляем опции и компилим новое ядро. Как это сделать смотрите здесь

options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC
device pf
device pflog
device pfsync

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

Далее добавим в /etc/rc.conf следующие строчки

gateway_enable="YES"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flag=""

А теперь собственно сам файл /etc/pf.conf с пояснениями.


#int_if - внутренний интерфейс, ext_if - внешний интерфейс
int_if = "rl0"
ext_if = "fxp0"
#comp_rdr_lan на этот комп пробросим порты
comp_rdr_lan = "192.168.2.2"
#порты пробрасываемые внутрь локалки на комп comp_rdr_lan (торент)
comp_rdr_port = "6881, 55555"
#локальная сетка через туннель
lan_work = "192.168.1.0/24"
#Разрешаем из локалки эти порты
tcp_udp_out = "53, 6112"
tcp_out = "22, 25, 110, 1723"
#tcp_services - сервисы на нашем серваке 21 - фтп, 35500:35600 - порты фтп
# для пассивного режима, использую proftpd эти порты указаны в proftpd.conf
# для пассивного режима, порт 113 идент - вроде как используется некоторыми
# сервисами, 22 - ssh
tcp_services = "{ 21, 35500:35600, 113, 22 }"
#icmp_types - какие типы icmp принимать
icmp_types = "echoreq"
# списки приватных сетей, для блокировки их на внешнем интерфейсе
priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
#Поведение по умолчанию для правил фильтра, когда срабатывает правило block
# в нашем случае для отброшенных пакетов TCP отсылается TCP RST, для прочих
#ICMP Unreacheble
set block-policy return
#Нормализация входящего трафика
scrub in all
#Натим пакеты из локалки
nat on $ext_if from $int_if:network to any -> ($ext_if)
#Проброска портов в локалку на comp_rdr_lan
rdr pass on $ext_if inet proto { tcp, udp } from any to ($ext_if) \
port { $comp_rdr_port } -> $comp_rdr_lan
# по умолчанию запрещаем все
block all
#разрешаем все через локальный интерфейс
pass quick on lo0 all
#Блокируем приватные сети на внешнем интерфейсе
block drop in quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets
#Разрешаем доступ к нашему серваку снаружи к определенным портам
pass in on $ext_if inet proto tcp from any to $ext_if port $tcp_services \
flags S/SA keep state
#Разрешаем входящие icmp ping
pass in inet proto icmp all icmp-type $icmp_types keep state
#Разрешаем все через туннель
pass on tun0 all
pass on tun1 all
#Разрешить из локалки доступ к внутреннему интерфейсу и к локалке работы
pass in quick on $int_if from $int_if:network to { $int_if, $lan_work } \
keep state
#Разрешить из локалки tcp и udp на tcp_udp_out
pass in quick on $int_if inet proto { tcp, udp } from $int_if:network to any \
port { $tcp_udp_out } keep state
#Разрешить из локалки tcp на tcp_out
pass in quick on $int_if inet proto tcp from $int_if:network to any port \
{ $tcp_out } keep state
#Разрешить из локалки gre
pass in quick on $int_if inet proto gre from $int_if:network to any keep state
#Разрешить в локалку все через внутренний интерфейс
pass out on $int_if from any to $int_if:network keep state
#Разрешить наружу tcp через внешний интерфейс
pass out on $ext_if proto tcp all modulate state flags S/SA
#Разрешить наружу udp, icmp, gre через внешний интерфейс
pass out on $ext_if proto { udp, icmp, gre } all keep state


Ну и как памятка некоторые команды.

pfctl -sn Показать текущие правила NAT.
pfctl -sr Показать текущие правила фильтра.
pfctl -ss Показать текущую таблицу состояний.
pfctl -sa Показать все что можно.

P.S. Конфигурационный файл взят с абсолютно рабочей машины.



Обсудить сообщение можно в форуме admins.arg.su

пятница, апреля 20, 2007

Если не ставится программа из портов freebsd

Бывает так, что при установки программы требуется обновить зависимый порт.

echo "FORCE_PKG_REGISTER=yes" >> /etc/make.conf

вторник, марта 27, 2007

Установка mysql5, apache1.3, mod_perl, php4, php4_extensions из портов freebsd6.2.

Ставим MYSQL5

cd /usr/ports/databases/mysql50-server
make install clean

Добавим в /etc/rc.conf строку mysql_enable=”YES”
Дальше http://argo-uln.blogspot.com/2006/07/mysql.html

Ставим APACHE13

cd /usr/ports/www/apache13
make install clean

Добавим в /etc/rc.conf строку apache_enable=”YES”
Дальше http://argo-uln.blogspot.com/2006/07/apachephpperlssl.html

Ставим MOD_PERL

cd /usr/ports/www/mod_perl
make install clean


Ставим PHP4

cd /usr/ports/lang/php4
make config

Выбираем опции
X CLI
X CGI
X APACHE
X SUHOSIN
X FASTCGI
X PATHINFO
X ZLIB
make install clean

Ставим PHP4_EXTENSIONS

cd /usr/ports/lang/php4_extensions
make config

Выбираем опции
X CTYPE
X CURL
X GD
X GETTEXT
X LDAP
X MYSQL
X OVERLOAD
X PCRE
X PDFLIB
X POSIX
X SESSION
X TOKENIZER
X XML
X ZIP
X ZLIB
make install clean

Чтобы активировать модули apache, даем команду
apachectl graceful




Обсудить сообщение можно в форуме admins.arg.su

пятница, марта 23, 2007

Настройка Nat и ipfw в freebsd

Взято из handbook
Компилим ядро freebsd http://argo-uln.blogspot.com/2006/07/freebsd-54.html
В файле /etc/rc.conf


gateway_enable=”YES”
defaultrouter=”xxx.xxx.xxx.xxx”
ifconfig_fxp0=”inet xxx.xxx.xxx.xxx netmask 255.255.255.0”
ifconfig_fxp1=”inet 192.168.10.1 netmask 255.255.255.0”
firewall_enable=”YES”
firewall_quiet=”YES”
natd_enable=”YES”
natd_interface=”fxp0”
natd_flags=”-f /etc/natd.conf”


Файл /etc/natd.conf Пример:


redirect_port tcp 192.168.10.2:3389 3389


Перенаправить порт 3389 на 192.168.10.2:3389

Содержимое файла /etc/rc.firewall


#/bin/sh -
#Изменено 24.10.2007

fwcmd="/sbin/ipfw -q add"
ipfw -q -f flush

wan_if="fxp0" # внешний интерфейс
lan_if="fxp1" # локальный интерфейс
dns_provaidera=”xxx.xxx.xxx.xxx” # ip днс провайдера
terminal_server=”192.168.10.2” # ip windows терминального сервера
good_ip=”192.168.10.100” # ip из локалки которому разрешаем ходить наружу
skip="skipto 500"
ks="keep-state"
good_tcp1="25,53,80,443,110,3389"

# разрешаем все через интерфейс локальной сети
$fwcmd 002 allow all from any to any via $lan_if
# разрешаем все через 127.0.0.1
$fwcmd 003 allow all from any to any via lo0
# разрешаем ssh снаружи
$fwcmd 020 allow tcp from any to me 22 via $wan_if
$fwcmd 021 allow tcp from me 22 to any via $wan_if
#разрешаем подключения с сервера к днс прова
$fwcmd 024 allow tcp from me to $dns_provaidera 53 via $wan_if $ks
$fwcmd 025 allow udp from me to $dns_provaidera 53 via $wan_if $ks
#разрешаем Пинги с сервера
$fwcmd 026 allow icmp from me to any out via $wan_if $ks
#разрешаем порты 80 21 443 3389 с сервера
$fwcmd 027 allow tcp from me to any $good_tcp1 out via $wan_if $ks
#Подменяем у пакетов из вне на внешнем интерфейсе адрес назначения на 192.168.10.1
$fwcmd 100 divert natd ip from any to me in via $wan_if
$fwcmd 101 check-state
#Разрешаем изнутри подключение к ДНС провайдера
$fwcmd 120 $skip tcp from any to $dns_provaidera 53 out via $wan_if $ks
$fwcmd 121 $skip udp from any to $dns_provaidera 53 out via $wan_if $ks
# Разрешаем снаружи подключение к терминал серверу внутри локалки
$fwcmd 122 allow tcp from any to $terminal_server 3389 in via $wan_if
$fwcmd 123 $skip tcp from $terminal_server 3389 to any out via $wan_if
# Разрешаем 192.168.10.100 доступ наружу к портам 25,53,80,443,110,3389
$fwcmd 125 $skip tcp from $good_ip to any $good_tcp1 out via $wan_if setup $ks
# Разрешаем изнутри icmp
$fwcmd 150 $skip icmp from any to any out via $wan_if $ks

$fwcmd 300 deny all from 192.168.0.0/16 to any in via $wan_if
$fwcmd 301 deny all from 172.16.0.0/12 to any in via $wan_if
$fwcmd 302 deny all from 10.0.0.0/8 to any in via $wan_if
$fwcmd 303 deny all from 127.0.0.0/8 to any in via $wan_if
$fwcmd 304 deny all from 0.0.0.0/8 to any in via $wan_if
$fwcmd 305 deny all from 169.254.0.0/16 to any in via $wan_if
$fwcmd 306 deny all from 192.0.2.0/24 to any in via $wan_if
$fwcmd 307 deny all from 204.152.64.0/23 to any in via $wan_if
$fwcmd 308 deny all from 224.0.0.0/3 to any in via $wan_if
# Разрешаем наружу все с самого сервера
$fwcmd 400 allow tcp from me to any via $wan_if $ks
$fwcmd 450 deny log ip from any to any
# Обратная подмена ip адреса из локалки на внешний
$fwcmd 500 divert natd ip from any to any out via $wan_if
$fwcmd 510 allow ip from any to any


четверг, марта 01, 2007

Очередность запуска сервисов freebsd

Посмотреть очередность запуска сервисов в freebsd.
Взято из рассылки freebsd на opennet.ru.

rcorder /etc/rc.d/* /usr/local/etc/rc.d/*

вторник, января 23, 2007

Подключение флешки freebsd

mount -t msdos -o -L=ru_RU.KOI8-R /dev/da0s1 /mnt/flash

воскресенье, октября 08, 2006

Добавим звук freebsd 6.1

Добавить в файл /boot/loader.conf


snd_driver_load="YES"


пятница, октября 06, 2006

Русификация консоли freebsd (памятка)

В файле /etc/master.passwd

user:$dfdlsdlldfdl:1001:1001::0:0:User &:/home/user:/bin/csh

в пятое поле добавить russian, получается

user:$dfdlsdlldfdl:1001:1001:russian:0:0:User &:/home/user:/bin/csh

Сохранить изменения в файле и дать команду
pwd_mkdb -p /etc/master.passwd

пятница, июля 28, 2006

Перенос FreeBSD с одного HDD на Другой

Написано по мотивам статей:
http://www.freebsd.org.ru/how-to/w2w.html
http://sysadmin.su/index.php?option=com_content&task=view&id=33
http://www.opennet.ru/base/sys/movingfbsd.txt.html

Подключаем 2 HDD, включаем комп, смотрим как определился (н-р: ad2).
Создаем директории /mnt/root, /mnt/var, /mnt/usr, /mnt/tmp.
Запускаем /stand/sysinstall, в ней выбираем configure -> fdisk, ad2.
Создаем freebsd slice на всем винте нажав "A", нажимаем "S" (set bootable), нажимаем "W" (write changes). "Q" выходим из fdisk, задастся вопрос надо ли создать Master Boot Record. Выбираем Standart Install standart MBR и YES.
После этого перезагружаемся. - ВАЖНО!!!
Запускаем /stand/sysinstall -> Label, выбираем ad2, создаем partitions.
Если вручную, то "С".
пример:
винт 80Gb
"С" -> 512M ->FS ->/
"С" -> 512M ->SWAP
"С" -> 30000M ->FS ->/var
"С" -> 10000M ->FS ->/tmp
"С" -> 35292M ->FS ->/usr

После этого меняем точки монтирования
/ -> /mnt/root
/var -> /mnt/var
/tmp -> /mnt/tmp
/usr -> /mnt/usr
Переходим на самую верхнюю строчку (Disk: ad2 Parition name: ad2s1 Free:0 blocks(0MB)). - ВАЖНО!!!
Нажимаем "W" для записи изменений и "Q" для выхода.
Потом копируем разделы по root
cd /; pax -p eme -X -rw . /mnt/root
cd /var; pax -p eme -X -rw . /mnt/var
cd /tmp; pax -p eme -X -rw . /mnt/tmp
cd /usr; pax -p eme -X -rw . /mnt/usr

Для справки:
Информация о партишнах /etc/fstab, об устройствах в папке/dev/

вторник, июля 25, 2006

Ставим mc

Для freebsd Должен быть установлен пакет glib
/stand/sysinstall -> packages -> glib
tar -zxvf mc-4.6.0.tar.gz
cd mc-4.6.0
./configure
make
make install

Примечание: а можно проще
cd /usr/ports/misc/mc
make install

Из пакаджей
pkg_add -r mc
Через прокси
env http_proxy=user:passwd@192.168.1.1:8080 pkg_add -r mc


четверг, июля 20, 2006

Обновление дерева портов freebsd 5.4

cd /usr/ports/net/cvsup-without-gui
make
make install

cd /home/user
mkdir cvsup
cd cvsup
ee cvsup.ports


содержимое файла cvsup.ports


*default host=cvsup2.ru.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs
*default tag=.
*default delete use-rel-suffix compress
#src-all
ports-all
doc-all


содержимое файла cvsup.sh


#!/bin/sh
/usr/local/bin/cvsup -g -L 2 cvsup.ports
cd /usr/ports && make fetchindex


chmod +x cvsup.sh

можно запускать cvsup.sh

Примечание: В фаерволе пропустить порт TCP 5999 inbond и outbond

пятница, июля 14, 2006

Компилим ядро freebsd 5.4

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


cd /usr/src/sys/i386/conf
cp GENERIC /usr/src/sys/i386/conf/FREEBSD
(копируем ядро по умолчанию в новый файл)

меняем в нем
ident GENERIC на ident FREEBSD
добавляем опции

options IPFIREWALL #Вкл в ядро код для фильтр пакетов
options IPFIREWALL_VERBOSE #Вкл протокол пакетов через syslogd
options IPDIVERT
options DUMMYNET
options IPFIREWALL_FORWARD


пересборка


cd /usr/src/sys/i386/conf
config FREEBSD

cd /usr/src/sys/i386/compile/FREEBSD
make depend
make all
make install