Имеется сервер(OS slackware) на одном интерфейсе которого 192.168.1.1/24. Сервер используется как прокси. Какое должно быть правило на IPTABLES, чтобы пользователь получал доступ к сети, если у него соответствующие ip и mac? Причём правило действовало на определённый интерфейс, а не на всю arp таблицу.
пробовал
iptables -A INPUT -s 192.168.1.x -m mac ! --mac-source xx:xx:xx:xx:xx:xx -j DROP
iptables -A INPUT -d 192.168.1.x -m mac ! --mac-source xx:xx:xx:xx:xx:xx -j DROP
но безуспешно
iptables -A INPUT -s 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
iptables -A OUTPUT -d 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
iptables -A INPUT -s 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
iptables -A OUTPUT -d 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
192.168.1.x - это IP, который должен иметь доступ к сети, используя Ваше правило, я разрешу всем другим MAC использовать этот IP, кроме моего.
Прав. Попробуй с другой стороны подойти.
iptables -A INPUT -s ! 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
Т.е. с этого мака можно только под этим ip зайти.
Либо еще лучше:
iptables -P INPUT DROP
iptables -A INPUT -s 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
Интерфейс данного прокси является шлюзом для более чем сотни клиентов. У него же имеется еще несколько подинтерфейсов с таким же условием. Если применить политику по умолчанию DROP, т.е. iptables -P INPUT DROP, то для всех MAC я должен прописывать ACCEPT с соответствующим IP? Если так, можно ли применить политику для определённого интерфейса?(В одной из подсетей пару "злоумышленников" постоянно конфликтуют)
Ну можно сделать так:
iptables -A INPUT -s 192.168.1.10 -i eth1 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
iptables -A INPUT -s 192.168.1.11 -i eth1 -m mac --mac-source xx:xx:xx:xx:xx:xy -j ACCEPT
iptables -A INPUT -i eth1 -j DROP
Здраствуйте!!!
как сделать так что бы порты были открыты только тем чьи мак адресса прописаны..
iptables -P INPUT DROP
iptables -A INPUT -s 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
вот это дает доступ только к сети... а порты как ему открыть????
т.е users один на всех я так понемаю?
а потом просто подстовлять и все !!?
а вот возник такой вопрос а для forward как это сделать ???
iptables -P FORWARD DROP
iptables -A FORWARD -s 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j users
вот так ???
Ответьте пожалуста на мой пост......... мне оч... срочно надо...
т.е users один на всех я так понемаю?
а потом просто подстовлять и все !!?
а вот возник такой вопрос а для forward как это сделать ???
iptables -P FORWARD DROP
iptables -A FORWARD -s 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j users
вот так ???
Ответьте пожалуста на мой пост......... мне оч... срочно надо...
[/quote]
Через FORWARD проходят транзитные пакеты. Как определить MAC адрес транзитного пакета?
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#
#eth1=INET
#eth0=LAN
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t filter -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
#Пробросс 80 порта с LAN на 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#По умолчанию запрещаем весь транзит
iptables -P FORWARD DROP
iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#Разрешить уже установленое соединение
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#Режим SYN Флуд
iptables -A FORWARD -p tcp --syn -m connlimit --connlimit-above 10 -j REJECT
################################################################################
#iptables -A INPUT -s 10.0.50.18 -m mac --mac-source 00:1D:09:CA:16:A4 -j ACCEPT
#iptables -A INPUT -s 10.0.50.1 -m mac --mac-source 00:0C:76:6B:01:F7 -j ACCEPT
#iptables -A INPUT -s 79.122.183.82 -m mac --mac-source 00:16:17:9A:EE:98 -j ACCEPT
################################################################################
#Открываем порты скопом если нужно...
#iptables -A FORWARD -o eth1 -m state --state NEW -p tcp -m multiport --dports 5190,48,941 -j ACCEPT
#
#Разрешаем себе пинг наружу - нас же не пропингуешь- пакеты отбрасываются
iptables -A INPUT -p icmp -m icmp -i eth1 --icmp-type echo-reply -j ACCEPT
iptables -A FORWARD -p icmp -m icmp -o eth1 --icmp-type echo-request -j ACCEPT
#Открываем порт для DNS
iptables -A INPUT -i eth0 -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -o eth0 -m state --state NEW -p udp --dport 53 -j ACCEPT
#Открываем порты для Сбербанка
#iptables -A FORWARD -p udp --dport 87 -s 10.0.50.45 -m state --state NEW -j ACCEPT
# Открываем SSH
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
#Открываем порты для почты
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT
#ICQ/Miranda
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 5190 -j ACCEPT
#Подклучение к Удаленому рабочему столу 3389
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 3389 -j ACCEPT
#iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 80 -j ACCEPT
#TELNET
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 23 -j ACCEPT
вот так все работает...
и увсех есть инет и порты которые прописаны....
ну как сделать так что бы не форвардить порты а
iptables -N users
iptables -A users -p tcp --dport 80 -j ACCEPT
iptables -A users -p tcp --dport 443 -j ACCEPT
iptables -P INPUT DROP
iptables -A INPUT -s 192.168.1.x -m mac --mac-source xx:xx:xx:xx:xx:xx -j users
вот так пойдет в моих правилах? или посоветуйте что нужно переделать.....
Здравствуйте. У меня не получается привязать ип к маку, мне нужно чтобы конкретный ип был доступен только для определенных маков. Вот моя конфигурация , что у меня здесь не так?
iptables -P FORWARD DROP
iptables -A FORWARD -s 192.168.0.X -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP
iptables -A FORWARD -s 192.168.0.X -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
А вообще способ не очень красивый, т.к. в этом случае люди все равно могут менять свой ip-адрес и общаться с другими компьютерами внутри одного сегмента сети. Этим правилом вы просто не дадите ему вылезти за пределы этого сегмента.
Для четкого разграничения вам нужно использовать в сети только управляемые коммутаторы - например такие -> D-Link DES-1228ME.