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


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

Автор Тема: Помогите с iptables  (Прочитано 4053 раз)

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

Оффлайн arma

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Помогите с iptables
« : 13 Апреля 2012, 09:39:13 »
Народ, я в этом плохо разбираюсь, и обязательно почитаю и разберусь, но сейчас мне срочно нужно настроить... не откажите в помощи

имеется eth0 eth1 eth2, где eth0 инет, остальные локалки. Настроил сквид, завернул 80 на него. Сделал натирование:
# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети1 наружу
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

# Разрешаем доступ из внутренней сети2 наружу
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT

# Разрешаем доступ из сети1 в сеть2 и наоборот
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT

# Включаем NAT.
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.10.0/24 -j MASQUERADE

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth1 -j REJECT
iptables -A FORWARD -i eth0 -o eth2 -j REJECT

# Заворачиваем http1 на прокси
# Заворачиваем http2 на прокси
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

Сейчас весь трафик пролетает из локалки насквозь по любым портам.
Мне нужно закрыть все порты и открыть несколько (почта, аська работает, торент нет)

Покопался на форуме, делаю так:
# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

#========mymodify_begin
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -o eth2 -m state --state NEW -p tcp --dport 443 -j ACCEPT
#========mymodify_end

# Разрешаем доступ из сети1 в сеть2 и наоборот
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT

# Включаем NAT.
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.10.0/24 -j MASQUERADE

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth1 -j REJECT
iptables -A FORWARD -i eth0 -o eth2 -j REJECT

iptables -P FORWARD DROP
# Заворачиваем http на прокси
# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

не работает :(
ну я не только так делал, как только я не делал... отчаялся почти, а завтра нужно предоставить готовый сервак. Помогите пожалуйста!
« Последнее редактирование: 13 Апреля 2012, 09:41:10 от arma »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #1 : 13 Апреля 2012, 09:46:42 »
Например так:
Цитировать
# Включаем NAT.
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -p tcp -m multiport --dports 25,110,5190 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.10.0/24 -p tcp -m multiport --dports 25,110,5190 -j MASQUERADE

Может с синтаксисом немного накосячил, но так мне тоже некогда...

Оффлайн arma

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #2 : 13 Апреля 2012, 10:44:22 »
То есть я делаю
# Разрешаем Запрещаем доступ из внутренней сети1(10.0.1.0/24) наружу
iptables -A FORWARD -i eth1 -o eth0 -j REJECT
и после
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -p tcp -m multiport --dports 25,110,5190 -j MASQUERADE

не работает :( все порты закрыты, но прокся работает, с 80 на 3128 проходит
« Последнее редактирование: 13 Апреля 2012, 10:47:05 от arma »

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #3 : 13 Апреля 2012, 10:49:25 »
Гражданин! У Вас в цепочке FORWARD, таблицы filter политика  - DROP! Причём в скрипте два раза.
А вы в довесок еще REJECT'ите eth0, eth1 и eth2. О какой работе вообще может идти речь?
« Последнее редактирование: 13 Апреля 2012, 10:59:19 от KT315 »
OpenWrt 19.07

Оффлайн S@nt@S

  • Участник
  • *
  • Сообщений: 244
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #4 : 13 Апреля 2012, 10:53:36 »
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -p tcp -m multiport --dports 25,110,5190 -j MASQUERADE
Копипаст не всегда помогает решить задачу, надо смотреть что в примере написано
Порты пропиши нужные
По теме вроде 80-й надо указать

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #5 : 13 Апреля 2012, 11:01:05 »
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -p tcp -m multiport --dports 25,110,5190 -j MASQUERADE
Копипаст не всегда помогает решить задачу, надо смотреть что в примере написано
Что не так с выделенным?
По теме вроде 80-й надо указать
Не надо.
OpenWrt 19.07

Оффлайн arma

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #6 : 13 Апреля 2012, 11:21:02 »
Гражданин! У Вас в цепочке FORWARD, таблицы filter политика  - DROP!
А вы в довесок еще REJECT'ите eth1 и eth0. О какой работе вообще может идти речь?

не не, то я убрал. Я не гражданин а слепой котёнок...
вот как выглядит полностью:

# Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# Разрешаем трафик на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем доступ из внутренней сети1 наружу
iptables -A FORWARD -i eth1 -o eth0 -j REJECT

# Разрешаем доступ из внутренней сети2 наружу
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT

# Разрешаем доступ из сети1 в сеть2 и наоборот
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT

# Включаем NAT.
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.10.0/24 -j MASQUERADE

# Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth1 -j REJECT
iptables -A FORWARD -i eth0 -o eth2 -j REJECT


# Заворачиваем http на прокси
# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -p tcp -m multiport --dports 25,110,5190 -j MASQUERADE

80 порт натируется, но это внутри самого сервака, а вот 25,110... то есть телнетом с экспериментальной тачки не проходит

не, что-то я намудрил, щас по другому попробую
« Последнее редактирование: 13 Апреля 2012, 11:22:56 от arma »

Оффлайн S@nt@S

  • Участник
  • *
  • Сообщений: 244
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #7 : 13 Апреля 2012, 11:24:01 »
Как-то так
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 13 Апреля 2012, 11:40:31 от S@nt@S »

Оффлайн arma

  • Автор темы
  • Новичок
  • *
  • Сообщений: 38
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #8 : 13 Апреля 2012, 12:17:06 »
iptables - это круть!  Буду изучать.
Спасибо за труд!

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #9 : 13 Апреля 2012, 21:14:18 »
касательно
iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -p tcp -m multiport --dports <порт>,<порт> -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.10.0/24 -p tcp -m multiport --dports <порт>,<порт> -j MASQUERADE

вся фильтрация должна осуществляться в таблице filter и нехер изобретать грабли, люди потом наступать будут.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #10 : 13 Апреля 2012, 22:17:15 »
Полностью согласен. Признаюсь, я не вникал глубоко в скрипт ТС. Просмотрел даже не прокручивая скролл, внизу оказались правила маскарада. Не мудрствуя лукаво там и порезал. А товарищ импровизировал.
Конечно-же фильтрацию надо делать в таблицу filter

Оффлайн VorоN

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #11 : 14 Апреля 2012, 15:58:10 »
Вот я тоже не могу понять, в какую сторону смотреть. В общем есть сервер, на нем eth0 (192.168.1.2) смотрит на адсл модем (192.168.1.1), eth1 (10.0.0.1) смотрит в локалку (10.0.0.0/24), ppp1 (со статическим IP) поднимает соединение с интернетом. Стоит squid, настроен NAT
(Нажмите, чтобы показать/скрыть)
Все работает, интернет есть на всех машинах. Так же на этом сервере поднят VPN сервер (10.0.1.1). На клиентской машине VPN подключается (получает IP 10.0.1.200), но не видит ни один компьютер в сети, кроме сервера. (Надо подключаться к одной машине по RDP 10.0.0.144). При попытке пинговать, вот что имеем:
Обмен пакетами с 10.0.0.144 по 32 байт:

Ответ от 10.0.1.1: Заданный порт недоступен.
Ответ от 10.0.1.1: Заданный порт недоступен.
Ответ от 10.0.1.1: Заданный порт недоступен.
Ответ от 10.0.1.1: Заданный порт недоступен.
10.0.0.1 пингуется нормально.
При трассировке:
Трассировка маршрута к 10.0.0.144 с максимальным числом прыжков 30

  1    48 ms    48 ms    49 ms  10.0.1.1
  2  10.0.1.1  сообщает: Заданный протокол недоступен.

Трассировка завершена.

iptables -vnL
iptables -vnL
Chain INPUT (policy ACCEPT 1936 packets, 227K bytes)
 pkts bytes target     prot opt in     out     source               destination
  57M   33G ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0   

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  67M   18G ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0   
  68M   37G ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 REJECT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
    0     0 ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 REJECT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
23962 9279K ACCEPT     all  --  eth1   ppp0    0.0.0.0/0            0.0.0.0/0   
25615 3825K ACCEPT     all  --  ppp0   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
  138 10261 REJECT     all  --  ppp0   eth1    0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
    0     0 ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 REJECT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
2213K  518M ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
1738K  434M ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 REJECT     all  --  ppp1   eth1    0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 REJECT     all  --  ppp1   eth1    0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 REJECT     all  --  ppp1   eth1    0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   ppp1    0.0.0.0/0            0.0.0.0/0   
    0     0 ACCEPT     all  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT 1804 packets, 252K bytes)
 pkts bytes target     prot opt in     out     source               destination

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #12 : 14 Апреля 2012, 23:05:47 »
Как минимум route -n на клиенте и на 10.0.0.144 показывайте
А заодно все правила на сервере, а не выжимки
sudo iptabls-save
P.S. Неужели Вы сами не видите размножившиеся правила

Оффлайн aqis

  • Новичок
  • *
  • Сообщений: 46
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #13 : 15 Апреля 2015, 13:36:10 »
Дабы не плодить новую тему, задам свой вопрос в этой.
Цитировать
iptables -A FORWARD -m iprange --src-range 192.168.2.101-192.168.2.131 -p tcp --dport 443 -j REJECT
Здесь указано правило iptables для блокировки https трафика для диапазона IP адресов, мне нужно для одного.
Но когда я прописываю
Цитировать
iptables -A FORWARD -m  --source 192.168.1.2 -p tcp --dport 443 -j REJECT
выдаёт ошибку
Цитировать
* Running /etc/init.d/networking restart is deprecated because it may not enabl
 * Reconfiguring network interfaces...                                          iptables v1.4.12: Couldn't load match `--source':No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
Failed to bring up eth0.
Что я делаю не так и как это поправить?
Спасибо

p/s/ Весь конфиг выглядит так, сетевой интерфейс один.
Цитировать
.
# Включаем пересылку пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
# Разрешим проход трафика на loopback-интерфейсе
iptables -A INPUT -i lo -j ACCEPT
# Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT
# Включаем NAT.
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE
#Заворачиваем порты 80 и 8080 на порт SQUID 3128
iptables -t nat -A PREROUTING -i eth0 ! -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.254:3128
#Запрещаем https порты для СКФ
iptables -A FORWARD -m  --source 192.168.1.2 -p tcp --dport 443 -j REJECT



« Последнее редактирование: 15 Апреля 2015, 13:38:26 от aqis »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Помогите с iptables
« Ответ #14 : 15 Апреля 2015, 14:38:12 »
iptables -A FORWARD -m --source 192.168.1.2 -p tcp --dport 443 -j REJECT

 

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