[есть мнение]
Добавить: ifconfig fxp0 inet 192.168.1.1 netmask 255.255.255.255 alias
Убрать: ifconfig fxp0 inet 192.168.1.1 netmask 255.255.255.255 -alias
Табличка с сетевыми масками.
[обсудить]
адресов в подсети, 255.255.255.x маска, /x маска, .0 - cisco acl маска.
0 .255 /32 .0
2 .254 /31 .1
4 .252 /30 .3
8 .248 /29 .7
16 .240 /28 .15
32 .224 /27 .31
64 .192 /26 .63
128 .128 /25 .127
256 .0 /24 .255
Ethernet, ARP, привязка MAC адресов.
С чем может быть связаны потери пакетов и нестабильная работа ethernet карт
?
[обсудить]
Приходилось сталкиваться с проблемами согласования режимов работы карт Intel
EtherExpress 100 и
Reltek RTL-8139 c коммутаторами и концентраторами различных производителей.
Несогласование
проявляется, например в работе карты в режиме half-duplex, а свича в
full-duplex и т.д. (в linux: /sbin/mii-tool -F 100baseTx-FD eth0)
Как в Linux выставить принудительно 100Mb FullDuplex для Intel EtherExpress
Pro100, а то auto-select с некоторыми свичами не работает.
[обсудить]
/sbin/mii-tool -F 100baseTx-FD eth0
Для модуля:
В /etc/modules.conf:
options eepro100 options=0x200 full_duplex=1
alias eth0 eepro100
insmod eepro100.o debug=1 options=0x200
Для ядра в boot приглашении:
ether=0,0,0x200,eth0
PS. Для драйвера версии меньше 1.14 (mod_info -a eepro100) вместо 0x200
следует писать 0x30.
Почему выкачиваются данные с машины нормально, как только пытаюсь что-то
закачать - соединение останавливается, даже через ssh больше 5 мин. не
удается поработать. Другие машины работают нормально.
[есть мнение]
Неоднократно замечена проблема работы сетевых карт на базе RealTek 8129/8139
(машины под FreeBSD,
но с другими ОС тоже проявляется) с некоторыми концентраторами и
коммутаторами.
Проявляется в замирании сессий до истечения таймаута.
Диагностика: ping -s N remote_ip, при больших N не проходят.
Решение: Смените сетевую карту, например, на Intel EtherExpress Pro.
Как переключить сетевую карту в FreeBSD из full-duplex в half-duplex
[есть мнение]
Текущий режим работы сетевой карты можно посмотреть выполнив:
# ifconfig fxp0
Перевести сетевую карту в режим работы 10baseT/UTP half-duplex:
# ifconfig fxp0 media 10baseT/UTP mediaopt half-duplex
Автоматически выбрать режим:
# ifconfig fxp0 media autoselect
Подробнее: man 4 ed, man 4 rl, man 4 fxp
Как привязать IP к MAC-адресу сетевой карты
Автор: Dima I. Allaverdov [обсудить]
arp -s ваш.ip.адрес mac.адрес.сетевой.карты pub
Пример: /usr/sbin/arp -s 192.168.0.10 0:0:e7:ac:4c:63 pub
NAT, трансляция адресов

Автор: spanka [есть мнение]
Вот реализация для ipfw:
if1IP="ип_смотрящий_в_инет", if1="интерфейс_смотрящий_в_инет"
ifLIP="ип_на_который хотим делать редирект"
ipfw add divert natd tcp from any to ${if1IP} 80 via ${if1}
ipfw add divert natd ip from any to ${ifLIP} to any via ${if1}
ipfw add allow tcp from any to ${if1IP} 80 via any
natd -n ${if1} -redirect_port tcp ${ifLIP}:80 80
Решение от miaso <torov@wipline.ru>:
tproxy -s 80 -r nobody -l /var/log/transparent_proxy.log [int_ip] 80
Как в Linux перебросить соединение через NAT во внутреннюю сеть
Автор: Dimez [есть мнение]
Первый путь - пробрасывание только порта:
1) iptables -t nat -A PREROUTING -p tcp -d EXT_R_IP --dport 10000 -j DNAT
--to-destination LOCAL_IP:80
2) iptables -A FORWARD -i eth0 -d LOCAL_IP -p tcp --dport 22 -j ACCEPT
Второй вариант - выброс всей машины наружу (если есть свободные адреса):
1) ifconfig eth0:0 NEW_IP netmask NETMASK broadcast BROADCAST
2) route add NEW_IP gw GW netmask 0.0.0.0 metric 1 dev eth0:0
3) iptables -t nat -A PREROUTING -p tcp -d NEW_IP -j DNAT --to-destination
LOCAL_IP
4) iptables -A FORWARD -i eth0 -d LOCAL_IP -j ACCEPT
Обозначения: EXT_R_IP - внешний IP роутера, LOCAL_IP - внутренний IP машины,
которуюхочешь выбросить
NEW_IP - новый IP на который хочешь посадить машину, которая имеет
локальный LOCAL_IP
NETMASK, BROADCAST, GW - внешние netmask, broadcast и gateway
Пример настройки NAT с привязкой к IP под Linux
[есть мнение]
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 -o eth0 -j SNAT
--to-source 212.23.98.45
или (без привязки к IP)
ipchains -A forward -j MASQ -s 192.168.0.0/16 -d 0.0.0.0/0
или (через iproute2)
ip rule add from 10.0.1.0/24 nat 254.147.38.14
Как организовать редирект порта на внутреннюю машину через ipnat в FreeBSD.
[обсудить]
man 5 ipnat в /etc/ipnat.conf:
rdr fxp0 205.15.63.3/32 port 80 -> 192.168.1.1 port 80 tcp
# Базансировка нагрузки между 2 IP:
rdr le0 203.1.2.3/32 port 80 -> 203.1.2.3,203.1.2.4 port 80 tcp
round-robin
Как настроить NAT (транслятор адресов) для нормальной работы с FTP и ICQ в
Linux
[есть мнение]
iptables:
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_irc
ipchains:
modprobe ip_masq_ftp
modprobe ip_masq_raudio
modprobe ip_masq_irc
modprobe ip_masq_icq
Как обеспечить работу active FTP режима в FreeBSD NAT
[есть мнение]
В ipnat воспользуйтесь модулем ftp proxy:
map fxp0 0/0 -> 0/32 proxy port ftp ftp/tcp
map rl0 172.16.33.0/24 -> 212.46.231.50/32 proxy port ftp ftp/tcp
не забудьте поместить правило трансляции ftp перед общим правилом
трансляции,
порядок следования правил важен.
Как запустить трансляцию адресов (NAT) под FreeBSD
[есть мнение]
В /etc/rc.conf:
ipnat_enable="YES"
В /etc/ipnat.rules:
map ppp0 172.16.1.0/24 -> 194.46.124.53/32
Перечитать: ipnat -CF -f /etc/ipnat.rules

PPP, PPTP, PPPOE
Как поднять выделенное соединение по PPP.
[есть мнение]
Скрипт /etc/ppp.sh:
#!/bin/sh
while : ; do
pppd cuaa0 115200 noipdefault noauth defaultroute nodetach
done
Настройка PPTP-клиента под FreeBSD
Автор: l0ner [есть мнение]
Необходимо установить из портов пакет pptpclient
/etc/ppp/ppp.conf
vpn:
set authname <LOGIN>
set authkey <PASSWORD>
set timeout 0
set ifaddr 0 0
add default HISADDR
Подключение к VBN серверу:
/sbin/route add -host <IP_address_of_VPN_server> <gateway>
/usr/local/sbin/pptp <IP_address_of_VPN_server> vpn &
Policy routing
Пример policy routing в Linux (маршрутизация в зависимости от IP источника)
[обсудить]
ip rule add from 10.1.10.0/24 to 0/0 table 102 pref 100
ip route add table 102 via 10.1.10.1
ip rule add from 10.1.11.0/24 to 0/0 table 103 pref 100
ip route add table 103 via 10.1.11.45
Как организовать Policy Routing на FreeBSD
[обсудить]
ipfw add 100 fwd 10.0.0.2 ip from 10.0.2.0/24 to any
Если нужно использовать 2 шлюза, то можно воспользоваться:
ipfw add fwd $ext_gw_ip ip from $ext_net to any out xmit $ext_int
Ограничение трафика
Ограничения трафика с помощью iproute2
Автор: Z0termaNN [есть мнение]
tc qdisc add dev eth1 root handle 1: htb default 2 r2q 1
tc class add dev eth1 parent 1: classid 1:1 htb rate 10mbit ceil 10mbit mtu
1500
tc class add dev eth1 parent 1:1 classid 1:77 htb rate 32kbit ceil 48kbitmtu 1500 prio 0
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 128kbit ceil 128kbit
mtu 1500
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dport 25
flowid 1:77
Пример ограничения полосы пропускания трафика в FreeBSD
[есть мнение]
Собираем ядро с опциями:
options DUMMYNET
options IPFIREWALL
Ограничиваем трафик для сеток 1.1.1.0/24 и 3.3.3.0/24 на 14000 кбит/с:
ipfw add pipe 50 tcp from any to 1.1.1.0/24 via fxp0
ipfw add pipe 50 tcp from any to 3.3.3.0/24 via fxp0
ipfw pipe 50 config bw 14Kbit/s
Для внесения задержки на N ms, используйте delay N после config.
Для установки веса данного пайпа по отношению к другим пайпам используйте
weight вес.
Для WF2Q ограничения трафика используйте ipfw queue
(queue N config [pipe pipe_n w u s о т r о б р " к з д т f o s 0 b
p o 1 . т
т е е о о е р r . m c t 0 e r м d о c a r и в в B и
е e у i e
i T - - e c r - c U r P
н и
е L l s ы F w
П ь : i
n и и ю т [ ] й б о
e - T r D s C 2 - i C p В н в н н
i W a C u I m v ) t R c o n - O C а R и а - к ш
н к ш м р к L S T н е з д с
l A G . / j s 3 ( и c r Q . . u u .
а з а ч е и о с
м р д о a U p p i 0 # н N - i i # н к p c 0 b l 4
р и U а s н > p a T - j 1 3 i н к И
а е ц ж о н С а у н т а а о в b T - c p E 0 - r l d I R m
t x N e - c o a U p i a
и н с м т C е b p e p n p d t n o f o r d s d s
i у н ) c : "
р m - , - n [ t s e У п к m - r k р п л ь o - u - r - r а р в s t О l
я G g l р N е O < o м е i ( t м - л
t а
ф ь с а т в о
S r o . 1 и p в т и и е п
д ж в o
е l [
s U c t u b d i 0 b d
а т : i
S т е в ю т е д 1 р " р щ i _ и д f t r { i i e f $ a 1 d f $ v t o L
Р i w
y g t [
К ь и и ч p в е п s i n л е и и а e . a
и т S т S т ш о щ r e n 3 u e t r m o t t 1 r t q t p n e k 7 s
y c 0 p o н с , { 0 i е a в р p f 0 c ш n н ф f 0 g a n й
а а у и n D т / o x 3 8 8 0 н р 2 l 3 3 p r
а r т з к д y u в в у п у и и f i w . 1 е и о а B м
р : M i О с 0 . 0 i r . a f 5 a . p i g s и н о a o с а й е м о g
ч а е
n i g [ s S и a л т а д п е : 1 s 0 1 u d p o п х и а /
ф ь с а т в о
S r o . 1 и p в т и и е п
д ж в o
р в 0
н п в т . i o a . s r . a d о о о r , о а с и 4
р e A н В о о r f 0 o t 0 0 4 f н п а я е в я о я е
т ц ( e ь
. n Y i 2 . е p / u
и c а [
0 m 4 с п о з i d t x
и р B и и я с и f я й й 3 н
н C l 1 . $ ) f . 3
б
о и т ч а
н n е и к в и к х о й й ч r
о _ i n p
l 4 p
е e o e r т l t 4 . =
т н к а о б ь с а а E и T м и о н и г п р l l . : t a 0
ч н к ы о о т р ш а г а а т
а а а х з 1 ш e д о т о т к и т н д Д e и н
е ю р t r м в о *T тoм'о хwо тdеtнr vт.оlн* IoMyyiphs cC 9п5чJ.sоpа
ж.тAоlyns*щ ы
е р е е 4 t a в р а е т л о незапная остановка передачи
данных большого объема и разрыв сесcии по таймауту, например, если на пути
трафика встречается туннель.
Одним из путей решением проблемы, является установка на туннеле MTU > 1500 и
отмена блокировки ICMP трафика.
Проблемы с ECN в Linux лечатся:
echo 0 >/proc/sys/net/ipv4/tcp_ecn
path MTU discovery:
Linux: echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
FreeBSD: sysctl -w net.inet.tcp.rfc1323=0
Туннелинг, VPN, VLAN
Как создать простейший туннель используя утилиту netcat
[обсудить]
Простейший echo-туннель:
Серверный процесс: nc -l -p 5600
Клиент: nc 10.0.1.1 5600
netcat для пересылки файла:
Сервер (куда писать файл): nc -v -w 30 -p 5600 l- > filename.back
Клиент: nc -v -w 2 10.0.1.1 5600 < filename
Перенаправление ввода/вывода на программу:
Сервер: nc -l -p 5600 -e /bin/bash
Клиент: nc 10.0.1.1. 5600
Настройка PPTP-клиента под FreeBSD
Автор: l0ner [есть мнение]
Необходимо установить из портов пакет pptpclient
/etc/ppp/ppp.conf
vpn:
set authname <LOGIN>
set authkey <PASSWORD>
set timeout 0
set ifaddr 0 0
add default HISADDR
Подключение к VBN серверу:
/sbin/route add -host <IP_address_of_VPN_server> <gateway>
/usr/local/sbin/pptp <IP_address_of_VPN_server> vpn &
Использование в FreeBSD IEEE 802.1Q VLAN'ов совместно с Cisco Catalyst
Switch
[обсудить]
В конфигурации FreeBSD ядра:
pseudo-device vlan 20 # VLAN support (для динамической генерации в новых
версиях - 20 можно не писать)
Поднимаем VLAN вручную (где 28 - vlan id на свиче, fxp0 - интерфейс
воткнутый в свитч):
ifconfig vlan0 inet 192.168.1.3 netmask 255.255.255.0 vlan 28 vlandev
fxp0
Прописываем в /etc/rc.conf:
cloned_interfaces="vlan0"
ifconfig_vlan0="inet 192.168.1.3 netmask 255.255.255.0 vlan 28 vlandev
fxp0"
На коммутаторе Cisco Catalyst:
interface FastEthernet0/1 # линк к FreeBSD
switchport mode trunk
interface FastEthernet0/2
switchport access vlan 28
Как с помощью утилиты netcat организовать инкапсуляцию UDP в TCP поток.
[обсудить]
Например, для доступа к syslog UDP порту через TCP соединение (клиент):
nc -l -u -p syslog | nc localhost 2000
Обратное преобразование (сервер):
nc -l -p 2000 | nc localhost -u syslog
В итоге можно организовать TCP туннель (например через SSH) для проброса
информации для syslog.
Как после краха INN перестроить group.index и содержимое overview
[обсудить]
makehistory -O -x -F
Как в программе, запущенной через inetd, узнать IP адрес клиента.
[обсудить]
В /etc/hosts.allow (man hosts_access;man hosts_options):
# IP в REMOTE_ADDR
popa3d: ALL : setenv REMOTE_ADDR %a : allow
# имя хоста в REMOTE_ADDR
popa3d: ALL : setenv REMOTE_ADDR %h : allow
В программе IP адрес получаем через getenv("REMOTE_ADDR").
DNS
Как организовать рекурсивные запросы только через жестко определенные
сервера.
[обсудить]
options {
# Если "first" - то если forwarders не ответил - запрашиваем сами.
# Если "only" - сами никогда не запрашиваем, только через forwarders.
forward only;
forwarders {192.168.1.1; 192.168.2.1;};
};
Как запретить рекурсивные запросы через DNS сервер для чужих клиентов
[обсудить]
acl localnet { 192.168.1.0/24; 10.0.1.0/24; };
options {
allow-recursion {localnet; 192.168.2.0/24};
# Полностью запросы можно ограничить через "allow-query" или "blackhole"
};
Как запретить Bind показывать свою версию для внешнего мира.
[обсудить]
Узнать версию можно через:
dig @ns.test.ru version.bind chaos txt
Чтобы запретить, нужно в options блоке named.conf прописать:
options {
...
version "0.1";};
Как разрешить полный трансфер DNS зоны только для избранных серверов.
[обсудить]
zone "host.ru" {
type master;
allow-transfer { 1.2.3.4; 1.2.3.5; 1.2.3.6;};
file "host.ru";
}
Как избавиться от ограничения числа одновременных коннектов к named
[обсудить]
options {
directory "/etc/namedb";
recursive-clients 5000;
tcp-clients 500;
};
Как в DNS прописать два образа одной и той же зоны для внутренней и внешней
сети.
Автор: uldus [есть мнение]
view "internal" {
match-clients { 192.168.0.0/16; };
zone "test.ru" {
type master;
file "test.ru.int";
};
};
view "external" {
match-clients { any; };
zone "test.ru" {
type master;
file "test.ru.ext";
};
};
FTP
Как настроить NAT (транслятор адресов) для нормальной работы с FTP и ICQ в
Linux
[есть мнение]
iptables:
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_irc
ipchains:
modprobe ip_masq_ftp
modprobe ip_masq_raudio
modprobe ip_masq_irc
modprobe ip_masq_icq
Как обеспечить работу active FTP режима в FreeBSD NAT
[есть мнение]
В ipnat воспользуйтесь модулем ftp proxy:
map fxp0 0/0 -> 0/32 proxy port ftp ftp/tcp
map rl0 172.16.33.0/24 -> 212.46.231.50/32 proxy port ftp ftp/tcp
не забудьте поместить правило трансляции ftp перед общим правилом
трансляции,
порядок следования правил важен.
Как в postfix осуществить преобразования UUCP формата email адреса или
внести изменения в адрес.
[обсудить]
man 5 canonical (см. canonical_map, recipient_canonical_maps,
sender_canonical_maps)
main.cf:
canonical_maps = regexp:/etc/postfix/canonical_regexp
canonical_regexp:
/^.*!(.*)!(.*)$/ $2@$1
/^([^!]+)!([^@]+)@.*$/ $2@$1
Преобразуем из вида uutest6!uutest6.uucp.test.ru!user318 в вид
user318@uutest.uucp.test.ru
Как организовать в sendmail пересылку всей почты (или для выбранных доменов)
только через определенный релей.
[обсудить]
в sendmail.cf: DSesmtp:[relay.somehost.ru]
или для m4 скриптов:
define(MART_HOST',elay.somehost.ru')dnl
или для игнорирования MX значения (далее в квадратных скобках):
define(MART_HOST',relay.somehost.ru]')dnl
Для описания пути транспортировки почты (почтового роутинга) для
определенных доменов:
FEATURE(ailertable', ash /etc/mail/mailertable')dnl
/etc/mail/mailertable
domain1 esmtp:relay1.somehost.ru
domain2 smtp:[relay2.somehost.ru]
Как в postfix настроить маршрутизацию почты в обход значения MX
[обсудить]
Для отправки почты для test.ru только через relay2.test.ru в обход MX:
main.cf:
transport_maps = hash:/usr/local/etc/postfix/transport
transport:
test.ru :[relay2.test.ru]
Для того чтобы всю почты пересылать через релэй,
нужно использовать в main.cf опцию relayhost
Как в postfix и sendmail перенаправить почту для несуществующих
пользователей на определенный email ?
[есть мнение]
Postfix:
luser_relay = vasia@pupkin.org
Или, для виртуального домена в virtual, перенаправим всю почту для домена
test.ru на vasia@pupkin.org, в viruals :
test.ru test.ru
@test.ru vasia@pupkin.org
Sendmail, используя m4:
define(USER_RELAY',ail.somehost.ru') # перенаправление на почтовый
сервер
define(USER_RELAY',ocal:pupkin') # перенаправление локальному
пользователю.
Безопасность и установка ограничений
Как запретить выполнение программ через .forward файл.
[обсудить]
Часто ограничив cgi скрипты пользователей и доcтуп по FTP,
забывают про возможность запуска программ через "|script" опцию в .forward
файле.
Запрещение выполнения скриптов через .forward в Postfix (для агента доставки
local):
allow_mail_to_commands = alias
local_command_shell=/dev/null
Вообще запретить .forward, через изменение пути поиска:
forward_path = $home/.forward
Как заставить postfix проверять наличие локального пользователя в системе на
этапе соединения
[есть мнение]
В main.cf добавьте строчку:
local_recipient_maps = $alias_maps unix:passwd.byname
Без данной опции, postfix полностью принимает письмо для любого
пользователя,
даже для несуществующего, и лишь потом рассылает bounce сообщение.
С local_recipient_maps ошибка генерируется сразу на этапе RCPT TO:
Тестирование на открытый relaying
[есть мнение]
telnet domen 25
HELO hostname
VRFY email_адрес
EXPN email_addr
MAIL FROM: email_адрес_от_кого
RCPT TO: email_адрес_кому
DATA
test
.
QUIT
Как заставить sendmail не отправлять все тело письма при ошибке
[есть мнение]
В sendmail.cf добавить nobodyreturn, например:
O PrivacyOptions=authwarnings, novrfy, noexpn, nobodyreturn
При использовании, M4:
define(onf_PRIVACY_FLAGS', —uthwarnings, noexpn, novrfy, nobodyreturn')
В Postfix:
bounce_size_limit = 10000
какие ограничения нужно установить в sendmail.cf
[есть мнение]
в sendmail.cf
O MaxRecipientsPerMessage=20
O MaxMessageSize=1000000
При использовании M4 макросов:
define('confMAX_RCPTS_PER_MESSAGE', '20')
define('confMAX_MESSAGE_SIZE', '1000000')
Какие ограничения для пользователей выставить в Postfix.
[есть мнение]
# Ограничиваем размер сообщения в 1 Мб.
message_size_limit = 1024000
# Ограничичиваем число CC в одном письме.
smtpd_recipient_limit = 5
# Ограничиваем размер ящика
mailbox_size_limit = 51200000
Если patch.mailbox:
# формат inbox-size-override: login макс_разме
default_mailbox_size = 5000
mailbox_size_map = hash:/etc/postfix/inbox-size-override
Как заблокировать проверку наличия аккаунта в системе через SMTP
[обсудить]
Проверку через "expn логин_пользователя" или "vrfy логин_пользователя",
можно заблокировать в sendmail:
В sendmail.cf добавить "O PrivacyOptions=authwarnings, noexpn, novrfy"
(можно использовать опции needexpnhelo, needvrfyhelo, которые требуют
наличия предварительного HELO для выполнения EXPN или VRFY)
или m4 макросом
define(onf_PRIVACY_FLAGS', —uthwarnings, noexpn, novrfy')
В Рostfix: disable_vrfy_command = yes
Борьба со спамом, фильтрация почты
Как в Exim отфильтровать спам по базе открытых релеев.
Автор: dawnshade [обсудить]
В "MAIN CONFIGURATION SETTINGS":
domainlist rbl_domains = blackholes.mail-abuse.org:relays.mail-abuse.org
domainlist rbl_dial_domains =
dialups.mail-abuse.org:work.drbl.caravan.ru:dul.ru
В "ACL configuration":
deny message = Spam bloked from open relay\n
domains = +rbl_domains
deny message = Use mail relay's of you ISP!
domains = +rbl_dial_domains
Как отфильтровать в postfix ALC спам
Автор: Antony [есть мнение]
Postfix:
body_checks = regexp:/etc/postfix/body_checks
Пример для "AMER ICAN LA NGUAGE CENTER"
/etc/postfix/body_checks:
~^[[:alnum:]+/]{60,}[[:space:]]*$~ OK
/.*A.*M.*E.*R.*I.*C.*A.*N.*L.*A.*N.*G.*U.*A.*G.*E.*C.*E.*N.*T.*E.*R.*/
REJECT Body Spam Rule NN
Как отфильтровать спам по базе открытых релеев.
[есть мнение]
Postfix:
maps_rbl_domains = work.drbl.caravan.ru, dul.ru, relays.ordb.org
maps_rbl_reject_code = 550
smtpd_client_restrictions = reject_maps_rbl
Sendmail (в sendmail.mc):
FEATURE('dnsbl', 'dul.ru', 'Use mail relays of your ISP')dnl
FEATURE('dnsbl', 'work.drbl.caravan.ru', se mail relays of your
ISP')dnl
FEATURE('dnsbl', 'relays.ordb.org', 'Spam bloked from open relay.')dnl
Ссылки: http://www.drbl.ofisp.org/zones.html , http://www.dul.ru/ ,
http://ordb.org/faq/
Где взять примеры написания фильтров к MTA для блокирования вирусов.
[обсудить]
Exim: ftp://ftp.exim.org/pub/filter/
Подключается через: message_filter = /etc/exim/system_filter.exim
Procmail: ftp://ftp.rubyriver.com/pub/jhardin/antispam/html-trap.procmail
Postfix: http://www.mrbill.net/postfix/
http://www.opennet.ru/base/net/postfix_filter.txt.html
Как через procmail блокировать спам.
[обсудить]
Вот пример моего .procmailrc, фильтует наиболее примитивные попытки спэма:
:0
* ^To: undisclosed-recipients/home/mc/Mail/Trash
:0
* !^To: .*@/home/mc/Mail/Trash
:0
* ^X-Mailer:.*Advanced Mass/home/mc/Mail/Trash
:0
* ^Content-Type.*indows-1251/home/mc/Mail/Trash
:0
* ^Content-Disposition: attachment;filename=.*\.(pif|bat|com|exe|lnk)
/home/mc/Mail/Trash
Как вырезать вирусы из письма используя Postfix
[обсудить]
/etc/postfix/main.cf:
body_checks = regexp:/etc/postfix/body_checks
header_checks = regexp:/etc/postfix/header_checks
/etc/postfix/body_checks:
# Вырезаем EXE файлы.
# в скобках [ ] - один пробел и один символ табуляции.
/^[ ]*name=.*\.(exe|dll|eml|vbs|pif|com|bat|scr|lnk)\"?$/
REJECT
/\<iframe src=cid\:.* height=0 width=0\>/i REJECT
/^Content-Disposition: attachment;
*filename=.*\.(exe|dll|eml|vbs|pif|com|bat|scr|lnk).*/i REJECT
/etc/postfix/header_checks:
# Sircam
/^Content-Type:multipart.*"----[A-F0-9]+_Outlook_Express_message_boundary"/i
# Nimbda
/^X-Unsent: 1/ REJECT
/^X-Mailer: Advanced Mass Sender/ REJECT
/^X-Mailer: Mail Bomber/ REJECT
/^X-Mailer: .*\-VC_IPA \[/ REJECT
Отправка и пересылка сообщений на уровне пользователя
Как послать письмо с аттачем из shell
Автор: Vadim Fedorov [обсудить]
metasend -b -s "$SUBJECT" -f $TXTFILE -m text/plain -e none -n \
-f $ATTFILE -m application/octet-stream -e base64 -t $MAILTO
mpack -s "$SUBJECT" -c application/octet-stream $ATTFILE $MAILTO
mutt -a $ATTFILE -s "$SUBJECT" $MAILTO < $TXTFILE
Как из командной строки послать письмо с приаттаченным файлом
[обсудить]
metasend
В зависимости от типа файла, в качестве Content-type пишем:
application/gzip
application/zip
application/postscript
image/jpeg
image/png
audio/basic
audio/mpeg3
audio/wav
Как отправить все сообщения из mailbox на другой email
[есть мнение]
cat /var/spool/mail/user_name | formail -s sendmail some@email
NFS
Настройка NFS сервера и NFS клиента под FreeBSD и Linux
[обсудить]
NFS сервер:
/etc/rc.conf:
portmap_enable="YES", nfs_server_enable="YES",
nfs_reserved_port_only="YES"
/etc/exports (man exports):
/usr/local/nfs -rw 192.168.1.2
/usr/local/nfs -ro -mapall=nobody -network 192.168.1 -mask 255.255.255.0
/cdrom -alldirs,quiet,ro -network 192.168.33.0 -mask 255.255.255.0
Для Linux /etc/exports будет выглядеть примерно так (запуск - service start
portmap и nfs):
/usr/local/nfs 192.168.1.0/255.255.255.0(ro) 192.168.2.1(rw)
NFS клиент.
/etc/rc.conf: portmap_enable="YES", nfs_client_enable="YES"
/etc/fstab:
192.168.1.1:/usr/local/nfs /home/nfs nfs ro 0 0
SNMP
Как по SNMP скинуть dialup пользователя с линии (Cisco AS)
[обсудить]
Скинуть пользователя по заданному порту (N) можно через OID:
1.3.6.1.4.1.9.9.150.1.1.3.1.5.N
snmpset as-1.test.ru private .1.3.6.1.4.1.9.9.150.1.1.3.1.5.N i 1
Соспоставить логин с номером порта можно через OID:
1.3.6.1.4.1.9.9.150.1.1.3.1.2
Или из FAQ: snmpset -v1 as-1.test.ru private .1.3.6.1.4.1.9.2.9.10.0 i $lineКак в UCD-SNMP прописать скрипт для обработки нужного MIB ObjectID
[обсудить]
Полный контроль над MIBOID осуществляется с помощью команды pass.
pass MIBOID EXEC-COMMAND
Например:
pass .1.3.6.1.4.1.2021.255 /bin/sh /usr/local/local/passtest
Как писать обработчик passtest, можно найти в поставке ucd-snmp.
Если просто нужно выдать результат выполнения скрипта, можно использовать
exec:
exec .1.3.6.1.4.1.2021.51 ps /bin/ps
Samba
Как примонтировать удаленный SMB диск с русскими именами файлов.
[обсудить]
Получаем список ресурсов:
smbclient -L 192.168.0.9
Монтируем:
smbmount "//192.168.0.9/DISK (H)" /mnt/0 -o
guest,iocharset=koi8-r,codepage=cp866
Как сделать Samb'у контроллером домена Windows NT/2000
Автор: Pasha Kustov [есть мнение]
smb.conf:
Domain logons=yes
domain master=yes
local master=yes
os level=63
preferred master=yes
encrypt passwords=yes
admin users=root pasha adm
username map=/etc/samba/users.map
admin group=@wheel
/etc/samba/users.map:
root=administrator
# groupadd -d /home/samba -g 6666 SambaComputers
Для каждой машины-члена домена в сети:
# useradd -d /home/samba -u 66?? -g 6666 -s /bin/false ИмяМашины$
Затем:
# smbpasswd -a ИмяМашины$ (с пустым паролем)
Как включить поддержку SMBFS в FreeBSD и примонтировать удаленный windows
ресурс.
[обсудить]
пересобираем ядро:
options NETSMB #SMB/CIFS requester
options NETSMBCRYPTO #encrypted password support for SMB
options LIBMCHAIN #mbuf management library
options LIBICONV
options SMBFS
Коннектимся к удаленному SMB серверу:
smbutil login //jwarner@smbserver1
Монтируем русурс:
mount_smbfs -N //jwarner@smbserver1/sharename /backup
Отсоединяемся от SMB сервера:
smbutil logout //jwarner@smbserver1
Что можно сделать для увеличения производительности samba ?
[обсудить]
В smb.conf:
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=4096
SO_RCVBUF=4096
read size = 32768
read raw = no
read prediction = true
write raw = yes
wide links no
oplocks = yes
max xmit = 65535
dead time = 15
getwd cache = yes
lpq cache = 30
level2 oplocks = true
Linux:
echo "100 1000 128 128 500 6000 6000 1884 2" >/proc/sys/vm/bdflush
FreeBSD:
/sbin/sysctl -w net.local.stream.recvspace=65535
/sbin/sysctl -w net.local.stream.sendspace=65535
/sbin/sysctl -w net.inet.tcp.sendspace=65535
/sbin/sysctl -w net.inet.tcp.recvspace=65535
Как запретить запись файлов по определенной маске на Samba сервер
Автор: bass [обсудить]
veto files = /*.dll/
veto files = /*.dll/*.exe/
veto files = /*Security*/*.tmp/*root*/
Как позволить пользователям самим менять samba пароли со своих машин.
[обсудить]
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Please*retype*new*password* %n\n
*password*successfully*updated*
Как правильно описать доступ к samba через hosts allow
[обсудить]
hosts allow можно указывать в следующем виде:
hosts allow = 192.168.1., 127.
hosts allow = 192.168.1.0, 127.0.0.1/255.255.255.0
hosts allow = 192.168., EXCEPT 192.168.1.100
Как посмотреть список расшаренных ресурсов на Windows машине
[есть мнение]
IP машины - 1.2.3.4
smbclient -I 1.2.3.4 -L NAME_SERVER
или: nmblookup -r -A 1.2.3.4
или: smbclient -N -L hostname -I 1.2.3.4
или скрипт: smbfind или findsmb
Socks proxy
Как разбалансировать равномерно в Squid трафик между несколькими линками
[есть мнение]
Пример равномерной балансировки по 3 каналам:
# acl rand1 dst 0.0.0.0/0.0.0.192
acl rand2 dst 0.0.0.64/0.0.0.192
acl rand3 dst 0.0.0.128/0.0.0.192
acl rand4 dst 0.0.0.192/0.0.0.192
acl rand5 dst 0.0.0.192/0.0.0.224
# acl rand6 dst 0.0.0.224/0.0.0.224
tcp_outgoing_address 10.1.1.1 rand2
tcp_outgoing_address 10.1.1.1 rand3
tcp_outgoing_address 10.1.1.2 rand4
tcp_outgoing_address 10.1.1.2 rand5
tcp_outgoing_address 10.1.1.3
Пример настройки dante socks сервера.
[обсудить]
/etc/sockd.conf:
# Куда пишем логи.
logoutput: /var/log/socks/socks.log
# На каком сетевом интерфейсе и порту обслуживаем socks клиентов.
internal: rl0 port = 1080 # или можно указать IP: internal: 10.1.1.1
port = 1080
# С какого IP или интерфейса выходим во внешний мир.
external: ed0 # или external: 1.2.3.4
# Используемый метод авторизации клиентов. none - без авторизации.
method: username none #rfc931
# Разрешаем клиенту 192.168.0.2 выход через socks.
client pass {
from: 192.168.0.2/32 to: 0.0.0.0/0
log: connect disconnect iooperation
}
#Пример, как разрешить соединения от сервера.
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: connect udpassociate
log: connect disconnect iooperation
}
# Пример, как запретить соединения от сервера
block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}
Пример настройки хоста работающего через socks (клиента)
[обсудить]
/etc/socks.conf:
# Запросы к DNS серверу 192.168.1.2 - директом.
route {
from: 0.0.0.0/0 to: 192.168.1.2/32 port = domain via: direct
}
# Loopback трафик директом.
route{
from: 0.0.0.0/0 to: 127.0.0.0/8 via: direct
}
# Все запросы черех socks сервер 192.168.1.1 порт 1080.
route {
from: 0.0.0.0/0 to: 0.0.0.0/0 via: 192.168.1.1 port = 1080
protocol: tcp udp
proxyprotocol: socks_v4 # Варианты: socks_v5, http_v1.0 - через http
прокси, msproxy_v2
method: none # username - когда нужна авторизация
}
Как в dante socks проконтролировать объем прокачиваемого трафика.
[обсудить]
logoutput: /var/log/socks/socks.log
pass {
....
log: connect disconnect iooperation}
Редирект незакрытых директорий на имя текущего алиаса виртуального хоста, а
не на основной домен.
Автор: uldus [обсудить]
> Как сделать чтобы автоматом перебрасывало http://host1.test.ru/dir на
> http://host1.test.ru/dir/, а не на http://www.test.ru/dir/
UseCanonicalName Off
Почему suexec может не работать при запуске Apache в режиме chroot.
[обсудить]
1. В chroot окружении обязательно должен быть /etc/passwd с пользователями
для которых используется suexec.
2. Помещена ли в bin директорию программа suexec ?
3. Установлен ли suid root флаг для программы suexec ? (при копировании suid
флаг исчезает).
4. Все ли динамические библиотеки присутствуют:
chroot /hst /usr/local/apache/bin/ldd /usr/local/apache/bin/httpd
chroot /hst /usr/local/apache/bin/ldd /usr/local/apache/bin/suexec
предварительно положив ldd в /hst/usr/local/apache/bin/
Как организовать показ мини-иконок favicon.ico на своем сайте.
[есть мнение]
1. Добавляем в mime.types в конфигурации Apache строку:
image/x-icon ico
(Если не добавить, при использовании Russian Apache иконка
отображаться не будет !!)
2. Помещаем на html страницу код:
<link rel="SHORTCUT ICON" href="/favicon.ico">
3. Создаем иконку 16x16 в любом графическом редакторе в формате PNG.
4. Выкачиваем конвертер ftp://ftp.kernel.org/pub/software/graphics/pngtoico/
и преобразуем png в ico:
pngtoico favicon.png > favicon.ico
5. Копируем favicon.ico в корень сайта.
Как прописать русский charset в английском Apache
[обсудить]
AddDefaultCharset koi8-r
Поддержите развитие сайта Ваш вклад будет значительным для библиотеки
Как назначить cgi-скрипт как парсер файлов в прозрачном режиме
[есть мнение]
Напрмер, нужно чтобы все html файлы выдавались при их запросе после
прохождения через
скрипт-фильтр parser.cgi
В .htaccess:
AddType parsed-html .html
Action parsed-html /cgi-bin/parser.cgi
Как изменить expire дату для определенного типа файлов
[обсудить]
В .htaccess пишем:
ExpiresActive On
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresDefault "access plus 1 month"
Как посмотреть список текущих активных модулей в Apache
[обсудить]
httpd -l
Ограничение доступа и ресурсов, безопасность
Как ограничить в Apache объем данных передаваемых в POST запросе.
[обсудить]
В .htaccess или в файле конфигурации:
LimitRequestBody 50000
Как изменить строку идентифицирующую версию Apache и некоторые модули.
[обсудить]
Директива ServerTokens устанавливает формат вывода информации в поле Server:
ServerTokens Minimal
# Server: Apache/1.3.0
ServerTokens ProductOnly
# Server: Apache
ServerTokens OS
# Server: Apache/1.3.0 (Unix)
ServerTokens Full
# Server: Apache/1.3.0 (Unix) PHP/3.0
Как ограничить число соединений от одного IP в Apache
[обсудить]
Устанавливаем модуль mod_limitipconn и изменяем httpd.conf:
ExtendedStatus On
<Directory />
...
MaxConnPerIP 10
</Directory>
Как максимально ограничить пользовательские PHP скрипты.
[обсудить]
В httpd.conf в блок конфигурации каждого виртуального хоста добавляем:
php_admin_flag engine on
php_admin_flag expose_php off
php_admin_flag safe_mode on
php_admin_flag track_vars on
php_admin_flag allow_url_fopen off
php_admin_flag magic_quotes_runtime on
php_admin_value doc_root /home/user/htdocs
php_admin_value open_basedir /home/user/htdocs
php_admin_value safe_mode_exec_dir /home/user/bin
php_admin_value safe_mode_protected_env_vars LD_LIBRARY_PATH
php_admin_value safe_mode_allowed_env_vars PHP_
php_admin_value upload_tmp_dir /home/user/htdocs/tmp
php_admin_value upload_max_filesize 1024000
php_admin_value max_execution_time 10
php_admin_value post_max_size 1M
php_admin_value memory_limit 8M
php_admin_flag mysql.allow_persistent off
php_admin_value mysql.max_links 5
php_admin_flag pgsql.allow_persistent off
php_admin_value pgsql.max_links 5
# php_admin_value disable_functions =
Как ограничить размер памяти и CPU для CGI в pache
[обсудить]
Ограничим память в 32 Мб, процессорное время 30 сек., одновременно может
быть запущено не более 60 пользовательских CGI скриптов.
В <VirtualHost ...>:
RLimitMEM 32000000 32000000
RLimitCPU 10 30
RLimitNPROC 60 60
Как преодолеть барьер в 256 одновременных соединений в Apache
[обсудить]
Пересоберите apache изменив в httpd.h константу HARD_SERVER_LIMIT с 256
на большее число.
Как ограничить доступ к определенному файлу.
[обсудить]
Запретим доступ к .txt файлам:
<Files ~ "\.txt">
Order allow,deny
Deny from all
</Files>
Доступа к .cgi и только с IP 1.2.3.4 через пароль, остальным нет доступа.
<Files ~ "\.cgi">
Order allow,deny
Allow from 123.123.123.123
AuthType Basic
AuthName "ENTER PASSWORD"
AuthUserFile /home/user/.htpasswd
<Limit GET POST PUT>
require valid-user
</Limit>
Deny from all
</Files>
Как ограничить доступ к директории только для определенных IP
[обсудить]
В .htaccess:
order allow,deny
allow from 10.0.0.0/24 176.1.2.3 194.67.48.0/24
Как организовать парольный доступ к директории
[обсудить]
в .htaccess:
AuthType Basic
AuthName "Private block"
AuthUserFile путь к файлу с паролями
require valid-user
или require user user1 user2...
Создать файл паролей: htpasswd -c .passwd user
добавить нового пользователя: htpasswd .passwd user
Оптимизация и тюнинг Apache
Как заставить Apache закачать наиболее часто используемые файлы в память и
отдавать клиентам из памяти, а не с диска ?
[обсудить]
Используйте для статических файлов mod_mmap_static:
MMapFile файл1 файл2 ....
Каким web-сервером лучше раздавать большие объемы статического контента.
[обсудить]
thttpd - нет keep-alive, при нагрузке достаточно большие задержки между
запросом и отдачей.
mathoptd - отличная производительность, небольшие запросы к ОЗУ, загрузка
CPU примерно на 30%
выше чем при аналогичной нагрузке на сервер при использовании thttpd.
TUX и khttpd - эксперементальный код, замечательная производительность за
счет выноса в linux ядро процедур отдачи статики.
Web сервер перегружен, денег на апгрейд нет, как увеличить
производительность с наименьшими потерями ?
[обсудить]
Если тяжелый апач и много соединений, контент долго генерится, но может
кэшироваться, или наличие большого
процента "медленных клиентов" - то значительного прироста производительности
можно достигнуть используя mod_accel.
Если в CGI скриптах используются SQL запросы: оптимизация базы, оптимизация
запросов (EXPLAIN для pgsql),
использование индексов, частые vacuum для pgsql и прежде всего кэширование
типовых запросов.
Если просто запускается много мелких скриптов: mod_perl или fast_cgi.
Плюс, вынесение из apache лишних модулей, отдельный web-сервер для раздачи
статики и картинок.
Редирект, mod_rewrite
Можно ли произвести редирект на другую страницу без использования
mod_rewrite
[есть мнение]
Можно воспользоваться директивой Redirect из mod_alias:
Redirect /dir1 http://test.ru/dir2
Redirect permanent /dir1/ http://test.ru/dir2
RedirectMatch ^/$ http://test.ru/new.html
RedirectMatch .* http://test.ru/new.html
RedirectMatch (.*)\.gif$ http://test.ru$1.jpg/
AliasMatch ^/img/(.*) /home/user1/img/$1
Как разрешить скачивать картинки с текущего сайта и запретить выкачивание
через чужие линки.
uldus [есть мнение]
RewriteEngine On
RewriteCond %{REQUEST_URI} /img/
RewriteCond %{HTTP_REFERER} !^.*somedom\.ru.* [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .* /empty.gif [L]
Выдача страницы в Apache в зависимости от языка
Автор: Belousov Oleg [обсудить]
есть диры:
sub_host1/ru
sub_host1/en
sub_host2/ru
sub_host2/en
при обращении к www.somehost.ru/sub_host1 (и 2) должнен быть переход в дир
со своим языком.
— cgi-bin/redir.pl —
#!/usr/bin/perl
use CGI qw/:standard/;
($lang) = $ENV{HTTP_ACCEPT_LANGUAGE} =~ /(.?.?)/;
($redirurl) = param('redirurl');
$lang='en' if !( -d $ENV{DOCUMENT_ROOT}.$redirurl.$lang);
print redirect(-url=>$redirurl.$lang.'/');
— httpd.conf —
RewriteEngine On
RewriteRule ^(/sub_host1/)$ /cgi-bin/redir.pl?redirurl=$1 [R,NE]
RewriteRule ^(/sub_host2/)$ /cgi-bin/redir.pl?redirurl=$1 [R,NE]
</VirtualHost>
Как организовать прозрачный редирект на другую страницу
[обсудить]
redirect /catalog http://new_host/new_catalog
или с mod_rewrite:
RewriteCond %{HTTP_HOST} ^www.host1.ru$ [NC]
RewriteRule (.*) http://www.host2.ru:8200$1/ [R=permanent,L]
Прокси сервер Squid
ACL, ограничения трафика и пользователей
WCCP + Linux + Squid
Автор: Mike Zagrayevsky [обсудить]
Чтобы заставить эту связку работать необходимо в конфиге squid'a поставить
"wccp_version 4",
а на cisco - "ip wccp version 1" иначе не работает.
Ядро 2.4.x собирается с включенным GRE, потом собирается и подгружается
модуль ip_wccp.o
Никаких iptunnel руками делать не надо. Все работает и без них.
Аутентификация пользователей в squid через учетные записи samba
Автор: freeman [обсудить]
1. собрать сквид (2.5s1 или s2) с поддержкой аутентификации
--enable-auth=basic,ntlm --enable-auth-modules=SMB
--enable-basic-helpers=SMB --enable-ntlm-modules=SMB
2. поставить ntlm_auth из /helpers/ntlm_auth/smb/
3. поставить smb_auth (для клиентов не поддерживающих ntlm аутентификацию)
из /helpers/basic_auth/smb/
4. в сквиде аутентификацию делать через ACL proxu_auth.
basic аутентификацию через smb_auth (см. сайт разработчиков), для ntlm_auth
встроенный хелп.
Для самбы стандартные настройки для контроллера домена.
Принудительное проксирование в FreeBSD
Автор: Дмитрий Новиков [обсудить]
Для принудительного проксирования, на прокси-сервере следует ввести
правила Firewall:
01000 fwd 127.0.0.1,3128 tcp from 10.128.0.0/16 to any 80,8080,8101
В squid.conf нужно добавить:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
На маршрутизаторе "развернуть" Веб-трафик на ПРОКСИ-сервер:
ipfw add 10 fwd ip_прокси tcp from 10.128.0.0/16 to any 80,8080 out
xmit lnc1
Как пробросить туннель через http-прокси (например squid)
[обсудить]
Сервер:
stunnel -p /usr/local/etc/stunnel.pem -r 127.0.0.1:80 -d 443
Клиент:
stunnel -c -d 2.2.2.2:2323 -r proxy.host.ru:3128 -Z 3.3.3.3:443
Организуется туннель: user -> 2.2.2.2:2323 -> proxy.host.ru:3128 ->
3.3.3.3:443 -> 127.0.0.1:80
127.0.0.1:80 - ip и порт на удаленной машине, куда пробрасывается туннель.
2.2.2.2:2323 - ip и порт локальной машины, "вход в туннель"
proxy.host.ru:3128 - proxy сервер с поддержкой CONNECT
3.3.3.3:443 - удаленная машина, ожидающая сторона туннеля.
Как запустить squid без кэширования страниц и балансировкой трафика.
[есть мнение]
# Запрещаем кэширование
acl all src 0/0
no_cache deny all
# Пересобираем с поддержкой null хранилища.
./configure --enable-storeio=ufs,null
# Включаем поддержку null кэша.
cache_dir null /tmp
# Балансировка трафика между тремя каналами:
acl satalite_link src 192.168.1.0/255.255.255.0
tcp_outgoing_address 192.168.1.1 satalite_link
tcp_outgoing_address 192.168.1.2
Как принудительно завернуть весь http трафик через Squid на FreeBSD
[есть мнение]
В /etc/ipnat.rules заносим:
rdr rl0 0/0 port 80 -> 127.0.0.1 port 3128 tcp
В squid.conf:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Все работает отлично, за исключением того, что Squid не работает с
некоторыми единичными хостами.
[обсудить]
echo 0 > /proc/sys/net/ipv4/tcp_ecn
Как увеличить производительность squid proxy ? (1)
[есть мнение]
Используйте метод доступа к хранилищу DISKD.
Параметры сборки: ./configure --enable-storeio=diskd,ufs
(также можно указать --enable-async-io --enable-poll)
В файле конфигурации:
cache_dir diskd /cache1 1024 6 256 Q1=72 Q2=64
ACL, ограничения трафика и пользователей
Как запретить выкачивание .mp3 файлов чеSquid.
[есть мнение]
acl stop_files url_regex -i ftp .exe .mp3 .vqf .tp\
.rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov
http_access
Как запретить работу через Squid пользователей с опрресов.
[есть мнение]
Squid должен быть собран с ./configure --enable-arp-acl
Далее в файле прописываем ACL'и формата:
acl aclname arp mac_address
Например:
acl test165:23
http_access allow test1
http_access deny all
Как ограспособность 128 Kbps на каждый IP ?
[обсудить]
acl only128kusers src .192.0
acl all src 0.0.0.0/0.0.0.0
delay_pools 1
delay_cllay_access 1 allow only128kusers
delay_access 1 deny all
delay_p4000 -1/-1 16000/64000
Как органичить общую пропускную спосо12 Kbps ?
[обсудить]
При сборке не забыть conf-pools
В файле конфигурации:
acl all src 0.0.0.0/0.0.0.0
d delay_class 1 1
delay_access 1 allow all
delay_parameters 1 6 # 512 kbits == 64 kbytes per second
Как ограничить число соединенийателя в Squid и Oops
[обсудить]
Для Squid прописать ACL вида:
acl граничения_в_N_соединений
Для Oops:
per_ip_cний;
Как завести нового пользователя в FreeBSD в автономном режиме ?
[обсудить]
Нужно использовать не команду adduser, а команду pw (man pw, pw useradd
help). Например:
pw useradd -n логин -c 'комментарий, фио' -d /home/логин -m -s /bin/true
Какие программы в FreeBSD занимаются переиндексацией системных баз
[обсудить]
/bin/sh MAKEDEV all (dev_mkdb)
/usr/bin/newaliases
/usr/bin/cap_mkdb /etc/login.conf
/usr/sbin/pwd_mkdb -p /etc/master.passwd
Как создать рабочий дубликат Linux или FreeBSD системы.
[обсудить]
1. Монтируем новый жесткий диск.
2. Создаем разделы на новом диске с помощью fdisk (для freebsd
/stand/sysintall)
3. Копируем файлы на новый диск (кроме каталога /mnt, не допускаем рекурсии
!!!)
find / -xdev | cpio -pdumv /mnt/new - на каждый раздел.
или tar cf - /bin /usr /etc д.р.| tar xf - -C /mnt/new
или cd /mnt/new; dump -0u -f - /директории| restore -r -f -
или cp -Raxv / /mnt/new - на каждый раздел.
или просто копируем в Midnight Commander'е (не рекомендуется).
4. Редактируем /mnt/new/etc/fstab
5. Создаем с помощью /dev/MAKEDEV недостающие устройства (для нового типа
диска).
6. mkdir /mnt/new/proc /mnt/new/mnt
7. Только для Linux: правка /etc/lilo.conf и запуск lilo -r /mnt/new -b
/dev/hdb
PS. Если диски одинаковые можно использовать dd if=/dev/hda of=/dev/hdb,
если разделы одинаковые: dd if=/dev/hda1 of=/dev/hdb1
FreeBSD специфика
Сис. информация, оптимизация и тюнинг FreeBSD
Увеличение безопасности FreeBSD
Установка и апгрейд FreeBSD и приложений.
Как в FreeBSD добавить/убрать алиас для сетевого интерфейса
[есть мнение]
Добавить: ifconfig fxp0 inet 192.168.1.1 netmask 255.255.255.255 alias
Убрать: ifconfig fxp0 inet 192.168.1.1 netmask 255.255.255.255 -alias
Как подключить USB Flash накопитель в FreeBSD
[есть мнение]
man umass
Конфигурация ядра (FreeBSD 4.8 можно не пересобирать):
device usb
device ohci (OR device uhci)
device umass
device scbus
device da
device pass
В логе смотрим подобное сообщение "da0 at umass-sim0 bus 0 target 0 lun 0"
Монтируем:
mount -t msdos /dev/da0s1 /mnt
Установка дисковых квот в FreeBSD
Автор: Igor [обсудить]
- в конфигурации ядра включаем "options QUOTA" и пересобираем ядро.
- в /etc/rc.conf прописываем enable_quotas="YES" и check_quotas="YES"
- указываем в fstab файловые системы, для которых будет включаться
поддержка квот, например:
/dev/da0s1e /home ufs rw,userquota 2 2
/dev/ad0s1h /new_home ufs rw,groupquota 2 2
- устанавливаем квоты для пользователей при помощи edquota, напр. "edquota
user1"
- если нужно установить одинаковые квоты для нескольких пользователей как у
user1:
edquota -p user1 user2 user3 user4 user5
Использование в FreeBSD IEEE 802.1Q VLAN'ов совместно с Cisco Catalyst
Switch
[обсудить]
В конфигурации FreeBSD ядра:
pseudo-device vlan 20 # VLAN support (для динамической генерации в новых
версиях - 20 можно не писать)
Поднимаем VLAN вручную (где 28 - vlan id на свиче, fxp0 - интерфейс
воткнутый в свитч):
ifconfig vlan0 inet 192.168.1.3 netmask 255.255.255.0 vlan 28 vlandev
fxp0
Прописываем в /etc/rc.conf:
cloned_interfaces="vlan0"
ifconfig_vlan0="inet 192.168.1.3 netmask 255.255.255.0 vlan 28 vlandev
fxp0"
На коммутаторе Cisco Catalyst:
interface FastEthernet0/1 # линк к FreeBSD
switchport mode trunk
interface FastEthernet0/2
switchport access vlan 28
Как примонтировать iso-образ CD диска в FreeBSD
[есть мнение]
В /boot/loader.conf добавляем vn_load="YES" или подгружаем руками kldload
vn.ko
Монтируем:
vnconfig /dev/vn0c /home/user/cdrom.iso
mount -t cd9660 /dev/vn0c /mnt
Размонтируем:
umount /mnt
vnconfig -u /dev/vn0c
Как разрешить в FreeBSD монтировать CD-ROM обычным пользователям
[обсудить]
/etc/sysctl.conf:
vfs.usermount=1
vfs.generic.usermount=1
mount -t cd9660 /dev/acd0c /home/user/cdrom
chmod 644 /dev/acd0c
Как примонтировать в FreeBSD CD-ROM с русифицировнной FS, чтобы русские
буквы не выглядели как вопросительные знаки.
Автор: lavr [есть мнение]
cd /usr/ports/sysutils/cd9660_unicode
make && make install
грузить модуль через
kldload /lib/cd9660_unicode/cd9660_[unicode|koi8-r|iso-8859-5|cp866].ko
Как включить поддержку SMBFS в FreeBSD и примонтировать удаленный windows
ресурс.
[обсудить]
пересобираем ядро:
options NETSMB #SMB/CIFS requester
options NETSMBCRYPTO #encrypted password support for SMB
options LIBMCHAIN #mbuf management library
options LIBICONV
options SMBFS
Коннектимся к удаленному SMB серверу:
smbutil login //jwarner@smbserver1
Монтируем русурс:
mount_smbfs -N //jwarner@smbserver1/sharename /backup
Отсоединяемся от SMB сервера:
smbutil logout //jwarner@smbserver1
Как завести нового пользователя в FreeBSD в автономном режиме ?
[обсудить]
Нужно использовать не команду adduser, а команду pw (man pw, pw useradd
help). Например:
pw useradd -n логин -c 'комментарий, фио' -d /home/логин -m -s /bin/true
Что иногда следует избыточно создать в '/dev' для FreeBSD
Автор: lavr [обсудить]
MAKEDEV - ad0 ad1 ad2 ad3 ... - default=0,...,3 остальное+slices руками
MAKEDEV ptyN - псевдо-терминалы, default==32
MAKEDEV vtyN - виртуальные терминалы через syscons, defaul==12
MAKEDEV iic - создание устройств для I2C
MAKEDEV smb - создание устройств для SMBus шины
MAKEDEV snd - создание устройств для SoundBlaster
Как в FreeBSD при загрузке в single read-olny переключится в RW режим.
[обсудить]
mount -u -w /
Какие программы в FreeBSD занимаются переиндексацией системных баз
[обсудить]
/bin/sh MAKEDEV all (dev_mkdb)
/usr/bin/newaliases
/usr/bin/cap_mkdb /etc/login.conf
/usr/sbin/pwd_mkdb -p /etc/master.passwd
Как на сервере обеспечить подключение PS/2 клавиатуры, без перезагрузки
[есть мнение]
Для того чтобы на загруженный без PS/2 клавиатуры сервер, можно было в любой
момент подключить клавиатуру
без перезагрузки, нужно в конфигурации ядра заменить строку:
device atkbd0 at atkbdc? irq 1 flags 0x1
на
device atkbd0 at atkbdc? irq 1
Т.е. убрать 'flags 0x1' и тем самым разрешить загружать драйвер клавиатуры
при отключенной в момент загрузки клавиатуре.
Как в FreeBSD более подробно ознакомится с поддержкой аппаратного устройства
[обсудить]
man 4 имя_устройства.
примеры: man 4 fxp; man 4 rl; man 4 ed; man 4 amr; man 4 pcm; man 4 cd; man
4 tty; man 4 sio;
Как переключить сетевую карту в FreeBSD из full-duplex в half-duplex
[есть мнение]
Текущий режим работы сетевой карты можно посмотреть выполнив:
# ifconfig fxp0
Перевести сетевую карту в режим работы 10baseT/UTP half-duplex:
# ifconfig fxp0 media 10baseT/UTP mediaopt half-duplex
Автоматически выбрать режим:
# ifconfig fxp0 media autoselect
Подробнее: man 4 ed, man 4 rl, man 4 fxp
Как правильно прописать сменные накопители в /etc/fstab для FreeBSD.
Автор: Insane [обсудить]
/dev/acd0c /mnt/cdrom cd9660 ro,noauto,-W=koi2dos,
-L=ru_RU.KOI8-R 0 0
/dev/fd0 /mnt/flop msdos rw,noauto,-W=koi2dos,
-L=ru_RU.KOI8-R 0 0
/dev/ad0s2 /mnt/store msdos rw,-W=koi2dos,
-L=ru_RU.KOI8-R,noexec,nosuid,nosymfollow,
-u0,-g0,-m 660 0 0
Еще для удобства можно создать симлинки типа:
ln -sf /dev/acd0c /dev/cdrom
ln -sf /dev/acd1c /dev/cdrom1 (если есть второй cdrom)
ln -sf /dev/fd0 /dev/flop
прописать изменения в fstab,
и монтировать диски командой mount /dev/cdrom а не
mount /dev/acd0c =).
Сис. информация, оптимизация и тюнинг FreeBSD
Как под FreeBSD создать файловую систему в памяти (ramdisk)
[обсудить]
man mount_mfs
mount_mfs -s 614400 /dev/amrd0s1b /usr/obj
где /dev/amrd0s1b - swap раздел, 614400 - размер MFS диска N*1024*2 (614400
== 300mb).
Что изменить в настройках конфигурации ядра FreeBSD для нагруженного
сервера.
[есть мнение]
maxusers 512
options NMBCLUSTERS=16786
options NBUF=2048
options CHILD_MAX=512
options OPEN_MAX=512
options "MAXDSIZ=(512*1024*1024)"
options "DFLDSIZ=(128*1024*1024)"
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_DEFAULT_TO_ACCEPT
options SOFTUPDATES
Как в FreeBSD посмотреть состояние системных буферов
[обсудить]
sysctl vm.zone
Как включить Soft-updates в FreeBSD для увеличения производительности
[обсудить]
1. Перейти в single режим
2. Убедится, что раздел диска размонтирован.
3. tunefs -n enable раздел (например, tunefs -n enable /usr )
Как в FreeBSD узнать значения LoadAverage, объем свободного ОЗУ и т.д.
[обсудить]
sysctl vm.stats.vm.v_active_count
sysctl vm.stats.vm.v_inactive_count
sysctl vm.stats.vm.v_wire_count
sysctl vm.stats.vm.v_cache_count
sysctl vm.stats.vm.v_free_count
sysctl vm.stats.vm.v_page_count
более подробно:
sysctl -a|grep vm
sysctl| less
Как узнать аппаратную конфигурацию (ОЗУ, CPU и т.д.) машины под FreeBSD
[есть мнение]
sysctl -a | grep hw
Как увеличить производительность дисковой подсистемы FreeBSD.
[есть мнение]
По умолчанию запись на диски в FreeBSD производится в синхронном режиме,
значительно увеличить скорость записи
можно активировав асинхронный режим: В /etc/fstab в поле Options добавить
async (например rw,async).
Или для примонтированного раздела: mount -u -o async /home
Для увеличения производительности IDE дисков, в файле конфигурации ядра
можно указать для wdc устройств
flags 0xa0ffa0ff или 0x80ff80ff (подробнее man wd, man ad).
Для ad: sysctl hw.atamodes; sysctl hw.ata
Например: sysctl hw.atamodes=pio,pio,---,dma,pio,---,dma,---,
См. также man atacontrol
Третий вариант - активировать в настройках ядра SOFTUPDATES и запустить
tunefs -n enable /usr в single-user на размонтированном разделе.
Как увеличить количество shared memory для работы высоконагруженного
PostgreSQL
[обсудить]
В linux:
echo 134217728 >/proc/sys/kernel/shmall
echo 134217728 >/proc/sys/kernel/shmmax
В конфиге ядра FreeBSD:
options SYSVSHM
options SHMMAXPGS=4096
options SHMMAX="(SHMMAXPGS*PAGE_SIZE+1)"
options SHMMIN=2
options SHMMNI=256
options SHMSEG=256
options SYSVSEM
options SEMMAP=512
options SEMMNI=512
options SEMMNS=1024
options SEMMNU=512
options SEMMSL=256
options SEMOPM=256
options SEMUME=64
options SYSVMSG
options MSGMNB=8192
options MSGMNI=256
options MSGSEG=8192
options MSGSSZ=16
options MSGTQL=128
options NMBCLUSTERS=16786
options NBUF=2048
maxusers 512
Что имеет смысл поменять через sysctl в FreeBSD
[есть мнение]
/sbin/sysctl -w net.inet.ip.forwarding=0
/sbin/sysctl -w net.inet.tcp.always_keepalive=1
/sbin/sysctl -w kern.ipc.somaxconn=1024
/sbin/sysctl -w net.inet.tcp.delayed_ack=0
/sbin/sysctl -w net.inet.ip.portrange.last=30000
/sbin/sysctl -w net.inet.tcp.sendspace=131072
/sbin/sysctl -w net.inet.tcp.recvspace=131072
#/sbin/sysctl -w net.inet.tcp.rfc1644=1
#/sbin/sysctl -w net.inet.tcp.rfc1323=0
#/sbin/sysctl -w net.inet.icmp.drop_redirect=1
#/sbin/sysctl -w net.inet.icmp.log_redirect=1
#/sbin/sysctl -w net.inet.ip.redirect=0
#/sbin/sysctl -w net.inet6.ip6.redirect=0
/sbin/sysctl -w net.link.ether.inet.max_age=1200
/sbin/sysctl -w net.inet.ip.sourceroute=0
/sbin/sysctl -w net.inet.ip.accept_sourceroute=0
/sbin/sysctl -w net.inet.icmp.bmcastecho=0
/sbin/sysctl -w net.inet.icmp.maskrepl=0
Увеличение безопасности FreeBSD
Как в FreeBSD включить Blowfish шифрование паролей вместо DES и MD5
[обсудить]
В /etc/login.conf:
:passwd_format=blf:\
cap_mkdb /etc/login.conf
Как в FreeBSD запретить свободный вход как root с консоли через boot -s
[обсудить]
В /etc/ttys поменяйте secure на insecure в строке:
console none unknown off secure
Установка и апгрейд FreeBSD и приложений.
Как определить порядок запуска rc.d скриптов в FreeeBSD
Автор: uldus [обсудить]
/usr/local/etc/rc.d скрипты запускаются в алфавитном порядке:
010.postgres.sh
020.postfix.sh
030.apache.sh
Как оптимизировать сборку ядра и системы в FreeBSD
[есть мнение]
Правим /etc/make.conf пользуясь /etc/defaults/make.conf
CPUTYPE=i686
CFLAGS=-O2 -pipe
COPTFLAGS=-O -pipe
На SMP системах собираем через make -j2 buildworld
Можно ли обойтись в FreeBSD GENERIC ядром или как изменить параметры ядра
без его пересборки.
[есть мнение]
man sysctl.conf; man sysctl
man loader.conf; man loader
На основе параметров в /boot/defaults/loader.conf, формируем
/boot/loader.conf,
где можем указать какие модули подгружать и какие значения системных
констант использовать.
Например, безе пересборки можно использовать GENERIC с /boot/loader.conf:
kern.maxusers="512"
kern.ipc.nmbclusters="16384"
null_load="YES" # Грузим модуль для Null filesystem
vinum_load="YES"
accf_http_load="YES" # HTTP request accept filter
/etc/sysctl.conf
kern.maxfiles=32000
kern.ipc.somaxconn=1024
net.inet.ip.portrange.last=30000
net.inet.tcp.sendspace=32768
net.inet.tcp.recvspace=32768
Какие tag'и можно ставить при апгрейде FreeBSD через cvsup
lavr [обсудить]
Например для 4.6.1: tag=RELENG_4_6_1_RELEASE
для всех RELEASE, к RELENG_X_Y добавляется _RELEASE - это чистый RELEASE
для каждого РЕЛИЗА, после установки или upgrade via CVS/CTM, впоследствии
можно использовать
tag=RELENG_X_Y - который будет вытягивать только security patches для
заданного в теге RELEASE
для STABLE всегда tag=RELENG_4 , stable всегда изменяется
для CURRENT tag=.
Как русифицировать шелл в FreeBSD ?
Автор: lavr [обсудить]
Bash: $HOME/.inputrc
set convert-meta off
set input-meta on
set output-meta on
$HOME/.bash_profile
export CHARSET=KOI8-R
export MM_CHARSET=KOI8-R
export LANG=ru_RU.KOI8-R
Tcsh[Csh] $HOME/.login
setenv CHARSET KOI8-R
setenv MM_CHARSET KOI8-R
setenv LANG ru_RU.KOI8-R
Установка программ через Ports в FreeBSD.
[обсудить]
Апргейд коллекции портов:
Редактируем /usr/share/examples/cvsup/ports-supfile и запускаем:
cvsup -g -L 2 ports-supfile
Поиск:
make search key="строка" - поиск пакета по ключевому слову.
make search name="строка" - поиск пакета по названию пакета.
Установка портов:
cd /usr/ports/порт; make; make install
Другие команды:
make deinstall - деинсталлировать приложение.
make fetch - скачать приложение из сети.
make checksum - проверить контрольные суммы.
make depends - перестроить зависимости.
make extract - разархивировать исходные тексты в work директорию.
make patch - применить патчи к приложению.
make build - собрать приложение из исходных тестов.
make clean - "почистить" исходники после сборки.
make reinstall - переустановить приложение после удаления.
make package - построить из порта package.
Где скачать последнюю FreeBSD STABLE в бинарном виде ?
[обсудить]
ftp://stable.freebsd.org/pub/FreeBSD/snapshots/i386/
Как правильно проабгрейдить установленные FreeBSD ports
[есть мнение]
pkg_version -c >/tmp/uplist.sh
sh -x /tmp/uplist.sh > /tmp/upgrade.output
cd /usr/ports/devel/ctags; portupgrade ctags
Как автоматизировать процесс установки FreeBSD на несколько машин.
[обсудить]
Для автоматической установки достаточно создать профайл инсталляции
install.cfg, скопировать его на дискету, а в sysinstall при установке
выбрать пунктменю "Load Config".
Пример install.cfg можно найти в /usr/src/release/sysinstall/install.cfg
Как проабгрейдить FreeBSD с помощью cvsup
[обсудить]
1. cd /usr/src/; cvsup -g -L2 /etc/cvsupfile # cvsupfile составляем опираясь
на /usr/share/examples/cvsup/stable-supfile
2. make buildworld
3. make buildkernel KERNCONF=имя_конфига_ядра
4. make installkernel KERNCONF=имя_конфига_ядра
5. make installworld
6. mergemaster
Для пересборки ядра после make installworld: config MYKERNEL; make
depend; make; make install
Если возникла проблема с FreeBSD или нет драйвера для устройства.
[обсудить]
Неофициальные драйвера устройств и решение некоторых проблем приводятся на
http://www.freebsd.org/cgi/query-pr-summary.cgi
Как создать необходимые для проигрывания звука устройства в FreeBSD
[есть мнение]
cd /dev;./MAKEDEV snd0
будут созданы все необходимые устройства (/dev/dsp, /dev/mixer и т.д.) для
pcm0.
Как обновить код загрузчика в FreeBSD
[обсудить]
Ставим boot-менеджер:
boot0cfg /dev/ad0
Обновляем boot-loader:
disklabel -B ad0s1
Почему не работает отладчик kbdg в FreeBSD 4.7
Автор: anonym [обсудить]
Я столкнулся с тем, что при установке FreeBSD 4.7 перестал работать отладчик
kdbg.
Проблема решилась заменой отладчика dbg из дистрибутива на GNU dbg 5.2 (есть
в пакаджах)
Linux специфика
Оптимизация и тюнинг в Linux
Увеличение безопасности Linux
Установка и работа с пакетами программ в Linux
Как, после сборки ядра Linux, инициализировать initrd (ядро падает при
монтировании root раздела)
Автор: as [есть мнение]
initrd - RAM-диск, инициализируемый загрузчиком, требуется для подключения
модулей ядра, необходимых
на этапе до монтирования root-раздела, (например, до монтирования нужно
подгрузить - ext2/ext3/scsi модули).
1) man initrd - все изумительно описано;
2) после сборки ядра создаем новый initrd:
mkinitrd /boot/initrd-2.4.21 2.4.21;
3) в /etc/lilo.conf:
initrd=/boot/initrd-2.4.21
В mkinitrd сам initrd можно назвать как угодно, но второй параметр
обязательно версия ядра.
Как в Linux после kernel panic вместо ожидания действия оператора
автоматически выполнять перезагрузку.
[обсудить]
Добавьте в /etc/rc.d/rc.local:
echo 1 > /proc/sys/kernel/panic
Т.е. перезагрузка будет выполнена через 1 сек. после panic, если 0 - то не
перезагружать а ждать.
Почему Linux ядро не использует всю память и пишет "Warning only 960MB will
be used".
[обсудить]
Если добавление в lilo append="mem=1536M" не помогает:
Необходимо пересобрать 2.2.x ядро с опцией CONFIG_2GB=y
Processor type and features -> Maximum Physical Memory -> 2Gb
Если проблема проявляется в ядре 2.4.x - CONFIG_HIGHMEM, CONFIG_HIGHMEM4G
или CONFIG_HIGHMEM64G
Ограничения трафика с помощью iproute2
Автор: Z0termaNN [есть мнение]
tc qdisc add dev eth1 root handle 1: htb default 2 r2q 1
tc class add dev eth1 parent 1: classid 1:1 htb rate 10mbit ceil 10mbit mtu
1500
tc class add dev eth1 parent 1:1 classid 1:77 htb rate 32kbit ceil 48kbitmtu 1500 prio 0
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 128kbit ceil 128kbit
mtu 1500
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dport 25
flowid 1:77
Переход на журналируемую файловую систему Reiserfs
[есть мнение]
- Включаем поддержку Reiserfs в ядре.
- Устанавливаем reiserfsprogs-3.x.0j.tar.gz
- Cоздаем бут дискету (mkbootdisk --device /dev/fd0 2.4.13;
lilo -C /etc/lilo.flop)
- Грузимся с дискеты указав в Lilo приглашении "linux root=/dev/hd
init=/bin/bash"
- mkreiserfs /dev/hda1
- mount -t reiserfs /dev/had1 /
Как под Linux установить параметры serial порта (прерывание, адрес порта)
[обсудить]
/bin/setserial -b /dev/ttyS2 uart 16450 port 0x2E8 irq 5
Как через poweroff обеспечить выключение системного блока
Автор: Alexander [обсудить]
Если при наборе /sbin/poweroff отключение питания не срабатывает, то:
/sbin/modprobe ospm_busmgr
/sbin/modprobe ospm_system
или в /etc/modules.conf:
alias ospm-busmgr ospm_busmgr
alias ospm-busmgr ospm_system
Как посмотреть параметры и возможные опции для модуля ядра Linux
[обсудить]
Информация о авторе.
modinfo -a модуль
Описание модуля.
modinfo -d модуль
Список возможных параметров.
modinfo -p модуль
Как в Linux выставить принудительно 100Mb FullDuplex для Intel EtherExpress
Pro100, а то auto-select с некоторыми свичами не работает.
[обсудить]
/sbin/mii-tool -F 100baseTx-FD eth0
Для модуля:
В /etc/modules.conf:
options eepro100 options=0x200 full_duplex=1
alias eth0 eepro100
insmod eepro100.o debug=1 options=0x200
Для ядра в boot приглашении:
ether=0,0,0x200,eth0
PS. Для драйвера версии меньше 1.14 (mod_info -a eepro100) вместо 0x200
следует писать 0x30.
Как перейти в Linux на файловую систему ext3
[обсудить]
Выкачиваем и накладываем ext3 патчи
(ftp://ftp.kernel.org/pub/linux/kernel/peple/sct/ext3/) и
утилиты (ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/).
Преобразуем ext2 FS в ext3 (для отмонтированного раздела hda1):
tune2fs -j /dev/hda1
Обратное преобразование (из ext3 в ext2):
tune2fs -O ^has_journal /dev/hda1
fsck.ext2 -f /dev/hdaX
Для форматирование нового ext3 раздела:
mke2fs -j /dev/hda1
Как обновить версию журнала:
mount /dev/hdaX /mnt -o journal=update
Как посмотреть установки конфигурации для бинарного ядра Linux
[обсудить]
Если ядро было собрано с опцией CONFIG_PROC_CONFIG=Y:
zcat /proc/config.gz
Как узнать подробную информацию о EX2FS, размер блоков, системные данные и
т.д.
[обсудить]
общие данные из суперблока - dumpe2fs -h /dev/раздел
информацию о каждом блоке - dumpe2fs /dev/раздел
Для FreeBSD нужно использовать dumpfs.
Оптимизация и тюнинг в Linux
Чем хороши LVM, ext3, reiserfs и xfs
Автор: Денис Смирнов [обсудить]
LVM - позволяет гибко создавать, удалять и изменять размеры разделов без
потери данных.
ext3 - расширение ext2 для журналирования. Поддерживает журналирование
данных, а не только метаданных (при data=journal).
reiserfs - высокая скорость работы с каталогами с большим числом файлов,
компактно хранит хвосты от файлов,
поддерживает увеличение размера раздела без остановки сервера.
xfs - быстрая работа с файлами большого размера, великолепная надёжность,
поддержка ACL.
Включение Hyper-Threading scheduler в Linux, для CPU Xeon.
[обсудить]
Linux поддерживает Hyper-Threading начиная с ядра 2.4.17.
Ядро должно быть собрано как SMP,
При загрузке, передаем параметр acpismp=force (в lilo: append="
acpismp=force")
проверка работы:
cat /proc/cpuinfo, если среди flags есть "ht", то Hyper-Threading
активирован.
Как оптимизировать подсистемы распределения памяти в Linux.
[обсудить]
/usr/src/linux/Documenation/sysctl/vm.txt
/usr/src/linux/Documenation/filesystems/proc.txt
Параметры для работы демона bdflush (vm.bdflush)
echo "100 2000 128 512 500 5000 60 0 0" > /proc/sys/vm/bdflush
Управление объемом ОЗУ (в %) выделенного для системных буфферов (лучше не
трогать)
echo "70 10 60" > /proc/sys/vm/buffermem
Максимальный размер сегмента shared memory.
echo 167772160 > /proc/sys/kernel/shmmax # (def: 33554432)
Оптимизация TCP/IP стека в Linux для нагруженного сервера.
[обсудить]
/usr/src/linux/Documenation/filesystems/proc.txt
/usr/src/linux/Documenation/networking/ip-sysctl.txt
Далее в скобках указаны значения по умолчанию для 2.2.x/2.4.x ядер.
Если ядро собрано с CONFIG_SYNCOOKIES для защиты от syn флуда
(net.ipv4.tcpsyn_cookies)
echo 1 > /proc/sys/net/ipv4/tcp_syncookies #(0/0)
Увеличиваем размер backlog очереди (аналог sysctl
net.ipv4.tcp_max_syn_backlog).
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog #(128/1024)
Число начальных SYN и SYNACK пересылок для TCP соединения (лучше не
трогать).
echo 4 > /proc/sys/net/ipv4/tcp_synack_retries #(x/5)
echo 4 > /proc/sys/net/ipv4/tcp_syn_retries #(10/5)
Какие порты использовать в качестве локальных TCP и UDP портов (sysctl
net.ipv4.ip_local_port_range).
echo "16384 61000" > /proc/sys/net/ipv4/ip_local_port_range #(1024
4999/32768 61000)
Сколько секунд ожидать приема FIN до полного закрытия сокета.
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout #(180/60)
Как часто посылать сообщение о поддержании keep alive соединения.
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time #(7200/7200)
Сколько пакетов проверки keepalive посылать, прежде чем соединение будет
закрыто.
echo 2 > /proc/sys/net/ipv4/tcp_keepalive_probes #(9/9)
Запрещаем TCP window scaling (net.ipv4.tcp_window_scaling)
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling #(1/1)
Запрещаем selective acknowledgements, RFC2018 (net.ipv4.tcp_sack).
echo 0 > /proc/sys/net/ipv4/tcp_sack #(1/1)
Запрещаем TCP timestamps, RFC1323 (net.ipv4.tcp_timestamps)
echo 0 > /proc/sys/net/ipv4/tcp_timestamps #(1/1)
Увеличиваем размер буфера для приема и отправки данных через сокеты.
echo 1048576 > /proc/sys/net/core/rmem_max #(65535/autotune)
echo 1048576 > /proc/sys/net/core/rmem_default #(65535/autotune)
echo 1048576 > /proc/sys/net/core/wmem_max #(65535/autotune)
echo 1048576 > /proc/sys/net/core/wmem_default #(65535/autotune)
Если не требуется форвадинг пакетов (машина не рутер) выключаем.
(net.ipv4.ip_forward и net.ipv4.conf.all.forwarding)
echo 0 /proc/sys/net/ipv4/ip_forward #(0/0)
echo 0 /proc/sys/net/ipv4/conf/all/forwarding #(0/0)
Через какое время убивать соединеие закрытое на нашей стороне
(net.ipv4.tcp_orphan_retries)
echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries #(x/7)
Оптимизация дисковой подсистемы в Linux
[обсудить]
man hdparm (например: /sbin/hdparm -c3 -d1 -X34 /dev/hda)
man elvtune
man tune2fs
echo 128000 > /proc/sys/fs/inode-max # def 16384
echo 64000 > /proc/sys/fs/file-max # def 4096 Число одновременно
открытых файлов.
cd /proc/sys/fs/ (в 2.4.x работает автотюнинг)
/usr/src/linux/Documentation/sysctl/fs.txt
/usr/src/linux/Documentation/filesystems/proc.txt
Как под Linux создать ramdisk большого размера для использования в качестве
временного хранилища.
[обсудить]
Советую использовать tmpfs или ramfs
(разница в том, что данные tmpfs подвержены своппингу, ramfs создана для
тестов, а ramdisk всегда хранится в ОЗУ)
/usr/src/linux/Documentation/filesystems/tmpfs.txt
mount -t tmpfs -osize=256M /dev/shm1 /mnt1
Для ramfs:
mount -t ramfs -omaxsize=256M none /mnt1
Если желание использовать ramdisk осталось, читаем
/usr/src/linux/Documentation/ramdisk.txt
mkdir /ramdisk
Для 256Мб ramdisk в lilo.conf добавляем:
append="ramdisk_size=256000"
Запускаем lilo и перезагружаем машину.
mke2fs /dev/ram0
mount -t -ext2 /dev/ram0 /ramdisk
Как увеличить количество shared memory для работы высоконагруженного
PostgreSQL
[обсудить]
В linux:
echo 134217728 >/proc/sys/kernel/shmall
echo 134217728 >/proc/sys/kernel/shmmax
В конфиге ядра FreeBSD:
options SYSVSHM
options SHMMAXPGS=4096
options SHMMAX="(SHMMAXPGS*PAGE_SIZE+1)"
options SHMMIN=2
options SHMMNI=256
options SHMSEG=256
options SYSVSEM
options SEMMAP=512
options SEMMNI=512
options SEMMNS=1024
options SEMMNU=512
options SEMMSL=256
options SEMOPM=256
options SEMUME=64
options SYSVMSG
options MSGMNB=8192
options MSGMNI=256
options MSGSEG=8192
options MSGSSZ=16
options MSGTQL=128
options NMBCLUSTERS=16786
options NBUF=2048
maxusers 512
Увеличение безопасности Linux
Как защитить Linux от некоторых DoS атак.
[обсудить]
Настройки для увеличения безопасности:
/sbin/sysctl -w net.ipv4.conf.all.send_redirects=0
/sbin/sysctl -w net.ipv4.conf.all.accept_redirects=0
/sbin/sysctl -w net.ipv4.conf.all.accept_source_route=0
/sbin/sysctl -w net.ipv4.conf.all.mc_forwarding=0
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
/sbin/sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
/sbin/sysctl -w net.ipv4.conf.all.log_martians=1
/sbin/sysctl -w net.ipv4.conf.all.rp_filter=1
Как в linux преобразовать /etc/passwd в shadow
[обсудить]
/usr/sbin/pwconv
Как в linux разрешить su только для членов группы wheel
[обсудить]
Добавить в /etc/pam.d/su
auth required pam_wheel.so
Установка и работа с пакетами программ в Linux
Как, после сборки ядра Linux, инициализировать initrd (ядро падает при
монтировании root раздела)
Автор: as [есть мнение]
initrd - RAM-диск, инициализируемый загрузчиком, требуется для подключения
модулей ядра, необходимых
на этапе до монтирования root-раздела, (например, до монтирования нужно
подгрузить - ext2/ext3/scsi модули).
1) man initrd - все изумительно описано;
2) после сборки ядра создаем новый initrd:
mkinitrd /boot/initrd-2.4.21 2.4.21;
3) в /etc/lilo.conf:
initrd=/boot/initrd-2.4.21
В mkinitrd сам initrd можно назвать как угодно, но второй параметр
обязательно версия ядра.
Как в RedHat управлять из командной строки runlevel (init.d) скриптами
[обсудить]
Перезапуск сервисов:
service имя start
service имя stop
service имя restart
Добавление или удаление сервисов:
chkconfig --list
chkconfig --add имя
chkconfig --del имя
chkconfig [--level уровень] имя <on|off|reset>
Подсказка по опциям RPM.
[обсудить]
Установка пакетов: rpm -i <пакеты>
Деинсталляция пакета: rpm -e <пакеты>
Обновление или установка пакетов: rpm -U <пакеты>
Только обновление пакетов если они ранее установлены: rpm -F <пакеты>
Полезно: --force -установить несмотря ни на что, --nodeps - без проверки
зависимости, -vh - приятный вывод, --test - проверка.
Информация о пакете: rpm -q <пакет>
Список всех пакетов в системе: rpm -q -a
Узнать какому пакету принадлежит файл: rpm -q -f <файл>
Полезно: -i - более полное описание пакета, -R - список зависимостей пакета,
-l - список файлов в пакете,
-c - список конфигов в пакете, -d - список документации.
Установка из исходников: rpm --recompile <srpm> , собрать бинарный пакет:
rpm --rebuild <srpm>.
Перестроить базу: rpm --rebuilddb
Как вручную распаковать rpm файл
[обсудить]
rpm2cpio file.rpm | cpio -idmuv --no-absolute-filenames
Как узнать к какому пакету принадлежит файл
[обсудить]
rpm -qf file
Syslog, ведение логов
Как в syslog организовать прохождение логов через программу-фильтр.
Автор: Gennady [есть мнение]
Сначала создаем pipe:
mkfifo /path/to/pipe
Затем в /etc/syslog.conf пишем строчку типа:
*.info |/path/to/pipe
Перезапускаем syslogd:
kill -1 'cat /var/run/syslogd.pid'
И запускае свою программу, которая будет читать с пайпа данные.
Как организовать сохранение syslog логов на удаленном сервере.
[есть мнение]
На сервере с которого поытаем логи (/etc/syslog.conf):
mail.* /var/log/maillog
mail.* @loger.host.ru
На удаленном FreeBSD сервере, принимающем логи syslog должен запускаться без
опции -s
(для некоторых версий нужно указать опцию -r),
удаленные хоcты ограничиваем через "-a ip1 -a ip2", рекомендую прикрыть
доступ к 514 UDP порту пакетным фильтром.
Пример /etc/syslog.conf:
mail.* /var/log/maillog_all # логи со всех серверов
+@ # +@ - выборка только для локального хоста
mail.* /var/log/maillog
+relay1.host.ru
mail.* /var/log/maillog_relay1
+relay2.host.ru
mail.* /var/log/maillog_relay2
+* # +* - отмена привязки к хосту
!popa3d # далее по логи по масте программы.
*.* /var/log/pop3log
Как пересылать логи с Cisco в syslog
Автор: LS [есть мнение]
На Cisco:
router(config)# logging x.x.x.x
router(config)# logging source-interface fastethernet 0/0
router(config)# logging facility local0
В syslog.conf (syslogd нужно запускать с ключем -r):
local0.* /var/log/cisco.log
Как создать файл устройства для монтирования раздела диска.
[обсудить]
Linux IDE # Linux SCSI
mknod /dev/hda b 3 0 # /dev/sda b 8 0
mknod /dev/hda1 b 3 1 # /dev/sda1 b 8 1
mknod /dev/hda2 b 3 2 # /dev/sda2 b 8 2
mknod /dev/hdb b 3 64 # /dev/sdb b 8 16
mknod /dev/hdb1 b 3 65 # /dev/sdb1 b 8 17
mknod /dev/hdc b 22 0 # /dev/sdc b 8 32
mknod /dev/hdd b 22 64 # /dev/sdd b 8 48
Как в FreeBSD разрешить пользователю только добавлять данные в файл.
[обсудить]
man chflags; man 2 chflags
Флаги (chflags флаг файл):
sappnd - все, кроме root или владельца (uppnd), могут лишь добавлять
информацию в конец файла;
schg - только root или владелец файла (uchg) может изменить, перенести или
удалить файл;
sunlnk - только root или владелец файла (uunlink) может удалить или
переименовать файл;
Чтобы убрать установленный флаг, нужно использовать префикс "no", т.е.
nouchg, nuschg и т.д.
Как автоматически удалять все файлы в каталоге, созданные позднее N дней
[есть мнение]
удаляем старше 1 часа:
find /var/tmp_log/ -type f -mmin +60 -exec rm -f {} \;
удаляем старше 10 дней:
find /var/tmp_log/ -type f -mtime +10 -exec rm -f {} \;
Как отформатировать флоппи-диск с FAT.
[есть мнение]
Linux:
mkdosfs -c -f 16 -n "метка тома" /dev/fd0h1440
или
mkfs -t fat16 /dev/fd0h1440
FreeBSD:
fdformat -f 1440 /dev/fd0
или
newfs_msdos -f 1440 -L "label" fd0
Оптимизация дисковой подсистемы в Linux
[обсудить]
man hdparm (например: /sbin/hdparm -c3 -d1 -X34 /dev/hda)
man elvtune
man tune2fs
echo 128000 > /proc/sys/fs/inode-max # def 16384
echo 64000 > /proc/sys/fs/file-max # def 4096 Число одновременно
открытых файлов.
cd /proc/sys/fs/ (в 2.4.x работает автотюнинг)
/usr/src/linux/Documentation/sysctl/fs.txt
/usr/src/linux/Documentation/filesystems/proc.txt
Как правильно прописать сменные накопители в /etc/fstab
[обсудить]
Для решения проблем с русскими именами файлов в Linux для CDROM,
дискеты и Windows раздела следует прописать в /etc/fstab:
/dev/cdrom /mnt/cdrom iso9660 ro,nosuid,noauto,exec,user,nodev
0 0
/dev/fd0 /mnt/floppy vfat
iocharset=koi8-r,sync,nosuid,codepage=866,user,--,noauto,nodev,unhide 0
0
/dev/hda1 /mnt/windows vfat user,exec,umask=0,codepage=866,iocharset=koi8-r
0 0
Как увеличить производительность дисковой подсистемы FreeBSD.
[есть мнение]
По умолчанию запись на диски в FreeBSD производится в синхронном режиме,
значительно увеличить скорость записи
можно активировав асинхронный режим: В /etc/fstab в поле Options добавить
async (например rw,async).
Или для примонтированного раздела: mount -u -o async /home
Для увеличения производительности IDE дисков, в файле конфигурации ядра
можно указать для wdc устройств
flags 0xa0ffa0ff или 0x80ff80ff (подробнее man wd, man ad).
Для ad: sysctl hw.atamodes; sysctl hw.ata
Например: sysctl hw.atamodes=pio,pio,---,dma,pio,---,dma,---,
См. также man atacontrol
Третий вариант - активировать в настройках ядра SOFTUPDATES и запустить
tunefs -n enable /usr в single-user на размонтированном разделе.
Как создать рабочий дубликат Linux или FreeBSD системы.
[обсудить]
1. Монтируем новый жесткий диск.
2. Создаем разделы на новом диске с помощью fdisk (для freebsd
/stand/sysintall)
3. Копируем файлы на новый диск (кроме каталога /mnt, не допускаем рекурсии
!!!)
find / -xdev | cpio -pdumv /mnt/new - на каждый раздел.
или tar cf - /bin /usr /etc д.р.| tar xf - -C /mnt/new
или cd /mnt/new; dump -0u -f - /директории| restore -r -f -
или cp -Raxv / /mnt/new - на каждый раздел.
или просто копируем в Midnight Commander'е (не рекомендуется).
4. Редактируем /mnt/new/etc/fstab
5. Создаем с помощью /dev/MAKEDEV недостающие устройства (для нового типа
диска).
6. mkdir /mnt/new/proc /mnt/new/mnt
7. Только для Linux: правка /etc/lilo.conf и запуск lilo -r /mnt/new -b
/dev/hdb
PS. Если диски одинаковые можно использовать dd if=/dev/hda of=/dev/hdb,
если разделы одинаковые: dd i=/dev/hda1 of=/dev/hdb1
Как 1 в 1 скопировать файловую систему.
[обсудить]
Копируем /usr в текущую директорию: dump -0u -f - /usr | restore -r -f -
Для полного бэкапа /usr на ленту: dump -0u -f /dev/st0 /usr
CD-ROM, CD-R, AudioCD:
Ramdisk, tmpfs
Как под FreeBSD создать файловую систему в памяти (ramdisk)
[обсудить]
man mount_mfs
mount_mfs -s 614400 /dev/amrd0s1b /usr/obj
где /dev/amrd0s1b - swap раздел, 614400 - размер MFS диска N*1024*2 (614400
== 300mb).
Как под Linux создать ramdisk большого размера для использования в качестве
временного хранилища.
[обсудить]
Советую использовать tmpfs или ramfs
(разница в том, что данные tmpfs подвержены своппингу, ramfs создана для
тестов, а ramdisk всегда хранится в ОЗУ)
/usr/src/linux/Documentation/filesystems/tmpfs.txt
mount -t tmpfs -osize=256M /dev/shm1 /mnt1
Для ramfs:
mount -t ramfs -omaxsize=256M none /mnt1
Если желание использовать ramdisk осталось, читаем
/usr/src/linux/Documentation/ramdisk.txt
mkdir /ramdisk
Для 256Мб ramdisk в lilo.conf добавляем:
append="ramdisk_size=256000"
Запускаем lilo и перезагружаем машину.
mke2fs /dev/ram0
mount -t -ext2 /dev/ram0 /ramdisk
Диагностика и Восстановление после сбоя
Как попытаться восстановить данные с начавшего сбоить жесткого диска
Автор: uldus [есть мнение]
Нужно вставить диск в заведомо рабочую машину (так как проблемы не
обязательно в диске, контроллер может
быть виной) с достаточным свободным местом на диске чтобы вместить весть
объем сбойного диска и сделать:
dd if=/dev/hdb1 of=/usr/local/tmp/root_fs.img conv=noerror,sync bs=1024
fsck -y /usr/local/tmp/root_fs.img
mount -o loop /usr/local/tmp/root_fs.img /mnt (в Linux)
Далее смотреть в /mnt, что удалось спасти.
Монтирование файла как раздела в FreeBSD:
vnconfig -r labels -c vn0 root_fs.img
mount /dev/vn0 /mnt
В FreeBSD для восстановления можно использовать утилиту ffsrecov из портов.
Если fsck не находит superblock, то можно задать альтернативное размещение:
"fsck -b [16|32] .." для FreeBSD, fsck -b [8193|32768|16384]" - для Linux.
Как размонтировать занятый неизвестным процессом CDROM
[обсудить]
fuser -k -m /mnt/cdrom - убить процессы использующие /mnt/cdrom
umount /mnt/cdrom
Квоты
Установка дисковых квот в FreeBSD
Автор: Igor [обсудить]
- в конфигурации ядра включаем "options QUOTA" и пересобираем ядро.
- в /etc/rc.conf прописываем enable_quotas="YES" и check_quotas="YES"
- указываем в fstab файловые системы, для которых будет включаться
поддержка квот, например:
/dev/da0s1e /home ufs rw,userquota 2 2
/dev/ad0s1h /new_home ufs rw,groupquota 2 2
- устанавливаем квоты для пользователей при помощи edquota, напр. "edquota
user1"
- если нужно установить одинаковые квоты для нескольких пользователей как у
user1:
edquota -p user1 user2 user3 user4 user5
Монтирование
Как примонтировать iso образ диска в FreeBSD 5.x
Автор: Insane [есть мнение]
Для начала:
mdconfig -a -t vnode -u0 -f /share/iso/slackware-9.0-install.iso
затем
mount -t cd9660 /dev/md0 /mnt/iso
Обратный процесс:
umount /dev/md0
mdconfig -d -u0
p.s. Может не работать если в ядре нет "device md"
Как примонтировать iso-образ CD диска в FreeBSD
[есть мнение]
В /boot/loader.conf добавляем vn_load="YES" или подгружаем руками kldload
vn.ko
Монтируем:
vnconfig /dev/vn0c /home/user/cdrom.iso
mount -t cd9660 /dev/vn0c /mnt
Размонтируем:
umount /mnt
vnconfig -u /dev/vn0c
Как разрешить в FreeBSD монтировать CD-ROM обычным пользователям
[обсудить]
/etc/sysctl.conf:
vfs.usermount=1
vfs.generic.usermount=1
mount -t cd9660 /dev/acd0c /home/user/cdrom
chmod 644 /dev/acd0c
Как примонтировать в FreeBSD CD-ROM с русифицированной FS, чтобы русские
буквы не выглядели как вопросительные знаки.
Автор: lavr [есть мнение]
cd /usr/ports/sysutils/cd9660_unicode
make && make install
грузить модуль через
kldload /lib/cd9660_unicode/cd9660_[unicode|koi8-r|iso-8859-5|cp866].ko
Как включить поддержку SMBFS в FreeBSD и примонтировать удаленный windows
ресурс.
[обсудить]
пересобираем ядро:
options NETSMB #SMB/CIFS requester
options NETSMBCRYPTO #encrypted password support for SMB
options LIBMCHAIN #mbuf management library
options LIBICONV
options SMBFS
Коннектимся к удаленному SMB серверу:
smbutil login //jwarner@smbserver1
Монтируем русурс:
mount_smbfs -N //jwarner@smbserver1/sharename /backup
Отсоединяемся от SMB сервера:
smbutil logout //jwarner@smbserver1
Как завести нового пользователя в FreeBSD в автономном режиме ?
[обсудить]
Нужно использовать не команду adduser, а команду pw (man pw, pw useradd
help). Например:
pw useradd -n логин -c 'комментарий, фио' -d /home/логин -m -s /bin/true
Что иногда следует избыточно создать в '/dev' для FreeBSD
Автор: lavr [обсудить]
MAKEDEV - ad0 ad1 ad2 ad3 ... - default=0,...,3 остальное+slices руками
MAKEDEV ptyN - псевдо-терминалы, default==32
MAKEDEV vtyN - виртуальные терминалы через syscons, defaul==12
MAKEDEV iic - создание устройств для I2C
MAKEDEV smb - создание устройств для SMBus шины
MAKEDEV snd - создание устройств для SoundBlaster
Как в FreeBSD при загрузке в single read-olny переключится в RW режим.
[обсудить]
mount -u -w /
Какие программы в FreeBSD занимаются переиндексацией системных баз
[обсудить]
/bin/sh MAKEDEV all (dev_mkdb)
/usr/bin/newaliases
/usr/bin/cap_mkdb /etc/login.conf
/usr/sbin/pwd_mkdb -p /etc/master.passwd
Как на сервере обеспечить подключение PS/2 клавиатуры, без перезагрузки
[есть мнение]
Для того чтобы на загруженный без PS/2 клавиатуры сервер, можно было в любой
момент подключить клавиатуру
без перезагрузки, нужно в конфигурации ядра заменить строку:
device atkbd0 at atkbdc? irq 1 flags 0x1
на
device atkbd0 at atkbdc? irq 1
Т.е. убрать 'flags 0x1' и тем самым разрешить загружать драйвер клавиатуры
при отключенной в момент загрузки клавиатуре.
Как в FreeBSD более подробно ознакомится с поддержкой аппаратного устройства
[обсудить]
man 4 имя_устройства.
примеры: man 4 fxp; man 4 rl; man 4 ed; man 4 amr; man 4 pcm; man 4 cd; man
4 tty; man 4 sio;
Как переключить сетевую карту в FreeBSD из full-duplex в half-duplex
[есть мнение]
Текущий режим работы сетевой карты можно посмотреть выполнив:
# ifconfig fxp0
Перевести сетевую карту в режим работы 10baseT/UTP half-duplex:
# ifconfig fxp0 media 10baseT/UTP mediaopt half-duplex
Автоматически выбрать режим:
# ifconfig fxp0 media autoselect
Подробнее: man 4 ed, man 4 rl, man 4 fxp
Как правильно прописать сменные накопители в /etc/fstab для FreeBSD.
Автор: Insane [обсудить]
/dev/acd0c /mnt/cdrom cd9660 ro,noauto,-W=koi2dos,
-L=ru_RU.KOI8-R 0 0
/dev/fd0 /mnt/flop msdos rw,noauto,-W=koi2dos,
-L=ru_RU.KOI8-R 0 0
/dev/ad0s2 /mnt/store msdos rw,-W=koi2dos,
-L=ru_RU.KOI8-R,noexec,nosuid,nosymfollow,
-u0,-g0,-m 660 0 0
Еще для удобства можно создать симлинки типа:
ln -sf /dev/acd0c /dev/cdrom
ln -sf /dev/acd1c /dev/cdrom1 (если есть второй cdrom)
ln -sf /dev/fd0 /dev/flop
прописать изменения в fstab,
и монтировать диски командой mount /dev/cdrom а не
mount /dev/acd0c =).





