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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Открыть порты и сделать исключения для определенных ip  (Прочитано 7285 раз)

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

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Добрый вечер у меня на сервере прописаны правила:
(Нажмите, чтобы показать/скрыть)
Помогите немного уточнить
Я ведь правильно разобрался что
-A POSTROUTING -s 172.16.0.5/32 ! -d 172.16.0.5/32 -j MASQUERADE
это открытие всех портов для ip-адреса 172.16.0.5?
Как открыть только определенные порты для нужного ip?
И как сделать исключение для заворачивание трафика, например чтобы с определенных ip-адресов при обращении к портам 80 и 8080 трафик не заворачивался на прокси 3128?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28466
    • Просмотр профиля
Неправильно. У вас вообще всё нараспашку открыто.
*filter
:INPUT ACCEPT [1039731694:728967618174]
:FORWARD ACCEPT [1491487668:1015196240921]
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
не подскажите как по фэн-шую сделать?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Сделать обратное от того, что указал AnrDaemon
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
с соответсвующими дополнительными правилами

Я ведь правильно разобрался что
-A POSTROUTING -s 172.16.0.5/32 ! -d 172.16.0.5/32 -j MASQUERADE
это открытие всех портов для ip-адреса 172.16.0.5?
Нет неправильно. Действие MASQUERADE не несёт функцию фильтрации (на это намекает название таблицы nat, которое явно отличается от названия другой таблицы - filter).

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Понял, спасибо. Это я сделаю
(Нажмите, чтобы показать/скрыть)
Можете пожалуйста для примера дать 3 правила
1. Открытие всех портов на ip адресе
2. Открытие только определенных портов
3. Добавить ip-адрес в исключение правила
-A PREROUTING -i eth1 -p tcp -m multiport --dports 80,8080 -j REDIRECT --to-ports 3128
т.е. чтобы трафик не заворачивал на порт 3128

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Это не форум телепередачи "Угадай мелодию". Все эти простейшие действия расписаны в iptables tutorial и даже с примерами, что говорит о том, что  Вы даже не пытались разобраться.
Могу предложить Вам изучить работу netfilter по этой ссылочке. У меня именно на этой статье, в своё время, карма расчистилась. Времени на изучение займёт не очень много (не больше часа), но зато не будете простейшие вопросы задавать.

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Спасибо за статью, вроде разобрался но лучше перестрахуюсь и уточню.
Для открытия портов используется команда:
iptables -A INPUT -s 172.16.0.21/32 -m multiport --dports 22,8080,139,445 -j ACCEPT
Если нужно указать подсеть то меняем число посоле "/"
Для исключения заворачинания трафика я просто должен первым правилом указать открытие 80-го порта для нужного адреса а потом уже писать правило заворачивания на порт прокси да?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Я не понял, что Вы хотите исключить от чего.
Представьте пакет со соответсвующими парметрами (-s, -d, -sport, -dport), смотрите на картинку схемы netfilter  и "ведите" свой пакет по ней, учитывая Ваши правила. Сразу поймёте где может быть засада.

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
ну например мне нужно чтобы на ip 172.16.0.41 трафик шел не через прокси сервер а попадая на порт 80 уходил во вне. Т.е. мне надо открыть для него 80-ый порт и сделать маскарад, а потом уже написать редирект. Вот так да?

(Нажмите, чтобы показать/скрыть)

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
У Вас каша в голове или Вы выражаетесь неправильно.
Если траффик идёт ЧЕРЕЗ шлюз, то он никак не попадает в цепочку INPUT. Он будет идти по цепочке FORWARD. Вы же в описании ситуации собрали всё - с, на, через.
Мы же не знаем, что это за 172.16.0.41. Кто это? Хост внутри локальной сети, или один из интерфейсов самого шлюза? И траффик по 80-му порту идёт от этого хоста (организован http-сервер для полльзователей интернета) или в его сторону извне (пользователь хоста читает этот форум)
Внимательней смотрите на картинку.

 

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