[완료]iptables를 이용한 MAC주소 필터링관련 질문입니다.
글쓴이: 토끼아빠 / 작성시간: 수, 2009/11/18 - 11:42오전
안녕하세요~
특정 MAC주소에 특정 IP주소를 가졌을때에만 트래픽을 열어주고 그렇지 않을 경우에는 트래픽을 막으려고 합니다.
현재 서버기의 네트워크카드상황을 보면,
eth0 Link encap:Ethernet HWaddr 00:XX:XX:XX:XX:XX inet addr:192.168.2.51 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::2f0:4cff:fe84:3497/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:14249 errors:0 dropped:0 overruns:0 frame:0 TX packets:7977 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1717240 (1.6 MiB) TX bytes:2490341 (2.3 MiB) Interrupt:185 Base address:0x6000 eth1 Link encap:Ethernet HWaddr 00:XX:XX:XX:XX:XX inet addr:192.168.6.1 Bcast:192.168.6.255 Mask:255.255.255.0 inet6 addr: fe80::223:cdff:fe91:5afa/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:567 errors:0 dropped:0 overruns:0 frame:0 TX packets:310 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:59960 (58.5 KiB) TX bytes:39402 (38.4 KiB) Interrupt:193 Base address:0x4000
eth0은 외부로 나가게 되어있고 eth1은 그 밑에 허브를 가지고 DHCP서버로서 동작하고있습니다.
eth1로 들어오는 트래픽을 eth0을 통해 외부로 나갈수 있게 해주기 위해 iptables를 다음과 같이 설정해주었습니다.
iptables -P INPUT ACCEPT iptables -F INPUT iptables -P OUTPUT ACCEPT iptables -F OUTPUT iptables -P FORWARD DROP iptables -F FORWARD iptables -t nat -F echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_dynaddr iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
이때 iptables설정상황을 보면,
[root@localhost ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination
이 상황에서 MAC주소 00:11:22:33:44:55를 가진 컴퓨터가 IP주소가 192.168.6.100일때에만 트래픽을 허용하게 하기 위해
iptables -A FORWARD -s 192.168.6.100 -m mac ! --mac-source 00:11:22:33:44:55 -j DROP [root@localhost ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 DROP all -- 192.168.6.100 0.0.0.0/0 MAC ! 00:11:22:33:44:55 Chain OUTPUT (policy ACCEPT) target prot opt source destination
와 같이 해주었습니다.
그런데 MAC주소 00:11:22:33:44:55를 가진 컴퓨터의 IP주소가 192.168.6.100이 아니래도 외부로 잘 나갑니다..
제 생각에는 우에서
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
이 부분때문에 이런것 같은데 ...
어떻게 하면 eth1에서 들어오는 트래픽을 eth0을 통해 외부로 나가게 해주면서도 특정 MAC주소들에 대해서는 LIMIT를 해줄수 있겠는지 고수님들의 조언 부탁드립니다.
좋은 하루 되세요~~
Forums:
:INPUT DROP
:INPUT DROP [0:0]
:in_accept - [0:0]
-A INPUT -i eth1 -j in_accept
-A in_accept -i eth1 -m mac --mac 00:11:22:33:44:55 -s 192.168.6.100 -j ACCEPT
COMMIT
iptables 파일 내용 중에 위와 같이 한번 설정해보세요.
나머지 부분도 위 내용에 논리적으로 맞게 수정 필요한 부분은 수정하시고요...
확인해보질 않아서 되는지 여부는 잘 모르겠습니다.
---------------------------------------------------------------------------
문장은 거기에 쓰이는 언어의 선택으로 결정된다.
평소에 쓰이지 않는 말이나 동료들끼리만 통하는 표현은 배가 암초를 피하는 것처럼 피해야 한다.
---------------------------------------------------------------------------
문장은 거기에 쓰이는 언어의 선택으로 결정된다.
평소에 쓰이지 않는 말이나 동료들끼리만 통하는 표현은 배가 암초를 피하는 것처럼 피해야 한다.
감사드립니다.
답변 주셔서 고맙습니다.
그런데 제가 왕초보라서 님의 글을 보고 이해를 하지 못해서요...
미안하지만 좀 구체적으로 써주실수 없으십니까?
이 부분은 어떻게 하라는건지 이해할수 없어서요...
가능하면 full command로 적어주시면 고맙겠습니다.
잘 부탁드립니다...
좋은 하루 되세요!!
좋은 하루 되세요!!
해결했습니다.
댓글 위치가 틀려 밑으로 옮겼습니다.
좋은 하루 되세요!!
우선 INPUT DROP으로
우선 INPUT DROP으로 모든 입력을 DROP하고
in_accept라는 lable을 주는겁니다. 앞에 ':'가 그 의미입니다.
그후 in_accept라는 lable을 달아준 규칙으로 적용을 하겠다는 의미입니다.
-A in_accept -i eth1 -m mac --mac 00:11:22:33:44:55 -s 192.168.6.100 -j ACCEPT
끝에 ACCEPT가 있으니
만약 위의 설정만 있으면 이 리눅스와는 위의 IP 주소와 MAC을 가진 장비만 통신이 가능하게 되는겁니다.
그외 추가적인 DHCP 클라이언트들이 더 있으면 그 장비의 MAC하고 IP를 위와같이 더 추가 하시면 될 것 같습니다.
FOWARD하고 OUTPUT 설정에 관한 내용들은 그대로 두고요...
현재 iptables 파일 내용을 알려주시면 한번 확인해 보겠습니다.
저도 초보라서 속 시원히 설명을 못 드린것 같네요.
---------------------------------------------------------------------------
문장은 거기에 쓰이는 언어의 선택으로 결정된다.
평소에 쓰이지 않는 말이나 동료들끼리만 통하는 표현은 배가 암초를 피하는 것처럼 피해야 한다.
---------------------------------------------------------------------------
문장은 거기에 쓰이는 언어의 선택으로 결정된다.
평소에 쓰이지 않는 말이나 동료들끼리만 통하는 표현은 배가 암초를 피하는 것처럼 피해야 한다.
친절히 답글
친절히 답글 달아주셔서 정말 고맙습니다.
헌데 제가 넘 초보라서 이해를 못하겠네요...
아무래도 제가 좀 더 책을 봐야 할것 같네요.
해결되면 결과 올려드리겠습니다.
좋은 하루 되세요!!
좋은 하루 되세요!!
해결했습니다.
저는 먼저 eth1을 eth0으로 forwarding해주고 mac주소와 ip주소에 대한 제한을 주었었는데,
먼저 mac주소와 ip주소에 대한 제한을 주고 그 다음에 eth1을 eth0으로 forwarding해주면 되었습니다.
여러가지로 많은 도움 주신데 대해 감사드립니다.
좋은 하루 되세요!!
좋은 하루 되세요!!
매스커레이드 설정은
매스커레이드 설정은 기존대로 두고,
INPUT 에서만 mac ip 맞는것만 ACCEPT 하고 다 막는다는 것입니다.
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/
https://xenosi.de/
댓글 달기