среда, 13 октября 2010 г.

FreeBSD: Aapche22 папка под паролем?

В какой-ир момент все изменилось и теперь это делается без .htaccsess

В начале создаем папку с файлом пароля

mkdir /usr/local/etc/htpswd/
cd /usr/local/etc/htpswd
htpasswd -c name.file name.user
New password: ******
Re-Type new password: ******

chmod 644 name.file

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

AuthType Basic
AuthName "***"
AuthUserFile /usr/local/etc/htpswd/name.file
Require user name.user

Можно не указывать конкретного юзера написав
Require valid-user

Итого все вместе выглядит так


Options Indexes FollowSymLinks MultiViews
Order allow,deny
AuthType Basic
AuthName "***"
AuthUserFile /usr/local/etc/htpswd/name.file
Require user name.user
allow from all
DefaultLanguage ru
AddDefaultCharset WINDOWS-1251



Alias /netams /usr/local/www/netams

понедельник, 26 июля 2010 г.

FreeBSD: Как заблокировать ICQ?

Для этого надо иметь установленный pf

В pf.conf добавляем спсико IP ICQ серверов, их можно вычеслить в Windows коммандой netstat после подключения к ICQ

ext_if это внешний интерфейс сети

icq_servers="{ 95.100.114.70, 195.10.39.9, 195.10.39.90, 195.10.39.99, 64.12.202
.0/24, 64.12.202.12, 64.12.202.33, 205.188.7.72, 205.188.57.200, 195.10.39.106,
195.10.39.83, 77.234.201.89, 64.12.96.129, 205.188.251.0/24, 205.188.251.14, 205
.188.251.19, 64.12.202.0/24, 81.19.64.0/24, 81.19.65.0/24, 81.19.66.52, 81.19.69
.0/24, 81.19.70.2, 64.12.174.0/24, 152.163.208.0/24, 205.188.165.0/24, 64.236.4
7.0/24, 64.236.46.0/24, 205.188.1.0/24, 205.188.9.0/24, 205.188.153.0/24, 205.18
8.251.0/24, 64.12.31.0/24, 64.12.25.0/24, 64.12.161.0/24, 64.12.162.0/24, 64.12.
163.0/24, 64.12.164.247, 201.27.217.113, 200.117.138.206 }"

block out quick on $ext_if from any to $icq_servers

Чтобы кто то все таки смог входить в ICQ добавляем

pass out quick on $int_if from $icq_users to $icq_servers

понедельник, 12 июля 2010 г.

FreeBSD: Применение исправлений FreeBSD!

Читаем замечательный сайт узнаем что найдена уязвимость в системе:
http://www.opennet.ru/opennews/art.shtml?num=27287

В этой новости дается ссылка на пач который ну совершенно не понятно что надо сделать чтобы пропатчить систему. А сделать надо следующее, в консоле с правами рут набираем:

freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update2.FreeBSD.org... done.
Fetching metadata signature for 8.0-RELEASE from update2.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 39 patches.....10....20....30.... done.
Applying patches... done.

The following files will be updated as part of updating to 8.0-RELEASE-p4:
/etc/mtree/BSD.var.dist
/lib/libzpool.so.2
/libexec/ld-elf.so.1
/usr/bin/dig
/usr/bin/host
/usr/bin/nslookup
/usr/bin/nsupdate
/usr/lib/libopie.a
/usr/lib/libopie.so.6
/usr/lib/libssl.a
/usr/lib/libssl.so.6
/usr/lib/libzpool.a
/usr/sbin/dnssec-dsfromkey
/usr/sbin/dnssec-keyfromlabel
/usr/sbin/dnssec-keygen
/usr/sbin/dnssec-signzone
/usr/sbin/freebsd-update
/usr/sbin/jail
/usr/sbin/lwresd
/usr/sbin/named
/usr/sbin/named-checkconf
/usr/sbin/named-checkzone
/usr/sbin/named-compilezone
/usr/sbin/ntpd
/usr/sbin/rndc-confgen
/usr/share/man/man2/mount.2.gz
/usr/share/man/man2/nmount.2.gz
/usr/share/man/man2/unmount.2.gz
/usr/src/sys/cddl/compat/opensolaris/sys/vnode.h
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
/usr/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h
/usr/src/sys/conf/newvers.sh
/usr/src/sys/kern/uipc_mbuf.c
/usr/src/sys/kern/vfs_lookup.c
/usr/src/sys/netinet/ip_mroute.c
/usr/src/sys/netinet/raw_ip.c
/usr/src/sys/netinet/sctp_input.c
/usr/src/sys/netinet6/raw_ip6.c
/usr/src/sys/nfsclient/nfs_vfsops.c
/usr/src/sys/rpc/clnt_vc.c
/var/db/freebsd-update
/var/db/mergemaster.mtree
Server# freebsd-update install
Installing updates... done.


в этом списке замечаем /usr/src/sys/kern/uipc_mbuf.c как раз о нем шла речь в новостях
далее набираем

freebsd-update install

Installing updates... done.


Всё патчи установлены

суббота, 3 июля 2010 г.

FreeBSD: Mysql основные комманды

Войти в Mysql

mysql -u root -p
(пароль mysql администратора)

Создать базу
CREATE DATABASE name;

Заход через phpmyadmin
Имя: root
Пароль: (пароль mysql администратора)

Добавление пользователя

adduser mysqldb
new_name_user_pass

Сделать его пользователем MySQL

mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO mysqldb@localhost
IDENTIFIED BY 'new_name_user_pass_mysql' WITH GRANT OPTION;



CREATE, SELECT, INSERT, DELETE и UPDATE, DROP

_______________________

1. Как сделать дамб (копию) базы MySQL?
Для этого надо зайти на сайт по Shell, вы окажется в ОС FreeBSD или в каком нибуть Linux. Пишите следующею строчку:

mysqldump -uЛОГИН_К_БАЗЕ -pПАРОЛЬ_К _БАЗЕ -hИМЯ_localhost ИМЯ_БАЗЫ > dump.sql

Если база большая и памяти не хватает то

mysqldump --opt -uимя_пользователя -pПАРОЛЬ_К _БАЗЕ -hимя_сервера_БД имя_базы > dump.sql

2. Как восстановить дамб (копию) базы MySQL?
Тоже самое что и в первом вопросе но тольео меняется стрелочка:
mysql -uЛОГИН_К_БАЗЕ -pПАРОЛЬ_К _БАЗЕ -hИМЯ_localhost ИМЯ_БАЗЫ < dump.sql

Примечание: Дамб вы сделали но как перекинуть его на другой хост?
Для этого на новом хосту тоже по Shell запускаете программу wget:

wget http://www.data.ru/test.sql

Файл быстро перекинертся, если конечно .htaccess не запрешен хотлинк.

Примичание 2: У MySQL разные версии и как правило не совместимые, возможно потребуются дополнительные ключи:

--compatible=mysql40 (переход c 5 на 4)

Но на это вопрос в подержке просто обязаны ответить, какими бы вонючками они не были!

3. Как насильно в базе изменить в столбце все значение на заданные в заданной строке?
Например когда надо всем членам форума(phpBB) поставить новое время в свявзи с переводом, автоматический это почемуто не делается. Для этого надо в PHPmyAdmin выполнить следующий SQL запрос:

update phpbb_users set user_timezone='3'

4. Как насильно в базе в столбце найти все "А" и изменить на "Б"?
Для этого надо в PHPmyAdmin выполнить следующий SQL запрос:
UPDATE столбец SET поле = REPLACE(поле, 'то_что_надо_найти', 'то_на_что_надо_заменить');


5. Символ перехода на следующую строку в MySQL, аналог
в HTML?

\n

среда, 23 июня 2010 г.

FreeBSD: Перезагрузка сервера по одному нажатию в Windows!

Задачи
- Предоставить возможность перезагружать сервер пользователям из под Windows по одному нажатию без ввода пароля и комманд
- Ограничить учетку из под которой происходит перезагрузка

1. Устанавливаем lshell

cd /usr/ports/shells/lshell
make
make install

2. Приводим файл /usr/local/etc/lshell.conf к виду (разрешаем только выполнение комманды shutdown)

# lshell.py configuration file
#
# $Id: lshell.conf,v 1.24 2010/04/17 23:14:58 ghantoos Exp $

[global]
##  log directory (default /var/log/lshell/ )
logpath         : /var/log/lshell/
##  set log level to 0, 1, 2 or 3  (0: no logs, 1: least verbose)
loglevel        : 2
##  configure log file name (default is %u i.e. username.log)
logfilename     : %y%m%d-%u

[default]
##  a list of the allowed commands or 'all' to allow all commands in user's PATH
allowed         : ['shutdown']

##  a list of forbidden character or commands
forbidden       : ['su','ls','cd','cd','rm','chmod','[',';', '&', '|','`','>','<', '$(', '${']

##  a list of allowed command to use with sudo(8)
#sudo_commands   : ['reboot']

##  number of warnings when user enters a forbidden value before getting
##  exited from lshell
warning_counter : 3

##  command aliases list (similar to bash\xe2\x80\x99s alias directive)
#aliases         : {'ll':'ls -l', 'vi':'vim'}

##  introduction text to print (when entering lshell)
#intro           : "== My personal intro ==\nWelcome to lshell\nType '?' or 'hel
p' to get the list of allowed commands"

##  a value in seconds for the session timer
#timer           : 5

##  list of path to restrict the user "geographicaly"
#path            : ['/home/bla/','/etc']

##  set the home folder of your user. If not specified the home_path is set to
##  the $HOME environment variable
#home_path       : '/home/bla/'

##  update the environment variable $PATH of the user
#env_path        : ':/usr/local/bin:/usr/sbin'

##  allow or forbid the use of scp (set to 1 or 0)
scp             : 0

## forbid scp upload
scp_upload       : 0

## forbid scp download
scp_download     : 0

##  allow of forbid the use of sftp (set to 1 or 0)
sftp            : 1

##  list of command allowed to execute over ssh (e.g. rsync, rdiff-backup, etc.)
overssh         : ['shutdown']

##  logging strictness. If set to 1, any unknown command is considered as
##  forbidden, and user's warning counter is decreased. If set to 0, command is
##  considered as unknown, and user is only warned (i.e. *** unknown synthax)
#strict          : 1

##  force files sent through scp to a specific directory
#scpforce        : '/home/bla/uploads/'

##  history file maximum size
#history_size     : 100

##  set history file name (default is /home/%u/.lhistory)
#history_file     : "/home/%u/.lshell_history"

3. Создаем пользователя
adduser
Name: rebooter

4. Добавляем его в группу operator

pw usermod rebooter -G operator

5. Меняем шелл пользователя на lshell

chpass rebooter

изменяем строчку на
Shell: /usr/local/bin/lshell


6. В Windows делаем файл rebooter.bat
а в нем строки
@echo off
plink.exe -ssh 10.10.30.75 -l rebooter -pw mypass shutdown -r now
pause

в папку с этим файлом кладем plink.exe
(берем его здесь http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html )

7. При первом запуске plink попросить нажать y чтобы добавить открытый ключ потом просить не будет

суббота, 24 апреля 2010 г.

FreeBSD: Оптимизация MySQL

Имеем VPS
CPU 4×1000
Memory 2G
База форум phpBB3 1.2 Gb + 0.18 Gb нагурзка 30-150 пользователей на форуме по данным за последние 5 минут

Замечено: При изменении настроек my.cnf и перезагрузки MySQL база убивается, видимо это связано с нагрузкой форума. После убиения можно восстановить работу базы если отключить форум через ACP phpBB и прогнать в PhpMyadmin оптимизацию(10 минут) и восстановление(15-20 минут) базы, не включая форума перезагрузить MySQL и после этого включить форум!

Чтобы хоть как-то понять что происходит с MySQL сколько она памяти использует надо прогнать утилитку mysql tuner

fetch http://mysqltuner.com/mysqltuner.pl
perl mysqltuner.pl
далее во FreeBSD надо ввести пароль администратора MySQL

>> MySQLTuner 1.0.1 - Major Hayden
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.77
[OK] Operating on 32-bit architecture with less than 2GB RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: -Archive -BDB -Federated -InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 797M (Tables: 134)
[!!] Total fragmented tables: 18

-------- Performance Metrics -------------------------------------------------
[--] Up for: 12h 42m 34s (1M q [25.057 qps], 114K conn, TX: 4B, RX: 140M)
[--] Reads / Writes: 85% / 15%
[--] Total buffers: 1.4G global + 3.6M per thread (110 max threads)
[!!] Maximum possible memory usage: 1.8G (88% of installed RAM)
[OK] Slow queries: 0% (25/1M)
[OK] Highest usage of available connections: 45% (50/110)
[OK] Key buffer size / total MyISAM indexes: 1.2G/1.0G
[OK] Key buffer hit rate: 99.3% (39M cached / 291K reads)
[OK] Query cache efficiency: 36.5% (262K cached / 718K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (3 temp sorts / 39K sorts)
[!!] Joins performed without indexes: 270
[OK] Temporary tables created on disk: 6% (2K on disk / 44K total)
[OK] Thread cache hit rate: 95% (5K created / 114K connections)
[OK] Table cache hit rate: 94% (512 open / 540 opened)
[OK] Open file limit used: 56% (650/1K)
[OK] Table locks acquired immediately: 99% (629K immediate / 632K locks)

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Reduce your overall MySQL memory footprint for system stability
Enable the slow query log to troubleshoot bad queries
Adjust your join queries to always utilize indexes
Variables to adjust:
join_buffer_size (> 2.0M, or always use indexes with joins)


Обычно утилита дает рекомендации по увеличению чего-то

На что следуют обратить внимание
[--] Total buffers: 1.4G global + 3.6M per thread (110 max threads)
[!!] Maximum possible memory usage: 1.8G (88% of installed RAM)

Показан максимально возможный уровень использования памяти. Вторая часть первой строки вычисляется по формуле (read_buffer + sort_buffer + join_buffer_size) * max_connections

Строка
[OK] Highest usage of available connections: 45% (50/110)

Показывает максимальное количество подключений к базе - зная всё это можно предположить справится ли сервер с пиковой нагрузкой (если будет 110 подключений) - в моём случае не справится потому что в теории будет использует 1.8 G - при этом мало останется для Apache и прочего.

Строка
[OK] Key buffer size / total MyISAM indexes: 1.2G/1.0G

Утилита просит чтобы Key buffer size был выше MyISAM indexes - жаль не понятно как он используется потому что вроде бы никогда до конца не наполняется но при этом память сразу резервируется вся

Строка
[!!] Joins performed without indexes: 270

Вот это совершенно непонятная строка потому что увеличение join_buffer_size не помогает но сильно сжирает память

Конфигурация my.cnf при которой MySQL пока справляется с нагрузкой

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

key_buffer=1274M
table_cache=512
read_buffer=128K
sort_buffer=1M
join_buffer_size=2M
max_connections=110
wait_timeout=10
max_connect_errors=10
query_cache_limit=1M
query_cache_size=128M
query_cache_type=1
tmp_table_size=256M
thread_cache_size=4
connect_timeout=10
interactive_timeout=120
skip-innodb
skip-bdb
old_passwords=1

[mysql.server]
user=mysql
basedir=/var/lib

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

суббота, 13 марта 2010 г.

FreeBSD: Обзор сервера Depo Storm

Каждый системный администратор рано или поздно задается вопросом а почему ПК от Depo перестают включатся по кнопке Power и реагируют только на копку Reset... Ответ прост - не надо было покупать технику у специалистов по наклеиванию наклеек. Ведь что делают такие компании как Depo compюters покупают ПК наклеивают свою наклейку и продают в два раза дороже это рашин ноухау - рашин бизнес!

Живой пример берем сервер SuperMicro SuperServer 5015M-MT / 5015M-MTB так нет же это сервер Depo Storm!!!
Оригинал: http://www.supermicro.com/products/system/1U/5015/SYS-5015M-MT.cfm

За титанический труд по наклейке наклеек Depo просит где-то в полтора раза больше чем Supermicro и я бы не жалел потраченных денег но посмотрите на эту наклейку ОНА УЖЕ ОТВАЛИВАЕТСЯ!!!!!!!!! Попутно оцение жесткий диск - ничем иным как желанием содрать с клиента дополнительное бабало выбор этой модель оправдать нельзя... им мало оказывается своих наценок!



Но тем не менее у подающего большие надежды китайского производителя SuperMicro получился не плохой сервер - не плохой для своей настоящей цены конечно же!


Внутри все продуманно


И тут Depo проделала поразительную доводку до ума китайской техники - наклейка на каждом кулере - теперь за них можно быть спокойным!


С комплектацией у Depo конечно не очень... КОНЕЧНО с такой наценкой на голую платформу, предлагать достойные комплектующие просто не хватает уже диапазона цены!