iptables 고수님께 질문드립니다.

h2cl의 이미지

iptables 설정중에서
SYN 값이 1인 ip가 계속 접속을 하는것을 차단할수 있을까요?
룰을 어떻게 적용시켜야되는지 부탁드리겠습니다.

예를 들면 syn=1 값으로 들어오는 패킷을 차단하려면
iptables -A INPUT -p tcp -dport -m recent -update-seconds 1 -hitcount 1 -j DROP
이렇게 하였는데
syn=1 인 패킷중에 같은 아이피로 들어오면 제한하는 룰을 어떻게 써야될까요?

monovision의 이미지

syn 값이 1이라는게 무슨 뜻인지 모르겠군요... @..@
보아하니.... syn flooding 을 차단하시려고 하는 거 같은데... 글쎄요 조금 힘들지 않나 생각됩니다.
유사한 효과를 얻어 보실려면 hashlimit 관련 옵션을 찾아보시기 바랍니다.

h2cl의 이미지

syn 값이 있는것을 말합니다.
TCP통신시에
SYN ---> ACK ---> SYN,ACK
뭐 이렇게 3핸드쉐이크를 하는데
그중 첫번째가 SYN 1값이죠..
아래 말씀하신것처럼 SYN flooding 맞습니다...

그런데 시스템이 죽다니요? recent가 그렇게 무겁나요??

김정균의 이미지

무겁다고 한다면 무거울 수 있습니다. 해당 세션에 대한 table 을 모두 들고 있어야 하니까요.

정상적인 처리일 경우 한 세션이 끝나면 비워버리면 되는데, recent 의 경우 counting 을 해야 하기 때문에 계속 들고 있어야 해서 발생하는 문제입니다. 그렇기 때문에 syn flooding attack 이 Spoofing 형식으로 들어온다면 recent module 이 overflow 또는 memory 고갈을 유발 시켜 시스템을 죽여버릴 수도 있는 겁니다.

monovision의 이미지

recent 는 무겁다기 보다는 무섭습니다. ㅡ.ㅡ;
정상적인 트래픽이라면 크게 문제가 없지만, 공격시에는 무지막지하게 메모리를 갉아먹습니다. ;;;;
그 이유는 아래 김정균님께서 잘 설명해 주셨구요.
SYN FLOODING 공격을 막기 위함이라면 어렵게 머리 싸매지 마시고 proxy 서버로 트래픽을 우회시키는 것도 하나의 방편이 될 수 있습니다. ^^

h2cl의 이미지

iptables -A INPUT -p tcp --tcp-flags ALL SYN,FIN -m limit --limit 5/seconds -limit-burst 10 -j DROP

이런식으로 limit을 사용하면 어떨까요??

그런데 INPUT에서 드롭시키는것과 FORWARD에서 드롭시키는것과 어떤 차이점이 있을까요?

브릿지 서버에서 적용시킨다고 했을경우..

김정균의 이미지

흠 recent module 을 그렇게 사용하시면.. 아마 시스템이 죽을 확률이 좀 있을 겁니다. 저도 ftp 에 burte force attack 막아 보자고 걸어 놓았다가 1시간 만에 시스템이 죽은 경험이 있어서..

댓글 달기

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