Port forwarding в Vyatta + Proxy (sQuid) в Vyatta

Это будет больше заметка чем статья, так как материал полезный и редкий. Короче я такую штуку замутил было дело, все порно сайты отправил в редирект на гей-порно сайты =) через sQuid ну короче потом смотрел на круглые глаза сотрудников =) Шутка конечно, но такая вещь как URL-Filtering может быть иногда полезной, особенно когда сотрудники часами сидят в Facebook вместо того что-бы работу работать. Так же будет сказано пару слову про Port forwarding (я так понимаю на русском это проброс портов, поправьте если не прав) штука тоже очень нужная и актуальная в жизни системных администраторов. Вообще по хорошему, Port forwarding лучше не делать с gateway на первый попавшиийся комп, особенно в зоне MZ, это дыра в безопасности, лучше делать NAT на определенную машину в зоне DMZ а от тутда через какой-нибудь simpleproxy уже разкидывать порты по машинам. Я приведу наверное оба примера. Итак, как настроить URL-Filtering в Vyatta с помощью sQuid а так же Port forwarding в Vyatta читайте под катом.

Port forwarding в Vyatta

Известный факт, что настройка Vyatta может произовдится двумя методами:
– Прямая правка конфига /opt/vyatta/etc/config/config.boot
– Внесением правил черз CLI cистемы (более правильно)

Я использую активно оба метода, так уж научился.

Задача №1:
Порт 30080 пробросить -> на внутреннию машину 192.168.100.110:80
Порт 30443 пробросить -> на внутреннию машину 192.168.100.120:443

Понятно что это NAT и понятно что если кто-то снаружи идет на:
EXTERNALIP:30080 то он должен попасть на 192.168.100.110:80
EXTERNALIP:30443 то он должен попасть на 192.168.100.120:443

Открываем файл конфигурации:

sudo su
configure
vi /opt/vyatta/etc/config/config.boot
sudo su
configure
vi /opt/vyatta/etc/config/config.boot

идем в секцию NAT, она выглядит так: nat {
там есть правила, добавляем новые:

 rule 20 {
            description "NAT to internal comp *.110:80"
            destination {
                port 30080 
            }
            inbound-interface pppoe1
            inside-address {
                address 192.168.100.110
                port 80
            }
            protocol tcp
            type destination
        }
        rule 21 {
            description "NAT to internal comp *.110:443"
            destination {
                port 30433
            }
            inbound-interface pppoe1
            inside-address {
                address 192.168.100.120
                port 443
            }
            protocol tcp
            type destination
        }
 rule 20 {
            description "NAT to internal comp *.110:80"
            destination {
                port 30080 
            }
            inbound-interface pppoe1
            inside-address {
                address 192.168.100.110
                port 80
            }
            protocol tcp
            type destination
        }
        rule 21 {
            description "NAT to internal comp *.110:443"
            destination {
                port 30433
            }
            inbound-interface pppoe1
            inside-address {
                address 192.168.100.120
                port 443
            }
            protocol tcp
            type destination
        }

Собственно тут все очень просто. Далее сохраняем и применяем:

load
commit
save
load
commit
save

Задача №2:
Порт 30080, 30443 пробросить -> на внутреннию машину 192.168.100.1 на которой стоит simpleproxy.
С помощью simpleproxy перенаправить порты на машины: 192.168.100.110:80 и 192.168.100.120:443

Вся цепочка выглядит так:
EXTERNALLIP:30080 -> 192.168.100.1 (simpleproxy) -> 192.168.100.110:80 (target)
EXTERNALLIP:30443 -> 192.168.100.1 (simpleproxy) -> 192.168.100.120:443 (target)

Это лучше работает и проще в настройке, так как любой новый порт вы добавляете в тоже самое правило, которое делает NAT на одну единственную машину, а вот там уже с помощью simpleproxy вы решаете куда именно тот или иной порт будет проброшен.

Открываем конфиг:

sudo su
configure
vi /opt/vyatta/etc/config/config.boot
sudo su
configure
vi /opt/vyatta/etc/config/config.boot

идем в секцию NAT, она выглядит так: nat {
там есть правила, добавляем новое:

 rule 22 {
            description "NAT to 80,443"
            destination {
                port 30080,30443
            }
            inbound-interface pppoe1
            inside-address {
                address 192.168.100.1
            }
            protocol tcp
            type destination
        }
 rule 22 {
            description "NAT to 80,443"
            destination {
                port 30080,30443
            }
            inbound-interface pppoe1
            inside-address {
                address 192.168.100.1
            }
            protocol tcp
            type destination
        }

Сохраняем и применяем:

load
commit
save
load
commit
save

Смотрим:

show service nat rule 22
show nat rules
show service nat rule 22
show nat rules

Далее идем на машину с simpleproxy:

ssh user@192.168.1.100
su - 
ssh [email protected]
su - 

Добавляем правила для прокси:

/usr/bin/simpleproxy -d -L 30080 -R 80 -H 192.168.1.100
/usr/bin/simpleproxy -d -L 30443 -R 443 -H 192.168.1.100
/usr/bin/simpleproxy -d -L 30080 -R 80 -H 192.168.1.100
/usr/bin/simpleproxy -d -L 30443 -R 443 -H 192.168.1.100

Ну и все пожалуй. Готово.
Можно проверить:

telnet externalip 30080
telnet externalip 30080

URL-Filtering в Vyatta с помощью sQuid

Задача:
Забанить неугодный сайт www.redtube.com что-бы при попытки перейти на него браузер выдавал www.google.com
Тут давайте отложим конфиг и попробуем с правилами:

sudo su
configure
set service webproxy listen-address 192.168.1.100
set service webproxy url-filtering squidguard local-block redtube.com
set service webproxy url-filtering squidguard local-block porntube.com
set service webproxy url-filtering squidguard log local-block
show service webproxy
commit
save
sudo su
configure
set service webproxy listen-address 192.168.1.100
set service webproxy url-filtering squidguard local-block redtube.com
set service webproxy url-filtering squidguard local-block porntube.com
set service webproxy url-filtering squidguard log local-block
show service webproxy
commit
save

Интерфейс 192.168.1.100 это тот через который выход локалка для котороый вы делаете запрет.

После применения и сохранения доступ к указанным выше сайтам будет закрыт, а при попытке перейти на запрещенный сайт будет осуществлен редирект на www.google.com. Можно потом открыть config.boot и сделать поиск по proxy, там найдете стандартные настройки, их можно поменять на что вам нравится.