iptables 1.3.7 with Linux Kernel 2.6.21

이번에 바닐라 커널

linux-2.6.21 버전과

iptables-1.3.7 버전을 설치 했다.

geoip도 함께 컴파일 하려고 했지만... 2.6.20 버전에선... 설치는 되는데

reboot가 안 되는 문제가 있는듯 하여 .21 버전으로 업그래이드 하였으나

컴파일이 정상적으로 되지 않는 문제가 생겼다.

하여 geoip는 제외 시키고 string_match 만 믿고 컴파일 하였다.

기존 iptables 1.2.x 대는 string_match 옵션에 따라서 하면 되지만

inux-2.6.14 버전 이후로??? 옵션을 추가해줘야 string_match 를 활성화 해 줄 수가있다.

관련 문서


.SS string
This modules matches a given string by using some pattern matching strategy.
It requires a linux kernel >= 2.6.14.

.TP
.BI "--algo  " "bm|kmp"
Select the pattern matching strategy. (bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)
.TP
.BI "--from " "offset"
Set the offset from which it starts looking for any matching. If not passed, default is 0.
.TP
.BI "--to " "offset"
Set the offset from which it starts looking for any matching. If not passed, default is the packet size.
.TP
.BI "--string " "pattern"
Matches the given pattern.
.BI "--hex-string " "pattern"
Matches the given pattern in hex notation.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 삐꾸강아쥐

2007/04/29 16:47 2007/04/29 16:47
, , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://blog.blog.n-nuri.com/rss/response/338

Trackback URL : http://blog.blog.n-nuri.com/trackback/338

Leave a comment
[로그인][오픈아이디란?]

iptables 특정 IP ping 허용

특정 IP에서 ping 허용

iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -s 12x.140.2x8.0/24 -j ACCEPT <== 나가는측
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -s 21x.45.1x0.0/24 -j ACCEPT <== 들어 오는측

ping을 허용 안 하면 좋겠지만

서버 모니터링 프로그램이나 기타 등등 관리 목적으로 ping을 허가해 줘야 할 경우가 생긴다

이런 이유로 특정 IP에 대하여 ping을 허가해 주자
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by 삐꾸강아쥐

2007/04/16 11:19 2007/04/16 11:19
Response
0 Trackbacks , 6 Comments
RSS :
http://blog.blog.n-nuri.com/rss/response/278

Trackback URL : http://blog.blog.n-nuri.com/trackback/278

Comments List

  1. 6년근홍삼 2007/09/28 16:59 # M/D Reply Permalink

    제가 사무실에서 쓸려고 리눅스방화벽을 실험해보고 있습니다. 한가지 문제가 있는데 방화벽안의 192.168.0.0/24 에서 밖의 192.168.1.0/24 으로 통신은 가능한데 방화벽안의 pc끼리는 ping 과 윈도우 작업그룹이 되지 않습니다. 80번 포트는 되더군요. 원래 리눅스 방화벽 초기 설정이 클라이언트들의 통신을 80포트 빼고 모두 차단하나요?

    1. 삐꾸강아쥐 2007/09/28 20:56 # M/D Permalink

      일반적으로... 내부는... 아무런 제한이 없이 통신이 되는데요???

      방화벽 상태를 보세요... 내부 인터페이스쪽을 막아 버렸으면 그럴수도 있습니다.


      아... 그리고 혹시 내부 컴이 윈도우 이시면... 윈도우쪽 방화벽 상태 보세요...

      윈도우에도 방화벽이 있답니다...

  2. 6년근홍삼 2007/09/29 11:32 # M/D Reply Permalink

    관심에 감사드립니다. 2)의 윈도우방화벽은 아니라고 생각됩니다. 허브로 연결할때는 되거든요. 리눅스의 내부 NIC인 eth1 의 iptables 에 원인이 있다고 생각되지만 정확히 뭔지 알수가 없군요.

    원인 파악을 위해 어떤 iptables 규칙때문에 차단되는지 알수 있는 방법이 있나요? 로그기록 같은거요.

    혹시 사용하고계신 iptables 예제를 좀 얻을수 있을까요? 그대로 적용해 보게요.

    거듭 답변에 감사드립니다.

    1. 삐꾸강아쥐 2007/09/30 09:46 # M/D Permalink

      뭐... iptables 룰 때문 이라고... 생각 되시면...

      사설 IP 인 상태시겠죠???

      그러면... iptables 룰셋을... 해제 해 보세요~!

      iptables -F

      그러면 정확하게... 룰셋 문제인지 알수가 있죠...^^

  3. 6년근홍삼 2007/10/01 13:19 # M/D Reply Permalink

    됐습니다. 혹시나 해서 보니 윈도우 방화벽문제 이더군요. 실제로 사용중인 pc들은 델인데 이번에 실험에 쓴 것들은 옛날 해커스 제품이었습니다. 서비스팩 2로 업그레이드 했는데 델하고 방화벽 설정이 다르더군요. 그래서 윈도우 방화벽문제는 아닐 것이라는 편견으로 삽질을 했군요. 정말 감사드립니다.

    1. yjj3019@empal.com 2007/10/01 14:29 # M/D Permalink

      ^^ 해결 되셨다니... 다행이네요....

Leave a comment
[로그인][오픈아이디란?]

iptables (호스트기반의 방화벽)

출처 : http://blog.naver.com/shseyo?Redirect=Log&logNo=20031767171
사용자의 요청이 있을경우 자삭 합니다.


iptables -L  ==> 목록 열람

iptables -F  ==> 기존에 설정된 것을 전부다 없앤다.


iptables 명령어순서

1. chain name - 체인에 설정할 내용 (insert/delete/replace..) ex) -I CHAIN 3, -A, -D, -R, -F

2. table name - filter(기본값),nat,mangle ex) -t nat, -t filter(기본값)

3.Layer 3 - ex) -s ip주소, -d ip주소

4.Layer 4 - ex) -p tcp --dport 80, -p udp --sport 21

5.Target - ex) -j ACCEPT,LOG,DROP,REJECT


호스트기반의 방화벽에서, serv컴이 방화벽이 설치되어있다.

퀴즈1) serv컴퓨터로 접속할 수 있는 client 중 ip가 192.168.247.20(work)가 있다.

         serv컴에서 이 컴퓨터의 모든 접속을 차단하고자 한다.

         어떻게 방화벽을 셋팅을 해야 할까..

===>INPUT 기본 정책이 ACCEPT로 되어있기에 work컴만 DROP또는 REJECT 시키면 된다.

     iptables -I INPUT -t filter -s 192.168.247.20 -j DROP (DROP은 ping도 거절한다.모든응답차단)   

                       (REJECT는 ping응답을 받고 보낸다)


iptables-save > /root/firewall.rule  ==>룰을 저장

iptables-restore < /root/firewall.rule  ==>룰을 불러옴


컴퓨터가 재부팅되면 설정되었던 iptables룰이 없어진다.

==>/etc/sysconfig/iptables ==> 기본설정룰

    /etc/sysconfig/iptables-config  ==> 환결설정화일

vi iptables-config

19행 IPTABLES_SAVE_ON_STOP="yes"

25행 IPTABLES_SAVE_ON_RESTART="yes"

로 바꾸면 재부팅되어도 설정된 룰이 사라지지 않는다.

iptables -L -v ==> 차단한 패킷의 수와 사이즈를 확인

iptables -L --line-numbers  ==> 룰의 순서를 보여준다.

iptables -L -n ==> 문자주소가 숫자주소로 바뀌어 출력된다. or -nL



iptables -R INPUT 3 -t filter -s 10.1.1.0/24 -j REJECT

iptables -D INPUT 3


iptables -Z  ==>iptables -L -v 로 확인했던 차단패킷 사이즈등을 초기화시킴(모니터링을위해)


<사용자정의체인>:관리의 편의성을 위해서 사용한다.

iptables -X RH-Firewall-1-INPUT  ==>사용자정의 체인 삭제

iptables -N INTRANET  ==>사용자정의 생성

iptables -E INTRANET EXTRANET  ==>사용자정의 이름 변경


*매칭되는 룰이 없을경우는 기본정책의 적용을 받는다.

iptables -A EXTRANET -t filter -s 192.168.247.1 -j ACCEPT

*사용자 정의 체인은 만들어도 쓸수 없다. 링크가 되어 있어야 쓸 수 있다.(0 references)

*INPUT체인에서 EXTRANET에 링크로 갔다가 다시 INPUT으로 돌아와서 다 적용해본후 아무런 매칭된 경우가 없을 경우 INPUT의 기본정책에 적용된다.

iptables -I INPUT 2 -j EXTRANET ==>EXTRANET을 링크시킨다.

iptables -D INPUT 2



*1)사용자 정의를 삭제하기 위해서는 링크를 먼저 삭제해야한다.

*2)사용자 정의를 삭제하기 위해서는 체인내의 모든 RULE을 삭제

iptables -D INPUT 3

iptables -X EXTRANET

iptables -F EXTRANET  ==>EXTRANET 사용자정의체인내의 룰만 삭제한다..


퀴즈) serv컴퓨터에서는 work컴퓨터에서의 telnet접속만 차단할 수 있도록 rule셋팅하세요.

iptables -I INPUT -t filter -s 192.168.247.20 -p tcp --dport 23 -j DROP


iptables -P FORWARD DROP

iptables -P INPUT DROP


퀴즈) serv컴에서는 work 컴에게 ssh접속만 허용하고 xp컴에게는 telnet 접속만 허용하도록 설정하시고 그 이외의 모든 접속을 차단하도록 설정해보세요.

iptables -P INPUT DROP

iptables -A INPUT -t filter -s 192.168.247.20 -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -t filter -s 192.168.247.1 -p tcp --dport 23 -j ACCEPT



iptables -A INPUT -t filter -p tcp --sport 1:1023 -j ACCEPT  ==>1세대방화벽의 단점(ssh,telnet등의 서비스들의 ack/syn패킷을 받기 위해서 사용)



상태추적기능을 이용해보자.

*ping은 echo-request와 echo-reply를 사용한다.

              <-m state --state>

NEW상태는  접속요청하면 아무나 다 접속된다.(SYN패킷을 가져오는 컴은 다 접속된다.)

ESTABLISH상태는 접속요청에대한 응답패킷을 establish상태라고 한다.요청으로 나갔다가 다시들어오는 패킷들을 허용한다.

RELATED ftp서버를 위해서

INVALID 연결상태를 알수 없거나 잘못된 페더를 가진 경우


iptables -I INPUT 1 -t filter -m state --state ESTABLISHED,RELATED -j ACCEPT 이제는 외부로의 ftp나 ping등의 접속이 된다.나갔다가(sync) 다시 되돌아오는 패킷(sync ack)들을 허용하기위해서(상태추적테이블을 이용한다.)

cat /proc/net/ip_conntrack ==> 상태추적 테이블 저장

방화벽은 2-3계층사이에서 동작한다.

iptables -I INPUT 1 -t filter -m state --state NEW,RELATED,ESTABLISHED ==> 모든 서비스가 다 접속이 되어 버린다. ( 절대로 이런설정은 하면 안된다.)


UDP:123

SysLog-UDP:514

TFTP UDP:69

UDP포트는 서비스를 제공받을시 똑같은 포트를 이용한다. 123/UDP <---------------->123/UDP

                                                                              SERVER                             CLIENT


퀴즈) work 컴퓨터에서만 핑을 허용하고 그외의 모든 핑은 차단한다.

iptables -A INPUT -t filter -s 192.168.149.20 -p icmp --icmp-type echo-request -j ACCEPT


멀티포트

iptables -I INPUT 1 -p tcp -m multiport --dport 80,22,25 -j ACCEPT


노트북을 이용해서 이동하면서 원격접속시는 ip어드레스가 바뀌므로 방화벽에 의해 접속이 안되는 경우를 위해서 맥어드레스를 이용해서 방화벽허용을 한다.

00:0C:29:D4:46:58

iptables -I INPUT 3 -t filter -m mac --mac-source 00:0C:29:D4:46:58 -p tcp --dport 22 -j ACCEPT


-j LOG  --> /var/log/messages

vi /etc/syslog.conf

3행수정 kern.*                      /var/log/firewall

-j LOG는 순서를 맨위로 하는 것이 좋다. 로그기록을 하고 바로 밑으로 순서대로 진행한다.

iptables -I INPUT -t filter -p tcp --dport 23 -j LOG --log-prefix "Warning telnet access"

사용자체인을 걸어서 로그기록들의 링크를 걸어놓는 것이 좋은 방법이다.


우리가 열어놓지 않는 포트에의 접속시도의 로그를 남기는 것이 더 효율적이다.

퀴즈)serv컴퓨터에서 접속을 허용한 ssh,web 서비스 이외의 접속에 대해서 로그를 생성할 수 있도록 방화벽 셋팅을 하세요(단 로그를 남길때 "not permit access" 코맨트를 첨부하세요) (not,multiport이용)

==>iptables -I INPUT 1 -t filter -p tcp -m multiport --dport ! 21,22,23,80 -j LOG --log-prefix "not permit access"

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 삐꾸강아쥐

2007/02/07 10:19 2007/02/07 10:19
Response
0 Trackbacks , 0 Comments
RSS :
http://blog.blog.n-nuri.com/rss/response/257

Trackback URL : http://blog.blog.n-nuri.com/trackback/257

Leave a comment
[로그인][오픈아이디란?]

블로그 이미지

http://blog.n-nuri.com 이 접속이 안 될경우 http://x2x.dnip.net 으로 접속해 주세요 공유하지 않는 지식은 썩은 물과 같다~~~!!!

- 삐꾸강아쥐

Archives

Recent Trackbacks

Calendar

«   2009/01   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Site Stats

Total hits:
228254
Today:
33
Yesterday:
247
free counters