Archive

Archive for January, 2009

Конфигурация nginx, не универсальная, freebsd

January 31st, 2009

nginx.conf:

user nobody;
worker_processes 2;
worker_rlimit_nofile 8192;

error_log /var/log/nginx/nginx-error.log crit;

pid /var/run/nginx.pid;

events {
    worker_connections 8192;
    use kqueue;
}

http {
    include mime.types;
    default_type application/octet-stream;

    #access_log /var/log/nginx/nginx-access.log;
    access_log  off;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    keepalive_timeout 65;
    client_max_body_size 20m;

    server {
        listen 1.2.3.1 default accept_filter=httpready;
        server_name foobar;
        location / {
            root /var/empty;
        }
    }

    include /usr/local/etc/nginx/vhosts/*.conf;
}

Файл-пример конфига для виртхоста:

server {
    listen 1.2.3.2;

    server_name sample.com www.sample.com;
    location ~ /\.ht {
        deny  all;
    }

    location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
        root /usr/home/domains/sample.com;
expires max;
    }

location / {
        proxy_pass         http://127.0.0.1:80;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        client_body_buffer_size    128k;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_temp_file_write_size 64k;
    }
}

nginx ,

Установка Python 2.5 в CentOS

January 31st, 2009

К сожалению, Python 2.5 до сих пор не присутствует ни в одном из популярных репозиториев. Поэтому прийдется устанавливать его из исходников:

wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
tar fxz Python-2.5.2.tgz
cd Python-2.5.2
./configure
make
make install

Таким образом в системе будет два Питона: 2.4 – имеющийся по дефолту (/usr/bin/python) и новый 2.5 (/usr/local/bin/python).

Если потом надо еще установить pysqlite, то:

yum install sqlite-devel
wget http://oss.itsystementwicklung.de/download/pysqlite/2.5/2.5.1/pysqlite-2.5.1.tar.gz
tar fxz pysqlite-2.5.1.tar.gz
cd pysqlite-2.5.1
/usr/local/bin/python setup.py build
/usr/local/bin/python setup.py install

А вообще я нифига не понимаю, почему такой довольно популярный язык так плохо поддерживается в репозиториях .. ?

linux , , ,

Установка pptpd в CentOS

January 30th, 2009

Добавляем репозиторий и устанавливаем

rpm -Uvh http://pptpclient.sourceforge.net/yum/stable/rhel5/pptp-release-current.noarch.rpm
yum install pptpd

в /etc/pptpd.conf

localip 192.168.6.1
remoteip 192.168.6.234-238

в /etc/ppp/chap-secrets добавляем логины и пароли в открытом виде. Например:

username    pptpd   xsw2zaq1        *
/etc/init.d/pptpd start
chkconfig --level 345 pptpd on

Включаем роутинг:

echo 1 > /proc/sys/net/ipv4/ip_forward

и правим соотвествующую строчку в sysctl.conf

Ставим, включаем и делаем роутинг в iptables:

yum install iptables
chkconfig iptables on
iptables -t nat -A POSTROUTING -s 192.168.6.0/255.255.255.0 -o eth0 -j SNAT --to-source <ип сервера>
service iptables save
iptables -t nat -L

Про включение поддержки ppp внутри OpenVZ-контейнера читать здесь

linux, vpn , , ,

установка OpenVPN на FreeBSD

January 20th, 2009

Установим OpenVPN в самой простой конфигурации, когда есть один статический ключ и мы хотим чтобы пользователь ходил по инету через впн:

cd /usr/ports/security/openvpn && make install
cd /etc
openvpn --genkey --secret static.key

Конфиг положим сюда /etc/openvpn.conf:

dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
comp-lzo
user nobody
group nobody
daemon
log /var/log/openvpn.log
status /var/log/openvpn-status.log
verb 4
mute 10

В rc.conf:

openvpn_enable="YES"
openvpn_configfile="/etc/openvpn.conf"
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.rules"
gateway_enable="YES"

В /etc/ipnat.rules:

map bge0 10.8.0.0/16 -&gt; 0/32

где bge0 внешний интерфейс сервера.

Включаем openvpn, роутинг и нат:

/etc/rc.d/ipnat start
/usr/local/etc/rc.d/openvpn start
sysctl net.inet.ip.forwarding=1

Теперь на клиента надо скопировать static.key. Поставить виндовый клиент и сделать такой конфиг-файл:

proto udp
remote ип-сервера
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
comp-lzo
keepalive 10 60
ping-timer-rem
redirect-gateway

Надо отметить, что эта конфигурация пригодна для эксплуатации одновременно только с одним клиентом.

FreeBSD, vpn , ,

nginx, apache, mod_rpaf и не правильное определение прокси

January 18th, 2009

Если вы используете такую связку, и в nginx присуствуют следующие директивы

proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header    X-Forwarded-For $remote_addr;

чтобы пробросить ip пользователя к apache, то некоторые скрипты, работающие под apache из-за заголовка X-Forwarded-For могут считать, что пользователь пришел через прокси. А это не желательно. В таком случае в nginx те два заголовка надо заменить на:

proxy_set_header   Test $remote_addr;

а в конфиге mod_rpaf сделать так:

RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 внешние ип-ы
RPAFheader Test

Apache, nginx , ,

Обновление php на Linux через yum

January 16th, 2009

добавляем репозиторий и обновляемся:

rpm -ihv http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
yum --enablerepo=remi update php

linux, php ,

Установка mod_rpaf (linux)

January 16th, 2009

1. Устанавливаем пакет httpd-devel:

yum -y install httpd-devel

2. Скачиваем и устанавливаем mod_rpaf:

cd /usr/local/src
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

3. Далее нужно создать файл конфигурации mod_rpaf – /etc/httpd/conf.d/rpaf.conf
и добавить в него следующие строки:

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yy

где xx.xx.xx.xx и yy.yy.yy.yy – IP адреса вашего сервера.

Apache, linux ,

vsftpd под linux

January 16th, 2009
# Access rights
anonymous_enable=NO
local_enable=YES
write_enable=YES
file_open_mode=0666
local_umask=022
syslog_enable=NO
idle_session_timeout=900
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
# Security
secure_chroot_dir=/var/empty
anon_world_readable_only=NO
connect_from_port_20=YES
hide_ids=YES
pasv_min_port=50000
pasv_max_port=60000
passwd_chroot_enable=YES
chroot_local_user=YES
ftp_username=nobody
# Features
background=YES
listen=YES
force_dot_files=YES
xferlog_enable=YES
ls_recurse_enable=NO
ascii_download_enable=NO
async_abor_enable=YES
# Performance
one_process_model=NO
data_connection_timeout=300
accept_timeout=120
connect_timeout=120
anon_max_rate=50000
pam_service_name=vsftpd
ftpd_banner=FTP Server

внимание к овнеру конфига

ftp, linux

установка nginx на linux из yum

January 9th, 2009

Надо лишь добавить репозитарий:

rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

или

rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

или скачать rpm напрямую, например:

http://download.fedora.redhat.com/pub/epel/5/x86_64/nginx-0.6.33-1.el5.x86_64.rpm

linux, nginx , ,