LINUX.ORG.RU
ФорумAdmin

iptables


0

0

Дано: LOCAL_IP интернет сервер и рабочая станция; REMOTE_IP рабочая станция в локальной сети

нужно дать возможность рабочей ст. в локал сети поюзать инет www, smtp и pop. и на самом сервере нужен инет.

Решение ниже

Проблема на самом сервере не могу выйти в инет :=)

Можно ли покороче сработать (см ниже)?

$IP -P INPUT DROP $IP -A INPUT -p ALL -i eth0 -s "$REMOTE_IP" -j ACCEPT $IP -A INPUT -p ALL -d "$LO_IP" -j ACCEPT $IP -A INPUT -p ALL -d "$LOCAL_IP" -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport 25 -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport 110 -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport www -j ACCEPT

$IP -P FORWARD DROP $IP -A FORWARD -i eth0 -j ACCEPT $IP -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IP -P OUTPUT DROP $IP -A OUTPUT -p ALL -s "$LO_IP" -j ACCEPT $IP -A OUTPUT -p ALL -s "$LOCAL_IP" -j ACCEPT $IP -A OUTPUT -p ALL -s "$INET_IP" -j ACCEPT

$IP -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source "$LOCAL_IP"

anonymous

вопрошающий корректно отформатировал

$IP -A INPUT -p ALL -i eth0 -s "$REMOTE_IP" -j ACCEPT
$IP -A INPUT -p ALL -d "$LO_IP" -j ACCEPT
$IP -A INPUT -p ALL -d "$LOCAL_IP" -j ACCEPT
$IP -A INPUT -p TCP -d "$INET_IP" --dport 25 -j ACCEPT
$IP -A INPUT -p TCP -d "$INET_IP" --dport 110 -j ACCEPT
$IP -A INPUT -p TCP -d "$INET_IP" --dport www -j ACCEPT



$IP -P FORWARD DROP
$IP -A FORWARD -i eth0 -j ACCEPT
$IP -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


$IP -P OUTPUT DROP
$IP -A OUTPUT -p ALL -s "$LO_IP" -j ACCEPT
$IP -A OUTPUT -p ALL -s "$LOCAL_IP" -j ACCEPT
$IP -A OUTPUT -p ALL -s "$INET_IP" -j ACCEPT


$IP -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source "$LOCAL_IP"

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

А если в инпут добавить RELATED,ESTABLISHED? Причем (и в форварде тоже) первым правилом?

Кстати, на OUTPUT можно и ACCEPT ставить по умолчанию -- если, конечно, Вы не ожидаете немедленного появления там злобного трояна.

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

Если я правильно понял задачу (а понял я ее так:
есть сервер, на коем мы собственно и вводим все эти команды. Он должен отбиваться от враждебного инета и пропускать в него рабочую станцию, а также ходить в интернет сам
), то

# дропать все, кроме того, что пропускать :)
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -jACCEPT

# пропустить рабочую станцию наружу, но только по трем портам
iptables -A FORWARD --proto tcp -s "$REMOTE_IP" --dport 25 -j ACCEPT
iptables -A FORWARD --proto tcp -s "$REMOTE_IP" --dport 80 -j ACCEPT
iptables -A FORWARD --proto tcp -s "$REMOTE_IP" --dport 110 -j ACCEPT

# дропать все, кроме того, что пропускать :)
iptables -P INPUT DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -jACCEPT

# пропустить интерфейс lo -- я как-то раз его забыл
iptables -A INPUT -i lo -j ACCEPT

# это скорее про запас, на случай прокси-сервера, ссш и т.п.
iptables -A INPUT -p ALL -i eth0 -s "$REMOTE_IP" -j ACCEPT

# выпускаем всех -- почти безопасно и довольно удобно
iptables -P OUTPUT ACCEPT

# НАТ оставляем как было
iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source "$LOCAL_IP"
В общем, я бы сделал так. YMMV.

P.S. Может, в фак добавить вопрос "как настроить iptables"? Или он уже там?.. А то iptables-tutorial на opennet'е здоровый больно.

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

>Re: iptables >А если в инпут добавить RELATED,ESTABLISHED? Причем (и в форварде тоже) >первым правилом?

в INPUT хватило правила. $IP -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Спасибо!!!

>Кстати, на OUTPUT можно и ACCEPT ставить по умолчанию -- если, конечно, >Вы не ожидаете немедленного появления там злобного трояна. >lodin * (*) (04.02.2007 0:13:28)

А НЕ ПОМОЖИТЕ РАЗОБРАТЬСЯ!!!

Что возникают подозрения что локалке не прикрыл нужные порты. Следуя вашей логике транзитный трафик подчиняется правилам:

$IP -P FORWARD DROP # все прибить $IP -A FORWARD -i eth0 -j ACCEPT # из локалки пропускать все $IP -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # принимать уже известные пакеты

и

$IP -t nat -A PREROUTING -i ppp0 -s 192.168.3.0/24 -j DROP $IP -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source "$INET_IP" # преобразование адресов

Остальные правила транзитному трафику пофигу.

А прикрыл только себе на сервере порты :-) :

$IP -P INPUT DROP $IP -A INPUT -p ALL -i eth0 -s "$REMOTE_IP" -j ACCEPT $IP -A INPUT -p ALL -d "$LO_IP" -j ACCEPT $IP -A INPUT -p ALL -d "$LOCAL_IP" -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport 25 -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport 110 -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport www -j ACCEPT

открыв почту и веб.

А вот это я содрал из умной книги и не втыкаю как это защитит от трояна и злоумыленика:

$IP -P OUTPUT DROP $IP -A OUTPUT -p ALL -s "$LO_IP" -j ACCEPT $IP -A OUTPUT -p ALL -s "$LOCAL_IP" -j ACCEPT $IP -A OUTPUT -p ALL -s "$INET_IP" -j ACCEPT

Ведь троян поидет работать с сервера LOCAL_IP или LO_IP а эти правила ему дают возможность развернуться.

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

>Re: iptables >А если в инпут добавить RELATED,ESTABLISHED? Причем (и в форварде тоже) >первым правилом?

в INPUT хватило правила. $IP -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Спасибо!!!

>Кстати, на OUTPUT можно и ACCEPT ставить по умолчанию -- если, конечно, >Вы не ожидаете немедленного появления там злобного трояна. >lodin * (*) (04.02.2007 0:13:28)

А не подскажите!!!

Что возникают подозрения что локалке не прикрыл нужные порты. Следуя вашей логике транзитный трафик подчиняется правилам:

$IP -P FORWARD DROP # все прибить $IP -A FORWARD -i eth0 -j ACCEPT # из локалки пропускать все $IP -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # принимать уже известные пакеты

и

$IP -t nat -A PREROUTING -i ppp0 -s 192.168.3.0/24 -j DROP $IP -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source "$INET_IP" # преобразование адресов

Остальные правила транзитному трафику пофигу.

А прикрыл только себе на сервере порты :-) :

$IP -P INPUT DROP $IP -A INPUT -p ALL -i eth0 -s "$REMOTE_IP" -j ACCEPT $IP -A INPUT -p ALL -d "$LO_IP" -j ACCEPT $IP -A INPUT -p ALL -d "$LOCAL_IP" -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport 25 -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport 110 -j ACCEPT $IP -A INPUT -p TCP -d "$INET_IP" --dport www -j ACCEPT

открыв почту и веб.

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