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


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

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

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

Оффлайн AlwaysHungry

  • Автор темы
  • Новичок
  • *
  • Сообщений: 49
    • Просмотр профиля
Помогите с настройкой iptables
« : 05 Сентября 2011, 19:39:44 »
Доброго времени суток!
Есть некоторые проблемы с настройкой iptables.
Имеется сервер, 2 интерфейса.
eth0 - смотрит в локалку
eth1 - смотрит в сеть провайдера.
На eth1 поднимается PPPoE соединение для доступа в инет ppp0.
Начал писать правила и тут же уперся.
Все приводить не буду, так как все правила построены по одному принципу. Если я разберусь, где накосячил в одном месте, разберусь, где ошибки в другом.
Правила пишу в первый раз в жизни, поэтому просьба ткнуть носом, в чем не прав!
Итак:

#!/bin/sh
PORTS="1024:65535"
IPT="/sbin/iptables"

echo 1 > /proc/sys/net/ipv4/ip_forward

# Очистка правил
$IPT -F
$IPT -X
   
# Политики по умолчанию (режем все)
$IPT -P INPUT    DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT   DROP

# Включаю маскарад
$IPT -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Разрешаем пользоваться DNS провайдера
$IPT -A OUTPUT -p udp -m udp --dport 53 -d $DNS_IP1 --sport $PORTS -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 53 -d $DNS_IP1 --sport $PORTS -j ACCEPT
$IPT -A OUTPUT -p udp -m udp --dport 53 -d $DNS_IP2 --sport $PORTS -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 53 -d $DNS_IP2 --sport $PORTS -j ACCEPT


$IPT -A INPUT -p udp -m udp --dport $PORTS -s $DNS_IP1 --sport 53 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --dport $PORTS -s $DNS_IP1 --sport 53 -j ACCEPT
$IPT -A INPUT -p udp -m udp --dport $PORTS -s $DNS_IP2 --sport 53 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --dport $PORTS -s $DNS_IP2 --sport 53 -j ACCEPT

# Разрешаем доступ к серверу VPN

$IPT -A INPUT  -s $VPN_IP -j ACCEPT
$IPT -A OUTPUT -d $VPN_IP -j ACCEPT

Может все это неэлегантно и по-ламерски, но это работает.
Проблемы дальше:

# 1.1 Доступ в Интернет по протоколу SMTP
# Администратор
$IPT -A FORWARD -p tcp -m tcp -s $ADMIN_IP --dport 25 --sport $PORTS -j ACCEPT
$IPT -A FORWARD -p tcp -m tcp -d $ADMIN_IP --dport $PORTS --sport 25 -j ACCEPT ! --syn

Это не работает! В чем косяк?

Далее...

Это:

# 4. Доступ к серверу через SSH клиент (22) (только с машины админа)
$IPT -A OUTPUT -p tcp -m tcp -d $ADMIN_IP --sport 22 --dport $PORTS -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -s $ADMIN_IP --sport $PORTS --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp -o $ADMIN_IP --sport 22 --dport 1020:1023 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp -i $ADMIN_IP --sport 1020:1023 --dport 22 -j ACCEPT

и это:

# 7. Разрешаем доступ к DHCP-серверу из локалки
$IPT -A OUTPUT -p udp -m udp -o eth0 --sport 67 --dport 68 -j ACCEPT
$IPT -A INPUT -p udp -m udp -i eth0 --sport 68 --dport 67 -j ACCEPT

работает. То есть, я со своего компа доступ к серваку получаю (точнее, установленное ssh-соединение не обрывается при применении правил), ip в локалку раздаются. Хотя не исключено, что айпишники пользуются старые, пока lease-time не истекло, это еще буду уточнять.

А вот это:

# 3. Доступ к локальному веб-серверу - из локальной сети всем
$IPT -A OUTPUT -p tcp -m tcp -o eth0 --dport $PORTS --sport 80 -j ACCEPT
$IPT -A INPUT  -p tcp -m tcp -i eth0 --dport 80 --sport $PORTS -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp -o eth0 --dport $PORTS --sport 443 -j ACCEPT
$IPT -A INPUT  -p tcp -m tcp -i eth0 --dport 443 --sport $PORTS -j ACCEPT

не работает! То есть, при попытке войти на локальный веб-сервер, молчит как рыба об лед.

В чем я не прав?

Пользователь решил продолжить мысль 05 Сентября 2011, 19:40:54:
Забыл добавить, сервак под Ubuntu 10.10 Server

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Помогите с настройкой iptables
« Ответ #1 : 05 Сентября 2011, 19:59:29 »
нахрена фильтровать OUTPUT?
1.прекратите заниматься мозговым онанизмом.
2.для установленных соединений есть замечательное правило
iptables -t filter -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
читайте в инете iptables-tutorial после чего man iptables

Оффлайн AlwaysHungry

  • Автор темы
  • Новичок
  • *
  • Сообщений: 49
    • Просмотр профиля
Re: Помогите с настройкой iptables
« Ответ #2 : 05 Сентября 2011, 20:04:51 »
нахрена фильтровать OUTPUT?
1.прекратите заниматься мозговым онанизмом.
2.для установленных соединений есть замечательное правило
iptables -t filter -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
читайте в инете iptables-tutorial после чего man iptables
Фильровать OUTPUT нужно для того, чтобы те, кому не положено, к примеру SMTP, не могли создавать установленные соединения, которые свистом пролетят по правилу в п.2.

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: Помогите с настройкой iptables
« Ответ #3 : 06 Сентября 2011, 05:39:29 »
owner
       This  module  attempts  to  match various characteristics of the packet
       creator, for locally generated packets. This match is only valid in the
       OUTPUT and POSTROUTING chains. Forwarded packets do not have any socket
       associated with them. Packets from kernel threads do have a socket, but
       usually no owner.

       [!] --uid-owner username

       [!] --uid-owner userid[-userid]
              Matches if the packet socket's file structure (if it has one) is
              owned by the given user. You may also specify a  numerical  UID,
              or an UID range.

       [!] --gid-owner groupname

       [!] --gid-owner groupid[-groupid]
              Matches  if  the  packet socket's file structure is owned by the
              given group.  You may also specify a numerical  GID,  or  a  GID
              range.


 

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