Jump to content

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


Guest Admin

Recommended Posts

Мужики, поделитесь кто-нибудь рабочими правилами IPTABLES для старгейзера. Что-то я совсем не могу разобраться...

Link to post
Share on other sites
тут есть немного описания про 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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

И еще там же установлен сквид, нужно чтобы он работал как прозрачный прокси.

 

Помогите, кто-нибудь.

Link to post
Share on other sites

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

Link to post
Share on other sites

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!!! :(

Link to post
Share on other sites
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. Отключиться.

 

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

Link to post
Share on other sites
Guest Guest_REND

Просто в OnConnect поставил:

 

ipchains -A forward -s $clientip -j MASQ

 

а в OnDisconnect:

 

ipchains -D forward -s $clientip -j MASQ

 

Вроди бы всё работает, считает.....

Link to post
Share on other sites
гы)))

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

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

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

Link to post
Share on other sites
Но фаервол в некотором плане попродвинутей будет, структурированнее

Обоснуй.

 

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

Link to post
Share on other sites
Но фаервол в некотором плане попродвинутей будет, структурированнее

Обоснуй.

 

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

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

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

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

 

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

Link to post
Share on other sites
Просто хотел сказать, что Линух ничем не хуже, а в некоторых моментах попроятнее чем фря.

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

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

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

 

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

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

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

 

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

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

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

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

 

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

 

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

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

 

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

Link to post
Share on other sites

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

 

Немного переделал под себя правила 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

 

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

Link to post
Share on other sites

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

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

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

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

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

Link to post
Share on other sites
А зачем на шлюзе самба?

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

Edited by XoRe
Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...