понедельник, 10 августа 2009 г.
Правим ls
Здесь всё зависит от того, какую оболочку Вы используете. Если у Вас оболочка из семейства csh (к примеру csh, tcsh) – в домашней директории в файл .cshrc нужно добавить строку:
alias ls ls -G
Если же у вас оболочка семейства sh (к примеру sh, bash), отредактируйте в домашней директории файл .profile и впишите в него следующую строку:
alias ls=’ls -G’
Для того, чтобы это работало у всех пользователей, необхoдимо отредактировать файлы csh.cshrc и profile в директории /etc.
Данная настройка будет работать как и на локальной консоли, так и на удалённых терминалах (если последние сопосбны поддерживать).
Не рекомендуется делать такую настройку для суперпользователя.
среда, 18 февраля 2009 г.
Русская консоль
В /etc/rc.conf пишем
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
scrnmap="koi8-r2cp866"
После чего, надо указать пользователей, у которых будет русский язык, делается это утилитой vipw
root:XXXXXXXXXX:0:0:russian:0:0:Charlie &:/root:/bin/csh
Далее меняем локальные консоли с cons25 на cons25r в файле /etc/ttys:
# For virtual consoles, the correct type is cons25. Other
ttyv0 "/usr/libexec/getty Pc" cons25r on secure
ttyv1 "/usr/libexec/getty Pc" cons25r on secure
ttyv2 "/usr/libexec/getty Pc" cons25r on secure
ttyv3 "/usr/libexec/getty Pc" cons25r on secure
ttyv4 "/usr/libexec/getty Pc" cons25r on secure
ttyv5 "/usr/libexec/getty Pc" cons25r on secure
ttyv6 "/usr/libexec/getty Pc" cons25r on secure
ttyv7 "/usr/libexec/getty Pc" cons25r on secure
/etc/>
reboot
---------------------------------------
Руссификация консоли и MC.
1. Т.к. в десктопной системе используется кодировка cp1251 и для большинства проектов на сервере используется она же, то для удобства было решено установить её в качестве локали:
code:
setenv LC_ALL ru_RU.CP1251
Также можно сразу установить язык:
code:
setenv LANG ru_RU
А чтобы изменения не сбросились после завершения сеанса (выхода из консоли), поправим файлик ~/.cshrc:
code:
...
setenv LC_ALL ru_RU.CP1251
setenv LANG ru_RU
...
Проверяем...
code:
$ locale
LANG=ru_RU
LC_CTYPE="ru_RU.CP1251"
LC_COLLATE="ru_RU.CP1251"
LC_TIME="ru_RU.CP1251"
LC_NUMERIC="ru_RU.CP1251"
LC_MONETARY="ru_RU.CP1251"
LC_MESSAGES="ru_RU.CP1251"
LC_ALL=ru_RU.CP1251
Запускаем Mignight Commander. О-па! Он сам переключился на русский. Только вот проблемы с кодировкой хинтов. Конечно, ведь они в кодировке KOI8-R. Правится это следующими командами:
code:
cd /usr/local/share/mc/
mv mc.hint.ru mc.hint.ru_koi8-r && iconv -f koi8-r -t cp1251 mc.hint.ru_koi8-r > tmp && mv tmp mc.hint.ru && \
mv mc.hlp.ru mc.hlp.ru_koi8-r && iconv -f koi8-r -t cp1251 mc.hlp.ru_koi8-r > tmp && mv tmp mc.hlp.ru
Таким образом мы получаем хинты в нужной нам кодировке, при этом оставляя копии оригиналов.
Вот, все =)
понедельник, 16 февраля 2009 г.
Увеличиваем разрешение консоли
Пересобираем ядро с опциями
options VESA
options SC_PIXEL_MODE
Можно еще добавить оформление цвет текста или фона консоли поменять:
options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
options SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN)
options SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK)
options SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED)
Перегружаемся
$ vidcontrol -i mode (смотрим список доступных режимов)
$ vidcontrol MODE_282 (применяем режим что нам понравился)
Чтобы после перезагрузки настройка видеорежима сохранилась, добавляем в:
# ee /etc/rc.conf
строку с видеорежимом
allscreens_flags="MODE_282"
************************************************
Настройка
в ядро:
options VGA_WIDTH90 options VESA options SC_PIXEL_MODE
просмотреть доступные режимы:
vidcontrol -i mode
выбрать нужный режим по номеру и вписать в /etc/rc.conf, или выполнить сразу vidcontrol MODE_XXX
allscreens_flags=" MODE_276"
здесь номер 276 означает 800x600x16 ( для подробностей vidcontrol -i mode )
к сожалению с частотами полный кавардак, на некоторых видеокартах устанавливается нормальная частота на некоторых только 60гц.
N.B! в amd64 VESA не работает
пятница, 13 февраля 2009 г.
Exim
Перед установкой провим /etc/make.conf
# директория с портами
PORTSDIR?= /usr/ports
# EXIM
.if ${.CURDIR} == ${PORTSDIR}/mail/exim
WITH_MYSQL= yes
LOG_FILE_PATH?= syslog
WITH_CONTENT_SCAN= yes
WITH_DEFAULT_CHARSET?= koi8-r
WITHOUT_IPV6= yes
WITH_BDB_VER?= 4
.endif
---------------------------------------
минус exim-a -необходимость правки Makefile для включения тех или иных возможностей exim-а.
---------------------------------------
ставим почтовик
cd /usr/ports/mail/exim
make install clean
---------------------------------------
ee /usr/local/etc/exim/configure # правим конфиг
---------------------------------------
ee /etc/rc.conf
exim_enable="YES" # включаем Exim
sendmail_enable="NONE" # отключаем sendmail
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
/usr/local/etc/rc.d/exim start(restart, status)
ps -axj | grep exim # смотрим запустился ли
mailnull 40668 1 40668 40668 0 Ss ?? 0:00,02 /usr/local/sbin/exim -bd
root 41238 33870 41237 92267 2 R+ p1 0:00,00 grep exim
sockstat | grep exim # смотрим на каком порту весит
mailnull exim-4.62- 40668 3 tcp4 *:25 *:*
Также изменяем файл /etc/mail/mailer.conf до такого состояния:
sendmail /usr/local/sbin/exim
send-mail /usr/local/sbin/exim
mailq /usr/local/sbin/exim -bp
newaliases /usr/local/sbin/exim -bi
hoststat /usr/local/sbin/exim
purgestat /usr/local/sbin/exim
netstat -na | grep -i listen - проверка портов что слушаються
Конфиг Exim-a |
=====Здесь мы определяем макросы, описывающие различные пути========================
=====Тут мы описываем списки доменов================================================
-primary_hostname”= Exim должен знать официальное, полное имя вашего хоста, и тут можно его задать. Когда она не задана, exim использует системную функцию “uname()”, для получения имени хоста. Используется в EHLO
-domainlist local_domains = @ # @ Это специальная форма, вхождение которой означает имя локального хоста. Таким образом, если локалхост называется “test.kiev.ua”, то почта к любому пользователю типа “any.user@test.kiev.ua” будет доставляться локально, для остальных доменов почта доставляется по MX записям в DNS.
-domainlist relay_to_domains = # делаем список доменов с которых разрешены релеи Можно использовать символы подстановки, типа: = *.my.domen.su : !spam.my.domen.su : first.su # тогда пропускается всё, что похоже на *.my.domen.su, но от spam.my.domen.su релеится почта не будет.
-hostlist relay_from_hosts = localhost:127.0.0.0/8:192.168.0.0/16 # (перечисляем сети через двоеточие)Составляем список хостов с которых разрешён неавторизованый релей. Обычно в нём находятся локальные сети, и локалхост. ЛокалХост в двух видах на случай не понимания одного из них
=====проверки========================================================================
-acl_smtp_rcpt = acl_check_rcpt # контролирует, какие получатели разрешены для входящих сообщений - если конфигурация не содержит ACL для проверки получателей, то никакая почта по SMTP не принимается.
-acl_smtp_data = acl_check_data # разрешает проверку содержимого сообщения.Проверка на спам и вирусы
=====Здесь мы описываем наш антивирус================================================
av_scanner = clamd:127.0.0.1 3310
spamd_address = 127.0.0.1 783И spamassasin
-exim_user = mailnull # Настройки пользователя и группы по умолчанию
-exim_group = mail
# Никогда не осуществляем доставку под рутом - root должен быть алиасом на другого локального пользователя. Кстати, это _обязательное_ условие, заданное еще на этапе компиляции never_users = root
-never_users = root# Это определяет, что никакая доставка не должна осуществляться от имени пользователя “root”. Нормальное соглашение заключалось в том, что “root” - псевдоним системного администратора. Зта опция - охранная. Список пользователей, определённых как “never_users” - неполный, при компиляции в “Local/Makefile” есть опция “FIXED_NEVER_USERS”, задающая список, который не может быть отменён. Содержимое “never_users” добавляется к списку. По-умолчанию, “FIXED_NEVER_USERS” содержит пользователя “root”.
-host_lookup = * # задаёт, что exim должен проводить обратный поиск в DNS для всех входящих соединений, чтобы получить имя хоста. Это улучшает качество логов, но если вы чувствуете, что это обходиться слишком дорого, то вы можете удалить этот пункт вообще, или ограничить поиск хостами в соседних сетях. Отметьте, что не всегда можно найти имя хоста по его IP-адресу, поскольку не все обратные DNS-зоны обслуживаются, и некоторые DNS-сервера могут быть недоступны.
Проверям правильность синтаксиса файла конфигурации |
alex# exim -bV
Exim version 4.20 #1 built 22-May-2003 14:22:20
Copyright (c) University of Cambridge 2003
Probably Berkeley DB version 1.8x (native mode)
Support for: Perl OpenSSL
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute
queryprogram redirect
Transports: appendfile/maildir/mbx autoreply pipe smtp
Configuration file is /etc/mail/exim.conf
Если ошибок не обнаружено, идем дальше.
Теперь требуется проверить, будет ли осуществляться распознование
сообщений для локальных пользователей. Для этого выполним:
alex# exim -bt postmaster
postmaster@example.ru
router = mysqluser, transport = mysql_delivery
Если ошибок не обнаружено, переходим к следующему шагу. Проверим,
будет ли осуществляться распознование сообщений для внешних
пользователей:
alex# exim -bt someuser@msn.com
someuser@msn.com
router = dnslookup, transport = remote_smtp
Если ошибок не обнаружено, идем дальше. Необходимо проверить, будет ли
осуществляться доставка сообщений локальным пользователям, для этого
выполним:
alex# exim -v postmaster@example.ru
From: ginger@example.ru
To: postmaster@example.ru
Subject: Testing Exim
This is a test message.
^D
LOG: MAIN
<= root@example.ru U=root P=local S=303
su-2.05a# LOG: MAIN
=> ginger R=mysqluser
T=mysql_delivery
LOG: MAIN
Completed
^C
Если ошибок не обнаружено, идем дальше - проверим, будет ли
осуществляться доставка сообщений внешним пользователям:
alex# exim -v someuser@msn.com
From: ginger@example.ru
To: someuser@msn.com
Subject: Testing Exim
This is a test message.
^D
LOG: MAIN
<= root@example.ru U=root P=local S=303
su-2.05a# LOG: MAIN
=> someuser R=dnslookup
T=remote_smtp
LOG: MAIN
Completed
^C
На данном этапе мы убедились, что Exim правильно настроен и работает.
Осталось проверить SMTP аутентификацию. Для этого сделаем следующее.
Запускаем Exim:
su-2.05a# /usr/local/etc/rc.d/exim.sh start
Формируем строку PLAIN аутентификации (Netscape):
su-2.05a# printf 'ginger@example.ru\0ginger@example.ru\0my-secret-pass' | mmencode
Z2luZ2VyQGV4YW1wbGUucnUAZ2luZ2VyQGV4YW1wbGUucnUAbXktc2VjcmV0LXBhc3M=
su-2.05a# telnet localhost 25 Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 smtp.example.ru ESMTP Exim 4.20 Fri, 05 Sep 2003 13:59:25 +0400
ehlo localhost
250-smtp.example.ru Hello localhost.localdomain [127.0.0.1]
250-SIZE 10485760
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250 HELP
auth plain
334
Z2luZ2VyQGV4YW1wbGUucnUAZ2luZ2VyQGV4YW1wbGUucnUAbXktc2VjcmV0LXBhc3M=
235 Authentication succeeded
quit
221 smtp.example.ru closing connection
Connection closed by foreign host.
Из примера видно, что все прошло успешно. Если у вас иной результат -
еще раз внимательно прочитайте и ищите ошибку.
С чего начать
1)ставим Exim , провим конфиг в итоге почта ходит от нас в мир и к нам с мира
2)для того что бы роздать почту в локальную сеть и пользователи тоже могли отправлять ставим pop3d или courier- imap сервер, для доступа к почте пользователей, не имеющих локальных пользовательских учетных записей (виртуальные пользователи)
3)
4)
среда, 11 февраля 2009 г.
asus WL500gP (iptables)
Открываем ssh порт 22 для доступа из интернета на роутер
vi /usr/local/sbin/post-firewall # создаём файл
#!/bin/sh
iptables -I INPUT -m tcp -p tcp --dport 22 -j ACCEPT # открываем порт для ssh
chmod +x post-firewall # делаем файл исполняемым
flashfs save && flashfs commit && flashfs enable && reboot # сохраняем в память роутера (иначе после перезагрузки все слетит)
ifconfig сетевые интерфейсы роутера
eth0 --- физический адаптер (пять равноценных эзернет портов)
eth1 --- физический адаптер (беспроводной) Wi-Fi
путем софтовой конфигурации в eth0 может быть организовано несколько vlan (от 0 до 5). По дефолту сделано 2:
vlan0 - 4 порта LAN (свич - LAN1, LAN2, LAN3, LAN4)
vlan1 - WAN порт
br0 - это bridge, в который по умолчанию объединены 4 lan порта + wifi
br0 - vlan0 + eth1
eth1 - Wi-Fi
ppp0 - VPN подключение
понедельник, 9 февраля 2009 г.
Postpix
dig postfix-book.com MX # показывает что сервер mail.postfix-book.com являеться почтовым сервером принимающий почту для адресов в домене postfix-book.com
sendmail_enable="NONE" # отключаем sendmail /etc/rc.conf
clamav# антивирус
amavisd-new# посредником между MTA (postfix) и различными фильтрами/сканерами (spamassassin, clamav)
courier(или dovecot)#
SASL #используется postfix'ом для авторизации пользователей
LDAP — #база данных, где храниться информация о пользователях
Courier-imap программа, которая позволяет забрать письма пользователю с сервера
mbox и Maildir # Форматы серверных почтовых хранилищ
суббота, 7 февраля 2009 г.
samba
make install clean
ee /etc/rc.conf
samba_enable="YES"
smbd_enable="YES"
ee /usr/local/etc/smb.conf
====================== Global Settings =====================================
[global] # общие настройки сервера самба
Параметры этого раздела применяются к серверу целиком или являются умолчаниями для разделов если они специально не определены.
workgroup = mydomen # имя рабочей групы или нетбиос имя ПК
server string = My the bast server # описание пк в сети -пишем что хотим(можна опустить)
security = share # уровень доступа к шаре
hosts allow = 192.168.1. 127. # с каких сетей или IP адресов можна входить
hosts deny = 192.168.1.10 # етого не пускать
encrypt passwords = yes # шифруем передаваемые пароли
interfaces = em0 # интерфейс на которм весит самба
local master = no # поведение выбора обозревателя сети
oc level = 33 # тоже
domain master = no # поведение выбора обозремателя сети
preferred master = no # тоже
domain logon = no # запрещаем логины для компов выдавать, ето дело контролера домена
следующие два тоже коментируем они к етому относятся
display charset = koi8-r
unix charset = koi8-r
dos charset = cp866 # ето для русски букавок
Остальное по усмотрению
#====================== Share Definitions ===================================
[homes] # имя шары
comment = Home Directories # коментарий в сети видимый как комент к ресурсу
browseable = no # в сети ресурс виден только его владельцу
writable = yes # разрешить запись
[profiles] # имя шары
[printers] # имя шары
comment = All printers # коментарий который игнорируеться
path = /var/spool/samba #путь к спулу принтеров
guest ok = yes # разрешить печать гостю
writable = no # запрет заприси, в спул пишет сама самба
printable = yes # признак того что ето принтер, а не файл шара
create mode = 0700 # маска для файлов на печать
tmp
[public] # имя шары для свободного входа (ходи кто хоти-в нашей сети ;) )
comment = моя шара # коментарии к шаре
path = /home/user/public # путь к шаре
public = yes # доступ всем авторизированым пользователям на чтение
writable = yes # розрешить всем пользователям запись
printable = no # можна не писать, по умолчанию no (етож не принтер)
create mask = 0666 # права по умолчанию на созданый файл
directory mask = 0777 # права по умолчанию на папку
[public] # имя шары для ограниченого входа
comment = моя шара # коментарии к шаре
path = /home/user/public # путь к шаре
valid user = Vasya Petya Kolya
write list = Vasya
writable = yes # розрешить всем пользователям запись
printable = no # можна не писать, по умолчанию no (етож не принтер)
create mask = 0777 # права по умолчанию на созданый файл
directory mask = 0777 # права по умолчанию на папку
/usr/local/etc/rc.d/samba start
testparm # для проверки конфиг файла
smbstatus # какие шары кто юзает
smbstatus -V # увидим версию самбы
..........secrets.tdb #
..........smb.conf #
..........smbpasswd #
..........smbusers #
........../var/log/samba/ # логи
..........nmbd # сервер преобразования имен и адресов
..........smbd # файловый сервер
..........winbindd # сервер импорта пользователей и груп с PDC
..........swat # веб морда к самбе (розкоментируем строчку в /etc/inetd.conf)
..........smbclient # самба клиет для проверки шар(-L localhost)
здесь можно посмотреть с какими опциями скампилирована samba
ee /var/db/ports/sambaXX/options
или вместо sambaXX ставим имя любого установленого порта
или в папке с портом make config
здесь можно увидеть баги по самбе
https://bugzilla.samba.org/
- global - раздел с общими настройками для Samba сервера
- workgroup - рабочая группа Windows, WORKGROUP - значение по умолчанию для всех Windows машин, если вы не меняли самостоятельно
- security - режим безопасности, значение user означает аутентификацию по логину и паролю
- map to guest - задает способ обработки запросов, bad user - запросы с неправильным паролем будут отклонены, если такое имя пользователя существует
- wins support - включить или выключить поддержку WINS
- dns proxy - возможность запросов к DNS
- public - название общего каталога, которое будут видеть пользователи сети, может быть произвольным и не совпадать с именем директории
- path - полный путь до общего каталога
- browsable - отображение каталога в сетевом окружении
- writable - использование каталога на запись, инверсия read only
- guest ok - авторизация без пароля
- force user - пользователь по умолчанию
- valid users - список пользователей, у которых есть доступ к каталогу, через @ указывается unix-группа пользователей
testparm -s
понедельник, 26 января 2009 г.
ftpd
Установка стандартного встроеного фтп
ftpd_enable="YES"
ftpd_flags=" " прописываем в rc.conf
-----возможные флаги------
-D:запускать ftpd в режиме демона.
-a <адрес>: в режиме демона принимать соединения только на указанный IP-адрес.
-d:включить режим отладки (подробная информация о работе будет выдаваться серверу syslog как LOG_FTP).
-h: не выводить информацию о системе в сообщениях сервера.
-l: протоколировать все сессии (обычно используется/var/log/xferlog).
-A: разрешить только анонимный доступ.
-M: запретить анонимным пользователям создавать папки.
-m: разрешить анонимным пользователям модифицировать существующие файлы (если для этого достаточно системных прав).
-o, -O: разрешить только запись на сервер всем пользователям (-o) или только анонимному пользователю (-O). В частности, таким образом можно организовать сбор с удаленных серверов файлов резервных копий, чтение которых пользователями не предусмотрено.
-r: перевести сервер в режим «только для чтения». Любая модификация размещенных данных будет запрещена.
если просто перегрузицца и все оставить так у нас получиться анонимный фтп с розшареными папками в /usr/ftp (etc incoming i pub)
Чтобы обеспечить анонимный доступ к системе, следует создать пользователя ftp. В man 8 ftpd есть подробные инструкции, как настроить этого пользователя, чтобы обеспечить максимальную безопасность.
....
суббота, 24 января 2009 г.
SAMS
* Администрирование системы через web интерфейс
* Ограничение объема трафика пользователей на месяц
* Автоматическое отключение пользователей, превысивших лимит
* Блокировка доступа пользователей к запрещенным ресурсам интернет
* Настройка доступа пользователей через механизм шаблонов
* Разбиение пользователей на группы для удобства администрирования системы
* Ведение статистики посещенных пользователями ресурсов интернет
* Формирование отчетов по трафику пользователей за любой отрезок времени
* Поддержка видов авторизации SQUID: ntlm, ncsa, ip
* Поддержка использования редиректоров SQUID: rejik, squidGuard
* Ограничение скорости закачки для групп пользователей
* Посылку сообщений администратору при отключении пользователей при превышении трафика
* Для хранения данных используется СУБД MySQL
четверг, 22 января 2009 г.
Одной строкой
dmesg | grep -w CPU #Узнать тип процессора под FreeBSD
********************************************************************
touch # Создает пустой файл. Если файл существует, то тогда комманда touch меняет дату модификации файла.
********************************************************************
mount -t msdos -o -L=ru_RU.KOI8-R /dev/da0s1 /mnt/flashПодключение флешки на FreeBSD с поддержкой русских символов
********************************************************************
Как перечитать содержимое /etc/rc.conf и перестартовать /etc/rc без перезагрузки системы
#shutdown now выход в однопользовательский режим
#return
#exit
********************************************************************
#/etc/rc.d/netif restart # Как обновить IP адресс без перезагрузки?
********************************************************************
#/etc/rc.d/routing restart # Как обновить defaultrouter без перезагрузки?
********************************************************************
tcpdump -ni em0 - покажет пакеты проходящее через интерфейс
********************************************************************
Команды для исправления ошибок на диске (система перестала грузиться).
Загрузится в single user mode.
mount -a (смонтировать все для записи, при необходимости использовать ключи -u -f -w)
fsck -y
fsck_ffs /dev/ad1s1a
********************************************************************
telnetd, rlogind и ftpd Эти сервисы по умолчанию не не шифруют трафик
********************************************************************
find / -name file_name ищет имя файла или директории начиная с корня
find / -user user_name ищет все файлы и папки созданые пользователем
find /usr/local/ -make "*.bin" поиск файлов в директории с розширением bin
find / -type f -atime +30 # поиск всех файлов что не использовались месяц
which # поиск бинарных файлов
whereis # быстрый поиск папок и бинарных файлов портов
********************************************************************
id user #как узнать есть ли такой пользователь в системе в какой он групе и его id
alias # Выводит список алиасов
ee /.cshrc добавить свой алиас типа mm вместо mcedit
PS
ps axw | grep mysql
где
a-
x-
w-
Узнать тип процессора под FreeBSD можно так:
#grep -w CPU: /var/run/dmesg.boot
CPU: Intel Pentium III (1007.80-MHz 686-class CPU)
===========
http://www.3carata.com.ua/ring/338/
**************************************
Как узнать сколько места занимает директория или папка во FreeBSD
# du -hsx /var
вывод команды примерно такой:
790M /var
****************************************
Иногда бывают случаи когда надо срочно посмотреть открыты ли порты на фрюхе или нет. И для того что бы посмотреть открытые порты на FreeBSD нам в этом помогут команды sockstat и netstat
sockstat -4 -l
-4 отображаются только IPv4 сокеты.
-6 отображаются только IPv6 сокеты.
-c отображаются только подключенные сокеты.
-l отображаются только listening сокеты (открытый порт).
$ netstat -nat | grep LISTEN
*******************************************************
Как изменить время
#ntpdate pool.ntp.org - синхронизация по инет (пул адресов)
#date yymmddhhss - если нет инета
yy - год.последние 2 цифры
mm - месяц
dd - день
hh - час
ss - минуты
!!!после перезагрузки изменения внесенные слетят!!!
делаем
cp /usr/share/zoneinfo/YorRegion /etc/localtime
или
sysinstall (configure>time zone)
воскресенье, 18 января 2009 г.
DHCPd
Редактируем dhcpd.conf.
option domain-name-servers 192.168.0.112;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.20;
option routers 192.168.10.1;
}
Собственно сама сеть, и диапазон айпи, которые выдавать, роутер по умолчанию, DNS.
Включаем в rc.conf
dhcpd_enable="YES"
dhcpd_ifaces=”rl0″ # в какой сети слушает и раздает адреса наш сервер
--------------------------------------------------------------------------------
Squid
squid -k parse - проверка синтаксиса конфига
squid -k reconfigure - перечитать конфиг
/usr/local/etc/rc.d/squid start запускаем сквид
squid.conf если ставили из портов лежит /usr/local/etc/squid/ Там же лежит squid.conf.default - в нем можно почитать как правильно писать правила.
Самое элементарное, что нам после установки следует сделать, так это разрешить доступ пользователям нашей локальной сети. Для этого служат параметры http_port, http_access. Кроме этого, мы заведем acl (список контроля доступа) для нашей локальной сети.
http_port нам нужен постольку, поскольку наш прокси сервер Squid должен обслуживать только компьютеры нашей локальной сети и быть невидимым для внешнего мира, дабы исключить возможность “плохим людям” внешней сети воспользоваться нашим каналом или трафиком, а в случае, если будут обнаружены “дыры” в коде прокси сервера
Squid, воспользоваться ими.
http_access используется для разрешения или запрещения доступа к определенным ресурсам, определенным адресам либо с определенных адресов, к определенным сайтам, по определенным протоколам, портам и всему тому, что непосредственно указано с помощью Acl (списков контроля доступа).
ВНИМАНИЕ!! Никогда не ставьте стандартные порты вроде 8080 80 или 3128 если не хотите чтобы ваш прокси легко можно было обнаружить)
http_port 1234
(ICP)Internet Cache Protocol для открытия возможности использования кешей соседних squid прокси
Прописывать свои списки доступа (acl) и разрешения/запреты доступа (http_access) нужно между строками
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
и
And finally deny all other access to this proxy
http_access deny all
Порядок задания acl несущественен, а вот порядок следования инструкций http_access крайне важен, т.к. инструкции просматриваются от начала файла к концу, и любая сработавшая инструкция прекращает дальнейший просмотр. Если есть правило с исключениями, надо сначала задать исключения из правила, а потом само правило
If you are trying to use transparent options for squid version above 2.6, and you get the following errors:
# /usr/local/etc/rc.d/squid start
# Starting squid.
# 2007/04/10 17:53:42| parseConfigFile: line 47 unrecognized: 'httpd_accel_host virtual'
# 2007/04/10 17:53:42| parseConfigFile: line 48 unrecognized: 'httpd_accel_port 80'
# 2007/04/10 17:53:42| parseConfigFile: line 49 unrecognized: 'httpd_accel_with_proxy on'
# 2007/04/10 17:53:42| parseConfigFile: line 50 unrecognized: 'httpd_accel_uses_host_header on'
Instead of these lines just use the following:
# http_port 86.12.1.1:8080 transparent
Прозрачный squid
http_port 192.168.1.1:3129 (можна без IP просто порт)
http_port 3128 transparent
icp_port 0
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 128 MB
maximum_object_size 80000 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
cache_dir diskd /mnt/squid 28000 32 512 Q1=72 Q2=64
log_fqdn off
logfile_rotate 10
dns_nameservers 10.0.0.1
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
#next, remove
acl localnet src 10.0.0.0/255.255.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 210 1025-65535 280 488 591 777
acl CONNECT method CONNECT
acl all src 0.0.0.0/0.0.0.0
http_access deny !Safe_ports
http_access allow localnet
http_reply_access allow all
visible_hostname localhost
Поддержка видов авторизации SQUID
NTLM авторизация в домене Windows. WEB интерфейс позволяет импортировать пользователей из домена Windows
NCSA авторизация. WEB интерфейс позволяет импортировать пользователей из файла, созданного htpasswd
доступ по ip адресу
Приглашение Promt
Мой promt
"%n@ %c #"
Ee /.cshrc
правим строку set prompt=
синтаксис
%m - имя компьютера
%M - Полное имя машины
%# - символ
%n - текущий пользователь
%/ - полное имя директории (весь путь)
%c - в какой папке сейчас (короткий путь)
%T - время
%~ Текущая рабочая директория, но домашная директория текущего пользователя представлено тильдой ~ и домашние директории остальных пользователей представлены как ~user. Подстановка ~user действует только в случае если оболочка (shell) уже использует ~user в имени пути в текущей сессии
%c[[0]n],%.[[0]n] Отслеживает конечный компонент пути к текущей рабочей директории или n конечных компонентов, при заданном n. Если n начинается с 0 количество пропущенных компонентов предваряет конечные в формате /
%~, но будет игнорироваться при количестве конечных компонентов больше одного
%C Аналогично %c, но без подстановок ~
%h, %!, ! Номер события в текущей истории
%S (%s) Включить (отключить) стандартный режим
%B (%b) Включить (отключить) режим жирного шрифта
%U (%u) Включить (отключить) режим подчеркивания
%t, %@ Время в 12-часовом (AM/PM) формате
%T Аналогично %t, но в 24-часовом формате (зависит от переменной ampm оболочки)
%p Точное время суток в 12-часовом (AM/PM) формате, с секундами
%P Аналогично %p, но в 24-часовом формате (зависит от переменной ampm оболочки)
\c c будет распознан как код символа
%% Символ %
%n Имя пользователя
%j Количество запущенных в оболочке работ (jobs)
%d День недели в текстовом формате
%D День недели в числовом формате
%w Месяц в текстовом формате
%W Месяц в числовом формате
%y Год в двухзначном формате
%Y Год в четырехзначном формате
%l tty оболочки
%L Очищает от конца приглашения до конца экрана или строки
%$ Подставляет значение переменной оболочки или окружения с именем, заданным сразу после $ (например %$PATH)
%{string%} Включает строку как управляющая escape последовательность. Может использоваться для изменения атрибутов терминала (например для раскраски приглашения) и может не воздействовать на положение курсора. Не может быть последней последовательностью в приглашении
%? Возвращает код ошибки команды, запущенной непосредственно перед приглашением
также можна менять цвет
Цифирками, в строке set prompt = '%{^[[40;32;1m%}%$cwd/>' можно поиграться - они задают цвет самого приглашения, и цвет фона
понедельник, 12 января 2009 г.
Как сменить МАС адрес
1. Создаем файл /etc/start_if.if0, где if0 - имя вашего сетевого интерфейса.
# cat > /etc/start_if.if0
/sbin/ifconfig if0 ether хх:хх:хх:xх:хх:xx
# chmod +x /etc/start_if.if0
2. Перезагружаем машину.
Больше никаких дополнительных действий не требуется. Скрипт будет найден и исполнен без вашего участия.
Для смены mac адреса есть два способа статичный и динамичный. Отличие одного от другого только в том, что статичный останется у Вас и после перезагрузки сервера, а динамичный сразу смениться на реальный mac адрес Вашей сетевой карты. Какой нужен Вам решайте сами.
Динамическая смена mac адреса на FreeBSD:
- Заходим в консоль и вводим след команды
- ifconfig rl0 down -этой командой отключаем интерфейс rl0:
- ifconfig rl0 link ether 00:00:00:00:00:01 – этой командой мы изменяем mac адрес rl0
- ifconfig xl0 up -это командой мы включаем интерфейс rl0
PS прошу сразу обратить внимание что смена mac адреса должна быть не заглавными буквами (т.е. прописывайте мак адрес сетевой карты маленькими буквами!!!)
Статическая смена mac адреса на FreeBSD:
Как уже говорил ниже при статической смене мак адреса сетевой карты она у Вас не изменится и после перезагрузке вашего сервера, для этого сделайте след:
- Откройте Ваш файл rc.conf и там где у Вас прописан интерфейс сетевой карты
- Допишите в конец строки след:
ifconfig_rl0=»inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx»
ifconfig_rl0=»inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx ether 00:00:00:00:00:01″
PS тут тоже будьте аккуратней потому как прописывать MAC адрес надо только маленькими буквами, если пропишите большими то при след перезагрузке сервера у Вас вылетит ошибка в месте где идет загрузка файла rc.conf и он будет ругаться и выдаст такую ошибку : etc/rc.conf : 32: Syntax error: Unterminated quoted string Enter full pathname of shell or RETURN for /bin/sh:
воскресенье, 11 января 2009 г.
Настройка роутера
Для начала, можно просто включить NAT, указать что наш сервер является роутером, прописать DNS-ы провайдера и на всех остальных компьютерах, которым необходим выход в интернет - прописать IP адрес сервера в качестве основного шлюза. И все, интернет уже работает.
...
Пока нам нужно знать только название сетевой карты (eth0, dc0, rl0 и т.д.)
Там могут быть и другие устройства например:
plip0 - это параллельный порт.
lo0 - это интерфейс для работы с localhost адрес 127.0.0.1
tun0 - это тунельный интерфейс ppp
#ee /etc/rc.conf
ifconfig_eth0="inet 222.11.222.12 netmask 255.255.255.0" #Установка IP для внешнего интерфейсаifconfig_rl0="inet 192.168.1.1 netmask 255.255.255.0" #Установка IP для внутренего интерфейсаhostname="gw.example.com" #Указал имя серверуdefaultrouter="222.11.222.1" #Указал Основной шлюз. Это IP адресс провайдера.gateway_enable="YES" #Эта машина будет работать в качестве шлюзаnatd_enable="YES" #Включил NATnatd_interface="eth0" #Повесил его (NAT) на внешний интерфейс, смотрящий на провайдераsshd_enable="YES" #Включил SSH демон, чтобы можно было управлять сервером, лежа на берегу моря :)sendmail_enable="NONE" #Запрещаю запуск почтаря Sendmail, он пока не нуженТеперь нужно прописать DNS-ы провайдера. Конфигурационный файл находится здесь /etc/resolv.conf.
#ee /etc/resolv.conf
nameserver 172.27.137.10
nameserver 172.27.137.20
перезапускаем систему: #shutdown -r now или #reboot
Теперь компьютеры в сети, должны получить выход в интернет.
BIND
Запуск Bind-a и проверка зон на работоспособность.
named-checkconf #это для проверки named.conf на ошибки
named-checkzone test.com /etc/namedb/master/test.com #это проверяет файл зоны на ошибки
/etc/rc.d/named start #(или forcestart, а также stop, restart)
named.reload # Обновить базу данных bind-a т.е. чтобы перечитал свои файлы можно коммандой:
( если вы сделали изменения в файлах зон и забыли изменить serial то после этой комманды bind вам напомнит об этом)
Посмотреть bind в процессах
# top | grep named
И послушать висит ли Bind на 53 порту:
# sockstat -l4 -p 53
***********************************************************************************
Команда # sh make-localhost не нужна.(как написано в хендбуке)
Руководство немножко устарело у вас уже есть localhost-forward.db и localhost-reverse.db в /etc/namedb/master/
named.conf
Директива options определяет каталог, в котором хранятся файлы описания зон, директива zone определяет зоны, которые поддерживает сервер.
Зона "." сервером не поддерживается. Это корневая зона. Поэтому она имеет тип hint, т.е. "подсказка" на то, где описаны серверы корневой зоны.
Зона "0.0.127.in-addr.arpa" имеет тип master, т.к. данный сервер действительно является мастером для этой зоны.
Значение version "8.2.4"; добавляется для того, чтоб злоумышленник не мог определить точную версию нашего ДНС сервер.
Значение recursion no делает запрет на рекурсию.
Значение listen-on говорит на каких ИП отрабатывать запросы.
************************************************************************************
Проверяем:
/etc/namedb/>rndc reload
server reload successful
/etc/namedb/>rndc status
number of zones: 2
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/1000
tcp clients: 0/100
server is up and running
/etc/namedb/>sockstat | grep named
bind named 14438 3 dgram -> /var/run/logpriv
bind named 14438 20 udp4 213.125.15.4:53 *:*
bind named 14438 21 tcp4 213.125.15.4:53 *:*
bind named 14438 22 udp4 127.0.0.1:53 *:*
bind named 14438 23 tcp4 127.0.0.1:53 *:*
bind named 14438 24 udp4 *:63739 *:*
bind named 14438 25 udp6 *:63740 *:*
bind named 14438 26 tcp4 127.0.0.1:953 *:*
Утилита rnc нам необходима для работы в сервером ДНС: перезагрузка, статус, ошибки и т.д. rnc утилита - для 8 версии и ниже в 9той - rndc!
named.conf
options { #назначает переменные
directory "/etc/namedb"; # Указываем где находится рабочая директория
pid-file "/var/run/named/pid"; # Где находится пид файл
dump-file "/var/dump/named_dump.db"; #Где находится дамп
statistics-file "/var/stats/named.stats"; # Проверить состояние бинда можно здесь
allow-transfer { 195.24.128.164; 193.218.105.146; };
allow-query { any; };
recursion no;
notify yes;
version "hi";
};
Как мы видим файл состоит из блоков/секций. Блоки:
options
listen-on #IP-адреса интерфейсов сервера на котором будет запущена служба named
allow-recursion #список IP-адресов и/или подсетей которым разрешена рекурсия. По умолчанию DNS сервер обслуживает запросы любых клиентов для любых доменов, но если вы не хотите, чтобы кто то использовал Ваш DNS сервер (бережете трафик или ресурсы машины) необходимо использовать эту директиву, которая “скажет” DNS серверу о том, что для IP-адресов которых нет в списке allow-recursion отвечать только на запросы касаемые зон которые прописаны на данном DNS сервере.
acl #секция позволяющая создать access control list из IP-адресов, дабы потом не перечеслять их каждый раз в других секциях. acl “trusted-dns” в данном случае описывает IP-адреса доверительных DNS серверов которым позволено скачивать зоны полностью с нашего DNS сервера, т.к. по умолчанию скачать копию вашей зоны с вашего master DNS сервера сможет любой желающий указав с своем конфиге IP-адрес вашего master DNS сервера как первичного для вашей зоны. Если вы собираетесь вводить ограничения не скачивание файла зоны, то не забудьте в acl указать IP-адрес(а) вторичного(ных) DNS сервера(ов).
logging #
zone #собственно секция отвечающая за поддержку нашего тестового домена mydomain.ru данный сервер является мастером (master) для данной зоны. Внутри секции zone идет “ссылка” на “trusted-dns”, это, как вы должны помнить, acl смысл которого описан чуть выше. Секция zone обязательно должна описывать: тип (type) зоны (master или slave), путь до файла (file) зоны. В случаее если это тип slave доавляется обязательный параметр masters:
masters { IP-ADDRESS; };
где IP-ADDRESS это адрес первичного DNS сервера для данной зоны.
Конфигурим зоны
zone "." {
type hint;
file "named.root";
};
zone "localhost." {
type master;
file "master/localhost";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "master/localhost.rev";
};
zone "test.com" {
type master;
file "master/test.com";
};
zone "122.21.211.in-addr.arpa" {
type master;
file "master/test.com.rev";
};
Зоны
Символ @ при анализе файла заменяется named на то, что указано в кавычках после слова "zone" в named.conf - в нашем случае это myhost.ru. Кстати, именно поэтому в E-mail адресе, который указан на следующей строке, нужно применять точку вместо @.
http://www.intodns.com
файл зоны обратного просмотра 0.17.172.in-addr.arpa
$TTL 3600
@_____IN_____SOA_____ns.kiev.ua hostmaster.kiev.ua. (
_____________________2003042103
_____________________3600
_____________________1800
_____________________604800
_____________________3600 )
_____________IN______NS_____ns.kiev.ua.
_____________IN______NS_____ns2.kiev.ua.
1_____IN_____PTR_____boss.kiev.ua.
2_____IN_____PTR_____fr.kiev.ua.
файл зоны прямого просмотра
$TTL 3600
@_____IN_____SOA_____ns.kiev.ua hostmaster.kiev.ua. (
_____________________2003042103
_____________________3600
_____________________1800
_____________________604800
_____________________3600 )
_____________________IN______NS_____ns.kiev.ua.
_____________________IN______MX_____10_____mail.kiev.ua.
boss_________________IN______A______172.17.0.1
fr___________________IN______A______172.17.0.2
ВАЖНО: после каждого изменения строка Serial должна увеличиваться на 1 цифру в конце, иначе secondary NS не обновит у себя файл зоны домена. Подробно описывать файл не буду.
Перезапускаем named: # service named restart
dig postfix-book.com MX
dig postfix-book.com A
dig -x 100.100.100.100
днс трафик бегает по udp
tcp - нада если будет трансфер зон