Перейти до

Поделитесь правилами


Гость Admin

Рекомендованные сообщения

тут есть немного описания про iptables для стг

http://local.com.ua/?op=46&s=19

Эти скрипты могут пропускать трафик для незаконченных сессий.

Надо чтобы политика по умолчанию в DROP была для FORWARD.

 

Если просто, то надо, чтобы в

Firewall:

 

/sbin/iptables -F; iptables -t nat -F; iptables -t mangle -F

/sbin/iptables -t filter -P FORWARD DROP

 

Включаем форвардинг и маскарадинг в:

OnConnect

 

iptables -t filter -A FORWARD -s $2 -j ACCEPT

iptables -t filter -A FORWARD -d $2 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth1 -s $2 -j MASQUERADE

 

И выключаем в:

OnDisconnect

 

iptables -t filter -D FORWARD -s $2 -j ACCEPT

iptables -t filter -D FORWARD -d $2 -j ACCEPT

iptables -t nat -D POSTROUTING -o eth1 -s $2 -j MASQUERADE

Ссылка на сообщение
Поделиться на других сайтах

В общем: есть шлюз (eth0 - смотрит в локалку 192.168.0.1, eth1 прямо в интернет хх.хх.хх.хх) на котором также крутится вэб-сервер, днс, почта и собственно, старгейзер.

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

Спасибо за отзывы!

Ссылка на сообщение
Поделиться на других сайтах

Izvinite 4to ne na kirilitze.

Vo pervyh nada firewall (to bish iptables) nastroit', pishem script "firewall":

<firewall>

#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward # forwarding paketov (esli eshe ne vkliu4en)

IPT="/usr/sbin/iptables"

ext_ip="xxx.xxx.xxx.xxx"

int_ip="yyy.yyy.yyy.yyy"

ext_if="eth0"

int_if="eth1"

 

## Clear all rules

$IPT -t filter -F

$IPT -t filter -X

$IPT -t nat -F

$IPT -t nat -X

 

$IPT -t filter -P INPUT DROP

$IPT -t filter -P FORWARD DROP

$IPT -t filter -P OUTPUT ACCEPT

 

$IPT -t nat -P PREROUTING ACCEPT

$IPT -t nat -P POSTROUTING ACCEPT

$IPT -t nat -P OUTPUT ACCEPT

 

## lo # dobavliaem sebia v rules

$IPT -t filter -A INPUT -d 127.0.0.1 -j ACCEPT

 

## DNS # Pozvoliaen DNS prohodit'

$IPT -t filter -A INPUT -p tcp --dport 53 -j ACCEPT

$IPT -t filter -A INPUT -p udp --dport 53 -j ACCEPT

 

## Squid # Na spu4ai esli esti squid

$IPT -t filter -A INPUT -p tcp -s $ext_ip/24 --dport 8080 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -s $ext_ip/24 --sport 8080 -j ACCEPT

# Eto esli ho4esh 4toby tvoi squid iz ineta viden byl. Esli net, no esti eshe servera dlia kotoryh

# squid nujen to vmesto teh 2-x rules pishes

$IPT -t filter -A INPUT -p tcp -s "ip server" --dport 8080 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -s "ip server" --sport 8080 -j ACCEPT

 

## SSH #Vezde i vsegda :(

$IPT -t filter -A INPUT -p tcp --dport 22 -j ACCEPT

$IPT -t filter -A OUTPUT -p tcp --sport 22 -j ACCEPT

$IPT -t filter -A INPUT -p tcp --sport 22 -j ACCEPT

$IPT -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

 

## Avtorizator

$IPT -t filter -A INPUT -p udp -d $ext_ip --dport 5555 -j REJECT

$IPT -t filter -A OUTPUT -p udp -s $ext_ip --sport 5555 -j REJECT

$IPT -t filter -A INPUT -p udp -d $ext_ip --sport 5555 -j REJECT

$IPT -t filter -A OUTPUT -p udp -s $ext_ip --dport 5555 -j REJECT

 

$IPT -t filter -A INPUT -p udp -d $int_ip --dport 5555 -j ACCEPT

$IPT -t filter -A INPUT -p udp --sport 5555 -d $int_ip -j ACCEPT

 

## Configurator

$IPT -t filter -A INPUT -p tcp -d $int_ip --dport 5555 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -d $int_ip --sport 5555 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -d $ext_ip --dport 5555 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -d $ext_ip --sport 5555 -j ACCEPT

 

## Pingu vechnaia SVOBODA!!!

$IPT -t filter -A INPUT -p icmp -j ACCEPT

$IPT -t filter -A OUTPUT -p icmp -j ACCEPT

 

## Esli esti eshe mashiny dlia kotoryh ne nujno trafik s4itati to:

$IPT -t filter -A INPUT -p tcp -s 192.168.1.5 --dport 8080 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.1.5 -j SNAT --to-source 81.180.73.121

iptables -t filter -A FORWARD -i eth1 -s 192.168.1.5 -j ACCEPT

iptables -t filter -A FORWARD -d 192.168.1.5 -j ACCEPT

 

## Apache #Esli est'

$IPT -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

$IPT -t filter -A INPUT -p tcp --sport 80 -j ACCEPT

 

## Samba # mogut byt' drugie porty - ne smotrel, mojet oshibaius'

$IPT -t filter -A INPUT -p tcp --dport 139 -j ACCEPT

$IPT -t filter -A INPUT -p tcp --sport 139 -j ACCEPT

 

Prime4anie:

"-t filter " ne obiazatel'no pisat'

esli esti eshe progi dlia kotoryh nado net pustit' - poskaesh analogi4no

Ссылка на сообщение
Поделиться на других сайтах

V "OnConnect" pishesh tak:

OnConnect

LOGIN=$1

IP=$2

CASH=$3

ID=$4

 

iptables -t filter -A INPUT -p tcp -s $IP --dport 8080 -j ACCEPT

iptables -t nat -A POSTROUTING -s $IP -j SNAT --to-source 81.180.73.121

iptables -t filter -A FORWARD -i eth1 -s $IP -j ACCEPT

iptables -t filter -A FORWARD -d $IP -j ACCEPT

echo "Connect login='$LOGIN' ip=$IP cash='$CASH'" >> /tmp/users

 

I vsemi adminami liubimyi -- "OnDisconect"

OnDisconect

LOGIN=$1

IP=$2

CASH=$3

ID=$4

 

iptables -t filter -D INPUT -p tcp -s $IP --dport 8080 -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D INPUT -p tcp -s $IP --dport 8080 -j ACCEPT

done

iptables -t nat -D POSTROUTING -s $IP -j SNAT --to-source 81.180.73.121

while [ $? -eq 0 ]

do

iptables -t nat -D POSTROUTING -s $IP -j SNAT --to-source 81.180.73.121

done

iptables -t filter -D FORWARD -i eth1 -s $IP -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -i eth1 -s $IP -j ACCEPT

done

iptables -t filter -D FORWARD -d $IP -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -d $IP -j ACCEPT

done

echo "Disconnect login='$LOGIN' ip=$IP cash='$CASH'" >> /tmp/users

 

Vrode vsio... pol'zuisia na zdorovie.

Information MUST be FREE!!! :(

Ссылка на сообщение
Поделиться на других сайтах
Prosiba nashim uvajaemym adminam. Esli 4to-to s pravilami ne TAK, i est' "bug-i" to pojaluista NAPISHITE!!! budu O4EN' priznatelen. zash

Скорее всего пропускать будет незаконченные сессии.

Проверь так:

1. Подключиться авторизатором.

2. Поставить что-то побольше на закачку.

3. Отключиться.

 

Если закачка не прекращается, то есть бага.

Ссылка на сообщение
Поделиться на других сайтах
гы)))

"вот же мозгое...ство с этими iptables" думал я.... =))

Мне после фри сначала тоже как-то не так на линухе все было, особенно с фаерволом.

Но фаервол в некотором плане попродвинутей будет, структурированнее, да и некоторые другие вещи тоже, например файловые системы. Самое главное, что софта много, в т.ч. и коммерческого, а также драйвера практичесски под все есть.

Ссылка на сообщение
Поделиться на других сайтах
Но фаервол в некотором плане попродвинутей будет, структурированнее

Обоснуй.

 

+ Есть ли в лине аналог dummynet ?

В линухи такие фаервол модульный, т.е. что надо загружается по необходимости. И модулей есть этих немерянно, много разрабатывается. Есть и шейперы, причем не один. Не занимался их тестированием, но кто-то на форуме, кажется civilizator писал об этом.

Но речь не об этом.

Просто хотел сказать, что Линух ничем не хуже, а в некоторых моментах попроятнее чем фря.

 

З.Ы. В дальнейшем на пустые споры меня провоцировать будет бесполезно, я просто проигнорую это.

Ссылка на сообщение
Поделиться на других сайтах
Просто хотел сказать, что Линух ничем не хуже, а в некоторых моментах попроятнее чем фря.

Я не хочу спорить, я хочу узнать чтото новое.

Ты работал с фрей, потом работал с линухом.

Поэтому на мой взгляд, ты действительно сможешь обосновать свое мнение, а не просто кидаться фразами типа "фря сакс, линь руль", как это делают многие другие.

Я хочу узнать, почему ты так считаешь.

То есть в каких моментах линух попри(?)ятнее фри.

Ссылка на сообщение
Поделиться на других сайтах

В предыдущих постингах писал, цитировать себя не буде, вкратце напомню:

1.Модульность.

2. Больше драйверов, есть практически на все. Производители нового железа пишут дрова на линух.

3. Наличие софта, в т.ч. и коммерческого (Например БД Оракл, Лотус). Под фрю его просто не портируют.

4. Больше служебных програм.

5. Больше литературы.

 

Пример из личного опыта:

1. Захотел я прикрутить УПС, чтобы хальтовал сервак, потом как появится елекричество и подзарядятся батареи - поднимался сам.

Халявный софт этого не делает. Дорабатывать его нет возможности, протокол АРС закрытый, да и времени жалко на это. Берем готовый PowerChute для Linux, ставим за 5 мин, полный фарш. Все что хошь делает, интерфейс под Х...

 

2. Фирма, к которой я имею некоторое отношение, занимается разработкой под Лотус Ноутс. Софт только лицензионный. Покупать сервак Виндовз?

Для Линухи есть сервер, IBM благо поддерживает Linux. Был сервак и под Соляру, но это снова ком. система.

А исходников никто не даст, сам понимаешь.

О прикрутке на фрю не может быть и речи. Даж если прикрутить, то это не пройдет как сертифицированное решение.

 

Фря класна, стабильна, для рутера, например лучше не придумаешь. У самого стоит на флешовом рутере, заточенная ес-сно, был такой проджект, потратили пару месяцев на это.

 

Но когда нужна универсальность, гибкость, продвинутость, ставим Линуху.

А упираться в какую-то одну ОС, тратить время, на то чтобы прикрутить к ней софтину, что и так нормально работает под такой же или даже более функциональной, не вижу смысла.

 

Такой я рационалист. Не только не могу себя заставить заниматься тем, что и так есть, но и не часто могу часто себе этого позволить. Времени жалко.

Ссылка на сообщение
Поделиться на других сайтах

Товарищи, Вы ушли от темы.

 

Немного переделал под себя правила zash'a. На моем серваке установлены DNS, Апач(доступ всегда и бесплатно), Постфикс+Курьер-Имап, Сквид. Последние два сервиса платные, работают только после подключения авторизатора.

 

firewall:

 

#!/bin/bash

 

#Forwarding ON

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

 

IPT="/sbin/iptables"

 

ext_ip="xxx.xxx.xxx.xxx"

int_ip="192.168.100.200"

 

ext_if="eth1"

int_if="eth0"

 

# Clear all rules

$IPT -t filter -F

$IPT -t filter -X

$IPT -t nat -F

$IPT -t nat -X

 

$IPT -t filter -P INPUT DROP

$IPT -t filter -P FORWARD DROP

$IPT -t filter -P OUTPUT ACCEPT

 

$IPT -t nat -P PREROUTING ACCEPT

$IPT -t nat -P POSTROUTING ACCEPT

$IPT -t nat -P OUTPUT ACCEPT

 

 

# localhost

$IPT -t filter -A INPUT -d 127.0.0.1 -j ACCEPT

 

# DNS

$IPT -t filter -A INPUT -p tcp --dport 53 -j ACCEPT

$IPT -t filter -A INPUT -p udp --dport 53 -j ACCEPT

$IPT -t filter -A INPUT -p tcp --sport 53 -j ACCEPT

$IPT -t filter -A INPUT -p udp --sport 53 -j ACCEPT

 

 

#SMTP from Internet

$IPT -t filter -A INPUT -p tcp -i $ext_if --dport 25 -j ACCEPT

 

 

# Vhodyashie soedineniya

$IPT -t filter -A INPUT -p tcp -i $ext_if -m state --state ESTABLISHED --state RELATED -j ACCEPT

 

# SSH $IPT -t filter -A INPUT -p tcp --dport 22 -j ACCEPT

$IPT -t filter -A OUTPUT -p tcp --sport 22 -j ACCEPT

 

# Autorizator

$IPT -t filter -A INPUT -p udp -d $ext_ip --dport 5555 -j REJECT

$IPT -t filter -A OUTPUT -p udp -s $ext_ip --sport 5555 -j REJECT

$IPT -t filter -A INPUT -p udp -d $ext_ip --sport 5555 -j REJECT

$IPT -t filter -A OUTPUT -p udp -s $ext_ip --dport 5555 -j REJECT

$IPT -t filter -A INPUT -p udp -d $int_ip --dport 5555 -j ACCEPT

$IPT -t filter -A INPUT -p udp --sport 5555 -d $int_ip -j ACCEPT

 

# Configurator

$IPT -t filter -A INPUT -p tcp -d $int_ip --dport 5550 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -d $int_ip --sport 5550 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -d $ext_ip --dport 5550 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -d $ext_ip --sport 5550 -j ACCEPT

 

# Ping

$IPT -t filter -A INPUT -p icmp -j ACCEPT

$IPT -t filter -A OUTPUT -p icmp -j ACCEPT

 

# Apache

$IPT -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

$IPT -t filter -A INPUT -p tcp --sport 80 -j ACCEPT

 

 

OnConnect:

 

LOGIN=$1

IP=$2

CASH=$3

ID=$4

 

#Razreshaem SMTP

iptables -t filter -A INPUT -p tcp -s $IP --dport 25 -j ACCEPT

#Razreshaem POP3

iptables -t filter -A INPUT -p tcp -s $IP --dport 110 -j ACCEPT

#Razreshaem Squid

iptables -t filter -A INPUT -p tcp -s $IP --dport 3128 -j ACCEPT

#Razreshaem vhodyashie uje ustanovlennie soedineniya

iptables -t filter -A INPUT -s $IP -m state --state ESTABLISHED --state RELATED -j ACCEPT

#Forwarding

iptables -t filter -A FORWARD -i eth0 -s $IP -j ACCEPT

iptables -t filter -A FORWARD -d $IP -j ACCEPT

#SNAT

iptables -t nat -A POSTROUTING -s $IP -j SNAT --to-source 213.179.247.194

echo "Connect login='$LOGIN' ip=$IP cash='$CASH'" >> /tmp/users

 

 

OnDisconnect:

LOGIN=$1

IP=$2

CASH=$3

ID=$4

 

 

iptables -t filter -D INPUT -p tcp -s $IP --dport 25 -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D INPUT -p tcp -s $IP --dport 25 -j ACCEPT

done

iptables -t filter -D INPUT -p tcp -s $IP --dport 110 -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D INPUT -p tcp -s $IP --dport 110 -j ACCEPT

done

iptables -t filter -D INPUT -p tcp -s $IP --dport 3128 -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D INPUT -p tcp -s $IP --dport 3128 -j ACCEPT

done

iptables -t nat -D POSTROUTING -s $IP -j SNAT --to-source 213.179.247.194

while [ $? -eq 0 ]

do

iptables -t nat -D POSTROUTING -s $IP -j SNAT --to-source 213.179.247.194

done

iptables -t filter -D FORWARD -i eth0 -s $IP -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -i eth0 -s $IP -j ACCEPT

done

iptables -t filter -D FORWARD -d $IP -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -d $IP -j ACCEPT

done

iptables -t filter -D INPUT -s $IP -m state --state ESTABLISHED --state RELATED -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D INPUT -s $IP -m state --state ESTABLISHED --state RELATED -j ACCEPT

done

 

echo "Disconnect login='$LOGIN' ip=$IP cash='$CASH'" >> /tmp/users

 

Вроде всё пашет. Если что исправьте.

Ссылка на сообщение
Поделиться на других сайтах

Да, ты прав. надо по теме.

Обещаю на провокации не поддаваться.

В скрипте вроде все ОК.

Для полной идеальности, конечно, в заменить бы реальные адреса, что в скриптах на переменные, которые из одного места берутся.

Как насчет самбы еще. Мне что-то не удавалось, чтобы закрыть прочее и открыть самбу можно было.

Ссылка на сообщение
Поделиться на других сайтах
А зачем на шлюзе самба?

Чтоб использовать остальные 100 гигов на жестком в 120гиг =))

Відредаговано XoRe
Ссылка на сообщение
Поделиться на других сайтах

OnConnect:

#!/bin/sh

 

LOGIN=${1}

IP=${2}

CASH=${3}

ID=${4}

 

NUM=`expr 5000 + ${ID}`

 

/sbin/ipfw -q add ${NUM} skipto 10000 ip from ${IP} to any

 

echo "Connect login='${LOGIN}' ip='${IP}' ID='${ID}'" >> /var/log/stargazer/users.log

echo "`/bin/date` - /sbin/ipfw -q add ${NUM} skipto 10000 ip from ${IP} to any" >> /var/log/stargazer/users.log

-----------

OnDisconnect:

#!/bin/sh

 

LOGIN=${1}

IP=${2}

CASH=${3}

ID=${4}

 

NUM=`expr 5000 + ${ID}`

 

/sbin/ipfw -q delete ${NUM}

 

echo "Disonnect login='${LOGIN}' ip='${IP}' ID='${ID}' NUM='${NUM}'" >> /var/log/stargazer/users.log

echo "`/bin/date` - /sbin/ipfw -q delete ${NUM}" >> /var/log/stargazer/users.log

Ссылка на сообщение
Поделиться на других сайтах

Nashiol bagi v svoiom je skripte :-/ :

 

DNS rabotaet na udp - prot, estes-no - drujno udaliaem stroku:

$IPT -t filter -A INPUT -p tcp --dport 53 -j ACCEPT

NO!!! Dobavliaem sledushiuiu:

$IPT -t filter -A INPUT -p udp --sport 53 -j ACCEPT

Bez nee rabotati ne budet (provereno)

 

Sdelal prozra4nyi squid:

$IPT -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -t filter -A INPUT -p tcp --sport 80 -j ACCEPT
$IPT -t nat -A PREROUTING -i $int_if -d ! $int_ip/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080

A SAMBA u menia rabotaet kak pisal vyshe...

$IPT -t filter -A INPUT -p tcp --dport 139 -j ACCEPT
$IPT -t filter -A INPUT -p tcp --sport 139 -j ACCEPT

 

Liudi! pomogite s shaper-om... podskajite hot' kakim polzuetes' i esli ne o4en' trudno to primer4ik bylo by o4en' harasho uvidet'. pls

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...