Mikrotik Hairpin NAT

add action=masquerade chain=srcnat comment=hairpin dst-address-list=LAN out-interface-list=LAN src-address-list=LAN


Рубрика: Stuff | Оставить комментарий

Nginx dev config

server {
listen 192.0.2.1:80;
server_name "~^(dev\d{1,3}+)\.example\.com$";

return 301 https://$host$request_uri;
}

server {
listen 192.0.2.1:443 ssl;
server_name "~^(dev\d{1,3}+)\.example\.com$";

ssl on;
ssl_certificate /etc/nginx/ssl/wcard.example.com.crt;
ssl_certificate_key /etc/nginx/ssl/wcard.example.com.key;

location ^~ / {
proxy_pass http://127.0.0.1/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location /images/ {
proxy_intercept_errors on;
error_page 404 = @prod;
proxy_pass http://127.0.0.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location @prod {
proxy_pass https://www.example.com;
proxy_set_header Host www.example.com;
}

}

Рубрика: Stuff | Оставить комментарий

Named slaves config generator

#!/bin/bash
if [ -z $1 ]
then
SERVER=8.8.8.8
else
SERVER=$1
fi

for dom in $(cat domains_to_slave.txt)
do
SOA=$(dig +short soa ${dom} \@${SERVER} | cut -f1 -d ' ')
if [ ! -z ${SOA} ]
then
GET_NS=$(dig +short ns ${dom} \@${SOA})
GET_IP=$(dig +short a ${GET_NS} \@${SERVER})
master_ip=$(echo ${GET_IP} | sed 's/ /; /g')
file=$(echo ${dom} | idn --quiet -u)

cat << EOF
zone "${dom}" IN {
  type slave;
  file "slave/${file}.slave";
  masters { ${master_ip}; };
};

EOF

fi
sleep 2
done
# ./gen_slave.sh > /var/named/slave/external.conf
# grep extern /etc/named.conf
include "slave/external.conf";
# rm -f /var/named/slave/*.slave
# service named restart
Рубрика: IT, Stuff | Метки: , , | Оставить комментарий

ipv6

IPv6 Certification Badge for drkop

Рубрика: IT | Метки: | Оставить комментарий

Apache UserDir в Mac OS X (10.9) Mavericks Server

Если установлен Server.app
sudo ln -s /Users/$userlogin/Sites/ /Library/Server/Web/Data/Sites/Default/~$userlogin

Рубрика: IT | Метки: , , | Оставить комментарий

tar, ssh, pipe

ssh user@$host "tar -czvf - /remote/path" | cat > /local/path/$file.tgz

Рубрика: IT | Метки: , | Оставить комментарий

Linux swap usage, какой процесс ест swap

Нашел отличное решение как узнать кто съел swap.
Нашел тут
swap.sh

#!/bin/bash 
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
# Modified by Mikko Rantalainen 2012-08-09
# Pipe the output to "sort -nk3" to get sorted output
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`
do
    PID=`echo $DIR | cut -d / -f 3`
    PROGNAME=`ps -p $PID -o comm --no-headers`
    for SWAP in `grep Swap $DIR/smaps 2>/dev/null | awk '{ print $2 }'`
    do
        let SUM=$SUM+$SWAP
    done
    if (( $SUM > 0 )); then
        echo "PID=$PID swapped $SUM KB ($PROGNAME)"
    fi
    let OVERALL=$OVERALL+$SUM
    SUM=0
done
echo "Overall swap used: $OVERALL KB"

От себя добавить:

alias swapuse='swap.sh|sort -k3nr'

Удобно и быстро.

Рубрика: IT | Метки: , , , | Оставить комментарий

Zabbix — Host Inventory — Automatic (автоматическая инвентаризация добавленного хоста)

Наткнулся на форуме zabbix на вопрос о включении автоматической инвентаризации хоста при добавлении.
Пришло решение в виде хака mysql.
Вешать тригер на таблицу hosts
Name: insert_to_hostinv
Action: After
Event: Insert
INSERT INTO host_inventory (hostid,inventory_mode) VALUES (new.hostid,1)
Добавленный хост получает автоматическую инвентаризацию.

Рубрика: IT | Метки: , | Оставить комментарий

Сохраняем Sphinx запущенным

Желательно, что бы sphinx работал от пользователя виртуального хоста, да бы не морочить с правами, не говоря, о в принципе разных сфинксах для виртуальных хостов.
vhost’s crontab
#SPHINX
*/1 * * * * /home/vhost/crons/check_sphinx.sh
*/10 * * * * /usr/bin/indexer --config /home/vhost/sphinx/conf/vhost.conf --rotate --all >/dev/zero

содержимое check_sphinx.sh

#!/bin/bash
SEARCHD_PID=$( ps axun | egrep '[1]011.*[s]earchd' )

if [ -z "$SEARCHD_PID" ]; then
        `which searchd` --config /home/vhost/sphinx/conf/vhost.conf
fi

Где:

[1]011 - vhost user id (uid) 1011
[s]earchd - демон searchd

Рубрика: IT | Метки: , | Оставить комментарий

Postfix и ldap

Используя postfix и ldap организовать пересылку писем как root так и других пользователей локальных для ОС.
В /etc/aliases добавляем:

root:           some_ldap_user

В /etc/postfix/main.cf добавляем:

alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases

Содержимое /etc/postfix/ldap-aliases.cf:

bind = no
version = 3
timeout = 20

## set the size_limit to 1 since we only
## want to find one email address match
size_limit = 1
expansion_limit = 0

start_tls = no
tls_require_cert = no

server_host = ldap://ldap_server.domain.local/
search_base = dc=local
scope = sub
query_filter = (uid=%s)
result_attribute = mail
special_result_filter = %s@%d

Протестировать можно так:

postmap -q some_ldap_user ldap:/etc/postfix/ldap-aliases.cf

Вернуться должен e-mail пользователя.

Рубрика: IT | Метки: , , , , | Комментарии к записи Postfix и ldap отключены