Home

Page 6
Page 6
background image

Обратный тун-

нель приме-

няется в том 

случае, когда 

нужно попасть 

на машину, за-

щ и щ е н н у ю 

м е ж с е т е в ы м 

экраном или на-

ходящуюся за NAT.

Принцип действия заключается в 

том, что соединение инициирует уда-

ленная машина, а мы попадаем туда 

по уже готовому соединению. В такой 

туннель можно отправить любой тра-

фик, не только ssh.

Итак, со стороны компьютера за 

NAT используется следующее закли-

нание:

# ssh user@server -R 

5544:localhost:22 -N

U

ser

  

A

nd

LINUX

Console

ualinux.com

6

U & L  

1 1 - 0 1

Ограничение 

скорости

 с помощью 

iptables

Ограничение 

количества

 сессий с 

одного ip адреса

Обратный 

туннель SSH

Несмотря на наличие специальных 

утилит для разграничения скорости 

передаваемых пакетов, ограничивать 

скорость можно и с помощью iptables.

Для этой цели используется мо-

дуль limit. Пакеты, проходящие через 

правило с этим критерием будут со-

ответствовать такому условию до тех 

пор, пока лимит не исчерпается.

Например:

iptables -I FORWARD -i 
eth0 -p tcp -s 192.0.2.12 
-m limit --limit 3/hour 
--limit-burst 5 -j ACCEPT

Такому правилу будут соответство-

вать первые 5 пакетов, пришедшие из 

интерфейса eth0 с адреса 192.0.2.12. 

Каждый проходящий пакет увеличи-

вает счетчик на единицу, пока тот не 

достигнет значения параметра --limit-

burst. Последующие пакеты такому 

правилу соответствовать не будут, а 

перейдут к следующему в таблице 

правил iptables (что с ними будет по-

том – наше правило не волнует).

В течение следующих 20 минут (это 

задает параметр —limit 3/hour, что 

значит три раза за час уменьшить зна-

чение счетчика на единицу) ни один 

пакет через это правило не пройдет 

(не прошедшие пакеты передаются 

следующим правилам). По истечении 

заданного интервала счетчик умень-

шается на единицу. Теперь правило 

может принять еще один пакет. Если 

пакет придет – счетчик снова достиг-

нет значения limit-burst. А если не 

придет в течение еще 20 минут, то в 

дальнейшем правило сможет принять 

сразу два пакета, и т.д.

www.oper777.co.cc

Как ограничить количество уста-

навливаемых клиентами сетевых со-

единений, проходящих через шлюз 

в единицу времени (на шлюзе стоит 

Linux)? Я нашел всего два модуля для 

iptables, которые помогут мне помочь 

в решении данной задачи. Это модуль 

connlimit и модуль recent.

connlimit может работать только 

с tcp протоколом и ограничивает ко-

личество установленных tcp сессий 

для каждого клиента достаточно про-

стым правилом. Приведенный ниже 

пример ограничит количество TCP 

сессий от каждого клиента из сети 

172.16.0.0/12 в 200.

Например:

A FORWARD -s 172.16.0.0/12 
-p tcp --syn -m connlimit 
--connlimit-above 200 -j 
DROP

Но, как показало практическое 

тестирование, connlimit очень силь-

но нагружает процессор, что делает 

его применение на роутере нецеле-

сообразным, т.к. несколько клиентов 

в сети могут создать шторм сетевых 

пакетов и вывести роутер из рабочего 

режима, затруднив остальным поль-

зователям комфортную работу.

recent работает по следующему 

принципу: первым правилом iptables 

вы назначаете пакетам, удовлетворя-

ющим определенным критериям, уни-

кальное имя, которое впоследствии 

будет использоваться этим модулем 

для наложения ограничений. Напри-

мер присвоим всем сетевыем паке-

там с состоянием NEW (новое соеди-

нение), проходящие через сетевой 

интерфейс eth0 нашего роутера имя 

SYNF.

-A FORWARD -i eth0 -m state 

--state NEW -m recent --set 
--name SYNF --rsource

Вторым правилом мы скажем мо-

дулю, что если от какого-то клиента 

поступает пакетов помеченных как 

SYNF больше 10 за 10 секунд, то такие 

пакеты должны отбрасываться.

-A FORWARD -i eth0 -m state 
--state NEW -m recent 
--update --seconds 10 
--hitcount 10 --rttl --name 
SYNF --rsource -j DROP

Тестирование показало, что ис-

пользование модуля recent не влияет 

на нагрузку роутера. Причем с по-

мошью комбинации модулей state и 

recent можно делать достаточно ин-

тересные ограничения в сетевом тра-

фике, препятствуя распространению 

спама, флуда и пр.

www.centos.alt.ru


Copyright © 2021 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.