Permitir a una lista de mac's acceder via ssh en un Firewall con política por defecto DROP

Forums: 

Objetivo: Permitir a una lista de mac's acceder via ssh en un Firewall con política por defecto DROP


iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#allowed.macs is maclist
cat allowed.macs | while read allowedmac
do
iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source $allowedmac -j ACCEPT
done

Como quedaría la regla para OUTPUT ??? o como puedo lograr el objetivo basado en la lista de mac ??

Solo es un archivo plano que

Solo es un archivo plano que contiene una mac por cada linea
Pero esto es solo una idea ya que tengo problemas al implementar la regla para OUTPUT
Estoy a la espera de ideas

En el manual de iptables

Imagen de damage

En el manual de iptables dice esto:
mac
--mac-source [!] address
Match source MAC address. It must be of the form
XX:XX:XX:XX:XX:XX. Note that this only makes sense for packets
coming from an Ethernet device and entering the PREROUTING, FOR‐
WARD or INPUT chains.

Al parecer para el OUTPUT no aplica tu regla :(.

Keep The Fire Burning.....
Stryper 1988
http://counter.li.org/

Tienes toda la razón pero

Tienes toda la razón pero sigo con mi duda entonces
Si lo hago en base a lista de IP's no tengo ningun problema para acceder via ssh a dicha maquina ya que solo defino las reglas INPUT Y OUTPUT y ya esta...

Pero como hacerlo con mac??

La misma sentencia lo dice

Imagen de damage

La misma sentencia lo dice todo mac-source no existe una regala que sea mac-destination por lo cual no se puede crear esa regla en el output :(, eso es lo que interpreto del manual.

Keep The Fire Burning.....
Stryper 1988
http://counter.li.org/

Se me ocurre algo

Imagen de Monkito

A ver si entiendo el problema

Interpretación 1, ya puedes hacer que se filtre el ssh para las mac de tu arhivito, ahora necesitas hacer que se pueda hacer ssh hacia esas pc's desde tu linux tomando en cuenta la mac.

Solución:

ip=192.168.1.5
miip=192.168.1.1
mac=00.00:21:54...etc
iptables -A INPUT -s $ip -m mac --mac-source $mac -p tcp --dport 22 -d $miip -j ACCEPT
iptables -A OUTPUT -d $ip -p tcp --dport 22 -j ACCEPT
arp -s $ip $mac

Entonces cuando trates de hacer ssh hacia la ip 1.5, en realidad buscará simplemente la mac en la tabla arp estática que se definió, si este tiene otra mac, los paquetes nunca llegan.

Interpretación 2, tus políticas por defecto son DROP por lo que aunque aceptes los paquetes entrantes por el ssh de una mac específica no se establece la conexxión porque el tráfico de salida está dropeado

Solución:

ip=192.168.1.5
miip=192.168.1.1
mac=00.00:21:54...etc
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s $ip -m mac --mac-source $mac -p tcp --dport 22 -d $miip -m state --state NEW -j ACCEPT

Esto permite el paso de paquetes pertenecientes a conexiones previamente establecidas o relacionadas, es decir las que primeramente se aceptaron con cabecera NEW en la regla 3..

Espero que te sirva de algo, cualquier cosa estoy para servirles.

Cogito Ergo Sum

------------
counter.li.org

Cogito Ergo Sum