Iptables раздаем инет с фильтрацией [Решено]

добрый вечер :)
я уже задолбался с этим файрволом, тупо сейчас сижу и перебираю варианты настроек ибо самые логичные отказались работать.
есть сетка 192.168.0.0/24, туда смотрит eth1
сетка 192.168.2.0/24, wlan0
есть интерфейс ppp0, он смотрит в инет.
задача: предоставить полный доступ в инет через ppp0 некоторым машинам из 192.168.0.0/24 и всем из 192.168.2.0/24.
как я делал: разрешал маскарадинг, все машины в инет ходят. цепочка OUTPUT по умолчанию ACCEPT.
фильтрую цепочку INPUT в filter (-A INPUT -i wlan0 -m mac –mac-source xx:xx:xx:xx:xx:xx -j ACCEPT)
далее я предполагаю что в FORWARD аналогично фильтруем все с eth1 (все что не попадает в правило дропается)
но как только я добавляю соответствующие настройки, инет пропадает и в wlan0. хорошо делаем правило для него, все равно инета нет.
надеюсь на вашу помощь, я теперь даже понимать начал как это работает, вот только фигня творится.
Покажите лучше ваш скрипт..
а скрипта нету :) я тупо вручную перебираю все :)
`iptables -t nat -vL -n` и `iptables -t filter -vL -n` - в студию
Я бы порекомендовал установить ipset, в нём создать множество macipmap, типа:
eval /sbin/ipset --create AccessList macipmap --network 192.168.2.0/24.
eval /sbin/ipset --add AccessList 192.168.2.2,AA:BB:CC:00:99:33
...
, по которому и пускать в инет, по подобию этого:
eval /sbin/iptables --table filter --append FORWARD --in-interface eth1 --match set --match-set AccessList --protocol tcp --dport 80 --match conntrack --ctstate NEW --syn --jump ACCEPT
eval /sbin/iptables --table nat --append POSTROUTING --source eth1 --out-interface ppp0 --jump MASQUERADE
Пока завершусь, что-то писать лень :)
nat:
[root@Tesla ~]# iptables -t nat -vL -n
Chain PREROUTING (policy ACCEPT 651 packets, 60710 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy ACCEPT 1 packets, 72 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  102  6329 SNAT       all  --  *      ppp0    0.0.0.0/0            0.0.0.0/0           to:94.180.152.253 
тут проблем нет, убрал маскарадинг и скриптом прикрутил снат, тоже рабочий вариант, тормозов меньше.
filter:
вот так работает
[root@Tesla ~]# iptables -t filter -vL -n
Chain INPUT (policy ACCEPT 522 packets, 45045 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain FORWARD (policy ACCEPT 364 packets, 248K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  482  107K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           MAC 00:15:AF:D1:52:C6
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           MAC ! 00:15:AF:D1:52:C6 
Chain OUTPUT (policy ACCEPT 87 packets, 11616 bytes)
 pkts bytes target     prot opt in     out     source               destination  
а вот так нет:
[root@Tesla ~]# iptables -t filter -vL -n
Chain INPUT (policy ACCEPT 522 packets, 45045 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain FORWARD (policy ACCEPT 364 packets, 248K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  482  107K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           MAC 00:15:AF:D1:52:C6           
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain OUTPUT (policy ACCEPT 87 packets, 11616 bytes)
 pkts bytes target     prot opt in     out     source               destination  
последний вариант настройки вроде полностью логичен. разрешить некоторые маки и дропать все остальное.
насколько я понял логику файрвола, если первое правило проходит, то до второго пакет не доберется.
Если у Вас политики по-умолчанию - ACCEPT, то зачем
 --jump ACCEPT
?
Мона, даже нуна -
RETURN
Поправьте меня, если я не прав
упс, мой косяк.
политику по умолчанию делам DROP, и разрешаем маки. те как-то так будет:
[root@Tesla ~]# iptables -t filter -vL -n
Chain INPUT (policy ACCEPT 522 packets, 45045 bytes)
pkts bytes target     prot opt in     out     source               destination         
Chain FORWARD (policy DROP 364 packets, 248K bytes)
pkts bytes target     prot opt in     out     source               destination         
  482  107K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           MAC 00:15:AF:D1:52:C6
Chain OUTPUT (policy ACCEPT 87 packets, 11616 bytes)
pkts bytes target     prot opt in     out     source               destination
и тоже не работает, хотя судя по цифрам слева от правила пакеты все же ходят, но пинги не идут, браузер ничего не открывает и тд.
Теперь стоит уточнить
--in-interfaces, --out-interfaces
в цепочке FORWARD
out в данном случае это ppp0 так?
[root@Tesla ~]# iptables -t filter -vL -n
Chain INPUT (policy ACCEPT 158 packets, 15073 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain FORWARD (policy DROP 105 packets, 16892 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   58 12888 ACCEPT     all  --  wlan0  ppp0    0.0.0.0/0            0.0.0.0/0           MAC 00:15:AF:D1:52:C6 
Chain OUTPUT (policy ACCEPT 48 packets, 8125 bytes)
 pkts bytes target     prot opt in     out     source               destination  
один фиг дропает все.
зы в идеале все пакеты должны сейчас проходить ибо в wlan0 сейчас кроме меня никого нету.
 
Зарегистрироваться или войдите чтобы оставить сообщение.