내가 공격 받거나 바보입니까?


11

여러 OpenVZ 컨테이너와 함께 Debian Squeeze를 사용하여 서버를 실행합니다. 컨테이너는 주로 Squeeze, 일부는 Lenny 및 일부는 이미 Wheezy로 업데이트되었습니다. 호스트는 iptables와 DHCP를 넘어서 그렇게 많은 것을하지 않습니다. 파일 서버, 프록시, 메일 서버, kerberos, LDAP 등은 모두 컨테이너에 저장됩니다. 시스템은 수년간 안정적으로 운영되었으며 1 년 이상 방화벽 규칙을 제외하고는 큰 변화가 없었습니다.

이틀 전에 갑자기 시스템이 다운되었습니다. 나는 그것을 다시 제기하는 데 많은 문제가있었습니다. 처음에는 ssh를 통해 로그인 할 수 없었습니다. '존재하지 않습니다.로 루트 로그인이 거부되었습니다. 저리가! ' 로컬 로그인에 문제가 없었습니다. 얼마 후 ssh가 다시 작동했습니다. 우연히도 나는 bash 기록에서 줄을 재사용하지 않았지만 새로운 명령을 입력했다.

그런 다음 시스템은 실행되었지만 SYN ACK 이후 대부분의 프로토콜에서 네트워크 트래픽이 차단되었습니다. DNS, Telnet 및 SSH는 괜찮 았지만 나머지는 엉망이었습니다. 몇 시간 동안 어둠 속에서 낚시를하고 방화벽을 여러 번 다시 장전 한 후 갑자기 모든 것이 다시 정상적으로 진행되었습니다. 로그에서 의심스러운 것을 찾을 수 없었지만 법의학 전문가는 아닙니다.

오늘 파일 할당량의 nscd가 컨테이너 할당량으로 인해 LDAP에서 소켓에 연결되지 않았습니다. 전에 일어난 적이없는 일. 또한 smbd가 주장한 많은 소켓 (> 30)을 보았습니다.

/ var / log / messages는 syslog 와 거의 동일하게 보입니다 . /var/log/kern.log에는 충돌 원인에 대한 추가 정보가 있습니다.

/var/log/kern.log:2950:Sep 19 10:46:57 asgard kernel: [6529441.320086] INFO: task sendmail:32181 blocked for more than 120 seconds.
/var/log/kern.log:2982:Sep 19 10:48:57 asgard kernel: [6529561.324525] INFO: task kdmflush:1932 blocked for more than 120 seconds.
/var/log/kern.log:3005:Sep 19 10:48:57 asgard kernel: [6529561.324694] INFO: task xfssyncd:10162 blocked for more than 120 seconds.
/var/log/kern.log:3027:Sep 19 10:48:57 asgard kernel: [6529561.324934] INFO: task postgres:16827 blocked for more than 120 seconds.
/var/log/kern.log:3060:Sep 19 10:49:51 asgard kernel: [6529561.325129] INFO: task imapd:31749 blocked for more than 120 seconds.
/var/log/kern.log:3084:Sep 19 10:49:51 asgard kernel: [6529561.325248] INFO: task cleanup:32194 blocked for more than 120 seconds.
/var/log/kern.log:3106:Sep 19 10:50:57 asgard kernel: [6529681.324028] INFO: task flush-253:3:3216 blocked for more than 120 seconds.
/var/log/kern.log:3142:Sep 19 10:50:57 asgard kernel: [6529681.324224] INFO: task kjournald:6859 blocked for more than 120 seconds.
/var/log/kern.log:3166:Sep 19 10:50:57 asgard kernel: [6529681.324366] INFO: task syslogd:11720 blocked for more than 120 seconds.
/var/log/kern.log:3198:Sep 19 10:50:57 asgard kernel: [6529681.324574] INFO: task postgres:16827 blocked for more than 120 seconds.
/var/log/kern.log:7152:Sep 19 19:29:41 asgard kernel: [ 1440.617090] INFO: task sendmail:11892 blocked for more than 120 seconds.

컴퓨터를 재부팅 한 후 마지막 'Sendmail'충돌이 발생했습니다. 그 이후로 더 이상 그러한 사건이 발생하지 않았습니다. 'imapd'와 'postgres'는 확실히 다른 컨테이너에서 실행됩니다.

글쎄, 나는 흡연 총을 보지 못했지만 아마도 장님 일 것입니다. 알려진 / 추정 된 백업에서 시스템을 설정하면 아무 이유없이 시도하기가 너무 어려워집니다.

다음에 확인해야 할 조언이 있으면 감사하겠습니다.

당신의 도움을 주셔서 감사합니다.

업데이트 : 충돌의 사전 커서를 검색하는 데 더 많은 노력을 기울이고 syslog에서 다음을 발견했습니다.

Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (10490->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]:   **WARNING** packet truncated (17442->8232)
Sep 19 10:11:02 asgard ntop[7965]:   **WARNING** packet truncated (11650->8232)
Sep 19 10:11:02 asgard ntop[7965]:   **WARNING** packet truncated (10202->8232)
Sep 19 10:11:29 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:13:27 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)
Sep 19 10:20:33 asgard ntop[7965]:   **WARNING** packet truncated (8754->8232)

나는 이것이 중요하지 않은 것으로 여겨지지만 드문 사건 인 것 같습니다. 패킷 잘림은 두 번째 충돌 일에만 존재합니다. 사용 가능한 모든 로그 파일이 없습니다.

답변:


2

이것은 nework 또는 손상된 컨테이너 중 하나에서 시작된 DoS처럼 보입니다.

vmstat를 살펴보고 5 초마다 지속적으로 실행합니다. vmstat 5는 리소스가 소비되는 위치를 기록합니다. 또한 별도의 창에서 screen을 사용하고 vmstat 60 (1 분마다)을 실행할 수 있습니다. 이렇게하면 오랜 시간에 걸쳐 스파이크가 발생할 수 있습니다.

이 상황에서 높은 / 스파이 킹 시스템 CPU (sy), 높은 컨텍스트 전환율 (cs) 및 높은 IO (네트워크 및 디스크 모두 표시)는 DoS를 나타냅니다.

$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0   9584   6820 132432  23256    1    1   136    12    1    1 83  1 15  0  0
 0  0   9584   6696 132432  23256    0    0     0     0   20   32  0  0 99  0  1

동시에 호스트의 네트워크 트래픽을 모니터링하므로 다음과 같이 ntop을 권장합니다.

$ nload -t 10000 -u H eth0

0

디스크 I / O 오류처럼 보입니다. fsck를 실행하고 오류를 확인하십시오.


이를 위해 가동 중지 시간을 예약하려고합니다. 그러나 I / O 디스크 오류 관련 로그는 어디에도 없습니다. 아니면 봤어?
Lars Hanke

0

어쩌면 파일 시스템 오류가 없지만 D 상태 (I / O 대기)의 많은 프로세스가 있고 커널이 오랫동안 대기 중임을 알리기 때문에 로그에 경고가 표시됩니다.


나는 이것이 사실이라고 생각한다. 그런데 왜? 정상적인 조건에서는 D 상태의 프로세스가 없습니다. 실제로 네트워크가 다운되면 설명 할 수 있습니다. 그러나 일부 서비스에서만 다운되는 이유는 무엇입니까? 그 상태가 재부팅 후에도 지속 된 이유는 무엇입니까? 그리고 왜 다시 나타 났습니까?
Lars Hanke

0

이 오류는 프로세스가 디스크에 액세스하기에 너무 오래 (120 초) 대기 중임을 나타냅니다. 이는 디스크가 너무 바빠서 프로세스에 응답 할 수없는 혼잡 한 서버에서 발생합니다.

vmstat에서 "Waiting"을 확인하여 확인할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.