LINUX.ORG.RU
решено ФорумAdmin

Debian 2 сетевые карты, раздача интернета, iptables

 ,


0

2

Перерыл много тем в интернете, но ничего не получается сделать. Собственно имеется система Debian 8.2 i386.Две сетевые карты (eth0 - интернет, eth1 - сеть).

auto eth0

iface eth0 inet static

address 192.168.0.2

netmask 255.255.255.0

gateway 192.168.0.1

auto eth1

iface eth1 inet static

address 192.168.2.100

netmask 255.255.255.0

Требуется для локальной сети запретить все порты кроме допустим 80,443.

#!/bin/sh

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

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i eth1 -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

iptables -A OUTPUT -o eth1 -j ACCEPT

iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATE D -j ACCEPT

IPTABLES -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

IPTABLES -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT

IPTABLES -A FORWARD -i eth0 -o eth1 -j REJECT

IPTABLES -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j MASQUERADE

Данный вариант не работает. Если добавляю в строчку IPTABLES -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT то автоматически открываются все порты! Уже несколько дней ломаю голову, в чем может быть проблема?


IPTABLES -A FORWARD -i eth1 -o eth0 -j -p tcp --dport 80 ACCEPT

Попробуйте поменять на

IPTABLES -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT

zaz ★★★★ ()
Ответ на: комментарий от zaz

Прошу прощения, не правильно было написано в первом посте.

IPTABLES -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT

В оригинале также как вы и предложили, но все равно не работает.

R12 ()

Требуется для локальной сети запретить все порты кроме допустим 80,443.

Надеюсь это про наружу

-A FORWARD -i eth1 -p all --dport 80 -j ACCEPT
-A FORWARD -i eth1 -j REJECT

как-то так. т.е. сначала разрешаем что хотим, а последним правилом запрещаем все.

anc ★★★★★ ()
Ответ на: комментарий от R12

Вродебы все правельно, а что именно не работает ? Если просто браузеры из локалки не могут открывать сайты то может проблема не в TCP трафике а в точ что в таком виде фаервол режит DNS и соотвецтвенно компьютеры в локальной сети не могут разрезолвить доменные имена.

Делали ли вы проверку из локальной сети телнетом ? Соединение устанавливается по IP или нет ? Если нет то с какой ошибкой и какое значение сщетчиков на фаерволе при этом (iptables -L -n -v)

zaz ★★★★ ()
Ответ на: комментарий от anc

Обшибся

-A FORWARD -i eth1 -p tcp --dport 80 -j ACCEPT
и т.д

anc ★★★★★ ()

Кстати, а с чего вы решили что не работает? телнетом? Если браузелом то вообще-то сейчас https сильно в моде, добавьте правило для 443 порта.
ЗЫ Вот так не рекомендую делать

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
точнее можно но только если вы админ локалхоста. В противном случае лучше в конце цепочек запрет поставить.

anc ★★★★★ ()
Ответ на: комментарий от zaz

Соединение не устанавливается - сбой подключения.

forward

13 пакетов - state related,established

0 пакетов - multiport 80,443

R12 ()
Ответ на: комментарий от kirezz

*nat

:PREROUTING ACCEPT [2004:143924]

:POSTROUTING ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MAQUERADE

*filter

:INPUT DROP [252:30966]

:FORWARD DROP [691:46345]

:OUTPUT DROP [0:0]

-A INPUT -i lo -j ACCEPT

-A INPUT -i eth1 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A FORWARD -m state — state RELATED,ESTABLISHED -j ACCEPT

-A FORWARD - i eth1 -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT

-A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-port-unreacheable

-A OUTPUT -o lo -j ACCEPT

-A OUTPUT -o eth1 -j ACCEPT

-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Если изменяю на

IPTABLES -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

то в выводе iptables-save изменяются

*nat

:PREROUTING ACCEPT [8:592]

*filter

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:OUTPUT DROP [0:0]

R12 ()
Ответ на: комментарий от R12

Вы написали : «Прошу прощения, не правильно было написано в первом посте.

IPTABLES -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j ACCEPT

В оригинале также как вы и предложили, но все равно не работает.» а в выхлопе iptables-save у вас эта же ошибка. Вы слепой?

voltmod ★★ ()
Ответ на: комментарий от R12

А zaz возможно действительно прав. Вы например вот так telnet 213.180.193.3 80 пробовали? И сравнить с telnet ya.ru 80
Если у клиентов dns какой-то из внешних прописан то надо еще и 53-й порт разрешить.

anc ★★★★★ ()
Ответ на: комментарий от anc

Попробовал открыть dns как в статье - https://toster.ru/q/55782

iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 --dport 1024:65535 -j ACCEPT

Проблема решилась. Всем спасибо.

R12 ()
Ответ на: комментарий от R12

Вот этим «iptables -A INPUT -p udp --dport 53 -j ACCEPT» ты открыл доступ к твоему серверу, т.е. не нужно если не держишь свои зоны .
А вот это «iptables -A OUTPUT -p udp --sport 53 --dport 1024:65535 -j ACCEPT» вообще забавно, вроде должно было работать и так, а вообще х.з. в преддверии НГ неохото заморачиватся, скажу проще весь OUTPUT выставляйте в ACCEPT если нет каких-то особых требований (это не только мой совет, это вообще-то во всех рекомендациях написано) смысла фильтровать то что мы же сами и отправляем нет.

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.