오늘, 갑자기 원격데스크탑 접속 오류가 발생했습니다.

이런 오류는 처음보네요.

 

"CredSSP 암호화 오라클 수정 때문일 수 있습니다." 라니..

 

해당 이슈가 발생한다면 아래의 레지스트리를 수정 혹은 생성하여 저장하신 후 재부팅 해 보시기 바랍니다.

숫자 "AllowEncryptionOracle"의 생성은 "DWORD(32비트) 값"으로 생성하시면 됩니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters]
"AllowEncryptionOracle"=dword:00000002

 

이 후 원격데스크탑을 재접속 해보시기 바랍니다.

저는 재부팅 안하고 즉시 접속이 됐는데, 접속이 안되면 재부팅하여 접속해 보시기 바랍니다.

'기술 노트 > OS' 카테고리의 다른 글

원격데스크탑 접속 기록 삭제  (0) 2023.04.27
원격데스크탑 세션 수 늘리기  (0) 2023.04.27
시간 동기화  (0) 2023.04.04
NetworkManager의 IPv6 오류 메시지  (0) 2023.04.04
python default 버전 설정  (0) 2023.03.16

개인적으로 NAS를 사용하고 있습니다.

NAS에는 confluence를 올려서 사용하는데, 데이터를 복원하려다 보니 docker 명령어를 이용하여 백업 파일을 복사해줘야 해서 사용하게 되어 기록합니다.

명령어는 아래와 같습니다.

docker cp <컨테이너 이름>:<컨테이너 내부 파일 경로> <복사할 파일 경로>

[/share/CACHEDEV1_DATA/DATA/ksm5553/01_개인자료/atlassian] # docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED       STATUS       PORTS     NAMES
523649d4ff99   wiki:wiki_220601-data-1   "/usr/bin/tini -- /e…"   4 hours ago   Up 4 hours             wiki
[/share/CACHEDEV1_DATA/DATA/ksm5553/01_개인자료/atlassian] # docker cp ./xmlexport-20201022-003822-10.zip 523649d4ff99:/var/atlassian/application-data/confluence/restore
[/share/CACHEDEV1_DATA/DATA/ksm5553/01_개인자료/atlassian] #

'기술 노트 > Docker' 카테고리의 다른 글

docker로 컨테이너 올리기  (0) 2023.09.26
윈도우즈에 docker 설치하기  (0) 2023.09.26

이전 가이드한 그래프가 너무 못 생겨서, 제가 현재 사용 중인 쿼리 하나를 공유하겠습니다.

이전 가이드 문서는 아래 링크를 참조하세요.

https://dirt-spoon.tistory.com/88

 

당연히 쿼리의 획득은 여러 템플릿을 사용 해 보고, 알아 낸 쿼리 입니다.

-max(irate(ifHCInOctets{instance='192.168.10.2',job='snmp'}[5m]))

위의 쿼리로 그래프를 그리면, 192.168.10.2에 들어오는 트래픽 전체를 그래프로 그려줍니다.

아래 그래프를 수정합니다.

아래의 그림처럼 쿼리를 수정합니다.

쿼리를 입력할 때는 메모장 같은 곳에서 수정하고 붙여넣기를 권장합니다.

쿼리입력이 쉽지 않네요. 제 PC만 그런건지는 모르겠어요.

수정이 잘 안되요. 직접 경험하면 이 말이 무슨 뜻인지 알거에요.

그라파나 업데이트 했더니 입력이 잘 되네요... ㅠㅠ

쿼리 입력이 이상하면 업데이트하세요.

이제 좀 모양을 잡은 것 같네요.

그런데, 그래프의 단위와 범례가 이상해 보입니다.

다시 수정합니다.

이제 그래도 보기 좋게 수정이 된 것 같습니다.

왼쪽 상단의 "←"를 눌러 전체 보기를 해봅니다.

완성입니다!!!

다른 그래프와 비교하여 보기 좋게 보입니다.

 

특이사항으로는 다른 그래프들은 In, Out을 사용하였습니다.

In, Out을 자세히 보면 저는 In을 다운로드, Out을 Upload로 표현하였습니다.

해당 스위치 입장에서는 In은 사용자가 데이터를 다운로드하여 해당 데이터가 스위치에 유입이 되는 겁니다.

그래서 In은 사용자 입장에서는 다운로드, 스위치 입장에서는 유입입니다.

'기술 노트 > grafana' 카테고리의 다른 글

그라파나 그래프 그리기  (0) 2023.04.12
그라파나 설정 (snmp)  (0) 2023.04.10
그라파나 설정 (promethues)  (0) 2023.04.10
그라파나 설치하기  (0) 2023.04.10

이전 가이드 문서에서 dashboard를 제대로 가져왔다면 아래의 그림처럼 보일 것입니다.

이전 가이드 문서 정보입니다.

https://dirt-spoon.tistory.com/88

 

저와 그림이 다른 이유는 해당 장비의 인터페이스 수에 맞게 그래프가 보여서 입니다.

이 중에 인터페이스를 하나 선택합니다.

Click 후 Edit 선택 (캡쳐를 하려고 하니 팝업 매뉴가 계속 사라져서 안되네요 ㅠㅠ)

표시한 쿼리를 수정하여 내가 원하는 것으로 쿼리를 수정하겠습니다.

해당 쿼리를 복사하여 prometheus의 graph 매뉴로 이동합니다.

복사했던 쿼리를 수정합니다.

irate(ifHCInOctets{job='snmp',instance='$Device',ifDescr=~'$Interface'}[5m])

해당 로그를 아래와 같이 수정해 봅니다.

쿼리는 먼저 가장 단순히 조회를 해보고, 정상적으로 쿼리가 된다면 하나씩 옵션을 넣으시면 됩니다.

ifHCInOctets{job='snmp',instance='192.168.10.2'}

필드 값은 솔직히 정확하게 저도 잘 모릅니다.

많은 템플릿을 불러와서 그래프를 보고 이해하여야 합니다.

ifHCInOctets는 현재 들어오고 있는 트래픽의 전송량으로 보입니다. (사용자 입장에서는 다운로드)

반대로 ifHCOutOctets은 현재 나가는 트래픽의 전송량으로 보입니다. (사용자 입장에서는 업로드)

 

쿼리를 넣고 실행시켜 봅니다.

아래와 같이 보인다면 이제 끝이 보이는 겁니다.

아래처럼 그래프 버튼을 누르면 그림으로도 보실 수 있습니다.

이제 프로메테우스에서 하나의 그래패를 추가해 보겠습니다.

아래의 그림처럼 빨간 네모 버튼을 눌러주세요.

그래프가 정상적으로 나오는 것을 확인할 수 있습니다.

왼쪽 상단 "←"를 눌러 뒤로 가면, 방금 전에 추가한 그래프를 보실 수 있습니다.

이렇게 하면 프로메테우스로 네트워크 트래픽량을 그림으로 표시할 수가 있습니다만...

너무 못 생겼네요.

 

다음 글에 제가 사용 중인 쿼리 하나를 공개하겠습니다.

'기술 노트 > grafana' 카테고리의 다른 글

그라파나 그래프 그리기 (ifHCInOctets)  (0) 2023.04.12
그라파나 설정 (snmp)  (0) 2023.04.10
그라파나 설정 (promethues)  (0) 2023.04.10
그라파나 설치하기  (0) 2023.04.10

 

Grafana Labs에서 SNMP로 검색하여 본인에게 맞는 DASBOARD IMPORT

https://grafana.com/grafana/dashboards/

 

여기까지 따라 했다면 우선은 성공입니다.

처음부터 그래프를 그리기는 어렵기 때문에 이렇게 커뮤니티에서 DashBoard 템플릿을 가져 온 후

나에게 필요한 그래프의 쿼리를 확인하여 수정하시면 됩니다.

다음 글에는 그래프의 쿼리를 확인 및 수정하는 방법을 작성하겠습니다.

'기술 노트 > grafana' 카테고리의 다른 글

그라파나 그래프 그리기 (ifHCInOctets)  (0) 2023.04.12
그라파나 그래프 그리기  (0) 2023.04.12
그라파나 설정 (promethues)  (0) 2023.04.10
그라파나 설치하기  (0) 2023.04.10

그라파나 연동 설정

/etc/grafana/grafana.ini

# Metrics available at HTTP URL /metrics and /metrics/plugins/:pluginId
[metrics]
# Disable / Enable internal metrics
enabled           = true

# Disable total stats (stat_totals_*) metrics to be generated
disable_total_stats = false

#################################### Internal Grafana Metrics ############

[metrics.graphite]
# Enable by setting the address setting (ex localhost:2003)
address = 192.168.0.17:3000 <- 해당 부분 수정
prefix = prod.grafana.%(instance_name)s.

 

/etc/prometheus/prometheus.yml

# 추가
  - job_name: 'grafana_metrics'
    scrape_interval: 15s
    scrape_timeout: 5s

    static_configs:
      - targets: ['192.168.0.17:3000']

 

결과 확인

서비스 재시작 후 http://<그라파나 설치 서버>:3000/metrics 접속

 

기본 설정 끝

'기술 노트 > grafana' 카테고리의 다른 글

그라파나 그래프 그리기 (ifHCInOctets)  (0) 2023.04.12
그라파나 그래프 그리기  (0) 2023.04.12
그라파나 설정 (snmp)  (0) 2023.04.10
그라파나 설치하기  (0) 2023.04.10

그라파나 설치

[root@tmplogsvr ~]# yum install grafana
마지막 메타자료 만료확인 2:45:38 이전인: 2023년 04월 10일 (월) 오전 10시 03분 46초.
종속성이 해결되었습니다.
====================================================================================================
 꾸러미                  구조               버전                        레포지터리             크기
====================================================================================================
설치 중:
 grafana                 x86_64             7.5.15-4.el8                appstream              39 M
취약한 종속 꾸러미 설치 중:
 grafana-pcp             x86_64             3.2.0-3.el8                 appstream             9.5 M

연결 요약
====================================================================================================
설치  2 꾸러미

총계 내려받기 크기: 49 M
설치된 크기 : 191 M
진행 할 까요? [y/N]: y
꾸러미 내려받기 중:
(1/2): grafana-pcp-3.2.0-3.el8.x86_64.rpm                           9.7 MB/s | 9.5 MB     00:00
(2/2): grafana-7.5.15-4.el8.x86_64.rpm                               13 MB/s |  39 MB     00:02
----------------------------------------------------------------------------------------------------
합계                                                                 14 MB/s |  49 MB     00:03
연결 확인 실행 중
연결 확인에 성공했습니다.
연결 시험 실행 중
연결 시험에 성공했습니다.
연결 실행 중
  준비 중           :                                                                           1/1
  설치 중           : grafana-pcp-3.2.0-3.el8.x86_64                                            1/2
  스크립트릿 실행 중: grafana-7.5.15-4.el8.x86_64                                               2/2
  설치 중           : grafana-7.5.15-4.el8.x86_64                                               2/2
  스크립트릿 실행 중: grafana-7.5.15-4.el8.x86_64                                               2/2
  스크립트릿 실행 중: grafana-pcp-3.2.0-3.el8.x86_64                                            2/2
  스크립트릿 실행 중: grafana-7.5.15-4.el8.x86_64                                               2/2
[/usr/lib/tmpfiles.d/elasticsearch.conf:1] Line references path below legacy directory /var/run/, updating /var/run/elasticsearch → /run/elasticsearch; please update the tmpfiles.d/ drop-in file accordingly.

  확인 중           : grafana-7.5.15-4.el8.x86_64                                               1/2
  확인 중           : grafana-pcp-3.2.0-3.el8.x86_64                                            2/2

설치되었습니다:
  grafana-7.5.15-4.el8.x86_64                     grafana-pcp-3.2.0-3.el8.x86_64

완료되었습니다!
[root@tmplogsvr ~]#
[root@tmplogsvr ~]# systemctl enable grafana-server.service
Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.
[root@tmplogsvr ~]# systemctl daemon-reload

 

'기술 노트 > grafana' 카테고리의 다른 글

그라파나 그래프 그리기 (ifHCInOctets)  (0) 2023.04.12
그라파나 그래프 그리기  (0) 2023.04.12
그라파나 설정 (snmp)  (0) 2023.04.10
그라파나 설정 (promethues)  (0) 2023.04.10

최근 대부분 OS는 root로의 직접 로그인을 차단되어 있습니다.

해당 root 로그인 알람은 su 명령어를 통한 root  로그인에 대한 알람 설정입니다.

 

OS 로그인 알람 설정은 유지하며, Elastalert 룰만 추가하면 됩니다.

OS 로그인 알람 설정은 아래 페이지를 참고해 주세요.

https://dirt-spoon.tistory.com/84

 

elastalert 룰

name: server_root_login

type: any

index: logstash-tmpsyslogsvr*

filter:
- query:
    query_string:
      query: "USER:root AND COMMAND:/bin/su"

doc_type: _doc

alert:
- "slack"

slack:
# 슬랙 웹훅 주소
slack_webhook_url: "https://hooks.slack.com/services/--------------------------------------"
# 슬랙 채널에 메시지 전달할 이름
slack_username_override: "ElastAlert-Bot"
# 슬랙 메시지를 보낼 채널
slack_channel_override: "#security_alert"
# 슬랙 메시지에 타이틀 지정
# 지정하지 않을 경우 rule의 절대 경로 명이 찍힘: /opt/elastalert/ruls/ap_login_fail.yaml
slack_title: TMPLOGSVR_ROOT_LOGIN
# 슬랙 메시지 색
slack_msg_color: "good"


alert_text: "TMPLOGSVR_ROOT_LOGIN: 접속시간: {0} / 접속계정: {1}"
alert_text_type: "alert_text_only"

 

알람 확인

'기술 노트 > elastalert' 카테고리의 다른 글

OS 로그인 알람  (0) 2023.04.10
elastalert 웹 관리 방식 사용 시  (0) 2023.03.17
kibana에서 elastalert 룰 설정하기  (0) 2023.03.17
kibana에서 elastalert 사용하기  (0) 2023.03.17
elastalert 실행하기  (0) 2023.03.17

해당 설정은 CentOS 8 기준으로 작성하였습니다.

각 OS 에서 보안 로그 파일을 대상으로 알람을 설정하면 OS 로그인 모니터링이 가능합니다.

 

알람 설정 환경

  • ELK 운영 환경
  • 대상 로그 파일: /var/log/secure

 

logstash.conf 파일 설정

input {
  file {
    path => "/var/log/secure"
    start_position => "beginning"
    tags => ["os_tmpsyslogsvr"]
  }
}

filter {
  if "os_tmpsyslogsvr" in [tags] {
    grok {
      patterns_dir => ["/etc/logstash/pattern.d"]
        match => {
          "message" => [
            "%{SYSLOGBASE}\s%{GREEDYDATA:auth_module}\(%{GREEDYDATA:auth_module_used}\)\:\s%{GREEDYDATA:cause} for user %{USER:user}",
            "%{SYSLOGBASE}\s%{GREEDYDATA:cause} for %{USER:user} from %{IP:ip} port %{NUMBER:port} %{GREEDYDATA:protocol}",
            "%{SYSLOGBASE}\s%{GREEDYDATA:auth_module}\(%{GREEDYDATA:auth_module_used}\)\:\s%{GREEDYDATA:cause} by %{USER:user}\(uid=%{NUMBER:uid}\)",
            "%{SYSLOGBASE}\s%{GREEDYDATA:auth_module}\(%{GREEDYDATA:auth_module_used}\)\:\s%{GREEDYDATA:cause}\:\s%{GREEDYDATA:result}",
            "%{SYSLOGBASE}\s%{USER:user}\s\:\s%{GREEDYDATA:sub_message}",
            "%{SYSLOGBASE}\s%{GREEDYDATA:sub_message}"
          ]
        }
    }
    kv {
      source => "sub_message"
      field_split => " ; "
      value_split => "="
    }
    mutate { remove_field => [ "message", "sub_message" ] }

  }
}

output {
  if "os_tmpsyslogsvr" in [tags] {
    elasticsearch {
      hosts => "http://192.168.0.17:9200"
      index => "logstash-tmpsyslogsvr-index-%{+YYYY.MM.dd}"
    }
  }
}

 

elastalert 룰

name: server_login_success

type: any

index: logstash-tmpsyslogsvr*

filter:
- query:
    query_string:
      query: protocol:"ssh2" AND cause:"Accepted password"

doc_type: _doc

alert:
- "slack"

slack:
# 슬랙 웹훅 주소
slack_webhook_url: "https://hooks.slack.com/services/--------------------------------"
# 슬랙 채널에 메시지 전달할 이름
slack_username_override: "ElastAlert-Bot"
# 슬랙 메시지를 보낼 채널
slack_channel_override: "#security_alert"
# 슬랙 메시지에 타이틀 지정
# 지정하지 않을 경우 rule의 절대 경로 명이 찍힘: /opt/elastalert/ruls/ap_login_fail.yaml
slack_title: SERVER_LOGIN_SUCCESS
# 슬랙 메시지 색
slack_msg_color: "good"


alert_text: "TMPLOGSVR_SSH_LOGIN: 접속시간: {0} / 접속계정: {1} / 접속자IP: {2}"
alert_text_type: "alert_text_only"

 

알람 확인

logstash의 conf 설정 중 kv의 field_split 사용할 경우 공백 부분을 조심하셔야 합니다.

위 COMMAND 필드는 공백이 없지만, 아래의 COMMAND 필드는 공백이 있어서, 2~3시간 고생했네요.

elasticsearch에 로그는 확인이 되는데, elastealert에서는 왜 안되는지....

'기술 노트 > elastalert' 카테고리의 다른 글

root 로그인 알람 설정  (0) 2023.04.10
elastalert 웹 관리 방식 사용 시  (0) 2023.03.17
kibana에서 elastalert 룰 설정하기  (0) 2023.03.17
kibana에서 elastalert 사용하기  (0) 2023.03.17
elastalert 실행하기  (0) 2023.03.17

elastalert을 설치하는 방법은 아래 글 참조

https://dirt-spoon.tistory.com/58

https://dirt-spoon.tistory.com/19

 

elastalert을 이용하여 알람 설정하는 방법은 아래 게시글 참조

https://dirt-spoon.tistory.com/61

 

fortigate login 시 알람 설정 룰

name: firewall_console_login
 
type: any
 
index: logstash-fortigate-event*
 
filter:
- query:
    query_string:
      query: logdesc:"Admin login successful" AND action:"login"

doc_type: _doc

alert:
- "slack"
 
slack:
# 슬랙 웹훅 주소
slack_webhook_url: "https://hooks.slack.com/services/----------------------------삭제-------"

# 슬랙 채널에 메시지 전달할 이름
slack_username_override: "ElastAlert-Bot"

# 슬랙 메시지를 보낼 채널
slack_channel_override: "#security_alert"

# 슬랙 메시지에 타이틀 지정
# 지정하지 않을 경우 rule의 절대 경로 명이 찍힘: /opt/elastalert/rules/firewall_login_success.yaml
slack_title: FIREWALL_LOGIN_SUCCESS

# 슬랙 메시지 색
slack_msg_color: "good"

 
alert_text: "FIREWALL_CONSOLE_LOGIN: 접속시간: {0} / 접속계정: {1} / 접속자IP: {2}"
alert_text_type: "alert_text_only"
alert_text_args: ["TIMESTAMP", "user", "srcip"] # 해당 field 명은 kibana에서 로그 확인

 

알람 수신 내역

+ Recent posts