NMS (Network Management System
- 네트워크 관리 시스템)
- zabbix
Rocky Linux - Zabbix Server
@ Mariadb, php, httpd 설치
[root@localhost ~]# dnf install -y httpd php php-mysqli mariadb-server
[root@localhost ~]# dnf install -y fpm-fcgi
[root@localhost ~]# dnf install -y php-fpm
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
rocky-addons.repo rocky-devel.repo rocky-extras.repo rocky.repo
[root@localhost yum.repos.d]# cat rocky.repo
[baseos]
name=Rocky Linux $releasever - BaseOS
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever$rltype
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
countme=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
- yum : dnf 전에 사용하던 패키지 관리 도구
- cat으로 보면 저장 경로가 쭉 보여진다
- dnf를 사용하면 이 저장경로를 사용해서 다운을 받는 것이다.
Zabbix Server
- Zabbix는 다운경로가 없기때문에 직접 경로를 만들어야함
@ zabbix 다운 경로 지정
[root@localhost yum.repos.d]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm
* el9 ( 1 아니고 l )
* 404 error : 경로 입력 오류
@ 다운로드 경로 확인
[root@localhost yum.repos.d]# cat zabbix.repo
@ 필요한 파일 설치
[root@localhost yum.repos.d]# dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
@ 파일 설치된 것 확인
[root@localhost yum.repos.d]# rpm -qa | grep zabbix
zabbix-release-7.0-2.el9.noarch
zabbix-web-7.0.3-release1.el9.noarch
zabbix-web-mysql-7.0.3-release1.el9.noarch
zabbix-web-deps-7.0.3-release1.el9.noarch
zabbix-apache-conf-7.0.3-release1.el9.noarch
zabbix-server-mysql-7.0.3-release1.el9.x86_64
zabbix-sql-scripts-7.0.3-release1.el9.noarch
zabbix-selinux-policy-7.0.3-release1.el9.x86_64
zabbix-agent-7.0.3-release1.el9.x86_64
@ 방화벽 허용
[root@localhost yum.repos.d]# firewall-cmd --permanent --add-service=http
@ 방화벽 재부팅
[root@localhost yum.repos.d]# firewall-cmd --reload
@ 웹, 마리아db 구동
[root@localhost yum.repos.d]# systemctl start httpd
[root@localhost yum.repos.d]# systemctl start mariadb
@ 재부팅 시에도 실행되게
[root@localhost yum.repos.d]# systemctl enable httpd
[root@localhost yum.repos.d]# systemctl enable mariadb
Maria db 설정
@ 보안 설치
[root@localhost yum.repos.d]# mysql_secure_installation
@ mysql 진입
[root@localhost yum.repos.d]# mysql -u root -p
@ database 생성
MariaDB [(none)]> create database zabbix_db character set utf8 collate utf8_bin;
--> utf8(한글) 문자set를 지원해라
@ 사용자 생성
MariaDB [(none)]> create user 'zabbix_user'@'localhost' identified by '1234';
@ 권한 주기
MariaDB [(none)]> grant all privileges on zabbix_db.* to 'zabbix_user'@'localhost' with grant option;
--> 모든 테이블(*)에 대해 모든 권한(all)을 주겠다.
@ 앞서 설정한 권한을 적용하겠다.
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
MariaDB [(none)]> flush privileges;
@ zabbix mysql server 파일로 이동
[root@localhost yum.repos.d]# cd /usr/share
[root@localhost share]# ls
aclocal dict gettext info mime-info publicsuffix terminfo
appdata doc gettext-0.21 kdump misc python3-wheels testpage
applications empty glib-2.0 libgpg-error nginx redhat-release tests
audit empty.sshd gnome libreport omf rocky-release themes
augeas factory gnupg licenses os-prober selinux wayland-sessions
authselect file groff locale p11-kit sgml X11
awk fontconfig grub lua pam.d snmp xfsprogs
backgrounds fonts help magic perl5 sounds xml
bash-completion fpm httpd makedumpfile php sssd xsessions
cracklib games hwdata man pixmaps sssd-kcm zabbix
crypto-policies gawk i18n mariadb pkgconfig systemd zabbix-sql-scripts
dbus-1 gcc-11 icons metainfo pki systemtap zoneinfo
desktop-directories gdb idl microcode_ctl polkit-1 tabset zsh
[root@localhost share]# cd zabbix-sql-scripts/
[root@localhost zabbix-sql-scripts]# ls
mysql postgresql sqlite3
[root@localhost zabbix-sql-scripts]# cd mysql
[root@localhost mysql]# ls
option-patches proxy.sql server.sql.gz
@ zabbix db에 테이블 만들기
[root@localhost mysql]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix_user -p'1234' zabbix_db
--> 한글문자 set를 준다
@ mariadb 진입
[root@localhost mysql]# mysql -u root -p
MariaDB [(none)]> use zabbix_db
@ table 들어온 것 확인
MariaDB [zabbix_db]> show tables;
@ user 테이블 보기
MariaDB [zabbix_db]> desc users;
+-----------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| userid | bigint(20) unsigned | NO | PRI | NULL | |
| username | varchar(100) | NO | UNI | | |
| name | varchar(100) | NO | | | |
| surname | varchar(100) | NO | | | |
| passwd | varchar(60) | NO | | | |
| url | varchar(2048) | NO | | | |
| autologin | int(11) | NO | | 0 | |
| autologout | varchar(32) | NO | | 15m | |
| lang | varchar(7) | NO | | default | |
| refresh | varchar(32) | NO | | 30s | |
| theme | varchar(128) | NO | | default | |
| attempt_failed | int(11) | NO | | 0 | |
| attempt_ip | varchar(39) | NO | | | |
| attempt_clock | int(11) | NO | | 0 | |
| rows_per_page | int(11) | NO | | 50 | |
| timezone | varchar(50) | NO | | default | |
| roleid | bigint(20) unsigned | YES | MUL | NULL | |
| userdirectoryid | bigint(20) unsigned | YES | MUL | NULL | |
| ts_provisioned | int(11) | NO | | 0 | |
+-----------------+---------------------+------+-----+---------+-------+
MariaDB [zabbix_db]> select * from users;
--> users 테이블 내 데이터 보기
환경설정 - 서버 / 클라이언트 / 웹파일
[root@localhost ~]# cd /etc/zabbix
[root@localhost zabbix]# ls
web zabbix_agentd.conf zabbix_agentd.d zabbix_server.conf
--> 클라이언트 --> 서버
@ Zabbix 서버파일 기본 환경설정
[root@localhost ~]# cd /etc/zabbix
[root@localhost zabbix]# vi zabbix_server.conf
107 DBName=zabbix_db
--> db 이름 수정하기
123 DBUser=zabbix_user
--> user이름 수정하기
131 DBPassword=1234
--> 주석 해제하고 비밀번호 수정하기
@ Zabbix 클라이언트 파일 기본 환경설정
[root@localhost zabbix]# vi zabbix_agentd.conf
117 Server=127.0.0.1
171 ServerActive=127.0.0.1
--> 서버 아이피 확인
...
182 Hostname=Zabbix server
--> 이름 확인
@ 수정 후 부팅, 재부팅
[root@localhost zabbix]# systemctl start zabbix-server zabbix-agent
[root@localhost zabbix]# systemctl enable zabbix-server zabbix-agent
[root@localhost zabbix]# systemctl restart httpd php-fpm
@ 웹에 사용되기 위한 php 환경설정 파일
[root@localhost zabbix]# vi /etc/php-fpm.d/www.conf
@ 맨 마지막줄에 적어주기 (440번)
php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[always_populate_raw_post_data] = -1
php_value[date.timezone] = Asia/Seoul
--> php로 만들어진 웹페이지에 줄 제한사항을 적용하는 것이다.
[root@localhost zabbix]# systemctl restart zabbix-agent httpd php-fpm
- php, zabbix의 환경변수 값이 다를 수 있기때문에 php의 변수값을 zabbix에도 사용할 수 있게 설정
@ Zabbix 웹 경로 생성
[root@localhost zabbix]# mkdir /var/www/html/zabbix
@ Zabbix 웹 경로에 모든 파일 복사
[root@localhost zabbix]# cp -R /usr/share/zabbix/* /var/www/html/zabbix
==> 이후 웹에서 http://192.168.2.116/zabbix 로 접속
(Zabbix를 만든 서버의 ip)
Zabbix 웹 접속
- 웹에서 설정한 내용이 서버의 etc/zabbix/web/zabbix.conf.php 에 들어간다.
- System information : 활성화된 로컬 수 등
- agent-d들이 각 클라이언트의 정보를 수집해서 서버에 넘긴다.
- 이때 무작위로 수집하기 위한 프로토콜이 SNMP이다.
- * SNMP : simple network management protocol
- Availability : ZBX
- 자체적으로 개발한 snmp 프로토콜의 이름
- 서버 이름 클릭 -> 여러 설정들을 볼 수 있음
- Alerts - Actions : 특정 상황에 대해 알림을 받는 것
내 윈도우 - 클라이언트
Zabbix 설치
오른쪽 위 Download
- 압축 풀기
- 이름 Zabbix로 바꾸고 C\ 아래로 넣기
- conf 폴더에 있는 zabbix_agentd를 bin 폴더 안에 복사하기
@ zabbix_agentd.conf 를 메모장으로 실행해서 아래 수정
Server=192.168.2.116 (NMS 서버 ip)
ServerActive=192.168.2.116 (NMS 서버 ip)
..
Hostname=192.168.1.17 (내윈도우ip)
@ 관리자 권한으로 cmd 실행
C:\Users\Administrator> cd C:\zabbix\bin
C:\zabbix\bin> zabbix_agentd.exe -c zabbix_agentd.conf -i
--> 이 경로의 파일을 실행하라
혹시 안되면 agentd, get, sender 전부 직접 실행
윈도우 service 들어가서 Zabbix Agent 시작 or 다시시작
window defender --> 새 규칙 -> 포트 - tcp - 특정 로컬 포트 10050 - 연결허용 - 전체체크 - 이름
- monitoring - host - (오른쪽 위) create host
- Interfaces - add - 클라이언트ip
Rocky Linux - Zabbix 클라이언트 서버
@ zabbix 설치
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
rocky-addons.repo rocky-devel.repo rocky-extras.repo rocky.repo
[root@localhost yum.repos.d]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm
[root@localhost zabbix]# dnf install -y zabbix-agent
@ 환경설정 파일 수정
[root@localhost yum.repos.d]# cd /etc/zabbix
[root@localhost zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@localhost zabbix]# vi zabbix_agentd.conf
117 Server=192.168.2.116
171 ServerActive=192.168.2.116
--> NMS 서버 IP로 수정하기
182 Hostname=192.168.16.117
--> 내 ip로 수정하기
@ zabbix 구동
[root@localhost zabbix]# systemctl start zabbix-agent
@ 방화벽 열기
[root@localhost zabbix]# firewall-cmd --permanent --add-port=10050/tcp
[root@localhost zabbix]# firewall-cmd --reload
- host에 클라이언트의 ip 넣기
'네트워크 보안' 카테고리의 다른 글
Suricata (2) | 2024.09.17 |
---|---|
HIDS : Host-Based IDS (OSSEC) (3) | 2024.09.11 |
WireShark - 주요 설정들 / GNS - wireshark, debug (0) | 2024.09.10 |
IDS (Snort) (0) | 2024.09.09 |
pfsense 통신 (0) | 2024.09.06 |