Титла: рутиране по МАК адрес Публикувано от: __eve__ в Sep 30, 2004, 00:58 Здравейте , със Слак 9.1 съм .Искам да пусна интернета само на 192.168.0.3 и то с МАК хх:хх:хх:оо:оо:оо и никое друго IP и MAC. Достатъчни ли са редовете и синтаксиса :
iptables -t nat -P POSTROUTING DROP iptables -t nat -A POSTROUTING -s 192.168.0.3 -m mac xx:xx:xx:oo:oo:oo -j MASQUERADE Титла: рутиране по МАК адрес Публикувано от: ntenev в Sep 30, 2004, 01:41 Почти, но с малки забележки. При така зададените от теб правила от тази машина няма да излезе нищо по простата причина че всичко ще попада във веригата с таргет DROP. Трябва да се съобразиш с факта че правилата се обхождат последователно до съвпадение, така че колкото по-напред е едно правило толкова по-рано пакета ше бъде сравнен с него. Друго на което е добре да обърнеш внимание е изходното условие. Добре си задал -s и -m флаговете, но според мен е по-добре да добавиш в същия ред и флагове -d и -o (оставям на теб удоволствието да погледнеш в man за какво са и как се ползват
![]() Поздрави ! Титла: рутиране по МАК адрес Публикувано от: __eve__ в Sep 30, 2004, 15:00 Аз изходих от "Пакет филтеринг" от Ръсти.Tой първо блокира всичко ,а после разрешава това онова...
Там го дава така: ## Create chain which blocks new connections, except if coming from inside. # iptables -N block # iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A block -m state --state NEW -i ! ppp0 -j ACCEPT # iptables -A block -j DROP My Webpage Обаче той казва ,че -m mac се използва само с PREROUTING Титла: рутиране по МАК адрес Публикувано от: в Sep 30, 2004, 16:40 Добро упътване
![]() Философията да забраниш всичко и след това да рарешиш само това което искаш е добра, но мисля че в случая те обърква думата "block". В man iptables много добре са описани всички флагове поглеждай и там за справка. Ето още един джокер: -N флага създава нова верига, а аргумента след него (в случая "block") е името на веригата. До тук добре, но сама по себе си тази верига нищо не прави. Трябват още 2 неща ако искаш да я използваш: 1. Правило което да казва кои пакети да отиват в нея 2. Правило (или няколко) във самата верига Обърни внимание в примера който даваш, че ACCEPT правилата са преди DROP. Така е именно заради това което съм ти написал предния път. Относно -m mac: Не се използва само в PREROUTING (виж в man iptables), но там е най-често използван. Защо ? Защото когато е в това правило пакета се проверява още на входа дали идва откъдето трябва и чак след това (ако оцелее) се обработва и стига до някъде другаде. Обобщено: Трябва ти проверка по mac на входа и маскиране на изхода. Поздрави ! P.S. Не си мисли че се заяждам с теб. Мога да ти разпиша примера, който искаш (както и много други хора тук могат) но нали идеята е да го научиш. Затова ти давам само упътвания къде да търсиш ![]() Титла: рутиране по МАК адрес Публикувано от: __eve__ в Sep 30, 2004, 18:55 Много си прав сега ще го поправя и пак ще го напиша. ОК.Мерси за съвета
Титла: рутиране по МАК адрес Публикувано от: __eve__ в Oct 03, 2004, 12:52 ##филтриране по мак на входната верига
# iptables -N filter_mac # iptables -A filter_mac -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -A filter_mac -s ! 192.168.0.3 -m mac ! xx:xx:xx:oo:oo:oo -j DROP ## смесване на нат ифилтър таблиците # iptables -t nat -A -s 192.168.0.3 -j MASQUERADE 1 ред нова аерига , 2 ред ...нови състояния ; 3 ред отхвърля всичко , което не е от 192.168.0.191 и мак хх:хх:хх:оо:оо:оо 4 маскира и пуска в интернет Титла: рутиране по МАК адрес Публикувано от: в Oct 04, 2004, 14:20 Нека да го разгледаме така:
В: Кога се използват различни вериги (дефинирани от потребителя) ? О: Когато имаш много IP-та върху които искаш да наложиш множество правила и писането едно по едно прави списъка твърде дълъг => неприятно за редактиране и управление. Друг вариант е когато имаш различни групи които трябва да попадат под различно филтриране. Третия случай е комбинацията от първите два (почти винаги така става ![]() Имайки предвид това сам си отговори имаш ли нужда в конкретния случай от допълнителни вериги ? Да се върнем отначало ![]()
Какви са грешките тук: Първия ред а) ще изреве за синтаксист ( заради -m mac xx:xx:xx:oo:oo:oo); правилния е --match mac --mac-source xx:xx:xx:oo:oo:oo (може и -m вместо --match) б) проблем заради местоположението ( --mac-source се използва само в PREROUTING, FORWARD или INPUT веригите, както си забелязал сам) Втория ред Не че е грешен, просто дропва всичко което се опита да излезе от машината независимо накъде. Не мисля че това ти е целта нали ? ![]() --------------------------- Ето едно решение:
Където $eth е изходящия към интернет интерфейс (eth0, eth1 и т.н.) По този начин можеш да ограничиш преминаващите пакети през машината да са само от 192.168.0.3 и то от --mac-source xx:xx:xx:oo:oo:oo , без това да пречи на пакетите които идват от другите машини и са за рутера (ако на него работят някакви услуги - примерно ssh за да си го управляваш отдалечено) Поздрави ! Титла: рутиране по МАК адрес Публикувано от: __eve__ в Oct 04, 2004, 14:31 благодаря ти човече за търпението и отговора
|