Показаны сообщения с ярлыком ubuntu. Показать все сообщения
Показаны сообщения с ярлыком ubuntu. Показать все сообщения

вторник, 5 июня 2018 г.

Настройка сети в Ubuntu-server 18.04

Вместо привычного /etc/network/interfaces, в Ubuntu 18.04 сеть
настраивается в файлах в каталоге /etc/netplan/. Вот так, например,
выглядит настройка статического адреса для интерфейса enp0s3.

cd /etc/netplan/
cat 01-netcfg.yaml

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
     dhcp4: no
     addresses: [192.168.1.222/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]


Так настраивается динамика:

cat 01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: yes


Важно соблюдение отступов!


После настройки сделать:


sudo netplan apply

суббота, 17 марта 2018 г.

Asterisk подключение к СУБД используя ODBC.

Тут речь о дебианоподобных.
Сначала надо установить сам ODBC:

apt-get install unixodbc unixodbc-dev libmyodbc

Затем отредактировать файл (он есть в системе, но пуст):
nano /etc/odbcinst.ini
следующим образом:
[MySQL]
Description     = ODBC for MySQL
Driver          = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup           = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage       = 1


пятница, 24 июля 2015 г.

Разное для Asterisk


Убить зависший peer


Сначала выведем информацию о текущих звонках

core show channels 

Убьем зависший peer --

CLI> channel request hangup SIP/xxx-xxxxxxxxxxx



Вывести версии моделей аппаратов, и номера пиров (с пробелами и переносом строк):
 for a in `asterisk -rx "sip show peers"|cut -f1 -d/` ;do asterisk -rx "sip show peer $a";done | awk '/Useragent/ {print $3"  "} /name/ {print $3,$4"  "}'  | sed ':a; /$/N; s/\n//;'



Вывести имена пользователей и их номера (с пробелами и переносом строк) :
cat /etc/asterisk/users.conf | awk '/^label/ {print $3"  "} /^fullname/ {print $3,$4"  "}'| sed ':a; /$/N; s/\n//;'

Нужно понимать, что значения print в вашем случае могут отличаться.

воскресенье, 15 февраля 2015 г.

OpenVPN - объединение Центрального офиса с подразделением (сервер-клиент). Ubuntu 14.04

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




0. Что имеем:
a. Interfaces на сервере
auto lo
iface lo inet loopback

# The primary network interface
auto eth1
iface eth1 inet static
        address 1.2.3.174
        netmask 255.255.255.0
        network 1.2.3.0
        broadcast 1.2.3.255
        gateway 1.2.3.1
        dns-nameservers 8.8.8.8

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        bridge_ports eth0
        bridge_fd 0


b. Interfaces на клиенте

# The loopback network interface
auto lo
iface lo inet loopback

auto em0
iface em0 inet static
address 1.2.33.123
network 1.2.33.0
gateway 1.2.33.1
netmask 255.255.255.0
broadcast 1.2.33.255
dns-nameservers 8.8.8.8

auto eth0
iface eth0 inet manual

auto wlan0
iface wlan0 inet manual

auto br0
iface br0 inet static
address 192.168.11.1
network 192.168.11.0
netmask 255.255.255.192
broadcast 192.168.11.63
bridge-ports eth0 wlan0
bridge_fd 0

1. На сервере ставим:
apt-get install openvpn easy-rsa libssl-dev openssl

и на клиенте:
apt-get install openvpn

2. Переходим на сервер, и копируем:
cp -Rp /usr/share/easy-rsa/ /etc/openvpn/vpn-tun/

3. Подправим основные параметры в файле vars, чтобы значения в дальнейшем подставлялись сами:
nano /etc/openvpn/vpn-tun/vars

export KEY_COUNTRY="RU"
export KEY_PROVINCE="SZFO"
export KEY_CITY="SPb"
export KEY_ORG="Firma"
export KEY_EMAIL="it@firma.com"
export KEY_OU="FirmaHead"

4. Перейдем в папку:

cd /etc/openvpn/vpn-tun/

Инициализируем PKI:

. ./vars
 и 
./clean-all

5. Генерируем сертификат авторизации (СА) и ключ, для этого выполняем команду:

./build-ca

Большинство параметров должно подхватиться из файла vars, если что-то не так - указываем явно.

6. Генерируем секретный ключ Диффи-Хелмана (займет продолжительное время):

./build-dh

7. Генерируем сертификат, и секретный ключ сервера:

./build-key-server servername

Вместо servername укажите например hostname сервера, это избавит от возможной путаницы в дальнейшем. Параметры подхватятся из vars, однако параметр Name укажите явно - ваш servername. Какой указали при запуске этого скрипта.

8.Также сгенерим ключ для TLS шифрования:
openvpn --genkey --secret keys/ta.key

9. Сгенерируем ключи для клиента:

./build-key clientname

Вместо "clientname" придумайте свое имя, и укажите его в параметре Name при генерации ключа.

Если через некоторое время Вам понадобится включить еще один офис в Вашу сеть надо будет запустить команду:

. ./vars

После чего сгенерируйте ключи для клиента:

./build-key clientname

Не забудьте только создать ccd файл для нового клиента. Об ccd ниже.

10. Создаем папку для ccd файлов:

mkdir /etc/openvpn/vpn-tun/ccd/

затем:

nano /etc/openvpn/vpn-tun/ccd/clientname
(имя файла должно совпадать с названием ключа для клиента см. п.8)
внесем след. параметры:

#disable
ifconfig-push 192.168.255.5 192.168.255.6
iroute 192.168.11.0 255.255.255.192
push "route 192.168.1.0 255.255.255.0"

Если в дальнейшем какой-либо клиент придется отключить, просто раскомментируйте #disable.

11. Теперь создадим conf-файл OpenVpn-сервера:

nano /etc/openvpn/server-tun.conf

dev tun
port 1194
proto udp

tls-server
tls-server
tls-auth /etc/openvpn/vpn-tun/keys/ta.key 0
tls-timeout 120
auth SHA1

cipher BF-CBC



server 192.168.255.0 255.255.255.0
ifconfig 192.168.255.1 192.168.255.2

push "route 192.168.1.0 255.255.255.0"

route 192.168.11.0 255.255.255.192 # подсеть clientname (см. п.8)

#если будут другие клиенты пишем здесь же роуты:
#route 192.168.2.0 255.255.255.0 #например

ca /etc/openvpn/vpn-tun/keys/ca.crt
cert /etc/openvpn/vpn-tun/keys/server.crt
key /etc/openvpn/vpn-tun/keys/server.key
dh /etc/openvpn/vpn-tun/keys/dh2048.pem

client-to-client
client-config-dir /etc/openvpn/vpn-tun/ccd
comp-lzo
persist-tun
persist-key
verb 3
keepalive 10 60
ifconfig-pool-persist ipp.txt # Тут будут храниться ip адреса клиентов

log-append /var/log/openvpn_tun.log
status /var/log/openvpn_status_tun.log

12. Теперь настроим iptables на сервере, добавим правила:

-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A FORWARD -i br0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o br0 -j ACCEPT

Если на самом сервере кроме OpenVpn находятся другие сервисы, к которым необходимо дать доступ во внутренней сети добавим правило:
-A INPUT -i tun0 -j ACCEPT
Если мучает паранойя уточним условия:
-A INPUT -i tun0 -p tcp -m multiport --dports ХХ,ХХХХ -j ACCEPT
если нужен UDP:
-A INPUT -i tun0 -p udp -m multiport --dports ХХ,ХХХХ -j ACCEPT
где XXX нужные порты.

13. Переходим клиент, создадим conf файл клиента :

nano /etc/openvpn/clientname_to_server.conf

remote ip_servera 1194
client
verb 5
dev tun0
proto udp
resolv-retry infinite
nobind

tls-client
tls-auth /etc/openvpn/ta.key 1
auth SHA1
cipher BF-CBC

remote-cert-tls server


persist-key
persist-tun
ca "/etc/openvpn/ca.crt"
cert "/etc/openvpn/clientname.crt"#см.п.8
key "/etc/openvpn/clientname.key"#см.п.8
comp-lzo
verb 4
mute 20
verb 3
#redirect-gateway
log-append /var/log/clientname_to_server.log#см.п.8


13. Любым удобным для Вас способом перемещаем сертификаты и ключ (ca.crt, clientname.crt, clientname.key, ta.key) с сервера на клиент, и помещаем их в /etc/openvpn. 

14. Настроим iptables на клиенте, добавим правила:

-A FORWARD -i br0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o br0 -j ACCEPT

Если нужен доступ к локальным ресурсам, расположенным на клиенте см.п. 11.


15. Рестартуем OpenVpn:
/etc/init.d/openvpn restart
и на клиенте и на сервере, и пробуем начинать пинговать хосты в подсетях. Если что-то не так - смотрим логи. Удачи.



вторник, 3 февраля 2015 г.

Collectd+Collectd Graph Panel+Lighttpd

До недавнего времени для мониторинга системы пользовался графиками MRTG, но установив Сollectd с Collectd Graph Panel-ю понял насколько последний инструмент гибче, удобнее и красивее.

1. Готовим почву - cтавим lighttpd и необходимые пакеты:
apt-get install lighttpd php5-cgi php5
2. Включаем поддержку выполнения cgi скриптов:
lighty-enable-mod fastcgi fastcgi-php
3.Рестарт lighttpd:
service lighttpd restart
4. Ставим collectd:
apt-get install collectd
5. Добавим поддержку git:
apt-get install git
6. Создаем копию git репозитория для установки Collectd Graph Panel:
cd /var/www/
git clone https://github.com/pommi/CGP.git
Теперь по адресу
http://192.168.Х.Х/CGP
должна появиться web-панель с графиками.
Графики можно маштабировать с помощью мыши.
7. Для уменьшения нагрузки на процессор включим рендеринг на стороне клиента:
nano /var/www/CGP/conf/config.php
Найдем строку
$CONFIG['graph_type'] = 'png';
и зменим ее на:
$CONFIG['graph_type'] = 'canvas';
8.Включим кэширование в плагине RDD-tools:
nano /etc/collectd/collectd.conf
и там расскомментируем и изменим строки:

DataDir "/var/lib/collectd/rrd"
CacheTimeout 300
CacheFlush 900


9. Все, можно перегрузить collectd:
service collectd restart
10.Включать и отключать, а также настраивать плагины можно в файле collectd.conf. Результат:

четверг, 18 декабря 2014 г.

конфиги asterisk


В LXC контейнере Ubuntu 14.04.01
ставил из исходников последнюю версию 1.8
см. тут: http://downloads.asterisk.org/pub/telephony/asterisk/releases/


westcall-reg и  sipnet - транки.
87 - номер для голосовой почты.
Также установил кодек 729g.

sip.conf

[general]
context=default
allowguest=no
language=ru
bindaddr=192.168.11.7
localnet=192.168.11.0/26
transport=udp
defaultexpiry=360
register => 7812XXXXXXX$home:password:7812XXXXXXX$home @home.uc.westcall.net:4670/7812XXXXXXX

[westcall-reg]
type=friend
context=incoming
username=7812XXXXXXX$home
fromuser=7812XXXXXXX$home
authname=7812XXXXXXX$home
secret=password
fromdomain=home.uc.westcall.net
host=home.uc.westcall.net
insecure=port,invite
disallow=all
allow=ulaw
qualify=yes

[sipnet]
secret = password
defaultuser = 004XXXXXXX
trunkname = sipnet
host = sipnet.ru
type = peer
context = sipnet
insecure = invite
callbackextension = 1
fromuser = 004XXXXXXX
fromdomain = sipnet.ru
disallow=all
allow=g729
nat = no
dtmfmode = rfc2833

[home](!)
context=home
allowtransfer = yes
;srvlookup=yes
type=friend
host=dynamic
dtmfmode=rfc2833
nat=no
canreinvite=no
disallow=all
allow=g729
allow=ulaw
allow=alaw
call-limit=1
secret=password

[1](home)
username=1
callerid="Black" <1>

[5](home)
username=5
callerid="Redish" <5>

[7](home)
username=7
callerid="3cx" <7>

[81](home)
username=81
callerid="81" <81>

[87](home)
username=87
callerid="87" <87>
mailbox=87@default

extensions.conf

[home] #внутренние звонки (однозначные номера).
exten => _X, 1, Dial(SIP/${EXTEN},30)
exten => _X, n, Playback(vm-nobodyavail)
exten => _X, n, Hangup()

;exten => 81,1,Set(TIME="${STRFTIME(${EPOCH},,%C%y-%m-%d_%H-%M-%S)}") # если задействовать (убрать коммент) можно позвонить, и записать свой голос.
;exten => 81,n,Playback(beep)
;exten => 81,n,Record(/usr/local/share/asterisk/sounds/record%d_${TIME}.wav)
;exten => 81,n,Playback(${RECORDED_FILE})
;exten => 81,n,Hangup()

;exten => 87,1,Dial(SIP/87,20) #голосовая почта
;exten => 87,n,Playback(vm-nobodyavail)
;exten => 87,n,Voicemail(87@default)
;exten => 87,n,Hangup()

;exten => 87,1,Background(/var/lib/asterisk/sounds/voice_menu) # голосовое меню, типа "наберите внутренний номер, или дождитесь ответа секретаря"
;exten => 87,n,Wait(5) # пауза 5 сек. для набора номера
;exten => 87,n,Dial(SIP/7) # если ничего не набрал переводим на 7 (секретарь).
;exten => 87,n,Playback(vm-nobodyavail)
;exten => 87,n,Hangup()

include => sipnet


[sipnet]
exten=> _7XXXXXXXXXX, 1, Set(LIMIT_WARNING_FILE=)# используем лимит
exten=> _7XXXXXXXXXX, n, Dial(SIP/${EXTEN}@sipnet,,L(3540000:50000))# длительности разговора и время предупреждения, что разговор закончится принудительно, в милисекундах
exten=> _7XXXXXXXXXX, n, Playback(vm-nobodyavail)
exten=> _7XXXXXXXXXX, n, Hangup()

include => westcall-reg


[westcall-reg]
exten => _XXXXXXX, 1, Dial(SIP/${EXTEN}@westcall-reg) #питерские 7-знаки
exten => _XXXXXXX, n, Playback(vm-nobodyavail)
exten => _XXXXXXX, n, Hangup()

exten => _0X, 1, Dial(SIP/${EXTEN}@westcall-reg) #пожарные, менты и т.п
exten => _0X, n, Playback(vm-nobodyavail)
exten => _0X, n, Hangup()

exten => _8800XXXXXXX, 1, Dial(SIP/${EXTEN}@westcall-reg) # думаю, что все понятно
exten => _8800XXXXXXX, n, Playback(vm-nobodyavail)
exten => _8800XXXXXXX, n, Hangup()

include => home


[incoming]
;exten => _X., 1, Set(fname=${STRFTIME(${EPOCH},,%d-%m-%C%y_%H-%M-%S)}_${CALLERID(number)}->${EXTEN}) # запись разговора
;exten => _X., n, MixMonitor(/home/ubuntu/aster_rec/incoming/${fname}.gsm) # сведение входящего и исходящего голоса в единый файл
exten => _X., 1, Dial(SIP/1,25)
exten => _X., n, Dial(SIP/5,20)
exten => _X., n, Playback(vm-nobodyavail)
exten => _X., n, Voicemail(87@default)

exten => _X., n, Hangup()


voicemail.conf
#добавляем в секцию default
87 => 777,87,vashemail@gmail.com,,maxmessage=no|vmcontext=no|attach=yes|saycid=no|envelope=no|delete=no

emailsubject=Новое голосовое сообщение ${VM_MSGNUM} в ящике ${VM_MAILBOX}

emailbody=Уважаемый ${VM_NAME}:\n\n\tХотим сообщить, что Вам пришло новое голосовое сообщение длительностью ${VM_DUR} под номером (${VM_MSGNUM})\nв ящик ${VM_MAILBOX} от ${VM_CALLERID}, ${VM_DATE}, когда будет время проверьте его. Спасибо.


charset=UTF-8

воскресенье, 28 сентября 2014 г.

Web-сервер на основе lighttpd с возможностью виртуального хостинга.

0. Все нижеперечисленные манипуляции проводились в LXC контейнере, но полагаю, что это будет справедливо и для физического хоста.
1. apt-get install lighttpd
Сразу проверим работоспособность - наберем ip-адрес сервера, или localhost. Если сервер работает, мы увидим стандартную заглушку.


2. nano /etc/lighttpd/lighttpd.conf
внесем в файл секцию:
$HTTP["host"] == "site.ru" {
server.document-root = "/var/www/site.ru.local"
server.errorlog = "/var/log/lighttpd/site.ru_errors.log"
accesslog.filename = "/var/log/lighttpd/site.ru_access.log"
}
В первой строке указываем домен, во второй путь к директории в которой находятся файлы сайта.
Чтобы писался лог посещений сайта добавим
"mod_accesslog",
в секцию server.modules.

Собственно для того, чтобы хостинг стал виртуальным, необходимо добавить в конфигурацию еще одну, (или несколько) секций. Например:
$HTTP["host"] == "test.ru" {
server.document-root = "/var/www/ test.ru .local"
server.errorlog = "/var/log/lighttpd/ test.ru _errors.log"
accesslog.filename = "/var/log/lighttpd/ test.ru _access.log"
}

3. Перезапускаем сервер:
service lighttpd restart
4. Проверим работоспособность заданого в конфиге.
nano /var/www/site.ru.local/index.html
и вставим следующий код:
<p><b>It Works!</b></p>
При переходе по адресу сайта должна быть видна эта заглушка.

5. Т.к. мы собираемся использовать движки, которые используют PHP и MySQL, установим их.
apt-get install php5-cgi
затем в /etc/php5/cgi/php.ini раскоментируем строку:
cgi.fix_pathinfo = 1
Включим поддержку PHP в lighttpd
lighttpd-enable-mod fastcgi
рестартуем сервер
service lighttpd restart
теперь создадим файл
nano /var/www/site.ru.local/test.php
и добавим в него сл. код:
<?php
phpinfo();
?>
и перейдем по ссылке site.ru/test.php
должна отобразиться информация о PHP.

6. Установим сервер БД и модуль PHP для работы с ним:
apt-get install mysql-server php5-mysql
Т.к. MySQL использует кодировку latin1, а большинство современных движков работают в UTF-8 отредактируем файл /etc/mysql/my.cnf добавив в него следующие строки:
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
collation_server=utf8_unicode_ci
рестартуем MySQL:
service mysql  restart
7. Для упрвления СУБД из web-интерфейса установим пакет phpMyAdmin:
apt-get install phpmyadmin
в процессе установки отметим используемый нами web-server - lighttpd
введя в адресной строке браузера адрес нашего сайта site.ru.local/phpmyadmin
увидим страницу авторизации.

8. На этом все, наш веб-сервер готов к работе, если Вам нужно то Вы можете усовершенствовоть Ваш web-server добавив поддержку FTP, настроить резервное копирование и т.д.

Отдельно хочу отметить, что lighttpd безумно порадовал меня простотой включения рерайтов URL, что так необходимо для поисковой оптимизации сайтов.
Это делается так, блок сайта в /etc/lighttpd/lighttpd.conf приводится к следующему виду

$HTTP["host"] == "site.ru" {
server.document-root = "/var/www/site.ru.local"
server.errorlog = "/var/log/lighttpd/site.ru.local_errors.log"
accesslog.filename = "/var/log/lighttpd/site.ru.local.log"
server.error-handler-404 = "/index.php"

}
в server.modeles добавляем, или раскомментируем строки:
"mod_rewrite",
"mod_accesslog",
затем перезапускаем lighttpd.
файл .htaccess lighttpd не используется.
Все описанное в этом пункте работает с Joomla 1.5.
Знаю, что движок уже старый, но нужно было перенсти сделанный несколько лет назад сайт на домашний хостинг.
9. Итак теперь мы можем установить на наш хостинг CMS Joomla
cd /var/www/site.ru.local
wget http://joomlacode.org/gf/download/frsrelease/19752/1609     63/Joomla_3.3.4-Stable-Full_Package.zip # например эта версия
unzip Joomla_3.3.4-Stable-Full_Package.zip
Перейдя по ссылке http://192.168.7.17/site.ru.local/ мы сможем инсталлировать Joomla

четверг, 30 января 2014 г.

transparent VLAN bridge + squid3 + ipset+динамический шейпер HTB

Собственно схема:


как из нее видно, между одним из портов маршрутизатора и другим портом L3 коммутатора настроен VLAN trunk. В этих условиях мы собираемся использовать прозрачный мост и прозрачный прокси-сервер для управления http-трафиком пользователей. Также связку iptables и ipset для блокировки неугодных хостов и сетей, а также динамический шейпер скорости на основе скрипта htb.init.
Представленная схема была реализована на: 

ubuntu-server 12.04.4 LTS (GNU/Linux 3.8.0-35-generic x86_64)

root@bridge:~# uname -a
Linux bridge 3.8.0-35-generic #50~precise1-Ubuntu SMP Wed Dec 4 17:25:51 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

0. При установке ОС закажем инсталяцию ssh-сервера.

1. Ставим:
apt-get install bridge-utils
apt-get install ebtables
apt-get install  vlan
apt-get install mc

2. Включаем опции ядра для bridge:
echo 1 > /proc/sys/net/bridge/bridge-nf-call-arptables
echo 1 > /proc/sys/net/bridge/bridge-nf-pass-vlan-input-dev
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-filter-vlan-tagged

3. Конфигурируем /etc/network/interfases:

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto eth0.5  
#тэг vlan 5 для интерфейса eth0
iface eth0.5 inet manual
vlan_raw_device eth0

auto eth1.5 #
#тэг vlan 5 для интерфейса eth1 (далее по аналогии)
iface eth1.5 inet manual
vlan_raw_device eth1

auto br0 # собственно мост у нас не один, в каждом vlan свой.
iface br0 inet static # трафик только одного VLAN
address 0.0.0.0 # 
заворачивается на прокси
bridge-ports eth0.5 eth1.5
bridge_stp off

auto eth0.12
iface eth0.12 inet manual
vlan_raw_device eth0

auto eth1.12
iface eth1.12 inet manual
vlan_raw_device eth1

auto br1
iface br1 inet static
address 192.168.1.7 # сервером удобнее всего управлять
netmask 255.255.255.0 #  из клиентской сети (VLAN12).
broadcast 192.168.1.255 #
 сообственно поэтому и назначаем 
gateway 192.168.1.1 # нашему мосту указанную адресацию,

bridge-ports eth0.12 eth1.12 # т.к. она соответствует
dns-nameservers 192.168.1.5 # 
адресации VLAN 12
dns-search domain.local
bridge_stp off


auto eth0.97
iface eth0.97 inet manual
vlan_raw_device eth0

auto eth1.97
iface eth1.97 inet manual
vlan_raw_device eth1

auto br2
iface br2 inet static
address 0.0.0.0
bridge-ports eth0.97 eth1.97
bridge_stp off


вот схема того, что у нас в результате должно получиться:




4. Теперь перезапустим сеть:
/etc/init.d/networking restart
Или весь сервер:
reboot

Поставим мост в разрыв транка.
Должны суметь залогиниться по ssh на адрес моста.

5. Установим squid:
apt-get install squid

6. Приводим /etc/squid3/squid.conf к примерно такому виду:

http_port 3128 transparent

acl LocalNet src 192.168.1.0/24

http_access allow LocalNet
http_access deny all

Командуем:
squid3 -k reconfigure # эта команда говорит сквиду перечитать и применить конфигурацию не перезагружаясь, и соответственно не разрывая текущих сессий.
Также есть такие команды:
service squid3 start
service squid3 stop
В дальнейшем можно настроить прокси по своему вкусу, статей на тему разнообразных настроек Squid достаточно.
Например,  и вот как настроить анализатор логов lightsquid и web-server lighthttpd, а также закрыть доступ к  lightsquid паролем. В конечном итоге если вдруг будет надо, я смогу предоставить свои конфиги.

7. Издаем команду:
ebtables -t broute -A BROUTING -p IPv4 --ip-destination-port 80 -j redirect --redirect-target ACCEPT

8. Еще одну:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 ! -d 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128

заворачиваем пакты из нашей подсети (исключая адресованные в подсеть головного офиса) на порт сквида.

9. Смотрим:
 tail -f /var/log/squid3/access.log
Если видим изменяющиеся значения, значит все ОК - http трафик заворачивается на squid.

10. При настройке squid я не хотел настраивать фильтрацию https, т.к. нашел в сети множество отзывов с проблемами  реализации (подмена squid-ом ssl сертификатов - ssl bump). В связи с этим было принято решение блокировать неугодные адреса с помощью iptables используя ipset. 
Узнаем у Google ip-адреса неугодных ресурсов:

# dig @google-public-dns-a.google.com. mail.yandex.ru

; <<>> DiG 9.8.1-P1 <<>> @google-public-dns-a.google.com. mail.yandex.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48890
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mail.yandex.ru. IN A

;; ANSWER SECTION:
mail.yandex.ru. 3077 IN A 87.250.250.25
mail.yandex.ru. 3077 IN A 93.158.134.25
mail.yandex.ru. 3077 IN A 213.180.193.25
mail.yandex.ru. 3077 IN A 213.180.204.25

;; Query time: 70 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jan 30 19:04:45 2014
;; MSG SIZE rcvd: 96


11. Ставим ipset:
apt-get install ipset

Добавляем сеты...
a.Создаем список:
ipset -N ip_set_1 iphash

b.Добавляем адреса в сет:
ipset -A ip_set_1  87.250.250.25
ipset -A ip_set_1  93.158.134.25
pset -A ip_set_1  213.180.193.25
ipset -A ip_set_1  213.180.204.25

c.Можно делать сеты для сетей:
ipset -N net_set_1 nethash

d.Добавляем сети в сет:
ipset -A net_set_1 1.1.1.1/32
ipset -A
net_set_1 2.2.2.2/24

e.Также можем создать сет для привелегированных пользователей нашей сети:
ipset -N managers iphash

f.Добавляем адреса в сет:
ipset -A managers  192.168.1.111
ipset -A managers  192.168.1.222 


Просмотреть сеты можно командой:
ipset -L

g.Запретим доступ к яндекс почте нашей сети, кроме адресов входящих в managers:
iptables -A FORWARD -m set ! --match-set managers src -p tcp -m tcp -m set --match-set ip_set_1  dst --dport 443 -j DROP

e.Запретим доступ к сетям указанных в сете  net_set_1:
iptables -A FORWARD -m set ! --match-set managers src -p tcp -m tcp -m set --match-set net_set_1   dst --dport 443 -j DROP

h.Сохраним наши сеты. 
Cоздадим файл:
touch /directory/directory2/ipset-save

i.Скомандуем:
ipset -S >  /directory/directory2/ipset-save
(При каждом изменении в сеты сохраняемся.)

j.Устраиваем автозагрузку.
Открываем /etc/rc.local и добавляем в него строку:
cat  /directory/directory2/ipset-save | /usr/sbin/ipset -R

12. Назначим наименьший приоритет задержки пакетам наиболее нуждающимся в нем:

iptables -A OUTPUT -t mangle -p udp -m multiport --dport 53,5060 -j TOS --set-tos Minimize-Delay

iptables -A FORWARD -t mangle -p tcp -m tcp -d 192.168.0.0/24 -j TOS --set-tos 0x10/0x3f

iptables -A FORWARD -t mangle -p udp -m udp -d 192.168.0.0/24 -j TOS --set-tos 0x10/0x3f


13.Смотрим вывод: 
iptables-save
и далее настраиваем автозапуск правил по своему вкусу.


14. Шейпер.
Для начала следует здраво понимать, что ограничиваться, и попадать в очередь (шейпиться), могут только исходящие с интерфейса пакеты, а не входящие т.к. они уже пришли на интерфейс. Соответственно имея устройство с двумя сетевыми интерфейсами, и соответствующим образом настроенным шейпером можно управлять пропускной способностью канала.

a.Перейдем в свою директорию (работаем от рута, как вы заметили):
cd /home/user 

b.Скачиваем скрипт htb.init:
wget http://switch.dl.sourceforge.net/project/htbinit/HTB.init/0.8.5/htb.init-v0.8.5

c.Переименуeм покороче наш скрипт:
mv  htb.init-v0.8.5  htb
и переместим куда следует:
cp htb /usr/sbin

d.сделаем скрипт исполняемым:
chmod +x /usr/sbin/htb

e.теперь создадим файлы и директории необходимые для работы скрипта:
mkdir /etc/sysconfig
mkdir /etc/sysconfig/htb
touch /var/cache/htb.init


f.начнем писать конфиги для нашего шейпера. перейдем:
cd /etc/sysconfig/htb

g.Создаем конфигурационные файлы (eth0 смотрит в 100Gb порт роутера, eth1 в гигабитный порт свитча):

Для исходящего трафика:sudo touch eth0 # Описываем интерфейс eth0
sudo nano eth0

DEFAULT=10 # метка на файл, создаваемый ниже, eth0-2:10.dfl
R2Q=100 # точность ограничений

sudo touch eth0-2.root # корневой класс
sudo nano eth0-2.root

RATE=100Mbit # гарантированная пропускная способность
CEIL=100Mbit # максимальная пропускная способность
BURST=15k # первые 15k без ограничений

sudo touch eth0-2:10.dfl # сюда попадает трафик, не попадающий ни в одно из правил ниже
sudo nano eth0-2:10.dfl

RATE=1024Kbit # гарантированная пропускная способность
CEIL=99Mbit # максимальная пропускная способность
LEAF=sfq # равномерное распределение между участниками очереди.

sudo touch eth0-2:20.rdp # гарантированный канал для rdp
sudo nano eth0-2:20.rdp

RATE=1Mbit # гарантированная пропускная способность
CEIL=2Mbit # максимальная пропускная способность
BURST=15k # первые 15k без ограничений
LEAF=sfq # равномерное распределение между участниками очереди.
RULE=*:3389 # Применять правило для трафика, у которого исходящий порт 3389
MARK=100 # Метка для исходящего трафика (входящий нарезается нормально и без меток).

Маркируем трафик RDP:
iptables -t mangle -A PREROUTING -s 192.168.1.5 -j MARK --set-mark 100 
Соответсвенно 192.168.1.5 адрес терминального сервера.

Для входящего трафика:

sudo touch eth1 # Описываем интерфейс eth1
sudo nano eth1

DEFAULT=10 # метка на файл, создаваемый ниже, eth1-2:10.dfl
R2Q=100 # точность ограничений

sudo touch eth1-2.root # корневой класс
sudo nano eth1-2.root

RATE=330Mbit # гарантированная пропускная способность
CEIL=330Mbit # максимальная пропускная способность
BURST=15k # первые 15k без ограничений

sudo touch eth1-2:10.dfl # сюда попадает трафик, не попадающий ни в одно из правил ниже
sudo nano eth1-2:10.dfl

RATE=1024Kbit # гарантированная пропускная способность
CEIL=300Mbit # максимальная пропускная способность
LEAF=sfq # равномерное распределение между участниками очереди.
PRIO=2 # PRIO задает приоритет класса трафика (1- максимальный, чем больше число — тем меньшt приоритет).

sudo touch eth1-2:20.rdp # гарантированный канал для rdp
sudo nano eth1-2:20.rdp

RATE=1024Kbit # гарантированная пропускная способность
CEIL=2048Kbit # максимальная пропускная способность
BURST=15k # первые 15k без ограничений
LEAF=sfq # равномерное распределение между участниками очереди.
RULE=*:3389 # Применять правило для трафика, у которого порт назначения - rdp-порт
PRIO=1

sudo touch eth1-2:30.100 # ограничиваем скорость для ip 192.168.1.100
sudo nano eth1-2:30.100

RATE=64Kbit # гарантированная пропускная способность
CEIL=64Kbit  # максимальная пропускная способность
BURST=15k # максимальная пропускная способность
LEAF=sfq # равномерное распределение между участниками очереди.
RULE= 192.168.1.100
PRIO=3

Осталось запустить скрипт:

htb compile # тест. можно посмотреть какие правила будут сформированы и ошибки, если есть.
htb start # запуск
htb stop # остановка
htb restart # перезапуск после внесения изменений в файлы конфигурации

При вышеописанной настройке мы добились того, что канал делится между всеми поровну исходя из заданных значений.
Максимальный приоритет у входящего и исходящего RDP-трафика (удаленные приложения Remote App также используют этот протокол).
IP-адрес 192.168.1.100 ограничен во входящей скорости до 64 kb/sec, в исходящей скорости ограничений нет.

Подробнее о работе htb.init можно почитать по следующим ссылкам:
и вообще найти что-то поиском.

15. Графики за N-период по работе сервера:


16. Отчет Lightsquid: