Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Не работает DROP ssh iptables  (Прочитано 2453 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sough

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Не работает DROP ssh iptables
« : 22 Апреля 2016, 17:01:33 »
Всем приветики.
Прописал на серве:
iptables -A INPUT -s 87.253.88.347 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
Однако облом, ssh открыт для всех. Что я не правильно делаю?
« Последнее редактирование: 27 Апреля 2016, 14:21:00 от sough »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #1 : 22 Апреля 2016, 17:26:21 »
Что я не правильно делаю?
В первую очередь предоставляете информацию. То что Вы "прописали" и то что реально в правилах netfilter не всегда одно и то же.
Показывайте sudo iptables-save

Оффлайн sough

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #2 : 22 Апреля 2016, 17:33:50 »
(Нажмите, чтобы показать/скрыть)

Как-то так


Правила форума
Цитата: Правила форума
1.4. Листинги и содержимое текстовых файлов следует добавлять в сообщение с помощью тега [spоiler]...[/spоiler], либо прикреплять к сообщению в виде отдельного файла.
Я уже отредактировал сообщение в соответствии с правилами.

--www777
« Последнее редактирование: 22 Апреля 2016, 22:00:03 от www777 »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #3 : 22 Апреля 2016, 19:22:29 »
А вот и виновник "торжества"
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

Оффлайн sough

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #4 : 22 Апреля 2016, 20:22:18 »
Это да, но таким образом совсем перестаёт пускать, даже с разрешённого ip.

Пользователь добавил сообщение 22 Апреля 2016, 20:25:32:
И 2 других запрещённых порта также продолжают пускать.
Я хз, в чём проблема.
« Последнее редактирование: 22 Апреля 2016, 20:25:32 от sough »

Punko

  • Гость
Re: Не работает DROP ssh iptables
« Ответ #5 : 22 Апреля 2016, 21:19:09 »
sough, я не гений netfilter, но мне кажется, что проблема в порядке правил.
То есть, сначала всё дропните на 22, а уже ниже разрешите с нудного адреса.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #6 : 22 Апреля 2016, 21:49:08 »
но таким образом совсем перестаёт пускать, даже с разрешённого ip.
Если Вы убираете только указанное мною правило, то не может такого быть. Так как правило
-A INPUT -s 87.253.88.347/32 -j ACCEPT
разрешает этому IP-у соединяться любым способом.

То есть, сначала всё дропните на 22, а уже ниже разрешите с нудного адреса.
Строго наоборот.

Punko

  • Гость
Re: Не работает DROP ssh iptables
« Ответ #7 : 22 Апреля 2016, 21:58:13 »
fisher74, а почему так? То есть, сначала мы разрешили с определённого адреса, а потом запретили всем?


Интересно именно то, почему правило на дроп всех пакетов не перезаписывает правило на ассерт определённого.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #8 : 22 Апреля 2016, 22:01:25 »
НЕ моё, конечно, дело, но ИМХО у Вас netfilter настроен, мягко говоря паршиво.
Одной пользовательской цепочкой (cphulk) пытаетесь что-то заткнуть (хотя это похоже на какую-то утилиту автобана), другой (cP-Firewall-1-INPUT) - разрешаете и без того разрешённый трафик (дефолтное правило ACCEPT).
Давать какие-либо консультации по защите одного сервиса здесь очень сложно.

Точно сработает такие команды
sudo iptables -I INPUT -s 87.253.88.347 -p tcp --dport 22 -j ACCEPT
sudo iptables -I INPUT 2 -p tcp --dport 22 -j DROP
НО ЭТО КОСТЫЛЬНОЕ РЕШЕНИЕ

Пользователь добавил сообщение 22 Апреля 2016, 22:07:08:
То есть, сначала мы разрешили с определённого адреса, а потом запретили всем?
Конкретно в предложенной ТС варианте, да. Именно так.

почему правило на дроп всех пакетов не перезаписывает правило на ассерт определённого.
Ни какое правило ничего не перезаписывает. Они выстраиваются цепочкой в том порядке, в котором их вводят (если конечно в команде добавления не указана конкретная позиция правила в цепочке)
Действия DROP и ACCEPT являются терминирующими действиями, поэтому после их отработки обработка цепочки прекращается.
То есть если срабатывает только первое правило срабатывающее по условию (это касается только терминирующих действий)
« Последнее редактирование: 27 Апреля 2016, 19:59:39 от fisher74 »

Punko

  • Гость
Re: Не работает DROP ssh iptables
« Ответ #9 : 22 Апреля 2016, 22:12:00 »
fisher74, а, всё, я понял.
Пакет прверяется на каждое правило, и если попадается первое правило, которое он удовлетворяет, то его пихают дальше, на следующую цепочку.
Если таких правил, которые подходят к пакету не находится, тогда к нему применяется Policy для цепочки.
Вот теперь верно? :)
И знал же, просто думать не захотел :( Спасибо!

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #10 : 22 Апреля 2016, 22:14:58 »
Вот теперь верно? :)
Да. Но повторюсь: вывод из цепочки происходит только при терминирующих действиях (ACCEPT, DROP, REDIRECT, REJECT, DNAT, SNAT, MASQUERADE...)

Punko

  • Гость
Re: Не работает DROP ssh iptables
« Ответ #11 : 22 Апреля 2016, 22:22:06 »
fisher74, спасибо, надо будет почитать про не терминирующие действия.
И тогда еще один вопрос - почему нельзя поставить policy REJECT?
приходится городить ACCEPT, а потом уже в правиле прописывать REJECT всех пакетов.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #12 : 22 Апреля 2016, 22:36:20 »
А зачем Вам REJECT ВСЕХ пакетов?
Действие DROP создаёт меньше нагрузки на ядро и сеть.
REJECT будет отсылать ICMP Port Unreachable на каждый "пук". А оно нам надо? Так ведь можно свой uplink положить, например на ADSL-соединении.

Punko

  • Гость
Re: Не работает DROP ssh iptables
« Ответ #13 : 22 Апреля 2016, 22:49:07 »
fisher74, да, за нагрузку я понимаю.
Но например, если пакет DROP, то ответ не пришёл к отправителю и он будет стучаться дальше.
А если REJECT, то мы отправили ответ - не стучись, меня тут нет.

Если будет какой-то flood идти, то после получения icmp ответа о недоступности этот flood не прекратится?

Я делаю reject всех непонятных пакетов и создаю список правил с АССЕРТ. Например, для портов приложения на этом сервере и для ssh.

Или это вреднее, чем постоянно DROP пакетов, которые идут при какой-нибудь flood атаке?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Не работает DROP ssh iptables
« Ответ #14 : 22 Апреля 2016, 23:05:38 »
Для обычной ситуации, какое из этих действий использовать почти не важно.
Но в случае атаки, REJECT в дефолте быстрее уложит Ваш сервант.

А так-то, каждый сходит с ума по своему.

 

Страница сгенерирована за 0.064 секунд. Запросов: 25.