리눅스 분류
iptables 설정에서 로그가 잡히고 서버가 이상합니다.
작성자 정보
- 문성민 작성
- 작성일
컨텐츠 정보
- 2,114 조회
- 1 댓글
- 0 추천
- 목록
본문
아래의 룰을 적용했을때 최초 접속..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
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 리졸빙에 실패한것 같군요.
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 리졸빙에 실패한것 같군요.