브릿지 방화벽 구성하는데 잘 안되네요..

wonjnlee의 이미지

브릿지 방화벽으로 사용할 pc는 페도라25에 커널 4.8.6입니다.
libnetfilter_queue, libnfnetlink 설치했습니다.
bridge는 기본적으로 설치되어있는 것 같아서 안건드렸습니다.

브릿지로 네트워크 카드 두개를 스위치 형식으로 구성하여, 패킷이 통하는 것은 확인했습니다.
그런데 iptables로 방화벽을 구성하려니 안되네요..
아예 iptables 구문 자체가 안먹는것 같습니다.

제가 추가적으로 설치해야 할 프로그램이 있을까요?
도움 부탁드립니다.

김정균의 이미지

iptables 구문 자체가 안 먹는다고 하셨는데 그 과정을 정확히 올려 주세요. 님이 하신 작업이 어떤 작업을 한 것인지 알 수가 없기 때문에 무엇이 잘못 되었는지 올려주신 정보로는 판단을 할 수가 없습니다.

그리고, bridge 관련 rule은 Forward chain 에서 처리하여야 합니다.

wonjnlee의 이미지

설치과정은 위에 적어드린대로 페도라25에 커널4.8.6, 그리고 libmnl, libnfnetlink, libnetfilter_queue 각각을 최신버전으로 설치했습니다.
bridge는 brctl 명령어를 입력하였을 때 실행이 되더라구요. 그래서 따로 설치하지 않았습니다.

랜카드는 하나는 메인보드에 딸려있는 것, 또 하나는 4port짜리 랜카드 하나를 설치하여서 그 중 하나만 랜선을 꼽아놓았습니다 (결국 2개를 사용)
bridge 구성은 다음과 같이 하였습니다.

brctl addbr br0
brctl stp br0 off
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig eth0 0.0.0.0 up
ifconfig eth1 0.0.0.0 up
ifconfig br0 0.0.0.0 up

위에는 eth0, eth1로 되어있는데, 각각 설치되어있는 랜카드 이름을 적용하였습니다.
페도라25를 쓰니까 네트워크 카드 이름이 제각각이 되더라구요.
eth0에는 메인보드에 있는 랜카드를, eth1에는 추가한 4포트짜리 랜카드 중 사용하는 곳의 이름을 집어넣었습니다.

이렇게 구성하면, 브릿지는 작동하였습니다.
eth0을 통하여 들어온 패킷이 eth1로 bypass 되더라구요.

이제 이 스위치에 iptables를 적용하려고 했는데, 여기서 동작이 되지 않았습니다.
iptables -I FORWARD -p icmp -j DROP
위의 명령어를 사용하고, 브릿지를 구성한 pc에 연결한 client pc1에서 연결하지 않은 client pc2로 ping을 날려보았습니다.
물론 client pc2 에서 브릿지를 구성한 pc에 연결한 client pc1로 반대로도 날려보았습니다.
이론상으로는 ping이 가지 않아야 하는데 가더라구요..

그리고 동시에 패킷을 필터링하는 프로그램을 돌려보았는데, 패킷 자체를 가져오지 못하는 것 같습니다.
예전에 페도라 4 기반에서 커널 2.6.17로 브릿지를 구성하고, 프로그램을 구동하였을 때에는 문제없이 되었었거든요..
(물론 라이브러리는 다 맞춰보았습니다.. 컴파일은 되더라구요)

우선 프로그램의 문제인지 아닌지 판별하려면 iptables는 정상적으로 동작하는지 먼저 확인이 되어야하는데,
위에 ping drop도 안되는것 보니 제가 어딘가 설치를 잘못했거나 설정을 잘못 준것 같습니다.

도와주십시오.

ymir의 이미지

브릿지면 MAC 만 보고 바로 넘어갈 겁니다. MAC 이 없을 때만 라우팅 타구요..
ebtables 를 써서 필터링 하거나, 상위 Network Layer 로 올려서 iptables 룰로 필터링 되게 해야 할 겁니다.

http://ebtables.netfilter.org/br_fw_ia/br_fw_ia.html

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

백연구원의 이미지

/proc/sys/net/bridge/bridge-nf-call-iptables 이 값 한번 확인해보시면 도움이 되실지 모르겠네요.


소곤소곤

wonjnlee의 이미지

echo 구문 이용해서 iptables, ip6tables, arptables 모두 1로 바꾸어주었습니다.
그런데도 iptables 구문이 안먹더라구요..
제가 더 바꾸어야 할 부분이 있는지 모르겠습니다. 도움 부탁드립니다.

김정균의 이미지

iptables -L FORWARD -v -n

결과를 좀 올려 주시죠. netfilter의 경우 rule이 순처 적용이 되므로, rule 순서가 어떻게 되느냐에 따라 원하는 결과가 안 나올 수 있습니다.

wonjnlee의 이미지

해결했습니다.
우선 커널 4.8.17에서 iptables 관련된 모듈이 기본적으로 0으로 세팅되어있더군요.
그것 수정하고 하니까 iptables를 통하여 패킷을 얻어오느 것이 가능했습니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.