Апр 252012
 

Вроде ничего и нового тут нету, но решил написать этот пост больше для себя. Учитывая то что у меня сейчас все крутится на основном месте работы на виндах DHCP, DNS, etc…, то сейчас стараюсь записывать все что делаю на FreeBSD, она мне ближе по душе как не крути.
И так поехали.

cd /usr/ports/net/isc-dhcp42-server/ && make install clean

Выбираем следующие опции

 Options for isc-dhcp42-server 4.2.3_2                 │
                                           │ ┌────────────────────────────────────────────────────────────────┐ │
                                           │ │      [ ] DHCP_IPV6      Enable support for IPv6                │ │
                                           │ │      [X] DHCP_PARANOIA  Enable support for chroot              │ │
                                           │ │      [ ] DHCP_LDAP      With LDAP support                      │ │
                                           │ │      [ ] DHCP_LDAP_SSL  Support LDAP over SSL/TLS              │ │
                                           │ │      [ ] BIND_SYMBOLS   Enable BIND internal symbol table

После инсталляции DHCP сервера приступаем к его конфигурации, файл конфигурации располагается тут

/usr/local/etc/dhcpd.conf

И приводим его к такому виду.
Continue reading »

Мар 122012
 

Очередное обновление proftpd вылезло боком. Перестали логиниться юзеры которые проходят авторизацию через mysql.
Через режим отладки было видно что, не модуль mysql не подключен. Оказалось разработчики изменили некоторые функции, теперь необходимо в конфиги писать следующее

LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

И после это перезапустить proftpd.
Мне помогло.

Фев 122012
 

Понадобилось на шлюз монтировать диски с виндовой шарой для работы по фтп. Вроде ничего сложного нету, открыл шару, смотрировал и все 🙂
В процессе подготовки данной задачи, у меня всплыло несколько не приятных моментов, если шара открыта для всех на чтение, то на FreeBSD при монтировании шел запрос пароля, мне это не подходило, так как могли и свет выключить, и сервак мог зависнуть, главное чтобы после ребута все поднималось автоматически, без моего участия.
Порывшись на просторах сети, на старых серверах, я нашел решение данной задачи. Главное все правильно сделать, и все будет работать как часы 🙂
Идем в

cd /etc/

и правим файлик

ee nsmb.conf

до такого состояния.

# First, define a workgroup.
[default]
workgroup=HOME - <strong>Ваша рабочая группа, обязательно указывать имя с заглавных букв</strong>

# The 'FSERVER' is an NT server.
[UPLOAD] - Имя вашей машины под виндой, обязательно указывать имя с заглавных букв
charsets=koi8-r:cp866
addr=192.168.0.3 - IP Вашей машины под виндой

[UPLOAD:SLIK] - тут указывается имя машины и локальная учетная запись на виндовой машине.
# use persistent password cache for user 'joe'
password=$$1767877DF - Это пароль для вашей учетной записи под виндой в зашифрованном виде.

Пароль шифруется такой командой

smbutil crypt 1234567

, где 1234567 Ваш пароль, на выходе он получает такое значение $$12a1a06767a6a5e
Почле чего можем приступать к монтированию шары, для это пишем такую команду в консоли:

mount_smbfs -E koi8-r:cp866 -W HOME //SLIK@upload/e$ /mnt/

У меня все прошло отлично, все при монтировалось, пароль не запрашивало, теперь имеем такой вывод

//SLIK@UPLOAD/E$    932G    885G     46G    95%    /tmp

Дальше можно написать простенький скрипт, и положить его в автозагрузку системы 🙂

Янв 272012
 

На одном из серверов сделал обновление системы , все прошло гладко, пока не появилась у меня необходимость в заливке файлов по фтп. Вот тут и выплыл странный глюк. Меня перестало пускать на фтп под моим логином и еще парой логинов моих знакомых.
Сразу полез в логи смотреть что там творится, увидел вот такое

Jan 27 09:54:54 slik45.kiev.ua proftpd[1554] FTP session opened.
Jan 27 09:54:55 slik45.kiev.ua proftpd[1554] Preparing to chroot to directory '/usr/local/webs/'
Jan 27 09:54:55 slik45.kiev.ua proftpd[1554] error: FreeBSD with vulnerable chroot (FreeBSD-SA-11:07.chroot)
Jan 27 09:54:55 slik45.kiev.ua proftpd[1554] chroot to '/usr/local/webs/' failed for user '******': Operation not permitted
Jan 27 09:54:55 slik45.kiev.ua proftpd[1554] error: unable to set default root directory
Jan 27 09:54:55 slik45.kiev.ua proftpd[1554] FTP session closed.

Ключевой момент в логах это error: FreeBSD with vulnerable chroot (FreeBSD-SA-11:07.chroot), погуглил, ответ нашелся сразу. Если очень коротко, была дырка и ее закрыли.
Уязвимость заключается в возможности выполнения произвольного кода пользователем, попавшего в chroot-окружение демона ftpd (если он так сконфигурирован)
Решение проблемы очень простое.
Делаем с консоли

# freebsd-update fetch
# freebsd-update install

Перезапускаем proftpd и радуемся его работе.

Ноя 242011
 

На одном проекте стоит у меня nginx как веб сервер, точнее сказать у меня он стоит везде, но только на одном проекте возник такой глюк.

400 Bad Request
Request Header Or Cookie Too Large400 Bad Request
Request Header Or Cookie Too Large

Лечится он добавлением в конфиг такой строки

large_client_header_buffers     8 8k;

Это не статья, а скорее заметка для меня.

Окт 232011
 

Постоянно забываю как менять права доступа файлов и папок в терминале…

Циферный вид прав доступа

Я привык работать с правами доступа в циферной форме, потому кратенько разберемся какая цифра за что отвечает.

Например, у нас на папке стоят права доступа 765. Теперь по-порядку:
700 (первая цифра) — права доступа для владельца
60 (вторая цифра) — права доступа для группы
5 (третья цифра) — права доступа для всех остальных юзеров

Что же означают эты цифры. А означают они сумму прав доступа:
400 — владелец имеет право на чтение
200 — владелец имеет право на запись
100 — владелец имеет право на выполнение
40 — группа имеет право на чтение
20 — группа имеет право на запись
10 — группа имеет право на выполнение
4 — остальные имеют право на чтение
2 — остальные имеют право на запись
1 — остальные имеют право на выполнение

Тоесть, на нашем примере у нас такая математика:
700 = 400 + 200 + 100 (разрено читать + записывать + выполнять)
60 = 40 + 20 (читать и записывать разрешено, выполнять — запрещено)
5 = 4 + 1 (разрешено чтение и выполнение, но записывать запрещено)

Всё сводится к простой математике, тоесть суммированию прав доступа.

chmod (смена прав доступа)

Continue reading »

Сен 272011
 

Имеется у меня дома хороший брендовый сервер, в tower корпусе, две головы по два ядра.
Вот только незадача, жрет электричества как дурной, поэтому по ночам я его выключаю, 13 — 15 киловатт в сутки получается 🙁
В последнее время я начал забывать его по утрам включать, и тут назрел вопрос включения его по сети. Для винды програмка нашлась очень быстро, для FreeBSD тоже 🙂
Значит идем в порты

cd /usr/ports/net
make search name='wol'
Port:   wol-0.7.1_2
Path:   /usr/ports/net/wol
Info:   Tool to wake up Wake-On-LAN compliant computers
Maint:  cm@therek.net
B-deps: gettext-0.18.1.1 libiconv-1.13.1_1 perl-5.10.1_3
R-deps: gettext-0.18.1.1 libiconv-1.13.1_1
WWW:    http://ahh.sourceforge.net/wol/

Программа поставилась с пол пинка 🙂 Далее пошли у меня другие танцы. Сначала сетевая на сервере не хотела правильно конфигурироваться, там у меня венда стоит. Потом не хотела будиться с FreeBSD хотя с ноута с венды будился сервак на ура.
В общем нашел правильную комбинацию 🙂

wol -v 00:0e:0c:3e:93:e0 -i 192.168.0.3

Сначала идет мак адресс, потом ip адресс, без IP не хотел просыпаться.
Вот и все 🙂

Авг 272011
 

Ранее я уже писал о http://slik45.kiev.ua/freebsd/cacti-monitoring-raboty-apache , в этой статье я напишу о мониторинге нагрузке на веб сервер Nginx
Качаем сам скрипт для сбора статистики cacti-nginx.tar.gz, распаковываем его куда нибудь в удобное для нас место.
Заливаем файлы

get_nginx_client_status.pl
get_nginx_socket_status

в

/usr/local/share/cacti/scripts/

Даем им права на выполнение

chmod 755 /usr/local/share/cacti/scripts/get_nginx_socket_status.pl
chmod 755 /usr/local/share/cacti/scripts/get_nginx_clients_status.pl

Continue reading »

Авг 202011
 

Казалось бы банальный вопрос, но многие не знают ответа на него. Чесно говоря, я тоже не знал. 🙂
На nix-ах делается следующим образом.

Открываем файл /etc/my.cf и описываем в него следующее:

[mysqld]
...
log-queries-not-using-indexes
log=/var/log/mysql/mysql-queries.log
log-error=/var/log/mysql/mysql-errors.log
log-slow-queries=/var/log/mysql/mysql-slow-queries.log
...

Файлы могут сами не появится, потому лучше их создать и выдать права самому.

touch /var/log/mysql/mysql-queries.log
touch /var/log/mysql/mysql-errors.log
touch /var/log/mysql/mysql-slow-queries.log
chown mysql:mysql /var/log/mysql/mysql*
chmod 640 /var/log/mysql/mysql*

Теперь осталось перезапустить сервис:
service mysqld restart

Вот и всё. 🙂

Авг 072011
 

Эта статья описывает определенные шаги, которые должен предпринять админ для конфигурирования рабочей станции на основе FreeBSD 4.x. В общем говоря все это применимо и для сервера, но явно недостаточно — в случае сервера необходимо предпринять ряд дополнительных мер.

Основа

Известно, что FreeBSD одна из самых безопасных операционных систем, однако и для ее окончательного укрепления необходимо поработать ручками, не полагаясь на дефолтовые установки.

Прежде всего после установки ОС необходимо отключит все сервисы, которые не нужны. Допустим, что вам нужен лишь FTP и SSHD для работы в локальной сети. Для отключения всех сервисов подредактируйте /etc/rc.conf, примерно так как показано в этом файле.

Выключили? Замечательно. Теперь беремся за /etc/inetd.conf и разкомментируем там ftp. Все остальные службы в файле конфигурации должны быть закрыты до тех пор, пока они вам не понадобятся. Идем дальше: в /usr/local/etc/rc.d/. В этом (или из этого) месте httpd, rpcd и другие демоны инициализируются, так что делайте chmod -x всему тому, что вам не нужно. Или проще удалите/переместите удалите их если они вам не нужны. Перегружайте машину и выполняйте sockstat -l4. Примерно должно вылезти следующее:

root sshd 432 4 tcp4 *:22 *:*
root lpd 72 7 tcp4 *:515 *:*
root syslogd 60 5 udp4 *:514 *:*
root inetd 445 4 tcp4 *:21 *:*

Если видите что-то лишнее — возвращайтесь в /usr/local/etc/rc.d/ и убивайте все, что под руку попадется.
Continue reading »