61

 Консоль:
root@evolution:~# sh /etc/firewall.sh1
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.0.0/24       0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Все работает.

62

#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"
# Интерфейс который смотрит в интернет
export LAN=eth0
# Локальная сеть
export WAN=eth1
export WAN_IP_RANGE=192.168.0.0/24

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $WAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $WAN -j ACCEPT

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим
# признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $WAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $WAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $LAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Маскарадинг
$IPT -t nat -A POSTROUTING -o $LAN -s $WAN_IP_RANGE -j MASQUERADE

#Вывод информации
$IPT -L -n -t nat

В принципе политики по-умолчанию установили, порты все позакрывали, теперь добовлять открытие портов и фильтры, если работает то пока можно быть спокойным.
Сработало?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

63 (27.04.2011 19:18:45 отредактировано ERT)

 Консоль:
root@evolution:~# nano /etc/firewall.sh1
root@evolution:~# sh /etc/firewall.sh1
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.0.0/24       0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Все работает, но вот как-то туговато стали страницы открываться и иногда ICQ переподключается.

64

#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"
# Интерфейс который смотрит в интернет
export LAN=eth0
# Локальная сеть
export WAN=eth1
export WAN_IP_RANGE=192.168.0.0/24

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $WAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $WAN -j ACCEPT

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим
# признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $WAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $WAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $LAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $WAN -o $LAN -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT   -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT  -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $LAN -o $WAN -j REJECT

# Маскарадинг
$IPT -t nat -A POSTROUTING -o $LAN -s $WAN_IP_RANGE -j MASQUERADE

# Открытие портов для торрентов
$IPT -A INPUT -p tcp --dport 6881:6889 -m state --state NEW -j ACCEPT

#Вывод информации
$IPT -L -n -t nat

Смотри пробуй.
Торренты 6881:6889 предположил что так, если не нужны убери строчку.
Дальше если что-то добовлять, то после строки маскарадинга.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

65

Вот это совсем другое дело. Все нормально теперь.

66

Кислороду приоткрыли  smile
По SSH удалённое управление будет?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

67 (27.04.2011 20:03:32 отредактировано ERT)

newzenon пишет:

Кислороду приоткрыли  smile
По SSH удалённое управление будет?

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

68

Нормально будет реагировать.
Если эта машина шлюз и веб-сервер, то после строки маскарадинга для веб-сервера открываем 80-й

$IPT -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

Если нужен то и 443:

$IPT -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT 

Если же веб-сервер на другом компе то их надо будет пробросить туда.

С SSH (можно просто открыть также как и 80) но мне нравиться вот такое решение:

# Защищаем 22 порт SSH от брутфорса (перебора паролей)
# Задача следующих правил ограничить соединения на порт ssh 10-тью попытками 
# в течении 10 минут с 1 ip адреса. Создаем новую цепочку правил SSHDROP
$IPT -N SSHDROP
# Все новые соединения на порт 22 пропускаем через цепочку SSHDROP
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -j SSHDROP
$IPT -A SSHDROP -m recent --set --name SSH
# Если требуется будем писать лог соединений ssh
$IPT -A SSHDROP -m recent --update --seconds 300 --hitcount 10 --name SSH -j LOG --log-level info --log-prefix "SSH DROP: "
# Если начальные условия нарушены то запретим соединение
$IPT -A SSHDROP -m recent --update --seconds 300 --hitcount 10 --name SSH -j DROP
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

69 (27.04.2011 20:29:22 отредактировано ERT)

Веб сервер будет на другой машине, а так же на другом IP, но для этого сервера так же нужен удаленный доступ по SSH.
Я теперь понял принцип, по которому открываются порты.

70 (28.04.2011 00:32:33 отредактировано ERT)

Большое спасибо за помощь! Уделить для одного человека столько времени - впервые вижу! Очень рад, что попал на этот форум!
Комментарии в скрипте есть - буду теперь разбираться. Хочу понять что к чему, а не просто вводить готовые команды (в данной ситуации так и вышло).
Ну и пока настраивали сеть, я успел прочитать большое количество тем и появилось очень много вопросов, т.к. есть большое желание изучить эту ОС досконально.

71

newzenon
-j LOG --log-level info --log-prefix "SSH DROP: "
Так на учите ещё демон настраивать
ERT
http://www.opennet.ru/docs/RUS/iptables/ лучше не что нет

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

72

IPT -A SSHDROP копирайт?
Данную цепочку ешё надо создать

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

73

Еще не все?

74

Kettler, внимательно: $IPT -N SSHDROP
ERT, на сегодня уж точно всё.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

75 (28.04.2011 14:11:25 отредактировано ERT)

Ну тогда завтра продолжим, а пока буду то, что сделано осваивать.

P.S. Не выходит приконнектиться к серверу на порт 27015 и т.д., а так же 9987. Я прописал в firewall вот так:

$IPT -A INPUT -p tcp -m tcp --sport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 27015 -j ACCEPT 

Так же не получается зайти на сервер по SSH (только по локалке).

76

ERT

Попробуй так

 Консоль:

$IPT -A INPUT -p tcp -m tcp --dport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --sport 27015 -j ACCEPT

+ ERT

77

HAEMHIK пишет:

ERT

Попробуй так

 Консоль:

$IPT -A INPUT -p tcp -m tcp --dport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --sport 27015 -j ACCEPT

Не вышло и с этим вариантом.

78

ERT, подключение tcp или udp?

Для udp:

$IPT -A INPUT -p tcp -m udp --sport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m udp --dport 27015 -j ACCEPT 

Также всегда на время отладки это:

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

меняешь на

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

Потом разбираешься кто виноват.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

79

Сделал вот так:

$IPT -A INPUT -p tcp -m udp --sport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m udp --dport 27015 -j ACCEPT 

Запустил firewall.sh сначала с:

$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

Потом сменил на:

$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

и снова запустил (вот об этом моменте можно немного, честно говоря не понял, а точнее сделал как понял).

Вывод консоли:

 Консоль:
root@evolution:~# sh /etc/firewall.sh
iptables: Invalid argument. Run `dmesg' for more information.
iptables: Invalid argument. Run `dmesg' for more information.
iptables: Invalid argument. Run `dmesg' for more information.
iptables: Invalid argument. Run `dmesg' for more information.
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.0.0/24       0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

80

ERT, ACCEPT это временно вообще должно быть DROP, это так для проверки,

если надо и tcp и udp то прописывай целиком:

$IPT -A INPUT -p tcp -m tcp --sport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 27015 -j ACCEPT 
$IPT -A INPUT -p tcp -m udp --sport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m udp --dport 27015 -j ACCEPT 

По ssh если что-то не так попробуй закоментируй блок про ssh и просто открой порт 22.

ы. Начинай читать маны без них никуда.

ыы. Ошибок быть не должны смотри где напортачил.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

81 (28.04.2011 16:11:18 отредактировано ERT)

Добавил tcp, но ошибка осталась та же:
iptables: Invalid argument. Run `dmesg' for more information.

Читаю. Порты открылись (9987 точно).

82

ERT, а ssh говоришь из дома работает?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

83 (28.04.2011 16:14:50 отредактировано HAEMHIK)

Как попал dmesg в скрипт ?  smile

У меня SSH работает с таким правилом и тоже при политиках DROP

 Консоль:

# доступ по SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

84 (28.04.2011 16:45:57 отредактировано ERT)

newzenon пишет:

ERT, а ssh говоришь из дома работает?

Нет. Товарищ висит и проверяет. На порт 9987 приконнектился.

Вот такой вид у firewall.sh:

+ открыть спойлер
#!/bin/bash
# Тут в принципе может и не надо этого всего но не помеха вдруг какой модуль не подгружен или форвардинг не включен
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Объявление переменных
export IPT="iptables"

# Интерфейс который смотрит в интернет
export LAN=eth0

# Локальная сеть
export WAN=eth1
export WAN_IP_RANGE=192.168.0.0/24

# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено):
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $WAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $WAN -j ACCEPT

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим
# признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $WAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $WAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $LAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $WAN -o $LAN -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
$IPT -A INPUT   -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP

# Приводит к связыванию системных ресурсов, так что реальный обмен данными становится не возможным.
$IPT -A INPUT  -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $LAN -o $WAN -j REJECT

# Маскарадинг
$IPT -t nat -A POSTROUTING -o $LAN -s $WAN_IP_RANGE -j MASQUERADE

# Защищаем 22 порт SSH от брутфорса (перебора паролей)
# Задача следующих правил ограничить соединения на порт ssh 10-тью попытками 
# в течении 10 минут с 1 ip адреса. Создаем новую цепочку правил SSHDROP
$IPT -N SSHDROP

# Все новые соединения на порт 22 пропускаем через цепочку SSHDROP
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -j SSHDROP
$IPT -A SSHDROP -m recent --set --name SSH

# Если требуется будем писать лог соединений ssh
$IPT -A SSHDROP -m recent --update --seconds 300 --hitcount 10 --name SSH -j LOG --log-level info --log-prefix "SSH DROP: "

# Если начальные условия нарушены то запретим соединение
$IPT -A SSHDROP -m recent --update --seconds 300 --hitcount 10 --name SSH -j DROP

# Открытие портов для торрентов
$IPT -A INPUT -p tcp --dport 6881:6889 -m state --state NEW -j ACCEPT

# Откытие 443 порта
$IPT -A INPUT -p tcp -m udp --sport 443 -j ACCEPT
$IPT -A OUTPUT -p tcp -m udp --dport 443 -j ACCEPT 
$IPT -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT

# Открытие 80 порта для веб сайтов
$IPT -A INPUT -p tcp -m udp --sport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp -m udp --dport 80 -j ACCEPT 
$IPT -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT

# Открытие портов для серверов
$IPT -A INPUT -p tcp -m udp --sport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m udp --dport 27015 -j ACCEPT 
$IPT -A INPUT -p tcp -m tcp --sport 27015 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 27015 -j ACCEPT

# Открытие порта для Team Speak
$IPT -A INPUT -p tcp -m udp --sport 9987 -j ACCEPT
$IPT -A OUTPUT -p tcp -m udp --dport 9987 -j ACCEPT 
$IPT -A INPUT -p tcp -m tcp --sport 9987 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 9987 -j ACCEPT  

#Вывод информации
$IPT -L -n -t nat

И еще вопрос. Возможно ли, к примеру, вот так:

$IPT -A INPUT -p tcp --dport 27010:27030 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p tcp --dport 27010:27030 -m state --state NEW -j ACCEPT

открыть несколько портов?

И вот порт 27015 отказывается работать

85

Насколько я понимаю в iptables, а понимаю я еще очень мало  smile , но это правило

$IPT -A INPUT -p tcp -m udp --sport 9987 -j ACCEPT

нафиг не нужно т.к. у нас до него разрешаются соединения, которые поднимаются "изнутри" правилом:

$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

а нам нужно пустить внешку, которая пускается с точность до наоборот

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

да поправят меня модераторы  :rolleyes:

86

HAEMHIK, так сбиваешь с толку!

смотри в каких цепочках стоит NEW

$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $WAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $WAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $LAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

NEW - стоит в OUTPUT и FORWARD, - ну и пусть в INPUT - NEW нет!

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

87

ERT, про SSH у меня подозрение что не iptables виноват, что-то с авторизацией копай в сторону SSH.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

88 (28.04.2011 17:28:45 отредактировано ERT)

newzenon пишет:

ERT, про SSH у меня подозрение что не iptables виноват, что-то с авторизацией копай в сторону SSH.

По локалке SSH работает, а вот из инета нет и не открывается порт 27015 (не может человек приконнектится к серверу). Из локалки по 192.168.0.1:2015 - все нормально.

Putty не выводило эту информацию. Ребутнул сервер:

[  93.205425] ip_tables: udp match: only valid for protocol 17

Это одна строка из 10. Меняется только значение в скобках.

89

Попробуй принудительно указать интерфейс:

$IPT -A INPUT -i $LAN -p tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -o $LAN -p tcp --sport 22 -j ACCEPT
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

90

А вот это:

# Защищаем 22 порт SSH от брутфорса (перебора паролей)
# Задача следующих правил ограничить соединения на порт ssh 10-тью попытками 
# в течении 10 минут с 1 ip адреса. Создаем новую цепочку правил SSHDROP
$IPT -N SSHDROP

# Все новые соединения на порт 22 пропускаем через цепочку SSHDROP
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -j SSHDROP
$IPT -A SSHDROP -m recent --set --name SSH

# Если требуется будем писать лог соединений ssh
$IPT -A SSHDROP -m recent --update --seconds 300 --hitcount 10 --name SSH -j LOG --log-level info --log-prefix "SSH DROP: "

# Если начальные условия нарушены то запретим соединение
$IPT -A SSHDROP -m recent --update --seconds 300 --hitcount 10 --name SSH -j DROP

пока убери совсем.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.