Настройка TraffPro на Ubuntu Server 8.x.x. Печать
Автор: Administrator   
27.05.10 10:27

Настройка TraffPro на Ubuntu Server 8.x.x.


DHCP3-SERVER

/etc/dhcp3/dhcpd.conf:

default-lease-time 2592000; #дефолтное время аренды адреса (сек.)

max-lease-time 2592000; #максимальное время аренды адреса

log-facility local7; #логи работы вести будем

option subnet-mask 255.255.255.0; #маска подсети

option broadcast-address 192.168.20.255; #широковещательные запросы

option routers 192.168.20.1; #дефолтный gateway

option domain-name-servers 91.103.204.230, 91.103.207.230; #транслируемые DNS

ddns-update-style none;

ddns-updates off;

# option domain-name «mydomain.org»; # типа имя домена

subnet 192.168.20.0 netmask 255.255.255.0 {range 192.168.20.50 192.168.20.250; interface eth1;} # описание диапазона раздачи адресов и интерфейса на котором раздавать

#Далее можем намертво вписать статические адреса клиентам сети:

host petya {
hardware ethernet 00:50:bf:45:33:78;
fixed-address 192.168.22.3;
}
host vasya {
hardware ethernet 00:04:61:9f:25:25;
fixed-address 192.168.22.2;
}

NETWORK

/etc/network/interfaces:

auto lo
iface lo inet loopback

# интерфейс смотрит в инет адрес у провайдера получает динамически по MAC
auto eth0
iface eth0 inet dhcp

# интерфйс смотрит в локалку все прописываем статически
auto eth1
iface eth1 inet static
address 192.168.20.1
netmask 255.255.255.0
network 192.168.20.0
broadcast 192.168.20.255

#В случае если необходимо и внешний сделать статическим пригодиться параметр gateway xxx.xxx.xxx.xxx

#И маршрутизация если надо

#up route add —net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2
#up route add default gw 192.168.1.200
#down route del default gw 192.168.1.200
#down route del —net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2
 

TRAFFPRO

/etc/ traffpro/traffpro.cfg:

to_install_dir="/opt/traffpro»

daemon=true

db_url=localhost

db_usr=root

db_passwd=

db_name=office

time_in=10

time_out=180

control_eth_addr=false

net_number=0

ports_detail=true

ss_enabled=false

eth_out=eth0

url_detail=true

out_ip=192.168.0.24

listen_addr=127.0.0.1

listen_port=9999

ip_queue_maxlen=2048

squid_connect=false

timer=false

/etc/ traffpro/traffpro_rule.cfg:

# В этот файл добавляются цепочки iptables которые должны срабатывать перед тем как система linbilling включит свои правила

# Например:

iptables —A INPUT —m tcp —p tcp —dport 22 —j ACCEPT

iptables —A OUTPUT —m tcp —p tcp —sport 22 —j ACCEPT

# Эти цепочки позволят не потерять контроль над сервером в случае остановки linbilling

Пример:

#Модули iptables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#При
выклюсеном selinux будет ругаться.
#iptables —F RH-Firewall-1-INPUT
iptables —t nat —F
iptables —t mangle —F
#
#Политики
по умолчанию
#iptables —P INPUT DROP
#iptables —P OUTPUT DROP
#Установка
маршрутов по умолчанию, основной провайдер eth0, вспомагательный
#провайдер
eth2.
#Для ручного переключения ручного.
#Установка основного маршрута на Истра-Нэт.
#route del default
#route add default gw ваш_шлюз_первого прова dev eth0
#
#Установка основного маршрута на Телеком-Нэт
#
#route del default
#route add default gw ваш_шлюз_второго прова dev eth2
#
#Настройка NAT для выхода клиентов в инернет.
#Отправка всех клиентов под сети 192.168.1.0/24 в интеренет.
iptables —t nat —A POSTROUTING —s 192.168.1.0/24 —o eth0 —j SNAT —to-source ваш_ip_карты
#iptables —t nat —A POSTROUTING —s 192.168.1.0/24 —o eth2 —j SNAT —to-source ваш_ip_карты2
#
#Для совместного использования со сквидом.
iptables —t mangle —A PREROUTING —i eth1 —p tcp —m tcp —dport 80 —d ! 192.168.1.200 —j QUEUE
iptables —I OUTPUT 1 —p tcp —m tcp —s 192.168.1.200 —sport 3128 —d 192.168.1.0/24 —j QUEUE
iptables —t nat —A PREROUTING —i eth1 —p tcp —s 192.168.1.0/24 —d 192.168.1.200 —dport 80 —j ACCEPT
iptables —t nat —A PREROUTING —i eth1 —p tcp —s 192.168.1.0/24 —dport 80 —j REDIRECT —to-ports 3128
#
#Настройка NAT во внутрь сети.
#Настройка портов во внутрь сети.
iptables —t nat —A PREROUTING —p tcp —s any/0 —d ваш_ip_карты —dport 15081 —j DNAT —to-destination 192.168.1.110:15081
iptables —A FORWARD —i eth1 —d 192.168.1.110 —p tcp —dport 15081 —j QUEUE
#
#Блокировка неверных пакетов.
iptables —A INPUT —m state —state INVALID —j DROP
#
#Open connect to server, from global network.
#Открываю себе доступ к консоли. Этот трафик не считаю.
#Ограничения на подключение к ssh.
iptables —A INPUT —i eth3 —p tcp —dport 1981 —m state —state NEW —m recent —name SSH —set
iptables —A INPUT —i eth3 —p tcp —dport 1981 —m state —state NEW —m recent —name SSH —update —seconds 60 —hitcount 2 —j DROP
iptables —A INPUT —i eth3 —p tcp —dport 1981 —m state —state NEW —j ACCEPT
#
#Открываю доступ к ssh из дома.
iptables —A INPUT —p tcp —i eth3 —s any/0 —d ваш_ip_карты —dport 22 —j ACCEPT
iptables —A OUTPUT —p tcp —o eth3 —s ваш_ip_карты —sport 22 —d any/0 —j ACCEPT
#
#Открываю доступ к серверу www.
#Allowing Remote Access to a Local Web Server
iptables —A INPUT —i eth3 —p tcp —s any/0 —sport 1024:65535 —d ваш
_ip_карты -dport 80 —j QUEUE
iptables —A OUTPUT —o eth3 —p tcp ! -syn —s ваш
_ip_карты -sport 80 —d any/0 —dport 1024:65535 —j QUEUE
#Открываю
доступ к серверу www.
#По
порту 443.
iptables —A INPUT —i eth3 —p tcp —s any/0 —sport 1024:65535 —d ваш
_ip_карты -dport 443 —j QUEUE
iptables —A OUTPUT —o eth3 —p tcp ! -syn —s ваш
_ip_карты -sport 443 —d any/0 —dport 1024:65535 —j QUEUE
#
#Настройка
ФТП доступа.
#Open connect to FTP, from network.
iptables —A INPUT —p tcp —i eth1 —s 192.168.1.0/24 —sport 40000:65535 —d 192.168.1.200 —dport 21 —m state —state NEW,ESTABLISHED —j ACCEPT
iptables —A OUTPUT —p tcp —o eth1 —s 192.168.1.200 —sport 21 —d 192.168.1.0/24 —dport 40000:65535 —m state —state ESTABLISHED —j ACCEPT
iptables —A INPUT —p tcp —i eth1 —s 192.168.1.0/24 —sport 1024:65535 —d 192.168.1.200 —dport 40000:65535 —m state —state ESTABLISHED,RELATED —j ACCEPT
iptables —A OUTPUT —p tcp —o eth1 —s 192.168.1.200 —sport 40000:65535 —d 192.168.1.0/24 —dport 40000:65535 —m state —state ESTABLISHED —j ACCEPT
iptables —A OUTPUT —p tcp —o eth1 —s 192.168.1.200 —sport 20 —d 192.168.1.0/24 —dport 40000:65535 —m state —state ESTABLISHED,RELATED —j ACCEPT
iptables —A INPUT —p tcp —i eth1 —s 192.168.1.0/24 —sport 40000:65535 —d 192.168.1.200 —dport 20 —m state —state ESTABLISHED —j ACCEPT
#
# DNS client modes (53)
iptables —A OUTPUT —o eth0 —p udp —s ваш
_ip_карты -sport 40000:65535 —d 217.150.34.129 —dport 53 —j QUEUE
iptables —A INPUT —i eth0 —p udp —s 217.150.34.129 —sport 53 —d ваш
_ip_карты -dport 40000:65535 —j QUEUE
iptables —A OUTPUT —o eth0 —p udp —s ваш
_ip_карты -sport 40000:65535 —d 217.150.35.129 —dport 53 —j QUEUE
iptables —A INPUT —i eth0 —p udp —s 217.150.35.129 —sport 53 —d ваш
_ip_карты -dport 40000:65535 —j QUEUE
# TCP client to server requests are allowed by the protocol
# if UDP requests fail. This is rarely seen. Usually, clients
# use TCP as a secondary nameserver for zone transfers from
# their primary nameservers, and as hackers.
iptables —A OUTPUT —o eth0 —p tcp —s ваш
_ip_карты -sport 40000:65535 —d 217.150.34.129 —dport 53 —j QUEUE
iptables —A INPUT —i eth0 —p tcp ! -syn —s 217.150.34.129 —sport 53 —d ваш
_ip_карты -dport 40000:65535 —j QUEUE
iptables —A OUTPUT —o eth0 —p tcp —s ваш
_ip_карты -sport 40000:65535 —d 217.150.35.129 —dport 53 —j QUEUE
iptables —A INPUT —i eth0 —p tcp ! -syn —s 217.150.35.129 —sport 53 —d ваш
_ip_карты -dport 40000:65535 —j QUEUE
# server to server query or response
# Caching only name server uses UDP, not TCP
iptables —A OUTPUT —o eth0 —p udp —s ваш
_ip_карты -sport 53 —d 217.150.34.129 —dport 53 —j QUEUE
iptables —A INPUT —i eth0 —p udp —s 217.150.34.129 —sport 53 —d ваш
_ip_карты -dport 53 —j QUEUE
iptables —A OUTPUT —o eth0 —p udp —s ваш
_ip_карты -sport 53 —d 217.150.35.129 —dport 53 —j QUEUE
iptables —A INPUT —i eth0 —p udp —s 217.150.35.129 —sport 53 —d ваш
_ip_карты -dport 53 —j QUEUE
#
#Ограничения
на forward
#Блокировка
неверных пакетов.
iptables —A FORWARD —m state —state INVALID —j DROP
# защита
от скрытого сканирования портов
iptables —A FORWARD —p tcp —tcp-flags SYN,ACK,FIN,RST RST —m limit —limit 15/minute —s 192.168.1.0/24 —d any/0 —j QUEUE
#
#Блокируем
черезмерно большое кол-во icmp запрсов.
iptables —A FORWARD —p icmp —m limit —limit 250/sec —limit-burst 500 —j QUEUE
iptables —A FORWARD —p icmp —j DROP
#
#Блокировка
icq доступа для всех.
iptables —A FORWARD —p tcp —s 192.168.1.0/24 —d 205.188.0.0/16 —dport ! 5190 —j DROP
iptables —A FORWARD —p tcp —s 192.168.1.0/24 —d 64.12.0.0/16 —dport ! 5190 —j DROP

Этот пример, показывает для чего можно использовать traffpro_rule.cfg

Третий конфиг файл /etc/traffpro/addr_port_forward.cfg (может отсутствовать, решается просто создание такого файла)
Конфиг для проброса портов во внутреннюю сеть
Формат:
Каждая строчка должна обязательно содержать
IP_SRC PORT_DEST IP_DEST:PORT_DEST

IP_SRC — ip адрес с которого можно подключиться (для всех 0.0.0.0)
PORT_DEST — порт на внешнем интерфейсе сервера к которому подключаются
IP_DEST — ip во внутренней сети на который перенаправляются подключения
PORT_DEST — Порт на конечном компьютере во внутренней сети на который перенаправляются подключения
В файле не должно быть пустых СТРОК!!!!!!!!!!!
0.0.0.0   80    192.168.0.111:80

/etc/ init.d/traffpro:

Ищем строку:

ps ax | grep billing | grep —v grep | cut –f1 -d ' ' > /var/run/traffpro.pid

Исправляем ее таким образом:

ps ax | grep billing | grep —v grep | cut —f2 -d ' ' > /var/run/traffpro.pid

либо таким

ps ax | grep billing | grep —v grep | awk ‘{print ($1)}’ > /var/run/traffpro.pid

if [ ! -e /var/lock/subsys ];

then

mkdir —p /var/lock/subsys

fi

echo > /var/lock/subsys/TraffPro

MYSQL:

GRANT ALL PRIVILEGES ON office.* TO ‘traffprouser’@’%’ WITH GRANT OPTION;

SET PASSWORD FOR ‘traffprouser’@’%’ = old_password(‘mypass’);FLUSH PRIVILEGES;

DELETE FROM mysql.user WHERE Password=’’;

DROP DATABASE `name_base`;

#!/bin/bash

 

#Конфиг с настройками Traffpro,

#отсюда берутся имя пользователя, пароль, имя базы.

. /etc/traffpro/traffpro.cfg

 

echo "Введите путь сохрания дампа базы Traffpro

read WAY

 

mysqldump —B $db_name —user=$db_usr —password=$db_passwd —e > $WAY/office.sql

 

echo "Создать архив дампа базы Traffpro? y/n»

read CHECK

 

if [ "$CHECK» == «y» ]; then

tar —czf $WAY/office.tar.gz $WAY/office.sql

echo «Удаляется дамп базы Traffpro, оставляем только архив.»

rm —f $WAY/office.sql

echo "Размер файла»

du —h $WAY/office.tar.gz

echo "Готово!»

fi

insert into user values ('%','root2',old_password('admin'),'y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');

CRON

------------------------
минута час день_месяца месяц день_недели команда
------------------------
Допустимые значения:
минута        от 0 до 59
час           от 0 до 23
день_месяца   от 1 до 31
месяц         от 1 до 12 (можно три буквы из названия месяца,
                          регистр не имеет значения от jan до dec)
день_недели   от 0 до 6  (0 это воскресенье, 
                          можно писать от sun до sat)

Каждое из полей даты и времени может быть обозначено символом * ,будет соответствовать любому возможному значению. Для этих полей можно указывать диапазоны значений, разделенных дефисом, например:

* 5 4—10 0—3 * echo «HELLO»    -печать HELLO в 5:00 на 4,5,6,7,8,9,10
                                дни января, февраля, марта и апреля

пошаговая запись

* */2 * * sat echo «HELLO»     -печать HELLO каждый четный час,
                                каждую субботу

равнозначная предыдущему примеру запись (списком)

* 0,2,4,6,8,10,12,14,16,18,20,22 * * sat echo «HELLO»  
                               -печать HELLO каждый четный
                                час, каждую субботу

то же самое с указанием диапазона

* 0—23/2 * * sat echo «HELLO»  -печать HELLO каждый четный
                                час, каждую субботу
 
59 23 31 dec * echo «Happy new year» -без комментариев :),
                                      поздравит с новым годом

Для отладки задания cron, можно перенаправить результат в файл

Пример:

0—59 * * * * /home/user/mail 2 >/tmp/tmp.cron

Настройка Apache2 + SSL + PHP5 + MySQL5 в Ubuntu


Установка всего необходимого для LAMP сервера:

sudo apt-get update
sudo apt-get install apache2 php5 php5-mysql mysql-server-5,0
 

По необходимости доставляются другие php модули типа php5-gd, php5-imagick, php5-curl и другие.

Конфиг apache2 в убунту организован интересным образом. Вот листинг /etc/apache2/ :

apache2.conf
conf.d/
envvars
httpd.conf
mods-available/
mods-enabled/
ports.conf
sites-available/
sites-enabled/
 

В apache2.conf — основная конфигурация веб сервера.
httpd.conf — пустой, оставлен для совместимости.
mods-available/ - каталог содержащий подключаемые конфигурационные файлы апача, которые активируют тот или иной его модуль.
sites-available/ - каталог содержащий подключаемые конфигурационные файлы апача, которые активируют тот или иной виртуал хост.
Чтобы активировать модуль или виртуал хост созданы утилиты a2enmod и a2ensite.
Пример использования:

ulmen@chtulhu:~$ sudo a2enmod php5
Module php5 installed; run /etc/init.d/apache2 force-reload to enable.
 

По сути a2enmod, a2ensite, a2dismod и a2dissite создают или удаляют символический линк конфига из sites-available/ в sites-enabled/ (mods- в случае с модулями).

Добавление виртула хоста:
1. Скопировать /etc/apache2/sites-available/default в /etc/apache2/sites-available/example.com

ulmen@chtulhu:~$ cd /etc/apache2/sites-available
ulmen@chtulhu:~$ sudo cp ./default ./example.com
 

2. Отредактировать example.com
< VirtualHost *:80 >
 ServerName www.example.com
 ServerAlias example.com
 ServerAdmin Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.

 DocumentRoot /var/httpdocs/example.com
 < Directory /var/httpdocs/example.com >
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 < /Directory

 ErrorLog /var/log/apache2/error.log

 LogLevel warn

 ServerSignature On

< /VirtualHost >


3. Создаем каталог для Document Root:
ulmen@chtulhu:~$ mkdir —p /var/httpdocs/example.com

 

Настройка SSL:

1. Создание сертификата:

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

(актуально для Feisty, в более старых релизах нужно выполнить apache2-ssl-certificate)

2. Добавить порт 443 в /etc/apache2/ports.conf

Listen 80
Listen 443

3. Скопировать /etc/apache2/sites-available/default в /etc/apache2/sites-available/ssl,
отредактировать default таким образом:
NameVirtualHost *:80
< VirtualHost *:80 >

< /VirtualHost >

также отредактировать /etc/apache2/sites-avaible/ssl:
NameVirtualHost *:443
< VirtualHost *:443 >

 SSLEngine on
 SSLCertificateFile /etc/apache2/ssl/apache.pem

< /VirtualHost >

4. Добавить ssl в examle.com таким же образом как и в файле ssl, пример:
< VirtualHost *:443 >
 ServerName www.example.com
 ServerAlias example.com
 ServerAdmin webmaster@localhost

 DocumentRoot /var/httpdocs/example.com
 SSLEngine on
 SSLCertificateFile /etc/apache2/ssl/apache.pem
 < Directory /var/httpdocs/example.com >
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 < /Directory >

 ErrorLog /var/log/apache2/error.log

 
 LogLevel warn

 ServerSignature On

< /VirtualHost >

5. Активация модуля и сайта:
ulmen@chtulhu:~$ a2enmod ssl
ulmen@chtulhu:~$ a2ensite ssl

6. Рестарт веб сервера:
ulmen@chtulhu:~$ sudo /etc/init.d/apache2 restart
* Forcing reload of web server (apache2)… [ OK ]

 

Настройка mysql:

Mysql после установки работоспособна без дополнительных настроек. Так как пользователь базы root без пароля, нужно задать для него пароль:

ulmen@chtulhu:~$ mysqladmin —u root password myPassword

Проверка базы:
ulmen@chtulhu:~$ mysql —u root —p

Настройка PHP: /etc/php5/apache2/php.ini, после смены настроек нужно перегрузить апач.

Немного об Apache2 + SSL под Debian/Ubuntu ,безопасность.


Далее нам нужно создать.htaccess в /var/www со следующим текстом (данная операция не позволит просмотреть каталог с php файлами если отсутствует index.* файл):

#echo «Options —Indexes» > /var/www/.htaccess

Далее создаем ключ:

#openssl genrsa —des3 —out name.key 1024

genrsa - указывает для библиотеки OpenSSL, что мы хотим сгенерировать пару ключей.
des3 - указывает, что секретный ключ должен быть зашифрован и защищен ключевой фразой (pass phrase).
Опция out указывает, где следует сохранить результаты.
Число 1024 указывает длину генерируемых ключей в битах.

Создаём сертификат

#openssl req —new —key name.key —out name.csr

Вас попросят ввести пароль, который потом будет нужен в дальнейшем при подписи создаваемого сертификата и при запуске apacha2.

На запрос: Country Name (2 letter code) [AU]:
(Выбираем RU)
На запрос: State or Province Name (full name) [Some-State]: (Вводим край или область или… где находимся)
На запрос: Locality Name (eg, city) []: (Вводим наименование города)
На запрос: Organization Name (eg, company) [Internet Widgits Pty Ltd]: (Вводим наименование организации)
На запрос: Organizational Unit Name (eg, section) []: (Вводим наименование вашего подразделения)
На запрос: Common Name (eg, YOUR name) []: (Вводим ваше имя)
На запрос: Email Address []: (вводим ваш электронный адрес)

Далее идут расширенные опции:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:


На них можно просто нажать Enter пока программа не создаст name.csr

Сформированный файл запроса подписи сертификата сохранится файле name.csr. Узнать о содержании сертификата можно узнать так — openssl req —noout —text —in name.csr. В идеале, файл запроса подписи сертификата нужно отослать в сертификационную службу для обработки. Verisign и Thawte — две наиболее известные сертификационные службы. Но можно создать само-подписанный сертификат.

Создаем сертификат с личной подписью

#openssl x509 —req —days 700 —in name.csr —signkey name.key —out name.cert

Следует скопировать файл сертификата name.cert (или тот, что возвращен вам сертификационной службой) и файл с ключами secure.home.net.key в пути SSLCertificateFile и SSLCertificateKeyFile соответственно.

Далее создаем директорию где будут храниться наши ключи и сертификаты:

#mkdir /etc/apache2/keys

Далее перемещаем в /etc/apache2/keys наши name.key, name.csr и name.cert:

#mv name.key /etc/apache2/keys && mv name.csr /etc/apache2/keys && mv name.cert /etc/apache2/keys

Далее правим файл в /etc/apache2/sites-available/default-ssl:

#nano default-ssl



Ищем и правим следующее:


&lt; Directory / > … AllowOverride All &lt; /Directory > &lt; Directory /var/www > … AllowOverride All … &lt; /Directory >



Еще ищем следующие строки и редактируем их:

SSLCertificateFile /etcl/apache2/keys/name.cert
SSLCertificateKeyFile /etc/apache2/keys/name.key


После того, как отредактировали этот файл, нам нужно будет включить наш сайт:

#a2ensite default-ssl

Выключить стандартный http:

#a2dissite default

Затем включаем модуль SSL:

#a2enmod ssl

И после всего это нам осталось перезапустить наш Apache2:

#/etc/init.d/apache restart




оригинал: http://aspr.blog.ru/48058723.html
Последнее обновление 27.05.10 10:58