Alcatel 스위치 로그 수집
파서 버전: 1.0
이 문서에서는 Bindplane 에이전트를 사용하여 Alcatel 스위치 로그를 Google Security Operations로 수집하는 방법을 설명합니다.
Alcatel-Lucent Enterprise OmniSwitch는 네트워크 액세스, 보안 정책 시행, 통합 유선/무선 관리를 제공하는 스택형 LAN 스위치 제품군입니다. 스위치는 인증 이벤트, 인터페이스 상태 변경, VLAN 작업, CLI 명령어를 다루는 syslog 메시지를 생성합니다.
시작하기 전에
다음 기본 요건이 충족되었는지 확인합니다.
- Google SecOps 인스턴스
- Windows Server 2016 이상 또는
systemd가 설치된 Linux 호스트 - Bindplane 에이전트와 Alcatel 스위치 간 네트워크 연결
- 프록시 뒤에서 실행하는 경우 Bindplane 에이전트 요구사항에 따라 방화벽 포트가 열려 있는지 확인합니다.
- Alcatel 스위치의 권한이 있는 사용자 인증 정보 (관리자 액세스)
Google SecOps 수집 인증 파일 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 수집 에이전트로 이동합니다.
- 데이터 수집 인증 파일을 다운로드합니다.
Bindplane 에이전트가 설치될 시스템에 파일을 안전하게 저장합니다.
Google SecOps 고객 ID 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 프로필로 이동합니다.
조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.
Bindplane 에이전트 설치
다음 안내에 따라 Windows 또는 Linux 운영체제에 Bindplane 에이전트를 설치합니다.
Windows 설치
- 명령 프롬프트 또는 PowerShell을 관리자로 엽니다.
다음 명령어를 실행합니다.
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet설치가 완료될 때까지 기다립니다.
다음을 실행하여 설치를 확인합니다.
sc query observiq-otel-collector서비스가 실행 중으로 표시되어야 합니다.
Linux 설치
- 루트 또는 sudo 권한으로 터미널을 엽니다.
다음 명령어를 실행합니다.
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh설치가 완료될 때까지 기다립니다.
다음을 실행하여 설치를 확인합니다.
sudo systemctl status observiq-otel-collector서비스가 active (running)으로 표시되어야 합니다.
추가 설치 리소스
추가 설치 옵션 및 문제 해결은 Bindplane 에이전트 설치 가이드를 참고하세요.
syslog를 수집하여 Google SecOps로 전송하도록 Bindplane 에이전트 구성
구성 파일 찾기
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
구성 파일 설정
config.yaml의 전체 내용을 다음 구성으로 바꿉니다.receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/alcatel_switch: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: ALCATEL_SWITCH raw_log_field: body service: pipelines: logs/alcatel_to_chronicle: receivers: - udplog exporters: - chronicle/alcatel_switch
구성 매개변수
다음 자리표시자를 바꿉니다.
수신기 구성:
listen_address: 리슨할 IP 주소 및 포트입니다.0.0.0.0: 모든 인터페이스에서 수신 대기 (권장)- 포트
514는 표준 syslog 포트입니다 (Linux에서 루트 필요, 비루트의 경우1514사용).
내보내기 도구 구성:
creds_file_path: 수집 인증 파일의 전체 경로입니다.- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: Google SecOps 콘솔에서 복사한 고객 IDendpoint: 지역 엔드포인트 URL:- 미국:
malachiteingestion-pa.googleapis.com - 유럽:
europe-malachiteingestion-pa.googleapis.com - 아시아:
asia-southeast1-malachiteingestion-pa.googleapis.com - 전체 목록은 리전 엔드포인트를 참고하세요.
- 미국:
구성 파일 저장
- 수정 후 파일을 저장합니다.
- Linux:
Ctrl+O,Enter,Ctrl+X순서로 누릅니다. - Windows: 파일 > 저장을 클릭합니다.
- Linux:
변경사항을 적용하려면 Bindplane 에이전트를 다시 시작하세요.
Linux에서 Bindplane 에이전트를 다시 시작하려면 다음 명령어를 실행합니다.
sudo systemctl restart observiq-otel-collector서비스가 실행 중인지 확인합니다.
sudo systemctl status observiq-otel-collector로그에서 오류를 확인합니다.
sudo journalctl -u observiq-otel-collector -f
Windows에서 Bindplane 에이전트를 다시 시작하려면 다음 옵션 중 하나를 선택하세요.
명령 프롬프트 또는 PowerShell(관리자 권한)
net stop observiq-otel-collector && net start observiq-otel-collector서비스 콘솔:
Win+R키를 누르고services.msc를 입력한 다음 Enter 키를 누릅니다.- observIQ OpenTelemetry Collector를 찾습니다.
- 마우스 오른쪽 버튼을 클릭하고 다시 시작을 선택합니다.
서비스가 실행 중인지 확인합니다.
sc query observiq-otel-collector로그에서 오류를 확인합니다.
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Alcatel 스위치에서 syslog 내보내기 구성
- SSH 또는 콘솔 케이블을 사용하여 스위치에 연결합니다.
- 관리자 사용자 인증 정보로 로그인합니다.
전역 구성 모드로 진입합니다.
enable configure terminalBindplane (syslog) 서버 IP 주소를 설정합니다.
swlog output socket <BINDPLANE_IP><BINDPLANE_IP>를 Bindplane 에이전트 IP 주소로 바꿉니다.
syslog 서버에 로깅을 사용 설정합니다.
swlog remote enable로깅 수준을 구성합니다.
swlog console level info명령 로깅을 사용 설정합니다.
command-log enable시작 구성의 변경사항을 저장합니다.
write memory
UDM 매핑 테이블
| 로그 필드 | UDM 매핑 | 논리 |
|---|---|---|
1.1.1.1 |
principal.ipprincipal.asset.ip |
로그 메시지에서 추출됩니다. |
1.1.1.2 |
target.iptarget.asset.ip |
로그 메시지에서 추출됩니다. |
1.1.2.7 |
target.iptarget.asset.ip |
로그 메시지에서 추출됩니다. |
1035 |
target.port |
로그 메시지에서 추출됩니다. |
2266 |
additional.fields.value.string_value |
로그 메시지에서 추출되어 vlan로 매핑됩니다. |
3036 |
principal.port |
로그 메시지에서 추출됩니다. |
59300 |
target.port |
로그 메시지에서 추출됩니다. |
60588 |
target.port |
로그 메시지에서 추출됩니다. |
997 |
principal.resource.attribute.labels.value |
로그 메시지에서 추출되어 limit로 매핑됩니다. |
A6450-L2-K4B-01 |
principal.application |
로그 메시지에서 추출됩니다. |
A6450-L2-X1B-02-01 |
principal.application |
로그 메시지에서 추출됩니다. |
A6450-L2-X2A-01-01 |
principal.application |
로그 메시지에서 추출됩니다. |
A6450-L2-X4B-02-01 |
principal.application |
로그 메시지에서 추출됩니다. |
A6900-L3-LTX0A |
principal.application |
로그 메시지에서 추출됩니다. |
Accepted keyboard-interactive/pam |
security_result.summary |
추출된 sec_summary 필드의 일부입니다. |
b8:53:ac:6e:c9:bc |
principal.mac |
로그 메시지에서 추출됩니다. |
BRIDGE(10) |
additional.fields.value.string_value |
로그 메시지에서 추출되어 id_protocol로 매핑됩니다. |
CLI log, |
security_result.summary |
추출된 sec_summary 필드의 일부입니다. |
cmd: show configuration snapshot all, |
security_result.detection_fields.value |
로그 메시지에서 추출되어 cmd로 매핑됩니다. |
Connection reset by 1.1.2.7 port 60505 |
security_result.summary |
로그 메시지에서 추출됩니다. |
Dec 7 14:28:40 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Dec 8 04:21:22 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Dec 9 20:08:29 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Dec 9 20:51:34 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Dec 11 10:18:30 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Dec 17 02:14:22 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Dec 19 10:27:33 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Did not receive identification string from 1.1.2.7 port 60588 |
security_result.summary |
로그 메시지에서 추출됩니다. |
esmSetRateLimit: Txing |
additional.fields.value.string_value |
로그 메시지에서 추출되어 esm_set_rate_limit로 매핑됩니다. |
Feb 15 16:29:29 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Feb 16 11:08:45 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
Feb 16 11:08:49 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
flashManager FlashMgr Main info(5) flashMgrValidateImage_exec: valid |
security_result.summary |
로그 메시지에서 추출됩니다. |
for ncmadmin from 1.1.1.2 port 59300 ssh2 |
security_result.summary |
추출된 sec_summary 필드의 일부입니다. |
from port 3036 to port 1035 |
security_result.summary |
추출된 sec_summary 필드의 일부입니다. |
IVDELCSW03 |
principal.hostnameprincipal.asset.hostname |
principal_ip가 IP 주소가 아닌 경우 로그 메시지에서 추출됩니다. |
IP-HELPER(22) |
additional.fields.value.string_value |
로그 메시지에서 추출되어 id_protocol로 매핑됩니다. |
Jan 16 02:14:13 |
metadata.event_timestamp.secondsmetadata.event_timestamp.nanos |
ts 필드에서 파싱됩니다. |
LLDP(42) |
additional.fields.value.string_value |
로그 메시지에서 추출되어 id_protocol로 매핑됩니다. |
limit=997, |
principal.resource.attribute.labels.value |
로그 메시지에서 추출되어 limit로 매핑됩니다. |
limitType=1 |
principal.resource.attribute.labels.value |
로그 메시지에서 추출되어 limitType로 매핑됩니다. |
lldpProcessLocationIdTLV: Error, LLDP-MED Civic Address LCI len 39 invalid, tlvL |
security_result.summary |
로그 메시지에서 추출됩니다. |
Mac Movement for MacAddr: a0:29:19:c0:55:18 |
security_result.summary |
로그 메시지에서 추출됩니다. |
MacAddr: a0:29:19:c0:55:18 |
principal.mac |
로그 메시지에서 추출됩니다. |
ncmadmin |
principal.user.userid |
로그 메시지에서 추출됩니다. |
OS6360 |
principal.hostnameprincipal.asset.hostname |
principal_ip가 IP 주소가 아닌 경우 로그 메시지에서 추출됩니다. |
result: SUCCESS |
security_result.detection_fields.value |
로그 메시지에서 추출되어 result로 매핑됩니다. |
SES CMD info(5) |
security_result.summary |
추출된 sec_summaryfield의 일부입니다. |
STACK-MANAGER |
principal.application |
로그 메시지에서 추출됩니다. |
Stack Port A MAC Frames TX/RX Enabled |
security_result.summary |
로그 메시지에서 추출됩니다. |
STP(11) |
additional.fields.value.string_value |
로그 메시지에서 추출되어 id_protocol로 매핑됩니다. |
SWCONSOLE-L2-K0A-01 |
target.hostnametarget.asset.hostname |
로그 메시지에서 추출됩니다. |
trafficType=2, |
principal.resource.attribute.labels.value |
로그 메시지에서 추출되어 traffic 유형으로 매핑됩니다. |
user: ncmadmin |
security_result.summary |
추출된 sec_summary 필드의 일부입니다. |
zslot=0, |
principal.resource.attribute.labels.value |
로그 메시지에서 추출되어 zslot로 매핑됩니다. |
- |
additional.fields.key |
하드코딩된 값: id_protocol |
- |
additional.fields.key |
하드코딩된 값: esm_set_rate_limit |
- |
additional.fields.key |
하드코딩된 값: vlan |
- |
metadata.event_type |
다른 유형이 일치하지 않는 경우 GENERIC_EVENT로 설정됩니다. |
- |
metadata.product_name |
하드코딩된 값: Alcatel Switch |
- |
metadata.vendor_name |
하드코딩된 값: ALCATEL SWITCH |
- |
network.application_protocol |
id_protocol이 ssh와 일치하는 경우 (대소문자 구분 안 함) SSH로 설정합니다. |
- |
principal.resource.attribute.labels.key |
하드코딩된 값: limit |
- |
principal.resource.attribute.labels.key |
하드코딩된 값: trafficType |
- |
principal.resource.attribute.labels.key |
하드코딩된 값: limitType |
- |
principal.resource.attribute.labels.key |
하드코딩된 값: zslot |
- |
security_result.detection_fields.key |
하드코딩된 값: cmd |
- |
security_result.detection_fields.key |
하드코딩된 값: result |
- |
security_result.severity |
prod_severity이 info와 일치하는 경우 (대소문자 구분 안 함) INFORMATIONAL로 설정합니다. |
변경 로그
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.