질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

iptables 설정에서 로그가 잡히고 서버가 이상합니다.

작성자 정보

  • 문성민 작성
  • 작성일

컨텐츠 정보

본문

아래의 룰을 적용했을때 최초 접속..10초 이내룰... ssh 비정상 로그에 인해~
IP를 차단한 로그가 5시쯤에 잡혀있고 5시간동안 로그가 아무것도 없습니다.
차단이후 80번 포트등에 문제가 생겼는지..정상적인 웹서비스가 되지 않았구요...

이상한것은 예를들어 한국통신사용자는 홈페이지 접속이 되고~
데이콤 사용자는 접속이 안되는 사태가 생겼습니다.

처음에는 데이콤 사용자의 네임서버가 잠시 다운됐다고 생각했는데...
방화벽을 off 하면 외부에서 접속이 됐습니다...

방화벽이 ssh 를 차단하면서 문제가 생긴것 같은데
어떻게 확인을 하는지 모르겠습니다.

룰에 무슨 실수한 부분이 있는지요?

=================================  iptables 파일 ======================================== 

[root@www sysconfig]# cat iptables
# Generated by iptables-save v1.3.5 on Mon Nov 23 15:15:36 2009
*filter
:INPUT DROP [15:879]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [21644:21619704]
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 109 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 10/sec --limit-burst 1 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -j LOG --log-prefix "[OverSSH]" --log-level 5
-A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A INPUT -p tcp -m tcp --dport 1:65535 -j DROP
COMMIT
# Completed on Mon Nov 23 15:15:36 2009
[root@www sysconfig]#




=================== cat /var/log/messages 파일 =================================

Nov 23 18:46:48 www kernel: [OverSSH]IN=eth0 OUT= MAC=00:0e:0c:cf:fd:2d:00:d0:00:d9:c4:00:08:00 SRC=189.168.21.61 DST=*.*.*.*(제IP)  LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=6902 DF PROTO=TCP SPT=53803 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
Nov 23 18:46:51 www kernel: [OverSSH]IN=eth0 OUT= MAC=00:0e:0c:cf:fd:2d:00:d0:00:d9:c4:00:08:00 SRC=189.168.21.61 DST=*.*.*.*(제IP)  LEN=60 TOS=0x00 PREC=0x00 TTL=45 ID=6903 DF PROTO=TCP SPT=53803 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
Nov 23 23:24:00 www named[2681]: network unreachable resolving '216.150.20.218.in-addr.arpa/PTR/IN': 2001:7fd::1#53

관련자료

댓글 1

리온님의 댓글

  • 리온
  • 작성일
--limit
          followed by a number; specifies the maximum average number of
          matches to allow per second.  The number can specify units
          explicitly, using `/second', `/minute', `/hour' or `/day', or
          parts of them (so `5/second' is the same as `5/s').

뒤에 오는 숫자는 초당 매칭이 허용되는 수를 의미합니다.
따라서 10초의 의미가 아니라 아니라 초당 10 유닛을 의미하게 됩니다.
다른 형태로 쓰기 위해선 분당 몇회 이런식으로 바꿔 쓸수 있다고 합니다.
/m /h /d 와 같은 형태로 축약도 가능한 것 같구요.

--limit-burst
          followed by a number, indicating the maximum burst before the
          above limit kicks in.

리미트에서 설정한 수치를 오버한 곳을 킥하기 전에 최대 룰 매칭의 burst 를 의미합니다.
위의 룰은 초당 10유닛 한번이라도 오면 허용해줘라 이런 의미가 되는것 같은데요


1) -A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 10/sec --limit-burst 1 -j ACCEPT
tcp 22 번 포트로 FIN,SYN,RST,ACK 매스크에 SYN set 된 패킷이 초당 10개가 일단 오면 허용한다.

2) -A INPUT -p tcp -m tcp --dport 22 ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
tcp 22번 포트로 FIN,SYN,RST,ACK 매스크에 SYN set 아니면 허용한다.

3) -A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -j LOG --log-prefix "[OverSSH]" --log-level 5
tcp 22번 포트에 FIN,SYN,RST,ACK 매스크에 SYN set 이면 로그를 남긴다.

4) -A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
tcp 22번 포트에 FIN,SYN,RST,ACK 매스크에 SYN set 이면 드롭한다.


맨 처음 설정이랑 맨 마지막 설정 먼가 이상하지 않나요 ?
1) 을 반대로 생각해보면 SYN 패킷이 와도 초당 10개의 매칭 패킷이 안오면
DROP 하겠다는 의미가 되어버리는데
2) 1) 이 아닌 패킷이 22번으로 오면 허용하겠다.
3) 번에서는 그렇게 ACCEPT 된것에 한해 로그를 남기고 있고
4) 에서는 1)과 같은 패킷들을 DROP 하고 있네요

무엇을 하려 했는지 제가 내공이 부족해 알기가 힘드네요.

여담으로 그 아래 로그에 보시면 www 리졸빙에 실패한것 같군요.

공지사항


뉴스광장


  • 현재 회원수 :  60,133 명
  • 현재 강좌수 :  36,170 개
  • 현재 접속자 :  440 명