C jak configure

Listopad 4, 2008

clamav + clamsmtpd + postfix

Filed under: konfiguracja — erendil @ 12:34 pm
Tags: , , ,

Dodajemy usera i grupę clamav:

pw group add clamav -g 106
pw user add clamav -c “ClamAVUser” -d “/nonexistent” -s “/sbin/nologin” -u 106 -g 106

Sciagamy źrodła, rozpakowujemy, configure+opcje (np. –prefix=/usr/local, generalnie polecam odpalic z –help), make, make install

Tworzymy katalog na sygnatury i ustawiamy prawa:

mkdir -p /var/lib/clamav
chown clamav:clamav /var/lib/clamav

Dostosowujemy zawartość plików /usr/local/etc/clamd.conf i /usr/local/etc/freshclam.conf, odpalamy z reki + dopisujemy do skryptów startowych.

Uruchamiam calość:

/usr/local/bin/freshclam –config-file=/usr/local/etc/freshclam.conf -d

/usr/local/sbin/clamd -c /usr/local/etc/clamd.conf

Ściągamy clamsmtpd,

http://memberwebs.com/stef/software/clamsmtp/clamsmtp-1.10.tar.gz

./configure –prefix=/usr/local
make
make install

Edytujemy /usr/local/etc/clamsmtpd.conf

/usr/local/sbin/clamsmtpd -f /usr/local/etc/clamsmtpd.conf -p /var/run/clamav/clamsmtpd.pid

Zmieniamy main.conf i master.cf, restartujemy postfix’a


Pliki konfiguracyjne
postfix’a, clamd, clamsmtpd i freshclam’a:

W main.cf na końcu dodajemy linijkę:

content_filter = scan:[127.0.0.1]:10025

Zawartość master.cf:

smtp inet n – n – – smtpd
scan unix – – n – 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
127.0.0.1:10026 inet n – n – 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8

pickup fifo n – n 60 1 pickup
cleanup unix n – n – 0 cleanup
qmgr fifo n – n 300 1 qmgr
tlsmgr unix – – n 1000? 1 tlsmgr
rewrite unix – – n – – trivial-rewrite
bounce unix – – n – 0 bounce
defer unix – – n – 0 bounce
trace unix – – n – 0 bounce
verify unix – – n – 1 verify
flush unix n – n 1000? 0 flush
proxymap unix – – n – – proxymap
proxywrite unix – – n – 1 proxymap
smtp unix – – n – – smtp
relay unix – – n – – smtp
-o smtp_fallback_relay=
showq unix n – n – – showq
error unix – – n – – error
retry unix – – n – – error
discard unix – – n – – discard
local unix – n n – – local
virtual unix – n n – – virtual
lmtp unix – – n – – lmtp
anvil unix – – n – 1 anvil
scache unix – – n – 1 scache

Zawartość clamd.conf:

LogSyslog yes
LogFacility LOG_MAIL
LogVerbose yes
PidFile /var/run/clamav/clamd.pid
TemporaryDirectory /tmp
DatabaseDirectory /var/db/clamav
LocalSocket /tmp/clamd.socket
FixStaleSocket yes
User clamav
ScanMail yes

Zawartość clamsmtpd.conf:

OutAddress: 10026
MaxConnections: 64
ClamAddress: /tmp/clamd.socket
Header: X-Virus-Scanned: AV Scaner 0.9
TempDirectory: /var/db/clamav/viruses
Action: drop
Quarantine: on
User: clamav

Zawartość freshclam.conf:

DatabaseDirectory /var/db/clamav
LogVerbose yes
LogSyslog yes
LogFacility LOG_MAIL
PidFile /var/run/clamav/freshclam.pid
DatabaseOwner clamav
AllowSupplementaryGroups yes
DatabaseMirror database.clamav.net
MaxAttempts 5
ScriptedUpdates yes
Checks 24
NotifyClamd /usr/local/etc/clamd.conf

Październik 29, 2008

PgBouncer – PostgreSQL connection pooler

Filed under: konfiguracja — erendil @ 4:32 pm
Tags: , , ,

PgBouncer to niezła alternatywa dla pgpool’a. Jego głównym zadaniem jest odciążyć nieco naszego PostgreSQL’a zabijanego kolejnymi connect’ami. PgBouncer tworzy pulę połączeń do serwera bazy danych i wydajnie z niej korzysta. Dostępne są następujące tryby:

Session pooling -gdy klient się łączy, połączenie z serwerem zostanie przypisane do niego przez cały czas, po rozłączeniu wraca z powrotem do puli.

Transaction pooling – połączenie aktywne tylko podczas transakcji, po jej zakończeniu wraca.

Statement pooling – najbardziej agresywna metoda, połącznie wraca do puli natychmiast po wykonaniu kwerendy(generalnie nie polecana ;) )

Administracja PgBouncer‘em jest bardzo prosta i sprowadza się do kilku poleceń kiedy jesteśmy podłączeni do wirtualnej bazy PgBouncer‘a, ale o tym później.

Na początek zainstalujemy PgBouncer‘a, ściągamy źródła stąd: http://pgfoundry.org/projects/pgbouncer

Do prawidłowego zainstalowania w systemie potrzebujemy również libevent.

cd /usr/ports/devel/libevent
make
make install

Ok libevent siedzi na miejscu, teraz zróbmy sobie PgBouncer‘a:

Rozpakowujemy źródła i piszemy:

cd pgbouncer-1.2.3
./configure –with-libevent=/usr/local
gmake
gmake install

Teraz pora na przygotowanie plików konfiguracyjnych dla programu, potrzebne są 2, jeden plik dla PgBouncer‘a, drugi plik z userami i hasłami.

Prosta zawartość pierwszego z nich (/usr/local/etc/pgbouncer.ini):

[databases]
naszabaza = host=127.0.0.1 port=5432 dbname=naszabaza

[pgbouncer]
listen_port = 6543
listen_addr = 127.0.0.1
auth_type = plain
auth_file = /usr/local/etc/users.txt
logfile = /var/log/pgbouncer.log
pidfile = /tmp/pgbouncer.pid
admin_users = uzytkownik
max_client_conn = 300
default_pool_size = 200
pool_mode = session
server_connect_timeout = 300
client_login_timeout = 300

Oraz drugiego (/usr/local/etc/users.txt):

“uzytkownik” “haslo_uzytkownika”

Uwierzytelnianie użytkowników:

md5 – domyślnie stosowane
crypt – czyli crypt
plain – czysty tekst, czyli niezakodowane
trust – zaufany – brak autentykacji, ale plik users.txt musi zawierać nazwę użytkownika
any – j.w. plus nazwa użytkownika jest ignorowana, wymaga aby wszystkie bazy danych zostały skonfigurowane do logowania się jako konkretny użytkownik.
Do kodowania haseł można wykorzystać np. Apache’owy htpasswd.
OK, mamy zainstalowanego PgBouncer‘a, czas go uruchomić, robimy to za pomocą następującej komendy (jako user, a nie root ;) :
/usr/local/bin/pgbouncer -d /usr/local/etc/pgbouncer.ini
Konsola administracyjna:
psql -h 127.0.0.1 -p 6543 -U user pgbouncer

Po zalogowaniu poleceniem show help; zobaczymy liste dostępnych komend.

pgbouncer=# show help;
NOTICE:  Console usage
DETAIL:
SHOW [HELP|CONFIG|DATABASES|FDS|POOLS|CLIENTS|SERVERS|SOCKETS|LISTS|VERSION]
SET key = arg
RELOAD
PAUSE
SUSPEND
RESUME
SHUTDOWN

Maj 15, 2008

fuse user filesystem ssh i freebsd

Filed under: konfiguracja — erendil @ 5:00 pm
Tags: , , ,

Zaczynamy od zainstalowania:

cd /usr/ports/sysutils/fusefs-sshfs; make install clean

By nasz fs wstawał przy starcie systemu do /etc/rc.conf dodajemy linijkę:

fusefs_enable=”YES”

Jeśli chcemy pozwolić userom na montowanie to klepiemy z konsoli:

sysctl vfs.usermount=1

Odpalamy z ręki nasz fs:

/usr/local/etc/rc.d/fusefs start

Aby sprawdzić czy moduł jest załadowany piszemy:

kldstat

Powinien pojawić się gdzieś tam napis

fuse.ko

Montowanie zdalnych udziałów jest banalne, robimy to za pomocą komendy:

sshfs login@host.domena.pl: /mnt/gdzie_zamontowac

Odmontowanie zasobu:

umonut /mnt/gdzie_zamontowac

Do czego można to wykorzystać? A na to pytanie trzeba sobie odpowiedzieć samemu :) Ja mam kilka zastosowań ;)

Kwiecień 25, 2008

portupgrade i freebsd – skrót/ściąga

Filed under: konfiguracja — erendil @ 1:43 pm
Tags: , , , ,

Na początek synchronizujemy źródła za pomocą cvsup, jak nie ma cvsup’a to instalujemy go za pomocą:

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

Piszemy sobie conf’a, u mnie defaultowo leży w /usr/local/etc/cvsup/ports-supfile, jego zawartość to:

*default host=cvsup.pl.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress
#
ports-all

Zasysamy porty poleceniem:

/usr/local/bin/cvsup /usr/local/etc/cvsup/ports-supfile

Następnie najlepiej odbudować index’y portów, klepiemy:

portsdb -Uu

Trwa to wieki, ale poczekać warto ;)
Instalujemy portupgrade:

cd /usr/ports/ports-mgmt/portupgrade
make install clean

Polecenie poniżej pokaże nam wszystkie porty, które są skazane na aktualizację.

portversion -v -l “<”

Ich upgrade robimy zbiorowo za pomocą:

portupgrade -arR

Inne ważne przełączniki:

-F - zassa potrzebne paczki
-f - instaluje na siłę (force)
-n – symulacja instalacji (nic nie zrobi pokaże tylko co się będzie działo gdybyśmy odpalili z flagami -aRr
-v – włącza tryb “gadatliwy”
-i – interaktywna konsola, czyli portupgrade pyta się nas o potwierdzenie upgrade’u
i na koniec man portupgrade

Kwiecień 23, 2008

django na freebsd z svn

Filed under: django,programowanie — erendil @ 2:09 pm
Tags: , ,

Zaczniemy od instalacji svn z portów:

cd /usr/ports/devel/subversion
make clean; make ; make install

następnie wykreujemy sobie katalog na źródła naszego django:

cd /usr/src
mkdir -p django
cd django

i zassamy co trzeba:

svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
cd django-trunk

chwila prawdy:

python setup.py install
django-admin.py –version

i grzeczna odpowiedź:

0.97-pre-SVN-7448

Znaczy … działa, jak nie działa – to szukamy dziury czyli ścieżek, albo python’a ;)
Aby zrobić później update na nowszą wersję django odpalamy svn up w katalogu /usr/src/django/django-trunk i python setup.py install.

Kwiecień 18, 2008

instalacja bazy danych mysql na freebsd “z ręki”

Filed under: konfiguracja — erendil @ 3:57 pm
Tags: , , ,

Poniżej krótkie how-to instalacji serwera baz danych mysql. Jeśli nie potrzebne są logi to pomijamy stosowne fragmenty. Jeśli trzeba coś dodać to dodajemy ;)

Ściągamy źródła mysql’a z wiadomej strony, rozpakowujemy, dodajemy usera i grupe mysql:
pw groupadd mysql -g 88
pw useradd mysql -u 88 -g 88 -d /dev/null -s /sbin/nologin

Kompilujemy i konfigurujemy mysql’a:
./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-extra-charsets=complex --with-innodb
make
make install
scripts/mysql_install_db
chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/var
cp support-files/my-medium.cnf /etc/my.cnf
ln -s /usr/local/mysql/lib/mysql /usr/local/lib/mysql
touch /var/log/mysql.log
chown mysql:mysql /var/log/mysql.log
chmod o= /var/log/mysql.log
/usr/local/mysql/bin/mysqld_safe --user=mysql --log=/var/log/mysql.log &

Logujemy się z konsoli i zmieniamy hasło:
update user set password=PASSWORD('naszenowehaslo') where user='root';

Restart uprawnień:
/usr/local/mysql/bin/mysqladmin flush-privileges

Do /usr/local/etc/rc.d/naszstartowyconfig.sh dopisać:
/usr/local/mysql/bin/mysqld_safe --user=mysql --log=/var/log/mysql.log &

eaccelerator – dopalacz php

Filed under: konfiguracja — erendil @ 2:09 pm
Tags: , , ,

Ściągnąć i rozpakować instalkę ze strony http://www.eaccelerator.net

Następnie jako root wydajemy kolejne polecenia:
export PHP_PREFIX="/usr/local"
$PHP_PREFIX/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
make
make test

Nie robimy make install, bo sami sobie skopiujemy co trzeba, tam gdzie trzeba. Jeśli wszystko przebiegnie ok to w ./modules powinien zostać utworzony plik o nazwie eaccelerator.so. Kopiujemy go gdziekolwiek, w moim wypadku ląduje on tu: /www/sbin/eaccelerator.so.

Na co zwrócić uwagę gdy pojawią się problemy? Przede wszystkim zobacz czy automake, autoheader i autoconf są na Twojej ścieżce poszukiwań. Wystarczy z konsoli napisać:

automak ( i nacisnąć Ctrl-D w shellu, jeśli system rozwinie to na automake to jesteś w domu.), jeśli nie…. to kombinuj (podpowiem ;) zmień shella na zsh, tak będzie najprościej. OK, mamy eaccelerator, teraz trzeba go podpiąć do php. Wyedytuj swój php.ini i dopisz w nim następującą sekcję:

zend_extension="/www/sbin/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Opcje jak widać są ładnie opisane nie ma potrzeby tłumaczyć. Baczną uwagę należy zwrócić na pierwsze trzy:

zend_extension="/www/sbin/eaccelerator.so"
W tym katalogu musi znaleźć się nasz lib z eacceleratorem.

eaccelerator.shm_size="32"
Rozmiar przeznaczonej na cache pamięci(w MB),jak masz sporo RAM’u to zmień np. na 400, jak mało wpisz tam 0 – system sam dobierze stosowną wartość.

eaccelerator.cache_dir="/tmp/eaccelerator"
Nasz cache na dysku, żeby zadziałał musimy zrobić to:
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

Przerestartować demony – koniec.
Jak sprawdzić czy eaccelerator działa? Najłatwiej odpytując funkcję phpinfo() via www.

Kwiecień 17, 2008

postgresql

Filed under: konfiguracja — erendil @ 3:31 pm
Tags: , ,

Ściągnąć postgresql http://www.postgresql.org i rozpakować źródła:
tar -zxvf postgresql_wersja.tgz

Utworzyć użytkownika i grupę postgres:
pw groupadd postgres -g 89
pw useradd postgres -u 89 -g 89 -d /usr/local/pgsql -s /usr/local/bin/zsh

Konfiguracja i instalacja:
./configure --prefix=/usr/local/pgsql --enable-locale --enable-debug
gmake
gmake check
gmake install

Utworzenie katalogów roboczych i nadanie praw:
mkdir /usr/local/pgsql/data
mkdir /usr/local/pgsql/errorlog
touch /usr/local/pgsql/data/serverlog
chown postgres:postgres /usr/local/pgsql/data
chown postgres:postgres /usr/local/pgsql/errorlog
chown postgres:postgres /usr/local/pgsql/data/serverlog
chmod 700 /usr/local/pgsql/data

Tsearch uwagi:
Dopisać do .bash_profile:

export LC_ALL=pl_PL.UTF-8
export LC_COLLATE=pl_PL.UTF-8
export LC_CTYPE=pl_PL.UTF-8
export LC_MESSAGES=pl_PL.UTF-8
export LC_MONETARY=pl_PL.UTF-8
export LC_NUMERIC=pl_PL.UTF-8
export LC_TIME=pl_PL.UTF-8

Jeśli jest OK to perl -v nie wywali błędów ;)

Wygreowanie instancji bazy:
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Dodanie libów odpalenie postgresql z ręki:

/sbin/ldconfig -elf -R /usr/local/pgsql/lib
su -l postgres -c "exec /usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -l /usr/local/pgsql/data/serverlog" &

Po wszystkim zmienić shella usera postgres na /sbin/nologin i passwd na * ;)

postfix + postgrey

Filed under: konfiguracja — erendil @ 3:20 pm
Tags: , , ,

Instalujemy postgrey’a z portów:

cd /usr/ports/mail/postgrey
make
make install

dodajemy katalog usera postgrey

mkdir -p /var/spool/postfix/postgrey
chown postgrey:nobody /var/spool/postfix/postgrey
chmod 770 /var/spool/postfix/postgrey

dokładamy do skryptów startowych w /usr/local/etc/rc.d następującą linijkę(koniecznie przed startem postfix’a)

# Start Postgrey
echo -n 'Postgrey'; /usr/local/sbin/postgrey --inet=10023 -d --delay=50 --greylist-text="Policy restrictions; try later"

Odpalamy z reki postgreya

/usr/local/sbin/postgrey --inet=10023 -d --delay=50 --greylist-text="Policy restrictions; try later"

modyfikujemy /etc/postfix/main.cf, w sekcji dokładamy na końcu linijkę dotyczącą postgrey’a:
smtpd_recipient_restrictions =
permit_mynetworks
...................
reject_unauth_destination
check_policy_service inet:127.0.0.1:10023

Kopiujemy troche ;)

mv postgrey_whitelist_clients /etc/postfix
mv postgrey_whitelist_recipients /etc/postfix

restart postfixa
postfix reload; tail -f /var/log/maillog

clamav + amavis + postfix

Filed under: konfiguracja — erendil @ 3:03 pm
Tags: , , , , , ,

Z portów lub z ręki doinstalować pakery i depackery, koniecznie arj/arc/bzip2/zip/rar/libzip i inne

CLAMAV – wchodzimy do portów:

cd /usr/ports/security/clamav
make clean; make; make install

Małe zmiany w konfiguracji(logi, ścieżki itd, wszystko w confach ładnie opisane więc nie powinno być problemów)
cd /usr/local/etc
nano clamd.conf
nano freshclamav.conf

dodac do /etc/rc.conf te 2 linie żeby clamav budził się przy starcie:
clamav_clamd_enable="YES"
clamav_freshclam_enable="YES"

ustawic logi i nadac prawa

touch /var/log/freshclam.log
chown clamav:clamav /var/log/freshclam.log

CLAMSMTP – instalacja z portów:
cd /usr/ports/security/clamsmtp
make clean; make; make install

dodac do /etc/rc.conf linijke:

clamsmtpd_enable="YES"

skopiowac i wyedytować clamsmtpd.conf ustawiając parametry konfiguracji:

cp /usr/local/etc/clamsmtpd.conf-sample /usr/local/etc/clamsmtpd.conf
nano/vi/ee... /usr/local/etc/clamsmtpd.conf

dodac do /etc/postfix/main.cf linijke:
content_filter = scan:[127.0.0.1]:10025

a do /etc/postfix/master.cf nastepujaca sekcje:

# AV scan filter (used by content_filter)
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
# For injecting mail back into postfix from the filter
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8

Poodopalać z reki z utworzonych przez porty skryptów startowych w /usr/local/etc/rc.d/ i restartnąć postfix’a.

Następna strona »

Theme: Rubric. Blog na WordPress.com.

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.