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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: HOWTO: Iptables для новичков  (Прочитано 521663 раз)

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

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2040 : 07 Декабря 2014, 20:22:00 »
По третьему разу? Увольте.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн stronger12

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2041 : 09 Декабря 2014, 09:24:40 »
Добрый день на сервере 4 внешних ip: eth0 92.42.150.200 eth0:0 92.42.150.201 eth0:1 92.42.150.202 eth0:2 92.42.150.203

есть клиент с ip 92.42.150.100

и есть сервер с ip 92.42.150.5 и портом 999

нужно чтобы клиент мог попадать на порт сервера под разными ip
к примеру при соединении 92.42.150.200:2222 -> 92.42.150.5:999 и ip клиента стал 92.42.150.200
к примеру при соединении 92.42.150.201:2223 -> 92.42.150.5:999 и ip клиента стал 92.42.150.201 и т.д.

пока пришёл к такому:
iptables -t nat -A PREROUTING --dst 92.42.150.200 -p tcp --dport 2222 -j DNAT --to-destination 92.42.150.5:999
iptables -t nat -A POSTROUTING --dst 92.42.150.5 -p tcp --dport 999 -j SNAT --to-source 92.42.150.200
iptables -I FORWARD 1 -i eth0 -o eth0 -d 92.42.150.200 -p tcp -m tcp --dport 2222 -j ACCEPT

но как сделать правила для остальных?
Спасибо за помощь
man наше всё, маркировкой решилось
« Последнее редактирование: 09 Декабря 2014, 13:47:39 от stronger12 »

Оффлайн thunderamur

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6844
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2042 : 09 Декабря 2014, 14:12:56 »
Со временем, изменения, внесённые в conntrack, были портированы и в state, после чего conntrack стал просто алиасом state для сохранения обратной совместимости на время переходного периода.

противоречит этому

state является алиасом(!!, не отдельным модулем) conntrack уже лет шесть, если не больше.

Причем 2-е высказывание верно, нужно юзать conntrack. state помечен как устаревший.
Мне стало интересно, загуглил... Поэтому alexxnight докапывается до тебя.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2043 : 09 Декабря 2014, 14:33:29 »
В любом случае педивикая не является аргументом.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн mivimex

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2044 : 15 Января 2015, 16:32:07 »
Добрый день, друзья.
Помогите пжта разобраться с модулем conntrack..
Есть сервер доступа с двумя интерфейсами: eth0 (192.168.1.150) и tun0 (openvpn)

Почему-то первое же правило в цепочке INPUT:
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
пропускает входящие соединения (ssh, openvpn), хотя должно работать только для установленных сессий.

В таблице conntrack есть соответствующие записи:
#conntrack -L conntrack
tcp      6 431582 ESTABLISHED src=192.168.1.60 dst=192.168.1.150 sport=60018 dport=22 src=192.168.1.150 dst=192.168.1.60 sport=22 dport=60018 [ASSURED] mark=0 use=1
tcp      6 299 ESTABLISHED src=192.168.1.150 dst=192.168.1.60 sport=22 dport=40386 src=192.168.1.60 dst=192.168.1.150 sport=40386 dport=22 [ASSURED] mark=0 use=1
udp      17 179 src=192.168.1.150 dst=195.46.xxx.xxx sport=5000 dport=2052 src=195.46.133.186 dst=192.168.1.150 sport=2052 dport=5000 [ASSURED] mark=0 use=1

Вот настройки фильтра:

# Completed on Thu Jan 15 16:15:46 2015
# Generated by iptables-save v1.4.19.1 on Thu Jan 15 16:15:46 2015
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [50:20020]
[45:2628] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -s 127.0.0.1/32 -j ACCEPT
[0:0] -A INPUT -s 192.168.1.0/24 -d 192.168.1.150/32 -p tcp -m tcp --dport 22 -j ACCEPT
[1:42] -A INPUT -d 192.168.1.150/32 -i eth0 -p udp -m udp --dport 5000 -j ACCEPT
[0:0] -A INPUT -i tun0 -p tcp -m tcp --dport 22 -j ACCEPT
[0:0] -A INPUT -i tun0 -m limit --limit 10/hour -j LOG --log-prefix "TUNin!!!"
[0:0] -A INPUT -i tun0 -j DROP
[0:0] -A INPUT -d 192.168.1.150/32 -m limit --limit 10/hour -j LOG --log-prefix "ETH0in!!"
[3:234] -A INPUT -j DROP
....

Ткните пжта меня в ошибку..

Спасибо.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2045 : 15 Января 2015, 20:03:28 »
Добрый день, друзья.
Помогите пжта разобраться с модулем conntrack..
Есть сервер доступа с двумя интерфейсами: eth0 (192.168.1.150) и tun0 (openvpn)

Почему-то первое же правило в цепочке INPUT:
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
пропускает входящие соединения (ssh, openvpn), хотя должно работать только для установленных сессий.
Ничего оно не пропускает кроме того, что заявлено в правиле.

Цитировать
В таблице conntrack есть соответствующие записи:
Ну, раз есть записи, значит, всё правильно работает.

Цитировать
Вот настройки фильтра:

# Completed on Thu Jan 15 16:15:46 2015
# Generated by iptables-save v1.4.19.1 on Thu Jan 15 16:15:46 2015
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [50:20020]
[45:2628] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -s 127.0.0.1/32 -j ACCEPT
Почему не
-A INPUT -i lo -j ACCEPT
?
Вы разрешаете 127.0.0.1, а что будете делать, когда пойдёт соединения с 127.0.1.1 ?

Цитировать
[0:0] -A INPUT -s 192.168.1.0/24 -d 192.168.1.150/32 -p tcp -m tcp --dport 22 -j ACCEPT
А вот и ваш SSH.

Цитировать
[1:42] -A INPUT -d 192.168.1.150/32 -i eth0 -p udp -m udp --dport 5000 -j ACCEPT
[0:0] -A INPUT -i tun0 -p tcp -m tcp --dport 22 -j ACCEPT
[0:0] -A INPUT -i tun0 -m limit --limit 10/hour -j LOG --log-prefix "TUNin!!!"
[0:0] -A INPUT -i tun0 -j DROP
[0:0] -A INPUT -d 192.168.1.150/32 -m limit --limit 10/hour -j LOG --log-prefix "ETH0in!!"
[3:234] -A INPUT -j DROP
Зачем этот идиотизм? У вас и так уже -P DROP

Цитировать
Ткните пжта меня в ошибку..

Спасибо.
Не вижу ошибки, работает так, как вы запрограммировали.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн mivimex

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2046 : 15 Января 2015, 22:48:01 »
<quote>
[0:0] -A INPUT -s 192.168.1.0/24 -d 192.168.1.150/32 -p tcp -m tcp --dport 22 -j ACCEPT
А вот и ваш SSH.
</quote>

так беда в том, что если это правило закомментировать, то доступ по ssh все равно есть, т.е. самое первое правило (-m conntrack) пропускает входящий трафик.

и если сразу после первого правила (-m conntrack) ставлю правила, дропающие входящие ovpn-соединения, то в логах все равно вижу ovpn-события..

Завтра подкреплю слова логами

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2047 : 15 Января 2015, 22:54:50 »
Давайте, подкрепляйте. Только удалённо этого не делаете, к консоли всё равно бежать придётся.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн mivimex

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2048 : 16 Января 2015, 10:24:49 »
Спасибо, разобрался..

Дело в том, что после того, как я закомментировал --dport 22 -j ACCEPT и перезагрузил фильтр, доступ по ssh и текущие ovpn-сессии не отваливались (т.к. было соответствие в conntrack), а отвалился он после перезапуска ssh-сессии, ovpn-сервиса и очистки conntrack -F (я это не проверил)

Спасибо за помощь!

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2049 : 16 Января 2015, 16:32:36 »
Не надо ничего чистить, достаточно было попытаться установить НОВОЕ подключение после удаления разрешающего правила.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн icekream123

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2050 : 16 Января 2015, 16:46:21 »
Добрый день
Имеется Asterisk  с тремя интерфейсами:
eth0 инет
eth1 локалка
eth2 входящая линия

Вот что я навоял
# Generated by iptables-save v1.4.7 on Fri Jan 16 16:08:10 2015
*filter
:INPUT DROP [173:47348]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [183:68291]
:fail2ban-BadBots - [0:0]
:fail2ban-FTP - [0:0]
:fail2ban-PBX-GUI - [0:0]
:fail2ban-SIP - [0:0]
:fail2ban-SSH - [0:0]
:fail2ban-apache-auth - [0:0]
:fail2ban-recidive - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -i eth2 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -f -j DROP
[color=red]-A INPUT -i eth0 -p tcp -m tcp -s 80.75.130.134 -- dport 5060 -j ACCEPT[/color]
-A INPUT -i eth0 -p udp -m udp -s 80.75.130.134 -- dport 5060 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp -s 78.41.192.0/21  --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp -s 78.41.192.0/21 --dport 80 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp -s 78.41.192.0/21 --dport 5060 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp -s 78.41.192.0/21 --dport 5060 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp -s 80.75.130.134 -- dport 10000:20000 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp -s 78.41.192.0/21 -- dport 10000:20000 -j ACCEPT
COMMIT
iptables ругается на выделенную строку
Цитировать
service iptables restart
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore v1.4.7: unknown arguments found on commandline
Error occurred at line: 18
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
                                                           [FAILED]
Подскажите что не так :'(

Оффлайн mivimex

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2051 : 16 Января 2015, 17:41:24 »
лишний пробел в -- dport

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28510
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2052 : 16 Января 2015, 17:44:16 »
Правило
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
перепишите на
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
и поставьте первым.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн icekream123

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2053 : 19 Января 2015, 10:33:40 »
Спасибо mivimex действительно был лишний пробел :-[
Спасибо за подсказку, всё получилось :D

Оффлайн Lihodey

  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Re: HOWTO: Iptables для новичков
« Ответ #2054 : 21 Января 2015, 19:59:33 »
Привет! Можно меня ткнуть носом, в какой-нибудь справочник?
Вопрос такой:
-----------------------
# допустим я напишу так

$iptables -L -n -v
-----------------------
И это можно запихнуть в скрипт и будет работать.
Но если правило сохранить. То содержимое файла приобретает другой формат.
Как использовать вот такие инструкции? - $IPT
Если сохранить настройки iptables в файл, то получаются команды другого формата.
Почему так и как правильно редактировать такие файлы? Как сделать так что бы они выполнялись?
Где про это можно почитать?
Мне вообще хочется понять принцип работы, кругом одни пошаговые инструкции,
без объяснения зачем это вообще.
« Последнее редактирование: 21 Января 2015, 20:03:02 от Lihodey »

 

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