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


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

Автор Тема: Правило для iptables  (Прочитано 693 раз)

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

Оффлайн belijandrey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Правило для iptables
« : 21 Августа 2014, 12:51:58 »
Доброго времени суток.
Сразу скажу, что с Ubuntu я "на Вы и шёпотом".
В компании стоит прокси сервер Ubuntu 10.04 без интерфейса. Прописаны правила, которые закрывают доступ "снаружи" и направляют весь трафик через прокси сервер.

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -t nat -A  POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A  POSTROUTING -p tcp -d внешний_статический_ip --dport 15111 -j DNAT --to-destination 192.168.0.150:15111
iptables -t nat -A  POSTROUTING -p tcp -d внешний_статический_ip --dport 80 -j DNAT --to-destination 192.168.0.150:80
iptables -t nat -A  POSTROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 3128

iptables -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -p icmp -j ACCEPT

iptables -A INPUT -i ppp0 -j DROP

iptables -L -nv
iptables -t nat -L -nv

Прошу помощи в следующем:
1) Добавить правило для исключения определённого ip-адреса из прокси-сервера. (Чтобы доступ к интернету был неконтролируемым и не требовалась регистрация на прокси сервере).
2) Дайте совет по добавлению ещё каких-либо правил. Или этого вполне достаточно для безопасной работы?

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Правило для iptables
« Ответ #1 : 21 Августа 2014, 20:25:01 »
iptables -t nat -A  POSTROUTING -p tcp -d внешний_статический_ip --dport 15111 -j DNAT --to-destination 192.168.0.150:15111
iptables -t nat -A  POSTROUTING -p tcp -d внешний_статический_ip --dport 80 -j DNAT --to-destination 192.168.0.150:80
Честно говоря, я не совсем понимаю, что эти правила делают. Идея понятна, но реализация - нет

Прошу помощи в следующем:
1) Добавить правило для исключения определённого ip-адреса из прокси-сервера. (Чтобы доступ к интернету был неконтролируемым и не требовалась регистрация на прокси сервере).
iptables -t nat -A PREROUTING -s 192.168.0.XX -j ACCEPT
iptables -t nat -A POSTROUTINGPREROUTING -s 192.168.0.0/24 -p tcp --destination-port 80 -j REDIRECT --to-ports 3128

2) Дайте совет по добавлению ещё каких-либо правил. Или этого вполне достаточно для безопасной работы?
Я бы посоветовал
iptables -P FORWARD DROP
но перед этим нужно разрешить нужное.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Правило для iptables
« Ответ #2 : 21 Августа 2014, 20:33:25 »
Для начала хотелось бы увидеть все правила, прежде чем что-то советовать.
iptables-save
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн Vened

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
Re: Правило для iptables
« Ответ #3 : 21 Августа 2014, 21:19:10 »
Цитировать
1) Добавить правило для исключения определённого ip-адреса из прокси-сервера. (Чтобы доступ к интернету был неконтролируемым и не требовалась регистрация на прокси сервере).

ИМХО лучше политиками непосредственно проксика.

Оффлайн belijandrey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Правило для iptables
« Ответ #4 : 22 Августа 2014, 08:22:12 »

2) Дайте совет по добавлению ещё каких-либо правил. Или этого вполне достаточно для безопасной работы?
Я бы посоветовал
iptables -P FORWARD DROP
но перед этим нужно разрешить нужное.

Спасибо за подробный ответ!

"Разрешить нужное это" - Вы имеете в виду это:
 # Разрешаем  ICMP соединение. Значительная часть ICMP используется для передачи сообщений о
    # том, что происходит с тем или иным UDP или TCP соединением.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type source-quench -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type source-quench -j ACCEPT
   
    # Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT

    # Разрешаем передачу пакета - некорректный параметр - используется, если в заголовке пакета содержится недопустимая запись,
    # или если контрольная сумма заголовка не соответствует контрольной сумме, указанной передающим узлом.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type parameter-problem -j ACCEPT

    # Запрещаем подключение к X серверу через сетевые интерфейсы.
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 -j DROP --syn
   
    # Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах:
    # $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports #порта
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 783
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 3310
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 10000
   
    # DNS сервер имен разрешаем.
    $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport $UNPRIPORTS --sport 53 -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCEPT
   
    # Разрешаем AUTH-запросы на удаленные сервера, на свой же компьютер - запрещаем.
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 113 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 113 -j ACCEPT ! --syn
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 113 -j DROP
   
    # Открываем некоторые порты:
   
    # SMTP клиент (25)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 25 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 25 -j ACCEPT ! --syn
   
    # POP3 клиент (110)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 110 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 110 -j ACCEPT ! --syn
   
    # IMAP4 клиент (143)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 143 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 143 -j ACCEPT ! --syn
   
    # SSH клиент (22)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 22 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport 1020:1023 -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1020:1023 --sport 22 -j ACCEPT ! --syn
   
    # FPT клиент (21)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 21 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 21 -j ACCEPT ! --syn
   
    # HTTP/HTTPS клиент (80, 443)
    $IPT -A OUTPUT -p tcp -m tcp -m multiport -o $INET_IFACE --sport $UNPRIPORTS -j ACCEPT --dports 80,443
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport $UNPRIPORTS -j ACCEPT --sports 80,443 ! --syn

Оффлайн bukass

  • Активист
  • *
  • Сообщений: 976
    • Просмотр профиля
Re: Правило для iptables
« Ответ #5 : 22 Августа 2014, 08:37:00 »
belijandrey,
Дай вывод команды. Просят тебя... sudo iptables-save
Всем пора в Изумрудный город, кому за умом, кому за сердцем.

Оффлайн belijandrey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Правило для iptables
« Ответ #6 : 22 Августа 2014, 09:34:31 »
belijandrey,
Дай вывод команды. Просят тебя... sudo iptables-save

Этого сделать не могу.
Все правила из iptables переписал выше.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Правило для iptables
« Ответ #7 : 22 Августа 2014, 09:50:10 »
Тогда ничем помочь вам не можем.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Правило для iptables
« Ответ #8 : 22 Августа 2014, 10:21:57 »
Все правила из iptables переписал выше.
Вы показываете не правила, а команды которыми Вы загружаете новые правила. А что там помимо Вашего желания появляется...

Оффлайн belijandrey

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Правило для iptables
« Ответ #9 : 22 Августа 2014, 11:19:46 »
D
Все правила из iptables переписал выше.
Вы показываете не правила, а команды которыми Вы загружаете новые правила. А что там помимо Вашего желания появляется...

Вот iptables-save

https://yadi.sk/i/4ytNMZcoaDBnP

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Правило для iptables
« Ответ #10 : 22 Августа 2014, 11:51:36 »
Текстовую информацию, пожалуйста, предоставляйте в виде текста.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

 

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