[팁] debian 에서 oops-firewall (방화벽) 사용하기

offree의 이미지

debian 에서 oops-firewall (방화벽) 사용하기

김정균님의 annyung linux 쓰시는 분 많이 계시죠.
또한 oops-firewall 사용하시는 분도 계시겠죠.

이 팁은 debian 에서 oops-firewall 을 사용하기 위한 작은 팁입니다.
테스트 환경은 : debian sarge(testing) , 커널 2.6.8-1 입니다.

oops-firewall 의 자세한 사항 : http://oops.org/?t=lecture&sb=firewall&n=1

다운로드 : ftp://mirror.oops.org ( oops-firewall-4.2.1.tar.bz2 )

1. 소스 파일을 다운로드 받습니다. (oops-firewall-4.2.1.tar.bz2)

2. configure 시에 아래의 두군데서 에러가 났는데, 단순히 해당 패키지만 설치해 주면 됩니다.
 1) ipcalc ( apt-get install ipcalc )
 2) msgfmt ( apt-get install gettext ) : gettext 패키지

3. configure 후에 make ; make install  해주면 정상설치

4. 실행 스크립트는 /etc/rc.d/init.d/oops-firewall  입니다.
   몇가지 redhat 전용(?) 스크립트가 있어 수정을 해주어야 합니다.

5. 수정사항은 ( 위 파일 oops-firewall 를 엽니다. )
 1) line 26 : /etc/rc.d/init.d/functions  제거 또는 삭제

 2) echo_failure , echo_success 함수가 있는 부분을 주석처리 하거나 삭제 합니다. 
    또는 echo "failure" , echo "success" 등으로 고쳐도 됩니다.
    ( redhat 의 위 functions 를 복사를 해 줘도 될 듯 합니다.)

 3) /var/lock/subsys 디렉토리가 없으면 만들어 줍니다. 
    또는 oops-firewall 의 /var/lock/subsys 부분을 실제 있는 경로로 수정을 합니다.

지금 해보고 작동하는 것 같아 올립니다. 충분한 테스트를 하지 않아 다른부분에 이상이 있을수도 있겠지만, 별 문제는 없을 듯 합니다.
사용하면서 다른 문제가 생기면 추가로 작성하겠습니다.

ps. 작은 수정이라 김정균님께 허락도 받지 않고 올립니다.
김정균님 실례가 된다면 죄송하구요. oops-firewall 잘 쓰고 있는데, 감사의 말씀드립니다.

Forums: 
wintsky의 이미지

offree님께서 좋은 팁을 알려주셔서 저도 잘 쓰고 있습니다.
그런데 데비안을 사용하시는 분이라면 모든 걸 데비안 패키지로 만들어 설치하지 않으면 뭔가 찜찜한 기분이 들지 않습니까? :P
그래서 데비안식으로 컴파일하였습니다.
모르시는 분은 없으시겠지만 나중에 저라도 보기위해 글 남깁니다. :twisted:

offree님의 설명에서 추가로 필요한 패키지는 dh-make, debhelper입니다.

먼저 소스를 다운받아 압축을 풉니다.
그리고 configure 파일을 수정합니다.

line 7 : LOCALDIR=/usr/local -> LOCALDIR=/usr
line 121 : initdir=/etc/rc.d/init.d -> initdir=/etc/init.d
line 130 : confdir=$(prefix)/etc/oops-firewall -> confdir=/etc/oops-firewall

이 작업은 데비안 디렉토리 구조에 맞추기 위한 작업입니다.

이번엔 oops-firewall.init.in파일을 수정합니다.

line 26 : . @INITDIR@/functions 주석처리 혹은 삭제
line 45 : echo_failure -> echo "failure"
line 79, 122 : echo_success -> echo "success"
line 80, 118 : /var/lock/subsys/oops-firewall -> /var/lock/oops-firewall

이것은 offree님의 스크립트 수정작업을 컴파일 이전에 하는 것입니다.
당연히 컴파일 이후에 하셔도 무방합니다.
그리고 마지막 작업은 subsys디렉토리를 만들지 않기 위한 수정입니다. 그냥 만드실 분은 안 고치셔도 됩니다.

이제 configure script를 실행합니다.
그리고 dh_make를 실행합니다.
생성된 메이크파일을 debian 디렉토리에 복사합니다.
$ cp Makefile debian/
그리고 패키지를 만듭니다. 이 작업은 루트로 하셔야합니다.
# debian/rules binary
이제 상위 디렉토리에 생성된 패키지를 설치하면 됩니다.

p.s. 처음에 저는 데탑으로 쓰는 시드에서 컴파일해서 사지를 쓰는 서버에 설치를 했더니 안되더군요.
아마 이런 실수를 하는건 저밖에 없겠죠? :oops:

익명사용자의 이미지

dh_make 하니 에러?만 나네요. 뭘 더 바꿔줘야되는지??

oops-firewall-6.0.2# dh_make

Type of package: single binary, multiple binary, library, kernel module or cdbs?
[s/m/l/k/b] s

Maintainer name : root
Email-Address : root@test.local
Date : Fri, 16 Mar 2007 11:01:19 +0900
Package Name : oops-firewall
Version : 6.0.2
License : blank
Type of Package : Single
Hit to confirm:
Could not find oops-firewall_6.0.2.orig.tar.gz
Either specify an alternate file to use with -f,
or add --createorig to create one.

익명사용자의 이미지

췌 익명으로 질문하면 -1인가.. 답변있나 봤더만..
허나 데비안을 정식?으로 지원하게 되었으니 만족해야겠다.
패키지로 설치하지 않아서 괜시리 찝찝했는데..
정균님에게 감사~~

cdpark의 이미지

아예 정식 데비안 패키지로 제출하시죠?

삶의여유의 이미지

데비안 시드를 쓰는데 덕분에 잘 설치했습니다.
홈페이지에 한글로 된 자세한 설명이 있고 세세한 설정도 가능해서 그동안 쓰고 싶었는데 기분 좋네요.

그런데 이 방화벽 설정을 하면 데비안의 소스 리스트를 업데이트 (aptitude update) 할 때 접근 속도가 상당히 느려집니다.
접근이 되긴 하는데 로그인한다면서 약 7~8초의 지연 시간이 생기네요. 방화벽을 내리면 바로 로그인되구요.
설정을 살펴보니 내부->외부로 접근할 때 대중적인 몇몇 포트만 허용하고 나머지는 모두 막게 되어 있는데,
데비안의 소스 리스트는 ftp 로 접근하기 때문에 방화벽에 막혀 있지 않거든요.
혹시 aptitude 를 쓰려면 별도의 포트를 열어줘야 하는 건지, 아니면 다른 분들은 잘 되시는지 궁금합니다.

wintsky의 이미지

cdpark wrote:
아예 정식 데비안 패키지로 제출하시죠?

이호석님께 부탁드려볼까요? :lol:

삶의여유 wrote:
그런데 이 방화벽 설정을 하면 데비안의 소스 리스트를 업데이트 (aptitude update) 할 때 접근 속도가 상당히 느려집니다.
접근이 되긴 하는데 로그인한다면서 약 7~8초의 지연 시간이 생기네요. 방화벽을 내리면 바로 로그인되구요.

저도 그렇습니다. 저의 짧은 구글링 실력으로는 포트 등의 원인은 알 수 없었구요.
서버 접속 시에는 딜레이가 생기지만 접속되면 똑같이 실행이 되서 그냥 쓰고 있습니다.
영양가 없는 답변이라 죄송하네요. :cry:

p.s. 그리고 보니 김정균님께 감사 인사를 안 드렸군요.
좋은 프로그램 만들어주셔서 감사합니다. :o

1day1의 이미지

ubuntu breezy 에서 사용중인데, oops-firewall 이 실행중에 eval 함수(?) 쪽에서 에러가 생기네요.

열심히 문제점을 찾아보던중, /etc/oops-firewall 의 conf 파일들의 한글 인코딩이 달라서
그런지 한글 부분을 모두 삭제를 해주니, 정상적으로 작동하네요.
인코딩은 UTF-8 을 사용중입니다.

F/OSS 가 함께하길..

블루스크린의 이미지

vi /etc/init.d/oops-firewall

해서

    echo -n $"Starting OOPS Firewall: "
    ${command} > /dev/null 2> ${ERR_FILE}


    echo -n $"Starting OOPS Firewall: "
    export LANG=en
    ${command} > /dev/null 2> ${ERR_FILE}

로 바꾸어주면 에러가 안나더군요
centos4에서 시험했습니다

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

1day1의 이미지

http://kldp.org/node/76734
새버전 v6.0.2 에서 bridge 관련해서 추가가 되어
brctl 이 필요하네요.
brctl ( apt-get install bridge-utils ) : bridge-utils 패키지 를 설치하면 되네요.

그외에는 별 다른 수정사항은 없는 듯 합니다.

F/OSS 가 함께하길.. (F/OSS서포터즈 : [[FOSS/Supporters]], [[FOSS/Supporters/Group]]) - 답글 프로젝트 : 왜! 이글에는 답글이 없나요? 덤으로 포인트도!! -

F/OSS 가 함께하길..

김정균의 이미지

6.0.3 부터 debian 을 지원합니다. init file 은 /etc/debian_version 파일 존재 여부로 install 이 되게 되었습니다.

그리고 deb 를 생성하고 싶으면 소스 디렉토리에서..

debian/rule binary

명령을 실행하면 상위 디렉토리에 oops-firewall-version.deb 가 생성이 됩니다.

아 deb package 를 생성하기 위해서는 dh-make package 가 필요합니다. apt-get install dh-make 하시면 됩니다.

kite7의 이미지

ㅋ 회사 서버를 그냥 둘 이유가 하나 더 생겼군요. (젠투쓰려고 했었는데 귀찮네요..)
감사히 잘 쓰겠습니다..

익명사용자의 이미지

상기 데비안처럼 Gentoo 에서도 비슷하게 수정하여 사용하고 있습니다.
소스로 설치한후 설정부문만 건드린거라...
좀더 노력하여 윗분들처럼 Gentoo 에서도 간단히 설치할수있도록 해볼께요^^

세이군의 이미지

데비안을 정식 지원한다고 해서 패키지 파일을 생성해서 검사를 해보았더니 약간의 문제가 좀 있었습니다.
뭐 실행하고는 상관없는 부분이기는 하지만 정식 레파지토리에는 들어가기 어렵겠습니다.
뭐 KLDP에는 데비안 정식 레파지토리에 패키지를 올릴 수 있는 분(이호석,류창우,양유성님)들이 계시기에 깔끔하게 처리된 패키지를 만들어서 올리는 것은 저 분들께서 해주시겠죠.

6.0.3 소스파일의 패키징 문제점은 이렇습니다.
검사 환경 :
PentiumM-III 700Mhz
데비안 Etch(테스팅)
문제점 목록
1. MAN 페이지 없음
2. 추가 라이선스 파일이 존재
3. FSF 의 주소가 이전 주소로 되어 있음(Copyright문서)
4. /etc/init.d/oops-firewall이 update-rc.d를 이용하여 등록하지 않고 수동등록
5. 설정파일 중복
6. 메인테이너의 이름이 풀네임이 아님 - 실제로는 풀네임이지만 .으로 연결하였기에 풀네임이 아닌 것으로 인식

저도 이 부분에 대해서 별로 알지 못하기 때문에 도움을 드리기 좀 어렵습니다.
다른 분들이 이 문제에 대해서 도움을 주시겠죠.

위 내용의 실제 영문 메시지를 보고 싶으시다면

apt-get install lintian

을 실행하신다음에

lintian -vvv oops-firewall_6.0.3-1.i386.changes

를 하시면 알 수 있습니다.
한 걸음 더 가까이

김정균의 이미지

음.. 왠만하면 고쳐보려고 했는데.. 도저히 모르겠습니다. 문서는 2002 년 문서 밖에 안나오고..

conffiles 중복 설정 파일 문제와, postinst/prerm 을 이용해서 update-rc.d 등록해 줘봐도 에러가 나오는 군요. 포기입니다. :-)

6.0.x 의 bridge 엄청 버그를 수정한 6.1.0 이 릴리즈 될 예정입니다. po 파일만 편집해서..

김정균의 이미지

정식이라는 말은 없었는데요. 전 debian packaging 정책에 대해서는 모릅니다. ;-) 그런 부분은 debian 을 사용하시는 분들이 수정해 주셔야 할 부분이죠. 전 사용자분들이 고쳐서 사용을 해야 한다는 부분 때문에 그런 부분을 main tree 에 반영해 둔 것 뿐입니다. ;-)

어디를 어떻게 고쳐야 한다.. 라는 것을 알려 주시면 반영해 드릴 의지는 있습니다. 다만, 제가 찾아서 하기에는 시간을 투자해야 할 곳이 너무 많다는 것이죠. :-) 제가 사용하지 않기 때문이라도 우선순위에서 엄청 밀릴겁니다.

즉, 어디를 어떻게 고쳐주세요 하면.. 바로 반영해 드릴 수는 있다는 얘기입니다. (좀 구체적으로 ㅋㅋ) 뭐 patch 를 주시면 더 고맙고요.

그리고, 정식 패키지에 들어가는 것은 저도 생각하고 있지 않습니다. 제일 중요한.. 국제화 문제가 남아 있는데.. oops-firewall 은 한국어로 지원을 하거든요 ^^; 설정파일들을 모두 번역을 해야 하고.. 또.. 영문 매뉴얼도 만들어야 한다는 --;

김정균의 이미지

6.2.6 에서 debian (ubuntu) 관련 업데이트가 많이 되었습니다. 일단 /bin/sh mode 에서 ansi 출력에서 문제가 되는 부분이 수정이 되었고, debian package source 에서 될 수 있으면 validate 하도록 수정했습니다... 만.. init script 에서 계속 LSB section 이 없다고 나오는데.. 넣어줬는데 나오는지라.. 이는 포기했습니다. :-)

ftp://mirror.oops.org/pub/oops/oops-firewall/deb/

에서 debian / ubuntu 용 패키지를 받으실 수 있습니다. (web browser 로 접근 되지 않습니다.)

그리고 결정적으로, utf8 system 에서 설정 파일이 주석이 euc-kr 이라서 에러가 발생하는 부분이 이번 버전에서 픽스 되었습니다. 이젠 charset 문제는 없습니다.

P.S
불행히도 6.2.6 부터는 설정 파일 주석이 영어로 변경이 되었습니다. 정 못견디겠는 분들은 5.2.5 의 설정 파일을 가져다 사용하시면 되겠습니다.

블루스크린의 이미지

centos에서 사용중입니다.

전에는 스크립트 내부에 LANG=en 을 추가해서 썼었는데 이제 그럴필요가 없네요 ^^

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

rea1ity의 이미지

OOPS 방화벽이 다른 방화벽에 비해 뭔가 특별한 능력이 있나요?

블루스크린의 이미지


문서 쭉 읽어보고 설정하면 끝이죠

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

-------------------------------------------------------------------------------
이 댓글(comment)의 수정 및 삭제를 위해 이 글에 답글(reply)을 쓰지 말아 주십시요.
의견이 있으시면 원 글에 댓글(comment)로 써 주세요.

댓글 달기

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