Обновляемся:
apt-get updateПараметры сетевых соединений:
apt-get upgrade
reboot
WAN port - eth0 (212.212.212.212, mask: 255.255.255.252, gw: 212.212.212.211)Устанавливаем dhcp3-server:
LAN port - eth1 (10.1.1.1, mask: 255.255.255.0, gw: 0.0.0.0)
sudo apt-get install dhcp3-serverЕсли не стартует, то создаем недостающую папку:
sudo mkdir /etc/ltspМеняем настройки сервера на необходимые:
sudo gedit /etc/dhcp3/dhcpd.confУдаляем всё и вставляем:
subnet 10.1.1.0 netmask 255.255.255.0Правим файл /etc/default/dhcp3-server вписывая в него строку:
{
option routers 10.1.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 195.54.2.1;
option domain-name-servers 195.54.3.2;
range 10.1.1.10 10.1.1.254;
default-lease-time 21600;
max-lease-time 28800;
}
INTERFACES=”eth1”После чего можем запустить сервер
sudo /etc/init.d/dhcp3-server startУстанавливаем LAMP-server
sudo tasksel install lamp-serverВ конец файла /etc/apache2/apache2.conf следующую строку:
sudo apt-get install phpmyadmin
Include /etc/phpmyadmin/apache.confСоздаем скрипт раздачи инета:
#!/bin/shСохраняем его в файл /etc/profile.d и назовем его, к примеру masq.sh
# полная версия находится здесь: lafox.net/docs/masq/
IPTABLES=/sbin/iptables
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe
EXTIF="eth0"
INTIF="eth1"
$DEPMOD -a
$MODPROBE ip_tables
$MODPROBE ip_conntrack
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_conntrack_irc
$MODPROBE iptable_nat
$MODPROBE ip_nat_ftp
$MODPROBE ip_nat_irc
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
$IPTABLES -P INPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
echo -e "done.\n"
Назначаем права и исполняем:
sudo chmod +x /etc/profile.d/masq.shЗаписываем файл в автозагрузку:
sudo sh /etc/profile.d/masq.sh
sudo gedit /etc/rc.localдописываем перед exit строку
/etc/profile.d/masq.shКачаем шейпер sourceforge.net/projects/htbinit/
sudo cp htb.init /etc/init.d/htbВ настройках шейпера указываем HTB_PATH на etc/htb
sudo chmod +x /etc/init.d/htb
sudo update-rc.d htb defaults
В папке etc/htb создаем правила для раздачи интернета:
Eth0Замечания:
Eth0-2.full10mbit
Eth1
Eth1-2.full100mbit
Eth1-2:20.inet
Eth1-2:20:30.people
Eth1-2:20:30:31.первый клиент
Eth1-2:20:30:32.второй клиент
R2Q — коэффициент, определяющий соотношение точности/скорости работы шейпера
DEFAULT — идентификатор класса, в который попадают пакеты, если они не попадают под другие правила. Класс с идентификатором 0 существует всегда и пропускает пакеты без всякого шейпинга, то есть на полной скорости.
RATE — гарантируемая скорость для клиента.
CEIL — максимальная скорость для клиента при свободном канале.
LEAF — указывает, что класс является одним из листов дерева, то есть в него попадает трафик, удовлетворяющий определенному правилу (RULE). Параметр sfq означает, что мы хотим, чтобы внутри этого класса скорость распределялась равномерно между сессиями.
RULE — правило, задающее, какой трафик будет попадать в этот класс. RULE=10.1.1.10/24 В данном случае в класс попадает весь трафик, имеющий IP назначения от 10.1.1.10 до 10.1.1.255.
Проверить работу скрипта htb.init, кроме спидтестов, можно просмотром конфигурации командами:
tc class show dev eth1После правки конфигурации перезапускаем htb.init:
tc qdisc show dev eth1
/etc/init.d/htb restartУстанавливаем систему мониторинга
sudo apt-get install munin munin-nodeПосмотрим какие плагины доступны и что может подсказать конфигуратор:
sudo munin-node-configureУстановим плагин мониторинга трафика:
sudo munin-node-configure --suggest
Скачать плагин вы можете из официального репозитория плагинов munin, называется он qos_, просто скопируйте его в папку плагинов munin /usr/share/munin/plugins/ и в папке используемых плагинов /etc/munin/plugins сделайте на него символическую ссылку вида qos_eth1, где eth1 — имя интерфейса, на котором нужно мониторить загрузку.
sudo ln -s /usr/share/munin/plugins/qos_ /etc/munin/plugins/qos_eth1Подключать плагину по алфавиту в файле /etc/munin/plugin-conf.d
[qos_eth1]После настроек презагружаем
env.ignore_queue1_10 yes
env.label_name1_31 клиент1
env.label_name1_32 клиент2
sudo /etc/init.d/munin-node restartОграничим доступ к munin из веба:
/usr/share/munin/munin-update --force-root
/usr/share/munin/munin-html --force-root
/usr/share/munin/munin-graph --force-root
sudo htpasswd -c /etc/munin/.passwd пользовательвконце перед </VirtualHost>:
sudo gedit /etc/apache2/sites-enabled/000-default
<Location /munin>
AuthType Basic
AuthName "Munin"
AuthUserFile /etc/munin/.passwd
Require valid-user
</Location>
<Location /munin>
AuthType Basic
AuthName "Munin"
AuthUserFile /etc/munin/.passwd
Require valid-user
</Location>
Комментариев нет:
Отправить комментарий