The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите с скриптом iptables"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (Public)
Изначальное сообщение [ Отслеживать ]

"Помогите с скриптом iptables"  
Сообщение от Makap email on 25-Апр-08, 15:56 
Добрый день, помогите разобраться, необходимо ограничить юзерам доступ к шлюзу, причем есть 2 группы пользователей, с разными открытыми портами Например для бол-ва пользователей "лан" 80 порт должен быть закрыт и открыт лишь для вип-юзеров Немного изменил найденный в сети скрипт, но есть проблемма:

Всем юзерам доступен 80 порт (возможно и другие) даже если его нет с списке разрешенных портов, помогите токрыть юзерам одной подсети доступ к разным портам!

#!/bin/bash
ipt=/sbin/iptables
lan=192.168.0.0/24 #Локалка
vpn=192.168.1.0/24 #VPN
lan_ip=192.168.0.1 # аипи сервера
net_ip=х.х.х.х #инет айпи
vpn_ip=192.168.1.1 # Vpn serv
lan_ports=`cat /etc/iptables/lan_ports` # порты доступные для лан
vpn_ports=`cat /etc/iptables/vpn_ports` #порты доступные для впн
net_ports=`cat /etc/iptables/net_ports` #порты доступные для инета
vip_ports=`cat /etc/iptables/vip_ports` #порты доступные для вип юзеров
lan_dev=eth0
net_dev=eth1
vpn_dev=tun0 # VPN dev
vip=`cat /etc/iptables/vip` # айпишники вип юзеров
$ipt -t nat -F
$ipt -F
$ipt -t nat -X
$ipt -X
$ipt -P INPUT DROP
$ipt -P OUTPUT DROP
$ipt -P FORWARD DROP
#create chains
$ipt -N lan_input
$ipt -N all_input
$ipt -N vip_input
$ipt -N vpn_input
#####################################################################
#####################################################################
$ipt -A INPUT -s localhost -j ACCEPT
$ipt -A INPUT -d localhost -j ACCEPT
$ipt -A INPUT -s $lan_ip -j ACCEPT
$ipt -A INPUT -s $net_ip -j ACCEPT
$ipt -A INPUT -s $vpn_ip -j ACCEPT
$ipt -A INPUT -p ALL -i $lan_dev -s $vpn -j ACCEPT
#####################################################################
$ipt -A OUTPUT -s localhost -j ACCEPT
$ipt -A OUTPUT -d localhost -j ACCEPT
$ipt -A OUTPUT -s $lan_ip -j ACCEPT
$ipt -A OUTPUT -d $lan_ip -j ACCEPT
$ipt -A OUTPUT -s $net_ip -j ACCEPT
$ipt -A OUTPUT -d $net_ip -j ACCEPT
$ipt -A OUTPUT -s $vpn_ip -j ACCEPT
$ipt -A OUTPUT -d $vpn_ip -j ACCEPT
#####################################################################

$ipt -A INPUT -s $lan -p icmp -j ACCEPT

#####################################################################
$ipt -A FORWARD -j ACCEPT
$ipt -A FORWARD -p TCP --dport 5800 -i $net_dev -j ACCEPT # DameWare
$ipt -A FORWARD -p TCP --dport 5001 -i $net_dev -j ACCEPT # SalesWorks
########################################################################
for ip in $vip
{
$ipt -A INPUT -s $ip -j vip_input
}
########################################################################
$ipt -A INPUT -i $lan_dev -j lan_input
$ipt -A INPUT -i $vpn_dev -j vpn_input
$ipt -A INPUT -i $net_dev -j all_input

#chains for lan
echo stage 0
for port in $lan_ports
{
$ipt -A lan_input -s $lan -p tcp --dport $port -j ACCEPT
$ipt -A lan_input -s $lan -p udp --dport $port -j ACCEPT
}
$ipt -A lan_input -s $lan -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A lan_input -j REJECT --reject-with icmp-net-unreachable
$ipt -A lan_input -j DROP

echo stage 1
for port in $vpn_ports
{
$ipt -A vpn_input -s $vpn -p tcp --dport $port -j ACCEPT
$ipt -A vpn_input -s $vpn -p udp --dport $port -j ACCEPT
}
$ipt -A vpn_input -s $vpn -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A vpn_input -j REJECT --reject-with icmp-net-unreachable
$ipt -A vpn_input -j DROP
#chains for net
echo stage 2
for port in $net_ports
{
$ipt -A all_input -d $net_ip -p tcp --dport $port -j ACCEPT
$ipt -A all_input -d $net_ip -p udp --dport $port -j ACCEPT
}
$ipt -A all_input -d $net_ip -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A all_input -j REJECT --reject-with icmp-net-unreachable
$ipt -A all_input -j DROP
#chain for vip
echo stage 3
for port in $vip_ports
{
$ipt -A vip_input -d $lan_ip -p tcp --dport $port -j ACCEPT
$ipt -A vip_input -d $lan_ip -p udp --dport $port -j ACCEPT
$ipt -A vip_input -d $net_ip -p tcp --dport $port -j ACCEPT
$ipt -A vip_input -d $net_ip -p udp --dport $port -j ACCEPT
}
$ipt -A vip_input -d $lan_ip -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A vip_input -j REJECT --reject-with icmp-net-unreachable
$ipt -A vip_input -j DROP
echo stage 4
echo 1 > /proc/sys/net/ipv4/ip_forward


$ipt -t nat -A POSTROUTING -o $net_dev -j SNAT --to-source $net_ip
$ipt -t nat -A POSTROUTING -p TCP --dport 5800 -d 192.168.0.116 -j SNAT --to-source $net_ip #DameWare
$ipt -t nat -A POSTROUTING -p TCP --dport 5001 -d 192.168.0.116 -j SNAT --to-source $net_ip #SalesWorks
$ipt -t nat -A POSTROUTING -o $lan_dev -s $vpn -j MASQUERADE # openVPN

####################PREROUTING######################################
$ipt -t nat -A PREROUTING  -p tcp --dport 5001 -j DNAT --to-destination 192.168.0.116:5001 #SalesWorks
$ipt -t nat -A PREROUTING  -p TCP --dport 5800 -j DNAT --to-destination 192.168.0.116:5800 #Dameware Roman

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите с скриптом iptables"  
Сообщение от angra (ok) on 25-Апр-08, 16:43 
Может вы сначала доку почитаете? А то скрипт похоже сделан по принципу "с мира по нитке". Заодно это поможет вам четко сформулировать вопрос. Очень хорошая дока есть на этом сайте.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Помогите с скриптом iptables"  
Сообщение от Makap email on 28-Апр-08, 15:02 
>Может вы сначала доку почитаете? А то скрипт похоже сделан по принципу
>"с мира по нитке". Заодно это поможет вам четко сформулировать вопрос.
>Очень хорошая дока есть на этом сайте.

Доку на сайте давно обнаружил и читаю, скрипт действительно собран с миру монитке, точнее чужой скрипт + то что мне нужно дописаное мною Все же хотелось бы получить помощь гуру :)

По поводу точнее сформулировать вопрос:

Машина используется в кач-ве роутера+прокси, бол-ву пользователей запрещен 80 порт (а так же 21 и тд,что бы не ходили в обход SQUID), соответвенно в файле lan_ports его нет Что я хочу от этого скрипта, что бы пользователи имели доступ только к тем портам, которые указанны в файле, независимо от того находятся ли они на сервере (pop, smtp) или за ним (80, smtp, pop И тд) Так же в сети есть неск пользователей с айпи адресами из той же подсети что и "простые смертные", котрые будут иметь доступ к большему кол-ву портов Что я сейчас имею: независимо от указанных портов в файла юзеры могут пользоваться всеми портами (я проверял 80 и 21)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "я для себя эту проблему решил..."  
Сообщение от Andrey Mitrofanov on 25-Апр-08, 17:29 
>Добрый день, помогите разобраться, необходимо ограничить юзерам доступ к шлюзу, причем есть
>2 группы пользователей, с разными открытыми портами Например для бол-ва пользователей
>"лан" 80 порт должен быть закрыт и открыт лишь для вип-юзеров

Когда-то давным-давно меня очень интересовала настройка файервола на ОС GNU/Linux. Очень - потому что прокси выставленный без оного в Большой Интернет почему-то взломали, за ним взломали ещё пару машин _за_ ним... Надо было что-то делать.

>Немного изменил найденный в сети скрипт, но есть проблемма:

Да, готовые скриптов и изучение предмета стали основными направлениями моих поисков. Благо готовых "скриптов" по всему интернету -- масса... Смущало одно: любой их них был абслютно, пугающе нечитабелен. Это вызывало очень неприятные сомнения в собственных способностях даже после изучения множества статей об iptables, не включавших в себя "готовых" скриптов.

Я так и не достиг "высот" написания собственного "готового" скрипта, но проблему построения файервола на iptables решил. Я использую "компилятор правил iptables", как я его для себя обозначил, - FireHOL. http://firehol.sf.net/

http://google.ru/search?q=firehol+"Andrey+Mitrofanov&qu...

>Всем юзерам доступен 80 порт (возможно и другие) даже если его нет
>с списке разрешенных портов, помогите токрыть юзерам одной подсети доступ к
>разным портам!

Странным образом, "готовые скрипты" вроде Вашего всё ещё вызывают у _меня_ ужас своей нечитабельностью. Да, теперь _я_могу_, сделав над собой усилие, прочитать такой скрипт, но многократно (ужас!) перечитывать его исправляемые варианты -- выше моих сил. :)

Хотите, помогу переписать[1] Ваш файервол на firehol, чтобы и Вы никогда больше :) не читали ужасных "готовых скриптов"[2]?

----
[1] - примерно вот так: http://www.opennet.me/openforum/vsluhforumID3/12524.html#1 Получилось несколько короче "оригинала" и _существенно_ читабельнее, не правда ли?

[2] - Чтение iptables-save и firehol debug/explain _после_ готового :) скрипта на firehol, тем не менее, не вызывает ужаса, приветствуется для углубления :) понимания, и использовалось мною для отладки собственных конфигураций. Они теперь уже "подросли" и, наверное, уже сами способны кого-то напугать, но не меня. Например, на трёх хостах "под моим началом" счётчик строк 'egrep -v "^ *(#|$)" <firehol.conf |wc -l' показал 28, 58 и 79. Счётчики строк в iptables[3] - 149, 313 и 501 соответственно.

[3] 'iptables-save |egrep "^-"|wc -l' - созданием цепочек, загрузкой модулей и установкой ip_forward - пренебрегаю :), хотя firehol всё это и делает. за меня.

----
PS: В отпуск собираюсь, если меня не будет видно-слышно недели три :)) -- появлюсь напомните о себе.

PPS: 2SubGun: ;) /так/--^^ агитировать за exim ещё не возьмусь. может быть, когда нибудь... если дебиановский exim-config не перерастёт в компилятор конфигураций exim, решающий такие Ж) проблемы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Помогите с скриптом iptables"  
Сообщение от Makar email on 28-Апр-08, 15:15 
debian:/home/makar# iptables -L --line-numbers
Chain INPUT (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     0    --  localhost            anywhere
2    ACCEPT     0    --  anywhere             localhost
3    ACCEPT     0    --  debian.unit.ru       anywhere
4    ACCEPT     0    --  xxx                   anywhere
5    ACCEPT     0    --  192.168.1.1          anywhere
6    ACCEPT     0    --  192.168.1.0/24       anywhere
7    ACCEPT     icmp --  localnet/24          anywhere
8    vip_input  0    --  terminalserver.unit.ru  anywhere
9    vip_input  0    --  mainserver.unit.ru   anywhere
10   vip_input  0    --  pdc.unit.ru          anywhere
11   lan_input  0    --  anywhere             anywhere
12   vpn_input  0    --  anywhere             anywhere
13   all_input  0    --  anywhere             anywhere

Chain FORWARD (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     0    --  anywhere             anywhere
2    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:5800
3    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:5001

Chain OUTPUT (policy DROP)
num  target     prot opt source               destination
1    ACCEPT     0    --  localhost            anywhere
2    ACCEPT     0    --  anywhere             localhost
3    ACCEPT     0    --  debian.unit.ru       anywhere
4    ACCEPT     0    --  anywhere             debian.unit.ru
5    ACCEPT     0    --  xxxxx (inet ip)  anywhere
6    ACCEPT     0    --  anywhere             xxxxx (inet ip)
7    ACCEPT     0    --  192.168.1.1          anywhere
8    ACCEPT     0    --  anywhere             192.168.1.1

Chain all_input (1 references)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:webcache
2    ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:8080
3    ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:netbios-ssn
4    ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:netbios-ssn
5    ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:netbios-dgm
6    ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:netbios-dgm
7    ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:netbios-ns
8    ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:netbios-ns
9    ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:smtp
10   ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:25
11   ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:pop3
12   ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:pop3
13   ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:449
14   ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:449
15   ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:1488
16   ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:1488
17   ACCEPT     tcp  --  anywhere             xxxxx (inet ip) tcp dpt:domain
18   ACCEPT     udp  --  anywhere             xxxxx (inet ip) udp dpt:domain
19   ACCEPT     0    --  anywhere             xxxxx (inet ip) state RELATED,ESTABLISHED
20   REJECT     0    --  anywhere             anywhere            reject-with icmp-net-unreachable
21   DROP       0    --  anywhere             anywhere

Chain lan_input (1 references)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:https
2    ACCEPT     udp  --  localnet/24          anywhere            udp dpt:https
3    ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:ldap
4    ACCEPT     udp  --  localnet/24          anywhere            udp dpt:ldap
5    ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:ldaps
6    ACCEPT     udp  --  localnet/24          anywhere            udp dpt:ldaps
7    ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:microsoft-ds
8    ACCEPT     udp  --  localnet/24          anywhere            udp dpt:microsoft-ds
9    ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:domain
10   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:domain
11   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:webcache
12   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:8080
13   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:netbios-ssn
14   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:netbios-ssn
15   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:netbios-dgm
16   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:netbios-dgm
17   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:netbios-ns
18   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:netbios-ns
19   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:smtp
20   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:25
21   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:pop3
22   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:pop3
23   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:449
24   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:449
25   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:1488
26   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:1488
27   ACCEPT     tcp  --  localnet/24          anywhere            tcp dpt:3389
28   ACCEPT     udp  --  localnet/24          anywhere            udp dpt:3389
29   ACCEPT     0    --  localnet/24          anywhere            state RELATED,ESTABLISHED
30   REJECT     0    --  anywhere             anywhere            reject-with icmp-net-unreachable
31   DROP       0    --  anywhere             anywhere

Chain vip_input (3 references)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:ftp
2    ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:fsp
3    ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:webcache
4    ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:8080
5    ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:netbios-ssn
6    ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:netbios-ssn
7    ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:netbios-dgm
8    ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:netbios-dgm
9    ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:netbios-ns
10   ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:netbios-ns
11   ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:smtp
12   ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:25
13   ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:pop3
14   ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:pop3
15   ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:449
16   ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:449
17   ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:1488
18   ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:1488
19   ACCEPT     tcp  --  anywhere             debian.unit.ru      tcp dpt:domain
20   ACCEPT     udp  --  anywhere             debian.unit.ru      udp dpt:domain
21   ACCEPT     0    --  anywhere             debian.unit.ru      state RELATED,ESTABLISHED
22   REJECT     0    --  anywhere             anywhere            reject-with icmp-net-unreachable
23   DROP       0    --  anywhere             anywhere

Chain vpn_input (1 references)
num  target     prot opt source               destination
1    ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:webcache
2    ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:8080
3    ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:netbios-ssn
4    ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:netbios-ssn
5    ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:netbios-dgm
6    ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:netbios-dgm
7    ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:netbios-ns
8    ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:netbios-ns
9    ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:smtp
10   ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:25
11   ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:pop3
12   ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:pop3
13   ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:449
14   ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:449
15   ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:1488
16   ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:1488
17   ACCEPT     tcp  --  192.168.1.0/24       anywhere            tcp dpt:domain
18   ACCEPT     udp  --  192.168.1.0/24       anywhere            udp dpt:domain
19   ACCEPT     0    --  192.168.1.0/24       anywhere            state RELATED,ESTABLISHED
20   REJECT     0    --  anywhere             anywhere            reject-with icmp-net-unreachable
21   DROP       0    --  anywhere             anywhere

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Помогите с скриптом iptables"  
Сообщение от pavel_simple (??) on 28-Апр-08, 15:20 
iptables-save не судьба ? -- если реально человеку помогать -- то не так ведь?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Помогите с скриптом iptables"  
Сообщение от pavel_simple (??) on 28-Апр-08, 15:22 
>iptables-save не судьба ? -- если реально человеку помогать -- то не
>так ведь?

а... вот оно что...
тогда понятно почему forward хоть и drop -- но всё равно accept

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Помогите с скриптом iptables"  
Сообщение от Makap email on 28-Апр-08, 15:43 
>>iptables-save не судьба ? -- если реально человеку помогать -- то не
>>так ведь?
>
>а... вот оно что...
>тогда понятно почему forward хоть и drop -- но всё равно accept
>

В смысле?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Помогите с скриптом iptables"  
Сообщение от pavel_simple (??) on 28-Апр-08, 16:25 
>>>iptables-save не судьба ? -- если реально человеку помогать -- то не
>>>так ведь?
>>
>>а... вот оно что...
>>тогда понятно почему forward хоть и drop -- но всё равно accept
>>
>
>В смысле?

в прямом

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Помогите с скриптом iptables"  
Сообщение от Andrey Mitrofanov on 28-Апр-08, 16:43 
>|| iptables-save не судьба ? -- если реально человеку помогать -- то не так ведь?

Перевожу: помогающим читать и писать _удобнее_ на одном "языке". Вывод iptables-save больше похож на вводимые (в скрипте~) правила == он более удобен для. Независимо от того, что думал себе %) автор -L.

Кроме того, в выводе -L нет таблицы nat, даже если в ней есть правила, присутстуют "localnet/" и числовые адреса вперемешку и проч.

Показывай вывод iptables-save -- быстрее ответят.

>>тогда понятно почему forward хоть и drop -- но всё равно accept
>В смысле?

В смысле в церочке FORWARD у тебя стоит ACCEPT-ото_всех-ко_всем. Первой строкой: ни до второй-третьей старательно "выписанных" строк этой цепочки, ни до политики DROP дело не доходит никогда. Это к вопросу, почему у тебя всем везде "можно".

Туда же относятся и опять же старательно выписанные правила в INPUT/OUTPUT и их подцепочках: если тебя удивляло, почему доступ к Инету _не_ ограничивается этой кучей правил, --

>>| Что я сейчас имею: независимо от указанных портов в файла юзеры могут пользоваться всеми портами

-- откорою тайну: в цепочку INPUT попадают пакеты адресованные _твоей_ машине, а через цепочку OUTPUT проходят только пакеты, исходящие от неё лично-локально (NAT-ами и редиректами - в данном случае пренебрежём). Пакеты, которые проходят "насквозь", например, те, что ты хотел бы ограничивать = соединения из локалки в интернет, нужно "ловить" в цепочке FILTER.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Помогите с скриптом iptables"  
Сообщение от pavel_simple (??) on 28-Апр-08, 16:51 
вобщем лучше как посоветовали выше либо учить/
либо как сказал Andrey Mitrofanov какой-нибудь билдер.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "firehol.conf, очень примерно - так"  
Сообщение от Andrey Mitrofanov on 28-Апр-08, 18:42 
>Добрый день, помогите разобраться, необходимо ограничить юзерам доступ к шлюзу, причем есть
>2 группы пользователей, с разными открытыми портами Например для бол-ва пользователей
>"лан" 80 порт должен быть закрыт и открыт лишь для вип-юзеров
>Немного изменил найденный в сети скрипт, но есть проблемма:

# -- /etc/firehol/firehol.conf --
version 5

# 449 - "as"? 1488 - docstor? нет 445?
all_svcs="webcache netbios_ns netbios_dgm netbios_ssn as smtp pop3 docstor dns"
## определения "сервисов" в нотации firehol
server_dmware_ports="tcp/5001"; client_dmware_ports="default"
server_salesw_ports="tcp/5800"; client_salesw_ports="default"
server_docstor_ports="tcp/1488 udp/1488"; client_docstor_ports="default"
server_as_ports="tcp/449 udp/449"; client_as_ports="default"

lan_dev=eth0
lan_ip=192.168.0.1 # аипи сервера
lan=192.168.0.0/24 #Локалка
#lan_ports=`cat /etc/iptables/lan_ports` # порты доступные для лан #+$all_svcs !
lan_svcs="https ldap ldaps microsoft_ds rdp"
vip=`cat /etc/iptables/vip` # айпишники вип юзеров
#vip_ports=`cat /etc/iptables/vip_ports` #порты доступные для вип юзеров #+$all_svcs !
vip_svcs="ftp"

vpn_dev=tun0 # VPN dev
vpn_ip=192.168.1.1 # Vpn serv
vpn=192.168.1.0/24 #VPN
#vpn_ports=`cat /etc/iptables/vpn_ports` #порты доступные для впн
#== vpn_svcs="$all_svcs"

net_dev=eth1
net_ip=х.х.х.х #инет айпи
##net_ports=`cat /etc/iptables/net_ports` #порты доступные для инета
#?? net_svcs="$all_svcs"


##-t NAT

#?masquerade
snat to "$PUBLIC_MYIP" outface "$net_dev"

NATTED=192.168.0.116
dnat to "$NATTED" proto tcp dport "5001 5800"

##-t FILTER
interface "$lan_dev" lan
    server "icmp" accept

router net inface "$net_dev" dst "$net_ip"
#    server "dmware salesw" accept
#??    server "$all_svcs" accept

router other
    policy reject
    server "$all_svcs" accept
    group with inface "$lan_dev $vpn_dev" src "$lan $vpn"
        server "$lan_svcs" accept
        server "$vip_svcs" accept src "$vip"
        server "dmware salesw" accept dst "$NATTED"
    group end

Смысл исходного скрипта, вообще говоря, не сохранён: я оставил в основном только "хождение" наружу. С NAT-ом и маскарадом: не прочитал толком, чего "хотелось", написал от балды. Может ещё чего не "расшифровал". Там, где в коммертариях "?", -- что-то не понятно или не так.

"router net" - пустой соединения _из_ интернета посностью дропаются.

Сервисы в firehol описываются не номерами портов, а именами. Кроме директив dnat/snat.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру