[완료]iptables를 이용한 MAC주소 필터링관련 질문입니다.

토끼아빠의 이미지

안녕하세요~

특정 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를 해줄수 있겠는지 고수님들의 조언 부탁드립니다.
좋은 하루 되세요~~
theswlee의 이미지

: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 파일 내용 중에 위와 같이 한번 설정해보세요.
나머지 부분도 위 내용에 논리적으로 맞게 수정 필요한 부분은 수정하시고요...
확인해보질 않아서 되는지 여부는 잘 모르겠습니다.

---------------------------------------------------------------------------

문장은 거기에 쓰이는 언어의 선택으로 결정된다.
평소에 쓰이지 않는 말이나 동료들끼리만 통하는 표현은 배가 암초를 피하는 것처럼 피해야 한다.


---------------------------------------------------------------------------

문장은 거기에 쓰이는 언어의 선택으로 결정된다.
평소에 쓰이지 않는 말이나 동료들끼리만 통하는 표현은 배가 암초를 피하는 것처럼 피해야 한다.

토끼아빠의 이미지

답변 주셔서 고맙습니다.
그런데 제가 왕초보라서 님의 글을 보고 이해를 하지 못해서요...
미안하지만 좀 구체적으로 써주실수 없으십니까?

:INPUT DROP [0:0]
 
:in_accept - [0:0]
 
-A INPUT -i eth1 -j in_accept

이 부분은 어떻게 하라는건지 이해할수 없어서요...
가능하면 full command로 적어주시면 고맙겠습니다.
잘 부탁드립니다...

좋은 하루 되세요!!

좋은 하루 되세요!!

토끼아빠의 이미지

댓글 위치가 틀려 밑으로 옮겼습니다.

좋은 하루 되세요!!

theswlee의 이미지

우선 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/

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.