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 то автоматически открываются все порты! Уже несколько дней ломаю голову, в чем может быть проблема?



Последнее исправление: R12 (всего исправлений: 1)

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 ★★★★★
()
Ответ на: комментарий от 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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.