Linux의 시스템 로깅. syslogd 데몬 구성 파일 네트워크 로깅

Windows OS에서 일반적인 UNIX/LINUX 데몬 목록을 다양한 UNIX/LINUX 수정에 사용할 수 있는 서비스라고 합니다. UNIX/LINUX 데몬 이름은 종종 문자로 끝납니다. 영어의 약자로. 악마 top 또는 ps aux 명령을 사용하여 프로세스/데몬이 실행 중인지 확인할 수 있습니다.

다음은 가장 흔한 악마의 이름과 그 이름의 목록입니다. 간단한 설명. 아래 UNIX/LINUX 데몬 목록은 완전한 것이 아니며 UNIX/LINUX 시스템에는 UNIX/LINUX 시스템의 버전/유형/수정/구성 및 설치된 데몬에 따라 하나, 전부 또는 여러 개가 있거나 없을 수 있습니다. 소프트웨어가 들어있습니다.

프로세스/데몬 프로세스/데몬 설명
감사auditd는 Linux 시스템용 감사 구성 요소입니다. ausearch 및 aureport 명령을 사용하여 볼 수 있는 감사 로그를 디스크에 유지 관리합니다. auditctl 명령을 사용하면 감사 규칙을 구성할 수 있습니다. 또한 시작 시 /etc/audit.rules 파일에 포함된 규칙이 로드됩니다. 데몬 자체의 일부 매개변수는 auditd.conf 파일에서 구성할 수 있습니다.
산성acpid(ACPI 이벤트 데몬) - ACPI 이벤트에 응답하기 위한 데몬(예: 전원 버튼 누르기 또는 노트북 덮개 닫기에 응답) ACPI(고급 구성 및 전원 인터페이스) 및 APM을 통한 Linux와 BIOS 간의 전원 관리 및 상호 작용. ACPI "절전" 모드: S1 - 모든 것이 절전 모드이고 CPU는 최소 활동 모드입니다. S3 - "Suspend to RAM" - 모든 것이 절전 모드로 전환되고 CPU가 꺼집니다. S4 - "디스크 일시 중지" 상태 덤프가 디스크에 저장되고 시스템이 꺼집니다. 시스템을 켠 후 이전 위치에서 복원됩니다. S5 - 소프트웨어 전원이 꺼졌습니다. http://acpid.sourceforge.net/
atd(1)에서 작업 대기열을 실행합니다.
자동자동 마운트 테이블 형식. 자동 마운트 맵은 마스터 자동 마운트 테이블(auto.master(5) 참조)이 참조하는 파일 또는 NIS 테이블일 수 있습니다. 표에는 위치가 설명되어 있습니다. 파일 시스템, 기본 마운트 지점(auto.master 파일에 설정)에 자동으로 마운트됩니다. 이 문서는 태양 테이블 형식을 설명하며 다른 형식(예: hesiod)에는 이 문서가 적용되지 않습니다.

테이블은 즉시 편집할 수 있습니다 - 이러한 변경 사항은 이 테이블의 다음 작업에서 고려됩니다. 그러나 이는 기본 테이블 auto.master에는 적용되지 않습니다!

생체NFS 클라이언트 요청을 해결하기 위해 원격 nfsd와 함께 작동합니다.
인증상인certmonger 데몬은 인증서 만료를 모니터링 및 확인하고 선택적으로 CA를 사용하여 인증서를 갱신할 수 있습니다. 키 생성부터 등록, 갱신까지 전체 등록 과정을 관리할 수 있습니다.
cgconfig이 스크립트는 제어 그룹 파일 시스템(cgroup)을 구문 분석하고 구성하는 cgconfigparser 유틸리티를 실행합니다. 분석을 위해 구성 파일 /etc/cgconfig.conf와 여기에 정의된 매개변수가 사용됩니다.
cgredcgroup 규칙을 관리하는 데몬 :)
CPU 주파수스크립트는 프로세서 주파수를 제어하기 위해 커널 모듈을 로드합니다.
CPU 속도에너지를 절약하기 위해 CPU 주파수를 변경합니다. 많은 최신 노트북과 데스크탑 PC가 이 기술을 지원합니다. Pentium-M, Centrino, AMD PowerNow, Transmetta, Intel SpeedStep, Athlon-64, Athlon-X2, Intel Core 2 프로세서를 사용하는 사용자가 사용할 수 있습니다.노트북 사용자는 이 데몬을 활성화된 상태로 두는 것이 좋습니다. CPU가 고정 주파수 값을 사용하도록 하려면 이 데몬을 비활성화합니다.
크론드
컵스인쇄 서버. 원격 프린터에 대한 액세스, 로컬 프린터에 대한 액세스, 외부에서 로컬 프린터에 대한 액세스와 같습니다.
dbus프로세스 간 통신 시스템( CORBA 및 DCOP의 더 넓은 아날로그)
dbus-데몬데이터 버스 작업을 위한 데몬
dhcpd클라이언트의 TCP/IP 구성을 동적으로 결정하는 데몬입니다.
dnsmasqDNS 이름을 캐시하고 DHCP 서버를 제공하는 데몬입니다.
초기 시스템 로그syslog 데몬을 실행하면 로깅이 제공됩니다.
초기 xdmX 서버 시작하기
이사운드사운드 카드에 대한 원격 액세스를 지원하는 사운드 데몬
esdEnlightenment 창 관리자 및 GNOME 환경을 위한 사운드 서버입니다. ESD는 동시에 실행되는 여러 프로그램의 오디오 스트림을 혼합하고 결과 스트림을 사운드 카드로 출력합니다. esound 패키지에 속합니다.
가족팸( 파일 변경 모니터) - 파일 변경 모니터. FAM 데몬은 GNOME, Xfce 및 KDE와 같은 데스크탑 환경에서 파일 시스템에 대한 변경 사항을 추적하고 표시하는 데 사용됩니다. 가족 패키지에 포함되어 있습니다. wiki.archlinux.org에 설명이 있습니다.
팬 제어CPU 쿨러 회전 속도 제어. lm_sensors의 일부입니다.
fbset프레임버퍼가 작동하는 데 필요한 스크립트입니다. 커널 모듈 로드를 포함하여 작업을 구성합니다.
제전텍스트 읽기 프로그램이 작동할 수 있도록 하는 악마입니다.
핑거드Finger 명령과 함께 사용할 Finger 프로토콜에 대한 네트워크 인터페이스를 제공합니다.
처음 부팅이 서비스는 Fedora에만 적용됩니다. 설치 후 설정(루트 비밀번호 설정, 사용자 추가 등)을 위해 설치 후 한 번만 실행됩니다. 시스템 설치 후 비활성화할 수 있습니다.
ftpdFTP 프로토콜을 통해 파일을 전송하는 서비스입니다.
기능Arch Linux 시스템 초기화 스크립트 중 하나입니다. 런레벨 3으로 로드할 때 사용되는 값을 재정의하는 함수에 대해 설명합니다. 스크립트는 사용자가 런레벨 5를 사용하는 경우에만 사용됩니다. 이는 initscripts의 일부입니다.
gpm콘솔 및 xterm용 마우스 서버. 같은 이름의 패키지에 들어 있습니다.
GPSDGPS 장비와의 통신을 위한 인터페이스입니다. 대부분의 사용자는 이 기능을 끌 수 있습니다.
할데몬, 할HAL은 하드웨어 추상화 계층을 나타냅니다. 장비에 대한 정보를 수집하는 데 중요한 서비스입니다. 다양한 소스. 활성화된 상태로 두는 것이 좋습니다.
정지종료 및 재부팅 스크립트.
중지.로컬종료 또는 재부팅이 시작되기 전에 명령을 실행해야 하는 스크립트입니다.
건강마더보드/프로세서의 작동 온도 범위와 냉각기 속도를 설정합니다. lm_sensors 구성 요소 중 하나입니다.
헤임달-kdc키 배포 센터. 하임달 패키지에 포함되어 있습니다.
httpdApache 웹 서버 데몬.
초기화다른 모든 프로세스를 생성하는 Unix 프로그램입니다.

기본적으로 init 데몬에는 7개의 실행 수준이 있으며 각 수준은 미리 정의된 시스템 서비스 세트를 실행합니다.

실행 수준:
0 - 시스템 종료
1 - 단일 사용자 작동 모드
2-5 - 시스템의 다중 사용자 작동 모드

런레벨에 대한 자세한 내용: less /etc/inittab

inetd네트워크 요청을 모니터링합니다. 요청이 유효하면 요청을 처리하기 위해 백그라운드 프로세스를 시작합니다. 일부 시스템은 확장 버전(xinetd)을 사용합니다.
iptablesLinux의 표준 방화벽. 특히 권장되는 대상 직접 연결인터넷에 연결됩니다(케이블, DSL, T1을 통해). 하드웨어 방화벽(Netgear, Linksys, D-Link 등)을 추가로 사용하는 경우에는 권장하지 않습니다.
IP6테이블iptables 서비스는 IPv6 프로토콜을 사용하여 작동합니다. IPv6 지원을 비활성화한 경우 이 서비스도 비활성화되어야 합니다. 그렇지 않으면 활성화된 상태로 두는 것이 좋습니다.
이르다적외선을 통해 작동하는 장치를 지원하려면 IrDA가 필요합니다( 노트북, PDA, 휴대폰, 계산기(역자 주: 계산기? o_O), 등. 대부분의 사용자는 이 기능을 끌 수 있습니다.
irexecd적외선에 대한 악마. lirc-utils와 함께 제공됩니다.
irqbalance, irq_balancer다중 프로세서 시스템에서는 프로세서 간에 인터럽트를 분배하는 데 사용됩니다. 다중 프로세서 컴퓨터/노트북이 없는 사용자는 이 데몬/서비스를 비활성화할 수 있습니다. 단일 프로세서 컴퓨터에서 이 서비스를 활성화해도 아무런 효과가 없습니다. 둘 이상의 프로세서(Intel Core 2 Duo, AMD X2)가 있는 새 컴퓨터에서는 이 서비스를 활성화해야 합니다.
이브만데몬은 시스템에 장치(CD, USB 드라이브 등)를 자동으로 마운트하는 역할을 합니다.
jackd, 잭 오디오 연결 키트오디오 서버
젝젝Java - JAR에서 애플리케이션 시작 및 실행에 대한 지원을 제공합니다. Sun에서 Java를 설치하면 사용할 수 있습니다. 이는 선택 사항이며 비활성화할 수 있습니다.
조종간조이스틱이 작동하도록 커널 모듈을 로드하는 스크립트입니다.
카민드Kerberos 데이터베이스에 대한 액세스 권한이 있는 계정과 해당 액세스 수준을 결정하는 데몬입니다. 헤임달 패키지의 구성요소 중 하나입니다.
kdumpkdump - 커널 추적 데이터를 표시합니다. 이 명령은 ktrace(1)를 사용하여 생성된 커널 추적 파일을 사람이 읽을 수 있는 형식으로 표시합니다. 기본적으로 현재 디렉터리의 ktrace.out 파일이 표시됩니다.
kbd가상 터미널에서 키보드를 설정합니다.
kdmKDM( KDE 디스플레이 관리자)는 kdebase 패키지에 있는 프로그램 중 하나입니다( KDE에 포함되어 있습니다), 그래픽 인터페이스를 통해 로그인할 수 있는 기능을 제공합니다.
kpasswdKerberos에서 비밀번호를 변경하는 데몬입니다. 헤임달 패키지의 구성요소 중 하나입니다.
ksysguardd시스템 모니터링을 위한 KDE 데몬.
libvirtdQEMU 게스트 머신 및 네트워크를 관리하는 데몬입니다.
libvirt-guests종료 시 게스트 운영 체제를 절전 모드로 보내고 로드 시 절전 모드를 해제하는 스크립트입니다.
lircdLIRC 데몬은 적외선 포트에서 들어오는 신호를 해독합니다. lirc-utils와 함께 제공됩니다.
lircmd마우스 신호를 변환하는 LIRC 데몬. lirc-utils와 함께 제공됩니다.
lvm2-모니터LVM(논리 볼륨 관리) 모니터링을 위한 데몬입니다. LVM을 사용하는 경우 권장되며, 그렇지 않은 경우 비활성화된 상태로 둡니다.
LPD"Line Printer Daemon" - 인쇄 스풀을 관리하는 데 사용되는 프로토콜입니다.
mdadm데몬은 MD 장치(Linux의 소프트웨어 RAID)를 모니터링합니다.
mdmonitor 및 mdmpd이 두 데몬은 RAID 어레이(저렴한/독립 디스크의 중복 어레이)가 있는 스토리지 시스템에서 사용됩니다. Mdmonitor는 RAID 모니터링 및 관리 소프트웨어 서비스인 mdadm(다중 경로 장치 모니터링 및 관리)을 시작, 중지 및 다시 시작합니다. 시스템에 RAID 장치가 있는 경우에만 이 서비스를 실행하면 됩니다.
메시지 버스Linux용 프로세스 간 통신 서비스입니다. 중요 구성 요소 D-BUS와 연결되어 있기 때문입니다. 활성화된 상태로 두는 것이 좋습니다.
마이크로코드_ctl, 마이크로코드.ctlIntel 프로세서(Pentium Pro, PII, Celeron, PIII, Xeon, Pentium 4 등)의 펌웨어를 업데이트할 수 있는 서비스입니다. 다운로드할 때마다 업데이트가 기록됩니다. Intel 프로세서가 있는 경우에만 활성화해야 합니다.
mcelog, mcelogd64비트 Linux 빌드의 하드웨어 문제를 모니터링하려면 AMD 및 Intel CPU의 MCE(Machine Check Exception) 상태를 분석하는 mcelog 패키지를 사용하는 것이 편리합니다. 이는 메모리 및 CPU 캐시 문제, CPU 간 데이터 교환 오류를 나타낼 수 있습니다. CPU와 마더보드 칩셋.
mpd뮤직 플레이어 데몬 - 음악 플레이어지정된 디렉토리에서 음악을 재생하는 클라이언트-서버 아키텍처가 있습니다.
다중 경로다중 경로 장치, 즉 둘 이상의 컨트롤러 또는 방법으로 액세스할 수 있는 드라이브를 모니터링하는 데 사용됩니다.
mysqld, mysqlMySQL 데이터베이스 데몬
nfsd클라이언트 시스템에 대한 NFS 운영자 요청 프로세스입니다. 역사적으로 각 nfsd 데몬은 한 번에 하나의 요청을 지원하므로 여러 복사본이 시작됩니다.
넷콘솔네트워크를 통해 콘솔을 다른 컴퓨터로 내보낼 수 있습니다. 기본적으로 비활성화될 수 있습니다.
넷프스부팅하는 동안 네트워크를 통해 사용 가능한 파일 시스템을 자동으로 마운트합니다( NFS, 삼바 등). 대부분의 데스크톱 및/또는 노트북 사용자는 이 기능을 끌 수 있습니다.
회로망로컬 네트워크 인터페이스(LAN) 생성 및 구성을 담당하는 데몬
네트워크 원격이전과 동일하지만 무선 인터페이스가 추가로 향상되었습니다.
nfs, nfslock이 서비스는 Unix/Linux 및 BSD 운영 체제를 위한 표준 네트워크 파일 시스템을 제공합니다. NFS를 통해 액세스를 열어야 하는 경우 활성화된 상태로 두고 그렇지 않으면 끌 수 있습니다.
nginxnginx는 Unix 계열 운영 체제에서 실행되는 웹 서버 및 메일 프록시 서버입니다.
nmbd삼바가 사용됩니다. 아래 삼바를 참조하세요.
nscdNIS, NIS+, LDAP, hesiod와 같은 서비스에서 사용되는 이름과 비밀번호를 캐시하는 서버 데몬입니다. 끌 수 있습니다.
nslcd로컬 LDAP 이름 서비스 데몬.
ntpd네트워크를 통해 시간 동기화를 관리하는 NTP 데몬입니다. xntpd에는 NTP 표준 버전 3이 탑재되어 있습니다.
ntpdate
이상한 일oddjobd 데몬은 시스템 전체 메시지 버스에서 com.redhat.oddjob 서비스를 제공합니다. oddjobd가 제공하는 각 기능은 별도의 D-Bus 방식으로 제공됩니다.
openntpd시간 동기화를 위한 서버와 클라이언트.
오픈 VPNVPN을 생성하기 위한 안전한 방법을 제공합니다. 을 위한 추가 정보 OpenVPN을 참조하세요. NetworkManager에서 사용하지 않는 경우 비활성화될 수 있습니다.
피씨시아pcmcia 표준 확장 카드에 대한 지원을 제공합니다. 일반적으로 노트북에만 사용됩니다.
PCSCD카드 리더기 및 스마트 카드에 대한 지원을 제공합니다. 카드 리더기나 스마트 카드가 없으면 이 서비스를 끌 수 있습니다. 노트북에서 흔히 사용 가능합니다.
포트리저브다양한 RPC 서비스에 대한 실제 포트에 대한 액세스를 방지하고 예약된 애플리케이션에 우선 순위를 부여합니다. 더 자세한 정보는 portreserve 매뉴얼 페이지에서 확인할 수 있습니다. 활성화된 상태로 두는 것이 좋습니다.
정전이 스크립트는 UPS의 메시지가 감지될 때 실행됩니다.
접미사Postfix 메일 관리 프로그램
pppd지점간 프로토콜 데몬
ppppppd 데몬 작업을 위한 스크립트입니다.
psacctLinux 커널 프로세스를 관리합니다. 모니터링에 참여했습니다.
퍼지 커널스크립트 자동 삭제오래된 커널( /etc/zypp.conf에 구성됨)
quota_nld할당량 netlink 메시지 데몬
날것의스크립트는 원시 장치 모듈을 로드합니다.
rdisc네트워크 게이트웨이 검색 데몬인 rdisc는 ICMP 게이트웨이 검색 프로토콜 클라이언트 역할을 합니다. rdisc는 기본 게이트웨이가 있는 네트워크의 라우팅 테이블을 얻기 위해 부팅 시 호출됩니다.
날짜부팅 시 컴퓨터를 시간 서버와 동기화하려면 서비스가 필요합니다. 운영 체제. 비활성화될 수 있습니다.
복원조건컨텍스트를 복원하고 파일과 관련된 SELinux 정책을 모니터링하는 데 사용됩니다. 이 서비스는 필수는 아니지만 SELinux를 사용할 때 권장됩니다.
ngdrngd - 하드웨어 장치에서 커널 임의 장치로 임의 데이터를 확인하고 공급합니다. 말 그대로 무작위 장치의 커널에 대해 하드웨어 장치에서 무작위 데이터를 확인하고 수신하는 악마로 번역될 수 있습니다. 얼마나 영리한지 :), 난수 생성기 데몬, 러시아어에서는 난수 생성 악마입니다.
rpcbind다른 서비스(예: NFS 또는 NIS)에서 사용되는 RPC를 관리하는 데몬입니다. 포트맵과 유사하게 작동합니다. 종속된 다른 서비스가 없으면 비활성화될 수 있습니다.
rpcgssd, rpcidmapd, rpcsvcgssdNFS v4(네트워크 파일 시스템)가 사용됩니다. NFS v4가 필요하지 않으면 비활성화합니다. http://ru.wikipedia.org/wiki/Network_File_System
rsyslogrsyslog는 시스템 로그를 편리하게 수집하고 처리하는 역할을 하며 자체적으로 확장된 syslogd 모듈로 자리매김합니다. 유닉스 시스템보안과 안정성에 중점을 두고 고급 멀티스레딩 기능을 갖춘 Linux도 있습니다. Rsyslog는 RSyslog 기능 링크를 클릭하여 찾을 수 있는 다양한 기능을 제공합니다. http://www.rsyslog.com/module-Static_Docs-view-f-features.html.phtml
재동기화재동기화( 원격 동기화)는 필요한 경우 데이터 인코딩을 사용하여 트래픽을 최소화하면서 여러 위치의 디렉터리와 파일을 동기화하는 UNIX 계열 운영 체제용 프로그램입니다. rsync는 rcp와 scp를 대체하기 위해 만들어졌습니다. 더 읽어보세요...
saslauthdSASL 인증 서버 데몬. SASL( 단순 인증 및 보안 계층)은 원격 연결을 기반으로 하는 프로토콜에서 인증하는 기능을 제공합니다.
삼바, SMBD삼바 서버 데몬.
메일을 보내다로컬 IMAP 또는 POP3 서비스에 대한 지원을 제공하고 활성화된 상태로 둡니다. 이 서비스는 cron을 통해 제공되거나 PHP 스크립트에서 메일을 보낼 수 있는 다양한 데몬/서비스의 활동에 대해 알리는 데 유용할 수 있습니다.
센서드lm_sensors의 데몬은 다양한 센서로부터 정보를 수집합니다.
센서필요한 경우 lm_sensors와 작동하는 데 필요한 커널 모듈을 로드하는 스크립트입니다.
해안벽해안벽 방화벽 관리를 위한 스크립트입니다.
날씬한X의 로그인 관리자입니다.
똑똑하다SMART 데몬은 디스크를 모니터링합니다. 오류를 예측하고 드라이브 또는 하드 드라이브 문제를 모니터링하는 데 사용됩니다. 일반적으로 사용자에게는 이 데몬이 필요하지 않지만 (특히 서버의 경우) 활성화된 상태로 두는 것이 좋습니다.
smb공통 파일을 열려면 SAMBA 데몬이 필요합니다. 네트워크 접속 Linux의 파일에 Windows 사용자. 네트워크에 파일에 대한 액세스 권한을 부여해야 하는 Windows 시스템이 있는 경우 활성화해야 합니다.
스몰트개발자를 돕기 위해 통계를 수집하기 위해 매월 정보를 보내는 데몬입니다. 통계는 누구나 이용할 수 있습니다. 개발자를 돕고 싶은 사용자는 이 서비스를 활성화해야 합니다.
snmpd, snmptrapdSNMP 지원 제공( 단순 네트워크 관리 프로토콜)는 네트워크 허브, 서버, 프린터 등과 같은 장치를 관리하고 구성하는 데 사용할 수 있습니다. 등등. 비활성화할 수 있지만 HP 인쇄 서비스( hplip).
오징어오징어 프록시 데몬.
SSHD클라이언트의 보안 셸 요청을 수신합니다. SSH를 사용하면 다른 사용자가 다른 컴퓨터에서 네트워크를 통해 로그인하고 일반적으로 원격 관리에 사용되는 응용 프로그램을 사용자 컴퓨터에서 실행할 수 있습니다. 이는 잠재적인 보안 위험이 될 수 있습니다. 원격 액세스가 필요하지 않은 워크스테이션에서는 이 기능을 끄는 것이 좋습니다.
SSDSSSD( 시스템 보안 서비스 데몬)는 원격 인증 메커니즘에 대한 액세스를 허용합니다. 이로 인해 네트워크 인증과 로컬 인증 간의 경계가 모호해지고 다양한 메커니즘을 사용할 수 있습니다. 사용자에 대한 정보는 도메인이라는 데이터베이스를 통해 전송되며 원격 인증을 위한 데이터 소스가 될 수 있습니다. 여러 메커니즘이 허용되므로 여러 서버가 서로 다른 네임스페이스를 구현할 수 있습니다. 수신된 정보는 표준 NSS 및 PAM 인터페이스를 사용하여 외부 애플리케이션에 제공됩니다.

SSSD는 이를 호출하는 애플리케이션과 독립적인 서비스 세트로 실행되므로 애플리케이션은 원격 도메인에 대한 자체 연결을 시작할 필요가 없으며 사용 중인 데몬/서비스를 알 필요도 없습니다. 그룹 정보 및 ID 데이터의 로컬 캐싱은 데이터 소스에 관계없이 허용됩니다( LDAP, NIS, IPA, DB, 삼바 등) 계속해서 오프라인으로 작업하므로 생산성이 전반적으로 향상됩니다. SSSD는 동일한 유형의 여러 공급자를 허용할 수 있습니다( 예를 들어 LDAP).

svnservesvn 서버 데몬.
시스템 상태Sysstat 패키지에는 시스템 성능과 사용된 리소스를 모니터링하는 유틸리티가 포함되어 있습니다.
교환기커널의 물리적 메모리 페이지를 수정하기 위해 로컬 프로세스를 스왑 공간에 복사합니다. 스케줄이라고도 합니다.
syslogd다양한 시스템 메시지를 기록하는 시스템 프로세스입니다.
동기화주기적으로 동기화 시스템 메모리확립된 시스템 파일.
syslog-ng데몬은 시스템 로그를 유지합니다.
udev-포스트udev에서 사용하는 시스템 장치 관리자입니다. 기본적으로 udev는 장치에 대한 많은 규칙, 동작 및 권한을 지원합니다. 이 서비스를 이용하면 안전하게 규칙을 관리할 수 있습니다. 활성화된 상태로 두는 것이 좋습니다.
vhand다른 프로세스에서 사용할 수 있도록 메모리 페이지를 해제합니다. "페이지 스틸링 데몬"이라고도 합니다.
vsftpdvsftpd( 매우 안전한 FTP 데몬 - 매우 안전한 FTP 데몬) - IPv6 및 SSL을 지원하는 FTP 서버입니다.

vsftpd는 많은 UNIX 계열 운영 체제에서 기본적으로 사용되며 공식 리포지토리인 ftp.openbsd.org, ftp.freebsd.org, ftp.debian.org, ftp.redhat.com을 제공하며 공식 Linux 커널 FTP에서도 사용됩니다. 섬기는 사람.

웹민브라우저를 통한 시스템 관리 서비스( 웹 인터페이스).
윈바인드네트워크 상에서 구별을 도와주는 서비스 컴퓨터 이름아래에 윈도우 제어. 제어하는 데 사용할 수 있습니다. 계정 Linux 계정이 있는 Windows. 일반적으로 대부분의 사용자는 이 데몬이 필요하지 않으며 비활성화된 상태로 둘 수 있습니다.
wpa_신청자작업하려면 서비스가 필요합니다. 무선 카드, 액세스 포인트에 연결하는 데 사용됩니다( VPN 또는 Radius 서버) WPA 암호화가 필요합니다. 대부분의 사용자는 비활성화된 상태로 둘 수 있습니다.
xfsd원격 클라이언트에 X11 글꼴을 제공합니다.
시스템에 설치된 RPM 패키지를 업데이트하는 서비스입니다. 주로 Fedora Core에서 사용됩니다.
ypbind이 서비스는 네트워크를 통한 NIS 인증에 사용됩니다. NIS 인증을 사용하지 않는 경우 비활성화할 수 있습니다.
zvbidV4L 또는 V4L2 장치에서 여러 애플리케이션에 대한 액세스를 제공하는 서비스입니다. 예를 들어 Hauppage 캡처용 카드는 이 서비스를 사용할 수 있으며, 다른 경우에는 이 서비스를 끌 수 있습니다.

위의 UNIX/Linux 데몬/서비스 목록이시스템에서 작동하지 않는 경우 해당 서비스에 대한 도움을 받으려면 man name_daemon 사용, 실행 중인 서비스에 대한 정보가 없으면 댓글로 쓰기그리고 우리는 함께 그러한 서비스에 대한 정보를 수집하고 여기에 제공된 UNIX/Linux 데몬/서비스 목록에 추가할 것입니다.

man name_daemon 도움말에 서비스에 대한 설명이 없으면 데몬/서비스가 바이러스일 수 있습니다., 이 경우 name_daemon이 있는 실행 파일을 검색하고 분석을 위해 바이러스 실험실로 보냅니다. 이는 웹 인터페이스(예: http://vms.drweb.com/online/)를 통해 바이러스 백신을 설치하지 않고도 수행할 수 있습니다. http://www.esetnod32.ru/.support/scanner/ 또는 https://www.virustotal.com/.

UNIX/LINUX 데몬/서비스 자동 로드

아래는 자세한 지침데몬/서비스 시작 관리용다음과 같은 UNIX 계열 OS의 가장 일반적인 수정/버전 CentOS Linux, Debian Linux 및 BSD 유형 OS. UNIX 계열 OS의 다른 수정/버전에서는 데몬/서비스의 자동 로딩 관리가 비슷한 절차를 따르지만 약간의 사소하거나 심지어 근본적인 차이점이 있을 수 있습니다!

CentOS Linux에서 데몬/서비스 자동 로딩

CentOS에는 로드 수준이 정의되어 있습니다. System V 원리에 따라 도색되어 있습니다. /etc/inittab 파일에서, 덜 읽으십시오 /etc/inittab .

각 로드 수준에 대한 디렉터리 이름이 지정되고 /etc/rc.d 디렉터리에 위치합니다.

특정 로드 수준에 해당하는 각 디렉터리에는 데몬/프로그램/서비스를 시작하기 위한 지침이 포함된 스크립트 또는 오히려 이에 대한 링크가 있으며, 데몬/프로그램/서비스를 시작하기 위한 지침이 포함된 스크립트 자체는 다음 위치에 있습니다. /etc 디렉토리 /rc.d/init.d

데몬/프로그램/서비스의 시작을 제어하는 ​​스크립트의 예는 less /etc/rc.d/init.d/mysqld 또는 less /etc/rc.d/init.d/sshd 를 실행하여 볼 수 있습니다. 일반적으로 데몬/프로그램/서비스의 시작을 제어하는 ​​스크립트는 /etc/rc.d/init.d/에 나타나며 소프트웨어 설치 후 실행 수준 디렉터리에 연결됩니다. 상태가 꺼짐/켜짐입니다각 실행 레벨마다 chkconfig 유틸리티로 제어.

chkconfig --list 명령을 사용하면 어떤 데몬이 다른 실행 수준에서 실행되는지 확인할 수 있습니다. chkconfig --level 345 mysqld on 명령을 사용하여 모든 실행 수준에서 데몬이 자동으로 실행되도록 활성화하고 chkconfig --level 345 mysqld off를 각각 끌 수 있습니다. chkconfig –del service_ name 서비스를 삭제하려면 chkconfig service_name on |off는 모든 레벨에서 서비스를 활성화하거나 비활성화합니다.

시작에 스크립트를 추가하는 경우 을 위한 자동 다운로드스크립트는 /etc/rc.local에서 제공됩니다., /etc/rc.local에서 스크립트에 전체 경로를 추가하는 것으로 충분합니다(예: /root/scripts/script.sh 또는 /bin/sh /root/scripts/script.sh ). 소프트웨어를 설치한 후 /etc/rc.d/init.d/에 시작 제어 스크립트가 없는 경우 원하는 프로그램, 그러면 초기화/실행 라인을 /etc/rc.local에 추가하는 것이 더 쉽습니다.

런레벨을 관리하는 ntsysv라는 유틸리티가 있습니다. man ntsysv.

Debian Linux에서 데몬/서비스 자동 로딩

Debian Linux의 각 부팅 수준에 대한 디렉터리 이름도 지정됩니다. rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, rc6.d하지만, 위치한더 이상 /etc/rc.d 디렉토리에 없지만 /etc 디렉토리의 루트에

데몬/프로그램/서비스를 시작하기 위한 지침이 포함된 스크립트가 있거나 기호 링크가 /etc/rc?.d 디렉토리에 있습니다. 여기서 기호는 무엇입니까? 부하 수준에 해당하며, 데몬/프로그램/서비스를 시작하기 위한 지침이 포함된 스크립트 자체는 /etc/init.d 디렉토리에 있습니다.. 직접 작성할 수 있는 이러한 스킵의 예는 less /etc/init.d/skeleton 파일에서 찾을 수 있습니다.

아래에서는 스크립트 템플릿 /etc/init.d/skeleton에 사용되는 서비스 정보에 대해 설명합니다.

  • 다음을 제공합니다:스크립트가 start 인수와 함께 실행될 때 이러한 개체가 존재하는 것으로 간주되고 따라서 이러한 개체의 존재를 요구하는 init의 다른 스크립트와 같은 방식으로 이 스크립트에서 제공하는 개체(arg1, agr2, ...)를 설명합니다. 개체는 더 늦은 단계에서 시작할 수 있습니다. 일반적으로 스크립트 이름을 개체로 사용할 수 있지만 대체하는 서비스 이름을 사용할 수도 있습니다. 가상 개체는 여기에 표시되지 않습니다. init.d 스크립트 외부에서 정의됩니다.
  • 필수 시작:스크립트를 실행하기 위해 존재해야 하는 개체를 지정합니다. 필요한 경우 아래 설명과 같이 가상 개체를 사용할 수 있습니다. 개체가 지정되지 않은 경우 로컬 파일 시스템을 연결하거나 시스템 로그를 시작할 필요 없이 시작 직후 스크립트를 시작할 수 있습니다.
  • 필수 중지:스크립트에서 제공하는 서비스에서 사용하는 개체를 지정합니다. 충돌을 방지하려면 여기에 나열된 개체가 완료되기 전에 이 스크립트에서 제공하는 개체가 완료되어야 합니다. 일반적으로 여기에는 필수 시작과 동일한 개체가 표시됩니다.
  • 시작해야 할 것:존재하는 경우 이 스크립트에서 제공하는 서비스보다 먼저 시작되어야 하는 개체를 지정합니다. 이는 객체를 사용할 수 없는 경우 서비스 실패를 유발하지 않는 약한 종속성을 허용합니다. 아래 설명된 대로 필요에 따라 가상 개체를 사용할 수 있습니다.
  • 중지해야 할 사항:존재하는 경우 이후에 중지되어야 하는 개체를 지정합니다. 이 서비스의. 일반적으로 Should-Start와 동일한 개체가 여기에 지정됩니다.
  • 기본 시작:기본적으로 스크립트가 시작(중지)되어야 하는 실행 수준을 설정합니다. 예를 들어 서비스가 수준 3, 4, 5에서만 시작되어야 하는 경우 "Default-Start: 3 4 5" 및 "Default-Stop: 0 1 2 6"을 지정합니다.
  • 간단한 설명:스크립트 작업에 대한 간단한 설명을 지정합니다. 한 줄로 제한됩니다.
  • 설명:스크립트 작업에 대한 자세한 설명을 지정합니다. 여러 줄로 구성될 수 있습니다. 이 경우 설명의 각 줄은 # 문자로 시작하고 그 뒤에 탭 문자나 최소 2개의 공백 문자가 와야 합니다. 설명은 이 조건과 일치하지 않는 줄 앞에서 끝납니다.
  • X-시작 전, X-중지-후:여기에 지정된 패키지의 should-start 및 should-stop에 지정된 것과 동일한 의미를 갖는 역 종속성을 지정합니다.

키워드 제공, 필수 및 해야 함은 종속성을 추적하는 데 중요합니다. 나머지는 사용되지 않습니다. 런레벨은 기본적으로 프로그램에서 스크립트를 구성하는 데 사용됩니다( 예를 들어, 삽입) 어떤 디렉토리를 추적하기 위해 rc?.d서비스가 처음 추가될 때 업데이트하고 서비스의 목적을 반영해야 합니다. 다음은 몇 가지 "가상" 개체입니다.

  • $local_fs- 모든 로컬 파일 시스템이 연결되어 있습니다. /var/에 쓰는 모든 스크립트는 이미 $remote_fs에 의존하지 않는 한 이에 의존해야 합니다.
  • $네트워크- 낮은 수준의 네트워크, 즉 네트워크 카드, PCMCIA가 실행 중임을 의미할 수 있음
  • $named- 도메인 이름 확인을 제공할 수 있는 데몬이 실행 중인 것으로 가정합니다. 예를 들어 DNS, NIS+ 또는 LDAP
  • $portmap- 1833년에 지정된 대로 SunRPC/ONCRPC 포트 매핑 서비스를 제공하는 데몬(있는 경우)
  • $remote_fs- 모든 파일 시스템이 연결되어 있습니다. 종료 신호가 모든 프로세스에 전송되기 전에 시스템 종료 중에 실행해야 하는 스크립트는 $remote_fs에 의존해야 합니다.
  • $syslog- 시스템 로그가 작동 중입니다.
  • $time- 올바른 시스템 시간이 설정되었습니다(예: ntp, rdate 또는 RTC).
  • $all- 가능한 한 마지막에 스크립트를 실행합니다.

Debian Linux의 데몬 자동 로딩은 man update-rc.d에 자세히 설명된 update-rc.d 유틸리티를 사용하여 제어됩니다. update-rc.d 유틸리티는 /etc/rc?.d의 심볼릭 링크 이외의 다른 항목을 생성하거나 삭제하지 않습니다./etc/init.d 디렉토리에 있는 데몬/프로그램/서비스의 시작과 중지를 제어하는 ​​소위 init 스크립트에 적용됩니다.

데몬/서비스 자동 시작을 위한 스크립트가 /etc/init.d/skeleton 템플릿을 사용하여 수동으로 생성된 경우, 먼저 /etc/init.d 디렉토리에 배치한 다음 /etc/rc?.d 디렉토리에 이 스크립트에 대한 심볼릭 링크를 만들어야 합니다. 여기서? - 런레벨 번호( 시스템 부하 수준). 심볼릭 링크는 다음과 같아야 합니다.여기서 No.는 실행 순서 번호이며, 심볼릭 링크를 남기고 스크립트를 일시적으로 실행하지 않으려면 심볼릭 링크를 이 상태 KNo.script_name으로 수정해야 합니다.

실행 수준을 처리하기 전에 문자 "로 시작하는 모든 스크립트가 먼저 실행됩니다. 케이" (이 스크립트는 서비스를 중지합니다), 문자 "로 시작하는 모든 스크립트가 실행됩니다. 에스" (이 스크립트는 서비스를 시작합니다). 문자 "S" 또는 "K" 뒤의 두 자리 숫자는 스크립트가 실행되는 순서를 나타냅니다.. 숫자가 낮은 스크립트가 먼저 실행됩니다. 예를 들어 S01script_name이 먼저 시작되고 S09script_name이 9번째로 실행됩니다.

심볼릭 링크를 생성하려면 ln -s file1 file2 프로그램을 사용하세요. 어디열쇠 -에스심볼릭 링크 생성에 대해 이야기합니다. 파일1기존 파일을 가리키며 파일2새 링크의 이름을 지정하지만 기호 링크를 수동으로 생성하는 대신 /etc/rc?.d에서 /etc/init의 스크립트에 대한 기호 링크를 생성하기 위해 특별히 설계된 update-rc.d 유틸리티를 사용할 수 있습니다. 디.

update-rc.d 구문은 다음과 같습니다.: 기본 매개변수 update-rc.d로 추가 defaults, 데몬/서비스 제거 및 중지 update-rc.d -f && update-rc.d 제거 중지 20 2 3 4 5 . 데몬/서비스의 시작 및 중지는 서비스 이름 start|stop|restart 스크립트를 통해 제어할 수 있습니다.

솔직히 update-rc.d는 상대적으로 불투명한 유틸리티입니다. chkconfig 유틸리티가 더 편리합니다., Debian Linux에서는 기본적으로 사용할 수 없습니다. 설치하려면 리포지토리를 추가해야 합니다. 공식 Debian Linux 패키지 리포지토리만 사용하는 것이 좋습니다. vi /etc/apt/sources.list, 예제 source.list 목록 끝에는 데비안 GNU/리눅스 6.0.5 _Squeeze_ - 공식 i386:

# # deb cdrom:/ squeeze main deb cdrom:/ squeeze main deb http://security.debian.org/ squeeze/updates main deb-src http://security.debian.org/ squeeze/updates main # squeeze-updates , 이전에는 "휘발성"으로 알려짐 # 설치 중에 네트워크 미러가 선택되지 않았습니다. 다음 항목은 # 예시로 제공되지만 적절하게 수정해야 합니다 # 당신을 위해선택한 거울. # # deb http://ftp.debian.org/debian/ squeeze-updates 메인 # deb-src http://ftp.debian.org/debian/ squeeze-updates 메인 deb http://backports.debian.org/ debian-backports squeeze-backports 메인 deb http://ftp.debian.org/debian/ squeeze main #deb http://repo.yandex.ru/debian squeeze 메인 contrib #deb http://mirror.yandex.ru/ debian squeeze 주요 기여 #deb http://mirror.yandex.ru/debian-multimedia/ squeeze 주요 기여

그런 다음 apt-get update 로 패키지 목록을 업데이트하고 chkconfig apt-get install chkconfig 를 설치하고, 대안으로 sysv-rc-conf apt-get install sysv-rc-conf 를 추가로 설치할 수도 있습니다. chkconfig 유틸리티를 사용하는 방법은 위에서 언급되었으며 추가적으로 man sysv-rc-conf 및 man chkconfig를 참조하십시오.

Debian Linux 리포지토리를 추가할 때 기본, 기여, 비자유 등 각 영역에 적용되는 소프트웨어 정책에 유의하세요.

  • 기본: - 이 영역의 패키지는 전체 Debian Linux 배포판의 일부이며 기본 영역의 패키지 중 어느 것도 이 영역 외부의 소프트웨어가 필요하지 않습니다. 누구나 메인 영역에서 패키지를 자유롭게 사용, 공유, 수정, 배포할 수 있습니다.
  • 기여하다: - 이 영역의 패키지는 자유롭게 배포할 수 있지만 일부 종속 항목은 무료가 아닐 수 있습니다.
  • 무료가 아닌: - DSFG에 따라 무료로 배포할 수 없는 패키지가 포함되어 있으며 해당 지역의 패키지에는 Debian Linux를 개발 및 업데이트할 때 고려되지 않은 오류가 포함될 수 있습니다.

Debian Linux에서 다른 스크립트와 프로그램을 자동 실행하려면 오래된 /etc/rc.local을 사용할 수 있습니다.

시스템 관리자와 일반 Linux 사용자는 문제를 해결하기 위해 로그 파일을 확인해야 하는 경우가 많습니다. 실제로 이것은 시스템에 오류가 발생할 때 시스템 관리자가 가장 먼저 해야 할 일입니다.

Linux 운영 체제 자체와 실행 중인 애플리케이션은 다양한 로그 파일에 기록되는 다양한 유형의 메시지를 생성합니다. Linux는 특수 소프트웨어, 파일 및 디렉터리를 사용하여 로그 파일을 저장합니다. 어떤 파일에 어떤 프로그램의 로그가 포함되어 있는지 알면 시간을 절약하고 문제를 더 빨리 해결하는 데 도움이 됩니다.

이 기사에서는 Linux 로깅 시스템, 로그 파일 및 Linux 로그를 볼 수 있는 유틸리티의 주요 부분을 살펴보겠습니다.

대부분의 파일 리눅스 로그/var/log/ 폴더에 있습니다. ls 명령을 사용하여 시스템의 로그 파일을 나열할 수 있습니다:

Rw-r--r-- 1 루트 루트 52198 5월 10일 11:03 Alternatives.log
drwxr-x--- 2 루트 루트 4096 11월 14일 15:07 apache2
drwxr-xr-x 2 루트 루트 4096 4월 25일 12:31 apparmor
drwx------ 2 루트 루트 4096 5월 5일 10:15 감사
-rw-r--r-- 1 루트 루트 33100 5월 10일 10:33 boot.log

아래에서는 /var/log/ 디렉터리에 있는 20개의 서로 다른 Linux 로그 파일을 살펴보겠습니다. 이러한 로그 중 일부는 특정 배포판에서만 발견됩니다. 예를 들어 dpkg.log는 Debian 기반 시스템에서만 발견됩니다.

/var/log/메시지- 시스템 시작 시 기록되는 로그를 포함하여 전역 Linux 시스템 로그를 포함합니다. 이 로그에는 메일, cron, 다양한 서비스, 커널, 인증 등 여러 유형의 메시지가 기록됩니다.

/var/log/dmesg- 커널로부터 받은 메시지를 포함합니다. 부팅 단계에서 많은 메시지를 기록하며 부팅 프로세스 중에 초기화되는 하드웨어 장치에 대한 정보를 표시합니다. 이것은 리눅스 시스템의 또 다른 로그라고 할 수 있습니다. 로그에 있는 메시지 수는 제한되어 있으며, 파일이 가득 차면 새로운 메시지가 나올 때마다 이전 메시지를 덮어쓰게 됩니다. dmseg 명령을 사용하여 이 로그의 메시지를 볼 수도 있습니다.

/var/log/auth.log- 사용된 사용자 로그인 및 인증 메커니즘을 포함하여 시스템의 사용자 인증에 대한 정보를 포함합니다.

/var/log/boot.log- 시스템 부팅 시 기록되는 정보를 포함합니다.

/var/log/daemon.log- 다양한 배경 데몬의 메시지를 포함합니다.

/var/log/kern.log- 커널의 메시지도 포함되어 있으며 커널에 내장된 사용자 정의 모듈의 오류를 해결하는 데 유용합니다.

/var/log/마지막 로그- 모든 사용자의 마지막 세션에 대한 정보를 표시합니다. 이 파일은 텍스트가 아닌 파일이므로 보려면 lastlog 명령을 사용해야 합니다.

/var/log/maillog /var/log/mail.log- 시스템에서 실행되는 이메일 서버의 로그입니다.

/var/log/user.log- 사용자 수준의 모든 로그 정보입니다.

/var/log/Xorg.x.log- X 서버 메시지 로그.

/var/log/alternatives.log- 업데이트 대안 프로그램의 운영에 대한 정보. 이는 기본 명령이나 라이브러리에 대한 기호 링크입니다.

/var/log/btmp- 통나무 리눅스 파일실패한 로그인 시도에 대한 정보가 포함되어 있습니다. 파일을 보려면 last -f /var/log/btmp 명령을 사용하는 것이 편리합니다.

/var/로그/컵- 인쇄 및 프린터와 관련된 모든 메시지.

/var/log/anaconda.log- 설치 중 기록된 모든 메시지가 이 파일에 저장됩니다.

/var/log/yum.log- Yum을 사용하여 패키지 설치에 대한 모든 정보를 기록합니다.

/var/로그/크론- Cron 데몬이 프로그램 실행을 시작할 때마다 이 파일에 프로그램 자체의 보고서와 메시지를 기록합니다.

/var/로그/보안- 인증 및 권한 부여와 관련된 정보가 포함되어 있습니다. 예를 들어 SSHd는 실패한 로그인 시도를 포함하여 모든 것을 여기에 기록합니다.

/var/log/wtmp 또는 /var/log/utmp - Linux 시스템 로그 , 사용자 로그인 로그를 포함합니다. wtmp 명령을 사용하면 누가 언제 로그인했는지 확인할 수 있습니다.

/var/log/faillog- 통나무 리눅스 시스템, 실패한 로그인 시도가 포함되어 있습니다. 이 파일의 내용을 표시하려면 falllog 명령을 사용하십시오.

/var/log/mysqld.log- MySQL 데이터베이스 서버의 Linux 로그 파일.

/var/log/httpd/ 또는 /var/log/apache2- linux11 Apache 웹 서버의 로그 파일. 액세스 로그는 access_log 파일에 있고, 오류 로그는 error_log에 있습니다.

/var/log/lighthttpd/ - 리눅스 로그 lighttpd 웹 서버

/var/log/conman/- ConMan 클라이언트 로그 파일,

/var/로그/메일/- 이 디렉터리에는 추가 메일 서버 로그가 포함되어 있습니다.

/var/log/prelink/- Prelink 프로그램 링크 라이브러리 및 실행 파일다운로드 프로세스 속도를 높이려면. /var/log/prelink/prelink.log에는 프로그램에 의해 수정된 .so 파일에 대한 정보가 포함되어 있습니다.

/var/로그/감사/- auditd 데몬에 의해 생성된 정보가 포함되어 있습니다.

/var/log/setroubleshoot/ - SE Linux는 setroubleshootd 데몬(SE Trouble Shoot Daemon)을 사용하여 보안 문제를 보고합니다. 이 로그에는 이 프로그램의 메시지가 포함되어 있습니다.

/var/log/삼바/- 연결하는 데 사용되는 Samba 파일 서버의 정보 및 로그가 포함되어 있습니다. 공유 폴더윈도우.

/var/log/sa/- Sysstat 패키지에서 수집한 .cap 파일이 포함되어 있습니다.

/var/log/sssd/- 관리하는 시스템 보안 데몬에서 사용됩니다. 원격 액세스디렉토리 및 인증 메커니즘.

Linux에서 로그 보기

Linux에서 로그를 보려면 여러 명령줄 유틸리티를 사용하는 것이 편리합니다. 리눅스 문자열. 누구라도 될 수 있어 텍스트 에디터, 또는 특수 유틸리티. Linux에서 로그를 보려면 수퍼유저 권한이 필요할 가능성이 높습니다. 이러한 목적으로 가장 자주 사용되는 명령은 다음과 같습니다.

  • zgrep
  • zmore

대부분의 명령이 이미 우리 웹사이트에서 자세히 논의되었기 때문에 각 명령에 대해 자세히 설명하지 않겠습니다. 하지만 몇 가지 예를 들어 보겠습니다. Linux 로그를 보는 것은 매우 간단합니다.

스크롤 기능이 있는 /var/log/messages 로그를 살펴봅니다.

덜 /var/log/메시지

실시간으로 Linux 로그 보기:

tail -f /var/log/messages

dmesg 로그 파일을 엽니다.

고양이 /var/log/dmesg

dmesg의 첫 번째 줄:

헤드 /var/log/dmesg

/var/log/messages에서만 오류를 출력합니다:

grep -i 오류 /var/log/messages

또한 그래픽 유틸리티를 사용하여 Linux에서 로그를 볼 수 있습니다. 시스템 프로그램로그 뷰어를 사용하면 편리한 시청노트북에서 시스템 로그를 모니터링하거나 개인용 컴퓨터리눅스와 함께.

X 서버가 설치된 모든 시스템에 프로그램을 설치할 수 있습니다. 또한 모든 그래픽 테스트 편집기를 사용하여 로그를 볼 수 있습니다.

결론

/var/log 디렉토리에서 Linux 작동에 필요한 모든 정보를 찾을 수 있습니다. 오늘 기사를 통해 당신은 어디를 봐야 할지, 무엇을 찾아야 할지 충분히 배웠습니다. 이제 Linux에서 로그를 보는 데 문제가 발생하지 않습니다. 궁금한 점이 있다면 댓글로 질문해주세요!

초보 Linux 사용자는 조만간 시스템 기능을 설정하고 구성하는 데 몇 가지 문제에 직면하게 됩니다. 그리고 새로 온 사람들은 경험이 많은 사용자로부터 "로그를 살펴보세요"라는 조언을 거의 확실히 들었습니다. 조언은 좋지만 초보자는 여전히 로그가 무엇인지, 로그를 찾을 수 있는 위치를 알아야 합니다! 그래서 이번 글에서는 무엇을, 어디서 보아야 하는지 알려드리겠습니다.

프로그래밍 속어에서 "로그"는 운영 체제 자체와 많은 프로그램에서 독립적으로 유지 관리되는 작업 프로토콜입니다. 이러한 의미에서 "저널"이라는 단어는 "프로토콜"이라는 단어의 동의어로 자주 사용됩니다. 프로토콜을 분석해야 하는 두 가지 주요 상황이 있습니다. 시스템의 무언가가 예상대로 작동하지 않는 경우(문제 해결), 시스템이 일부 공격자에 의해 해킹되었다는 의심이 있어 분석이 필요한 경우입니다. 정확히 무슨 일이 일어났는지, 그것이 어떻게 이루어졌는지, 침략의 결과를 제거하기 위해 무엇을 해야 하는지 알아보세요.

공격자의 침입을 탐지하기 위해 로그 파일을 사용한 가장 유명한 사례 중 하나는 컴퓨터 보안 전문가 Tsuomo Shimomura가 유명한 해커 Kevin Mitnick을 체포한 이야기입니다. 다음은 이러한 일이 어떻게 발생했는지 설명하는 기사의 한 단락입니다.

"크리스마스 날, 시모무라가 네바다주에서 스키를 타러 갔을 때 누군가(우리는 이미 누구인지 알고 있습니다) 그의 보안 장치에 침입했습니다. 가정용 컴퓨터캘리포니아 주 솔라나 비치에서 수백 개의 기밀 파일을 복사하기 시작했습니다. Shimomura가 근무했던 샌디에이고 슈퍼컴퓨팅 센터의 한 대학원생은 시스템 "로그" 파일의 변경 사항을 발견하고 무슨 일이 일어나고 있는지 재빨리 깨달았습니다. 이 모든 것은 Shimomura가 자신의 컴퓨터에 "일지" 항목을 샌디에고에 있는 백업 컴퓨터에 자동으로 복사하는 프로그램을 설치했기 때문에 가능했습니다. 시모무라라는 학생은 훔친 물건 목록을 확인하기 위해 집으로 달려갔습니다."

여기서 전체 내용을 설명하지는 않겠지만, 시스템 운영 프로토콜에 대한 분석이 위법 행위 조사 성공의 기초가 되었다는 점만 언급하는 것이 중요합니다. 해당 조사가 어떻게 수행되는지에 대한 자세한 설명은 기사에서 확인할 수 있습니다. 그러나 로깅 결과를 활용하려면 프로토콜이 어떻게 생성되고, 어디에 저장되며, 프로토콜에서 무엇을 추출할 수 있는지 이해해야 합니다. 이 기사는 이러한 모든 문제를 고려하는 데 전념합니다.

프로토콜에 대한 메시지가 생성되는 방법

C 언어로 프로그램을 만들 때 프로그래머는 필요한 경우 특수 기능에 대한 호출을 삽입할 수 있다는 사실부터 시작해야 합니다. openlog, setlogmask, syslog그리고 클로즈로그 C 언어의 표준 라이브러리에 포함된 이 함수는 프로그램 실행 중 특정 이벤트에 대한 메시지를 특수 시스템 데몬으로 보내는 데 사용됩니다. syslogd, 시스템 프로토콜을 수행합니다. 기능 오픈로그악마와 관계를 맺는다 syslogd, 기능 시스템 로그프로토콜에 기록될 특정 메시지를 생성하고, 그 기능은 클로즈로그열려 있는 연결을 닫습니다.

함수에 의해 생성된 메시지 시스템 로그는 공백으로 구분된 여러 필드로 구성됩니다. 각 메시지는 필드로 시작됩니다. PRI, 메시지 범주(시설) 및 메시지의 심각도 수준(심각도 수준) 또는 우선 순위(우선 순위)에 대한 정보가 인코딩된 형식으로 포함되어 있습니다.

카테고리(시설)는 이 메시지가 어떤 클래스에 속하는지에 대한 정보입니다. 범주는 0부터 23까지의 숫자로 코딩됩니다. 다음 범주가 존재합니다(파일에 정의되어 있음). /usr/include/sys/syslog.h):

1 번 테이블.

숫자 값상징디코딩
0 장식 꼬리 커널 메시지
1 사용자 사용자 프로그램의 다양한 메시지에 맞게 설계되었습니다.(사용자 프로그램의 메시지)
2 우편 보낸 메시지 우편 시스템.
3 악마 FTP 또는 LPR과 달리 특정 전용 카테고리가 없는 시스템 데몬의 메시지입니다.
4 인증 로그인, su(보안/액세스 권한) 등 사용자 인증과 관련된 모든 것
5 시스템 로그 로깅 시스템은 자체적으로 메시지를 기록할 수 있습니다.
6 lpr 인쇄 시스템의 메시지입니다.
7 소식 뉴스 서버에서 보낸 메시지입니다. (넷뉴스, 유즈넷)
8 uucp UNIX-UNIX 복사 프로토콜 메시지. 이는 UNIX 역사의 일부이므로 아마도 필요하지 않을 것입니다(일부 메일은 여전히 ​​UUCP를 통해 전달되지만).
9 크론 시스템 스케줄러의 메시지입니다.
10 인증 auth와 동일하지만 이 카테고리의 메시지는 일부 사용자만 읽을 수 있는 파일에 기록됩니다(아마도 이 카테고리는 이 카테고리에 속한 메시지에 낯선 사람이 볼 수 없는 명확한 사용자 비밀번호가 포함될 수 있으므로 로그 파일에 다음이 있어야 함). 적절한 액세스 권한).
11 FTP 이 범주를 사용하면 활동을 기록하도록 FTP 서버를 구성할 수 있습니다.
12시부터 15시까지 - 시스템용으로 예약되어 있습니다.
16일부터 23일까지로컬0 - 로컬7 시스템 관리자가 사용하도록 예약된 카테고리입니다. local7 범주는 일반적으로 시스템 부팅 단계 중에 생성된 메시지에 사용됩니다.

범주 인증오래된 동의어 이름이 있습니다. 보안, 이는 권장되지 않습니다. 그 밖에도 특별한 카테고리가 있습니다. 표시(디지털 상응물이 없음) 악마 자체가 생성한 개별 메시지에 할당됨 syslogd. 이 범주는 지정된 시간 간격(기본적으로 20분마다)으로 프로토콜에 특수 표시를 배치하는 데 사용됩니다. 이를 통해 예를 들어 컴퓨터가 정지되었을 때 20분 정확도로 알아낼 수 있습니다.

카테고리는 일반적으로 데몬에 메시지를 보내는 프로그램의 이름과 아무 관련이 없습니다. syslogd. 그들이 말했듯이 모든 우연은 순수한 우연입니다. 또한 일부 프로그램은 다양한 범주의 메시지를 생성할 수 있습니다. 예를 들어, 악마 텔넷로깅 시도가 실패한 경우 카테고리 메시지를 생성합니다. 인증, 다른 경우에는 메시지를 분류합니다. 악마.

필드 값이 형성되는 기준이 되는 두 번째 매개변수 PRI는 메시지의 수준이나 우선순위(우선순위), 즉 메시지의 중요도에 대한 정보입니다. 기본적으로 8가지 중요도 수준이 지정됩니다(파일에도 정의되어 있음). /usr/include/sys/syslog.h), 0부터 7까지의 숫자로 코딩됩니다.

표 2.

숫자 값상징 디코딩
0 출현하다(이전 명칭 패닉) 비상. 시스템이 작동하지 않습니다.
1 알리다 불안! 즉각적인 개입이 필요합니다.
2 치명타 치명적 오류(중요한 상태).
3 실수(이전 이름 ​​오류) 에러 메시지.
4 경고(이전 이름 ​​WARN)경고.
5 알아채다 평범하지만 중요한 이벤트에 대한 정보입니다.
6 정보 발표.
7 디버그 디버깅 중에 생성된 메시지입니다.

필드 PRI메시지는 다음과 같이 구성됩니다. 카테고리의 숫자 값에 8을 곱하고 우선 순위의 숫자 값에 더해지며 결과 숫자가 꺾쇠 괄호로 묶여 필드에 기록됩니다.

필드를 따라가다 PRI메시지에는 다음 필드가 포함됩니다.

  • 타임스탬프- 메시지 생성 시간,
  • 호스트 이름- 10진수 표기법의 호스트 이름 또는 IP 주소,
  • MSG- 임의의 메시지 텍스트 - US-ASCII 코드(0x20 - 0x7e)의 일부 텍스트(정보) 문자열.

시간(현지!)은 Feb 13 21:12:06 형식으로 기록됩니다. 일수가 한 자리이면 그 앞에 추가 공백(0이 아님!)이 배치됩니다. 날짜에는 연도와 지역이 없으므로 로그 파일의 장기 저장을 구성할 때 고려해야 하는 사항입니다. 메시지의 시간이 정확하려면 동기화되어야 합니다(예: NTP 프로토콜 사용).

아래에 표시된 것처럼 로깅은 네트워크의 전용 컴퓨터 중 하나에서 수행될 수 있기 때문에 서로 다른 호스트에서 온 메시지 간의 혼동을 피하기 위해 호스트 이름이 메시지에 포함됩니다. 호스트 이름은 도메인을 지정하지 않고 컴퓨터의 간단한 네트워크 이름입니다. 컴퓨터에 서로 다른 IP 주소를 가진 여러 인터페이스가 있는 경우 그 중 하나를 호스트 이름이나 주소로 사용할 수 있습니다.

메시지 텍스트( MSG)에는 일반적으로 라벨( 꼬리표), 메시지를 발행한 프로그램이나 프로세스 및 메시지 본문( 콘텐츠). 라벨에는 라틴 문자와 숫자가 포함될 수 있습니다. 일반적으로 레이블은 단순히 프로그램 이름이며 때로는 대괄호로 묶인 프로세스 식별자로 보완됩니다. 메시지 본문은 특수 문자로 레이블과 구분됩니다. Linux에서는 일반적으로 콜론과 공백입니다.

syslogd 데몬으로 메시지 처리

해당 기능을 사용하여 개별 프로그램에서 생성된 모든 메시지 시스템 로그, 소켓을 통해 전송됨 /개발/로그시스템 데몬 syslogd, 이러한 메시지 처리를 담당합니다. 실제로 두 개의 로깅 데몬이 시스템에서 시작된다고 말해야 합니다. syslogd그리고 클로그. 두 데몬 모두 패키지에 포함되어 있습니다. sysklogd, 최신 버전은 웹사이트에서 찾을 수 있습니다.

악마 클로그시스템 커널에서 발생하는 이벤트 로깅을 담당합니다. 별도의 데몬이 필요함 클로그커널이 표준 기능을 사용할 수 없기 때문에 시스템 로그. 사실은 표준 라이브러리(함수가 위치한 라이브러리 포함) 시스템 로그)은 일반 응용 프로그램에서만 사용하도록 만들어졌습니다. 커널에도 비슷한 기능이 필요하기 때문에 응용 프로그램에서 사용할 수 없는 자체 라이브러리가 포함되어 있습니다. 따라서 커널은 자체 메시지 생성 메커니즘을 사용합니다. 악마 클로그이러한 메시지 처리를 구성하도록 설계되었습니다. 원칙적으로 그는 그러한 처리를 완전히 독립적으로 수행할 수 있습니다. syslogd예를 들어 이러한 메시지를 파일에 기록하지만 대부분의 경우 기본 설정이 사용됩니다. 클로그, 커널의 모든 메시지가 동일한 데몬으로 전달됩니다. syslogd.

악마를 확인하기 위해 syslogd그리고 클로그시스템에서 실행 중인 경우 다음 명령을 실행하세요. ps -ax | grep 로그. 이 명령으로 다음과 같은 결과가 나왔습니다.

$ ps -ax | grep 로그 569? S 0:00 syslogd -m 0 574 ? S 0:00 klogd -x 1013 ? S 0:00 로그인 -- kos 1191 ? S 0:00 kaarmd --login 처음 두 줄은 로깅 데몬이 시스템에서 실행 중임을 나타냅니다.

데몬에 의한 메시지 처리 syslogd메시지의 모양을 지속적으로 모니터링하고 들어오는 각 항목을 파일에 있는 규칙과 비교한다는 것입니다. /etc/syslog.conf. 각 규칙은 파일 라인으로 작성됩니다. /etc/syslog.conf, 두 개의 필드로 구성됩니다. 왼쪽 필드("선택기")는 메시지가 선택되는 하나 이상의 템플릿을 지정합니다. 패턴은 세미콜론으로 구분됩니다(아래 예제 파일 참조). /etc/syslog.conf). 오른쪽 필드("작업")는 선택한 메시지가 처리되는 순서를 결정합니다. 필드는 하나 이상의 공백이나 탭 문자로 구분됩니다.

"선택기" 필드의 각 패턴은 "category.level"(즉, "facility.priority") 형식입니다. "카테고리" 필드의 값은 다음과 같습니다:

  • 표 1에 나열된 범주의 일반적인 이름 중 하나,
  • 이러한 이름 여러 개(이 경우 쉼표로 구분됨)
  • 또는 * 기호("모든 카테고리"를 의미).

"레벨" 필드의 값은 다음과 같습니다:

  • 표 2에 나열된 레벨 이름 중 하나
  • 기호 *(레벨에 관계없이 이 카테고리의 모든 메시지를 녹음),
  • 또는 단어 없음(이 카테고리의 메시지는 녹음하지 마세요).

"수준" 필드에 특정 값을 지정하면 "모든 값"으로 해석됩니다. 이 수준한 레벨의 메시지만 녹음하고 싶다면, 지정한 값 앞에 등호("=")를 붙여야 합니다. 지정한 레벨을 제외한 모든 레벨의 메시지를 녹음하려면, 레벨 이름 앞에 붙이기 느낌표("!"). 이 두 표시를 동시에 배치한다는 것은 “지정된 레벨 이상의 메시지를 녹음하지 않는다”는 뜻으로 해석된다.

"선택기" 필드에는 대문자와 소문자 사이에 차이가 없습니다. 숫자를 사용할 수도 있습니다(/usr/include/syslog.h 참조). 표 1에 나열된 카테고리 외에도 다음을 표시할 수 있습니다. 표시(일반 타임스탬프) 및 보안(사용되지 않는 동의어 인증). 표 2에 나열된 우선순위 값 외에도 다음을 사용할 수 있습니다. 경고하다(동의어 경고), 오류(동의어 실수), 공황(동의어 출현하다).

수신된 메시지의 카테고리 및 레벨과 일부 문자열의 "선택기" 필드에 있는 패턴 중 하나가 일치하는 경우, syslogd이 줄의 "작업" 필드에 지정된 작업에 따라 기록을 처리합니다.

"작업" 필드에는 다음이 포함될 수 있습니다.

  • 일반 파일(로그 파일)의 이름과 루트 "/"부터 파일의 전체 경로를 지정해야 하며, 지정된 파일이 존재하지 않는 경우 syslogd그것을 창조하고,
  • 명명된 파이프의 이름 - FIFO; 이 경우 이름 앞에 세로 막대("|")가 표시되며 시작하기 전에 채널 자체를 생성해야 합니다. syslogdmkfifo,
  • 터미널이나 콘솔을 가리킵니다(장치: /dev/tty1에서와 같이).
  • 원격 호스트 표시(앞에 @ 기호가 붙음),
  • 또는 이 규칙에 따라 메시지가 전송될 터미널의 사용자 목록(쉼표로 구분)입니다. 사용자 목록 대신 별표(*)를 넣을 수 있습니다. 이는 해당 작업을 수행하는 모든 사용자에게 메시지가 전송된다는 의미입니다. 이 순간시스템에서.

대부분의 경우 "작업" 필드에는 여전히 로그 파일 이름이 포함되어 있습니다. 또한 파일 이름 앞에 빼기 기호("-")를 넣을 수 있습니다. 이는 시스템이 각 메시지를 디스크에 쓴 후 파일을 플러시하는 대신 캐시 버퍼에 파일을 저장할 수 있음을 의미합니다. 물론 이렇게 하면 특히 많은 대용량 메시지가 프로토콜에 기록되는 경우 작업 속도가 빨라지지만 예기치 않은 시스템 충돌이 발생하는 경우, 즉 정확히 그러한 메시지가 특히 필요한 경우 일부 메시지가 손실될 수 있습니다. . "action" 필드에 프린터(/dev/lp0)를 장치로 지정할 수도 있습니다. 이 "작업" 옵션은 특히 중요한 시스템이 관련된 경우에 사용하는 것이 좋습니다. 인쇄된 프로토콜은 해커에 의해 삭제되거나 변경될 수 없으므로 이는 오래된 도트 매트릭스 프린터에 유용하게 사용됩니다.

파일의 규칙이 있는 줄 외에도 /etc/syslog.conf포함하고있을 것이다 빈 줄# 기호로 시작하는 주석 줄입니다. 파일 구조에 대한 추가 정보 /etc/syslog.conf이 파일의 규칙 항목에 대한 몇 가지 예를 보려면 syslog.conf 매뉴얼 페이지를 읽어보세요. 파일에 "category.level" 쌍을 지정할 때 주의하세요. syslog.conf사용할 수 없습니다 숫자 값, 표 1과 2에 나와 있는 대로 기존 이름만 허용됩니다.

메시지가 두 개 이상의 문자열 패턴과 일치하는 경우 각 규칙에 따라 처리됩니다(즉, 첫 번째 성공 시 메시지 처리가 중지되지 않습니다). 이는 하나의 메시지에 대해 임의의 수의 작업을 수행할 수 있음을 의미합니다. 따라서 메시지를 로그 파일에 기록하고 이를 사용자나 원격 호스트에 보낼 수 있습니다.

또한 "선택기" 필드에 여러 "category.level" 쌍이 나열되면(세미콜론으로 구분) 후속 쌍이 이전 쌍을 재정의할 수 있습니다. 아래 파일 목록에서 이러한 취소의 예를 볼 수 있습니다. /etc/syslog.conf: info보다 레벨이 같거나 높은 모든 메시지는 /var/log/messages 파일에 기록되지만, mail, authpriv 및 cron 카테고리의 메시지는 건너뜁니다(기록되지 않음).

목록 1. 파일 /etc/syslog.conf Red Hat Linux 7.1 배포판에 구축된 시스템에서(저는 이 파일에 포함된 설명만 러시아어로 번역했고 규칙은 굵게 강조했습니다).
# 커널의 모든 메시지를 콘솔에 인쇄합니다. #kern.* /dev/console# 정보 수준 이상의 모든 메시지를 기록합니다. 단, # 인증 메시지와 cron 데몬 메시지의 민감한 정보가 포함된 메일 ​​시스템 메시지는 제외됩니다. *.info;mail.none;authpriv.none;cron.none /var/log/messages# 중요한 인증 정보가 포함된 메시지를 레벨에 상관없이 별도의 파일에 # 작성합니다. authpriv.* /var/log/secure# 메일 시스템의 모든 메시지도 별도로 기록해야 합니다. 메일.* /var/log/maillog# cron 데몬의 작업을 기록합니다. cron.* /var/log/cron# 비상 메시지는 시스템의 모든 사용자에게 즉시 수신되어야 합니다. *.이머그*# 중요 수준 이상의 뉴스 서비스에서 보낸 메시지를 별도의 파일에 기록합니다. uucp,news.crit /var/log/spooler# 부팅 단계에서 발생한 메시지는 boot.log 파일에 복사됩니다. local7.* /var/log/boot.log
보시다시피 대부분의 메시지는 디렉토리에 있는 다양한 로그 파일에 기록됩니다. /var/로그또는 그 하위 디렉토리(Red Hat Linux의 기본 시스템 로그 파일은 다음과 같습니다) /var/log/메시지. 메일, authpriv 및 cron 카테고리(별도의 파일이 할당됨)의 메시지만 포함되지 않습니다. 이 파일을 살펴보고 해당 예제를 사용하여 로그 파일에 기록된 내용을 살펴보겠습니다.

로그 파일 /var/log/messages

물론 여기서는 이 파일의 각 줄의 내용을 논할 수 없습니다. 독자가 프로토콜에서 어떤 정보를 찾을 수 있는지 알 수 있도록 매우 간단한 설명과 함께 개별 메시지 라인을 제공합니다.

로그 파일의 각 줄에는 공백으로 구분된 다음 메시지 필드로 구성된 단일 메시지 레코드가 포함되어 있습니다.

  • 표준 텍스트 형식의 날짜(필드 타임스탬프메시지에서 시스템 로그),
  • 호스트 이름(필드 호스트 이름메시지에서 시스템 로그)
  • 메시지 텍스트(필드 꼬리표그리고 콘텐츠메시지에서 시스템 로그)

첫째, 컴퓨터가 연중무휴로 실행되지 않고 밤에 꺼져 있는 경우 이 파일에서 컴퓨터 부팅으로 시작하여 컴퓨터 끄기로 끝나는 여러 "작업 주기"에 대한 기록을 찾을 수 있다는 점에 주목할 가치가 있습니다. 이러한 주기는 로깅 데몬 시작에 대한 메시지로 시작됩니다(이해할 수 있는 내용은 메시지가 시작되기 전에 기록되지 않은 것입니다).

9월 17일 08:32:56 kos3 syslogd 1.4-0: 다시 시작. 9월 17일 08:32:56 kos3 syslog: syslogd 시작 성공 9월 17일 08:32:56 kos3 커널: klogd 1.4-0, 로그 소스 = /proc/kmsg가 시작되었습니다. 9월 17일 08:32:56 kos3 커널: /boot/System.map-2.4.2-2 검사 중 9월 17일 08:32:56 kos3 syslog: klogd 시작 성공

  • - 사용된 커널 버전 : Sep 17 08:32:56 kos3 커널 : Linux 버전 2.4.2-2 ( [이메일 보호됨]) (gcc 버전 2.96 20000731 (Red Hat Linux 7.1 2.96-79)) #1 Sun Apr 8 20:41:30 EDT 2001
  • - 커널을 실행한 매개변수는 무엇입니까? Sep 17 08:32:56 kos3 kernel: Kernel command line: auto BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2
  • - 프로세서 유형 및 용량에 대한 정보 랜덤 액세스 메모리: 9월 17일 08:32:56 kos3 커널: 1594.849MHz 프로세서가 감지되었습니다. 9월 17일 08:32:56 kos3 커널: 메모리: 125652k/130560k 사용 가능(1365k 커널 코드, 4200k 예약됨, 92k 데이터, 236k init, 0k highmem) 9월 17일 08:32:56 kos3 커널: CPU: L1 I 캐시: 12K , L1 D 캐시: 8K Sep 17 08:32:56 kos3 커널: CPU: L2 캐시: 256K Sep 17 08:32:56 kos3 커널: CPU: Intel(R) Pentium(R) 4 CPU 1.60GHz 스테핑 02
  • - 에 관한 정보 디스크 메모리(디스크 구조, 디스크 파티션 구조 및 사용된 인터럽트에 대한 정보 포함): Sep 17 08:32:56 kos3 kernel: hda: MAXTOR 6L020J1, ATA DISK 드라이브 Sep 17 08:32:56 kos3 kernel: hdc: SAMSUNG CD-ROM SC -148C, ATAPI CD/DVD-ROM 드라이브 Sep 17 08:32:56 kos3 커널: ide0 at 0x1f0-0x1f7,0x3f6 on irq 9월 14 08:32:56 kos3 커널: ide1 at 0x170-0x177,0x376 on irq 15 9월 17일 08:32:56 kos3 커널: hda: 40132503 섹터(20548MB) w/1819KiB 캐시, CHS=2498/255/63, UDMA(100) 9월 17일 08:32:56 kos3 커널: 파티션 확인: 9월 17일 08:32:56 kos3 커널: hda: hda1 hda2 hda3 hda4< hda5 hda6 hda7 >9월 17일 08:32:56 kos3 커널: 플로피 드라이브: fd0은 1.44M입니다.
  • - 에 관한 정보 주변기기: 9월 17일 08:32:56 kos3 커널: usb-uhci.c: I/O 0x1820의 USB UHCI, IRQ 11 9월 17일 08:32:56 kos3 커널: usb-uhci.c: 2개 포트 감지 9월 17일 08: 32:56 kos3 커널: 0x03f8(irq = 4)의 ttyS00은 16550A입니다. 9월 17일 08:32:56 kos3 커널: 0x02f8(irq = 3)의 ttyS01은 16550A입니다. 9월 17일 08:32:56 kos3 커널: eth0: Intel(R) 8255x 기반 이더넷 어댑터 Sep 17 08:32:56 kos3 커널: Intel(R) PRO/100 Fast Ethernet Adapter - 로드 가능한 드라이버, 버전 1.5.6 Sep 17 08:32:56 kos3 커널: PCI: 발견 장치 02:08.0에 대한 IRQ 11
  • - 개별 서비스 출시 안내 : 9월 17일 08:32:56 kos3 kernel: NET4: Linux TCP/IP 1.0 for NET4.0 9월 17일 08:32:56 kos3 kernel: IP Protocols: ICMP, UDP, TCP, IGMP 9월 17일 08:32:56 kos3 커널: NET4: Linux NET4.0용 Unix 도메인 소켓 1.0/SMP. Sep 17 08:32:56 kos3 kernel: parport0: 0x378(0x778)의 PC 스타일 Sep 17 08:32:56 kos3 kernel: parport0: irq 7 감지 Sep 17 08:32:42 kos3 rc.sysinit: 사용자 켜기 및 로컬 파일 시스템에 대한 그룹 할당량: 성공 Sep 17 08:32:43 kos3 rc.sysinit: 스왑 공간 활성화: 성공 Sep 17 08:32:44 kos3 init: 실행 수준 시작: 3 Sep 17 08:32:45 kos3 kudzu: 업데이트 중 /etc/fstab 성공 9월 17일 08:32:55 kos3 kudzu: 성공 9월 17일 08:32:55 kos3 네트워크: 네트워크 매개변수 설정: 성공 9월 17일 08:32:55 kos3 네트워크: 인터페이스 올리기 lo: 성공 9월 17일 08: 32:56 kos3 네트워크: 인터페이스 eth0 활성화: 성공 Sep 17 08:32:56 kos3 keytable: 키보드 레이아웃 로드 중: Sep 17 08:32:56 kos3 keytable: 시스템 글꼴 로드 중: Sep 17 08:32:56 kos3 무작위: 초기화 중 난수 생성기: 성공 Sep 17 08:32:41 kos3 rc.sysinit: 커널 매개 변수 구성 성공 Sep 17 08:32:41 kos3 rc.sysinit: 기본 글꼴 설정(cyr-sun16): 성공 Sep 17 08:32: 41 kos3 rc.sysinit: 스왑 파티션 활성화: 성공 Sep 17 08:32:41 kos3 rc.sysinit: 호스트 이름 설정 kos3: 성공 Sep 17 08:33:03 kos3 xinetd: xinetd 시작 성공 Sep 17 08:33:05 kos3 gpm : gpm 시작 성공 9월 17일 08:33:05 kos3 crond: crond 시작 성공 9월 17일 08:33:06 kos3 xfs: 포트 7100에서 수신 대기 9월 17일 08:33:06 kos3 xfs: xfs 시작 성공
  • - 파일 시스템 마운트 관련 정보: Sep 17 08:32:56 kos3 커널: VFS: 마운트된 루트(ext2 파일 시스템) 읽기 전용. 9월 17일 08:32:56 kos3 커널: 스왑 추가: 265032k 스왑 공간(우선순위 -1) 9월 17일 08:32:56 kos3 커널: MSDOS FS: 코드 페이지 866 사용 9월 17일 08:32:56 kos3 커널: MSDOS FS : IO charset koi8-r Sep 17 08:32:41 kos3 rc.sysinit: USB 파일 시스템 마운트 중: 성공 Sep 17 08:32:41 kos3 rc.sysinit: 루트 파일 시스템 확인 성공 Sep 17 08:32:41 kos3 rc.sysinit : 읽기-쓰기 모드에서 루트 파일 시스템 재마운트: 성공 Sep 17 08:32:41 kos3 rc.sysinit: proc 파일 시스템 마운트 성공: Sep 17 08:32:41 kos3 fsck: /: clean, 30407/160000 파일, 95270/319410 블록 9월 17일 08:32:42 kos3 fsck: /HOME: 정리, 6573/432864 파일, 689090/863722 블록 9월 17일 08:32:42 kos3 fsck: /usr: 정리, 55105/329952 파일, 286888/659602 블록 9월 17 08:32:42 kos3 rc.sysinit: 파일 시스템 확인 성공
  • - 일부 오류 메시지: Sep 17 08:32:42 kos3 mount: SMB 연결 실패 Sep 17 08:32:42 kos3 mount: 10.104.129.245(137)로 패킷 전송 실패 ERRNO=네트워크에 연결할 수 없음 Sep 17 08:32: 42 kos3 마운트: 마운트: /dev/sda4: 알 수 없는 장치 Sep 17 08:32:59 kos3 마운트: 192.168.36.20:139에 연결하는 동안 오류가 발생했습니다(호스트에 대한 경로 없음) Sep 17 08:32:59 kos3 마운트: 마운트: / dev /sda4: 알 수 없는 장치
  • - 사용자 로깅에 대한 메시지: Sep 17 08:33:14 kos3 login(pam_unix): LOGIN(uid=0)이 사용자 kos에 대해 세션을 열었습니다. Sep 17 08:33:14 kos3 -- kos: LOGIN ON tty1 BY kos Sep 17 08:41:39 kos3 su(pam_unix): 인증 실패; 로그 이름=kos uid=500 euid=0 tty= ruser= rhost= 사용자=루트
  • - 마지막으로 컴퓨터가 꺼졌을 때 기록된 메시지입니다. 예: Sep 17 10:30:07 kos3 rc: Stopping keytable: sued Sep 17 10:30:07 kos3 Font Server:terminating Sep 17 10:30:08 kos3 xfs: xfs 중지 성공 9월 17일 10:30:08 kos3 gpm: gpm 중지 성공 9월 17일 10:30:08 kos3 xinetd: 종료 중... 9월 17일 10:30:10 kos3 rpc.statd: 신호 15 포착, un- 등록 및 종료. 9월 17일 10:30:11 kos3 커널: 커널 로깅(proc)이 중지되었습니다. 9월 17일 10:30:11 kos3 커널: 커널 로그 데몬이 종료됩니다. 9월 17일 10:30:12 kos3 syslog: klogd 중지 성공 9월 17일 10:30:12 kos3 신호 15에서 종료

    파일에 언급된 다른 프로토콜 파일의 항목은 거의 동일한 구조를 갖습니다. /etc/syslog.conf.

    로거 및 tailf 명령

    이전 설명을 통해 시스템 로그에 대한 모든 메시지의 발행은 프로그램 생성 단계에서 프로그래머가 지정해야 한다는 결론을 내릴 수 있습니다. 이것은 전적으로 사실이 아닙니다. 사용자는 악마에게 메시지를 보낼 수도 있습니다. syslogd. Linux에는 이에 대한 명령이 있습니다. 나무꾼, 명령줄(sh, bash 등)에서 메시지를 보낼 수 있습니다. util-linux 패키지의 일부입니다. 당연히 이 명령은 주로 사용자가 다양한 종류의 셸 스크립트를 생성할 때 로깅 기능을 제공하기 위한 것입니다. 그러나 예를 들어 로깅 시스템의 기능에 익숙해지기 위해 명령줄에서 직접 실행할 수도 있습니다. 명령 실행 형식: 로거 [-isd] [-f 파일] [-p PRI] [-t TAG] [-u 소켓]명령줄 옵션의 의미는 다음과 같습니다.

    • -나- 메시지에 프로세스 번호를 포함합니다.
    • -에스- stderr에 메시지 복제
    • -디- 메시지를 보낼 때 (일반적인 스트리밍 대신) 데이터그램 모드를 사용합니다.
    • -f 파일 이름- 메시지 저장 지정된 파일(기본값은 /var/log/메시지)
    • -p 시설.레벨- 메시지의 카테고리와 우선순위를 설정합니다. (기본값: user.notice)
    • -티 꼬리표 - 태그 필드 설정
    • -u 소켓- syslogd를 호출하는 대신 지정된 소켓으로 메시지를 보냅니다.
    • MSG- 메시지 텍스트

    프로그램을 사용하여 여러 메시지 보내기 나무꾼파일의 결과에 감탄합니다. /var/log/메시지(물론 기본값을 변경하지 않은 경우)

    그런데 파일에 기록된 메시지를 보는 매우 흥미로운 방법이 있습니다. /var/log/메시지나무꾼. 이 방법은 사용을 기반으로합니다. 특별 프로그램 꼬리. 터미널 창을 열고 슈퍼유저 권한을 얻습니다(명령 사용). ) 이 창에서 명령을 실행하세요.
    tailf /var/log/messages
    그런 다음 다른 터미널로 전환하고 거기에서 명령을 실행하십시오. 로거 free_text. 귀하의 메시지는 프로그램이 실행되는 창에 즉시 나타납니다. 꼬리. 즉, 이 프로그램의 도움으로 시스템 관리자는 프로토콜에 새 메시지가 기록되는 것을 실시간으로 모니터링할 수 있습니다. 진실, 시스템 관리자이런 방식으로 시스템의 동작을 모니터링할 시간은 거의 없습니다(아마도 비상 상황). 따라서 프로토콜을 분석하기 위한 특수 프로그램이 개발되었습니다. 그러나 이에 대한 자세한 내용은 아래에 나와 있습니다. 지금은 원격 컴퓨터 감시를 구성하는 방법에 대한 질문으로 넘어가겠습니다(공격자 Shimomura를 어떻게 잡았는지 기억하십니까?).

    네트워크 로깅

    명시된 대로 로깅 시스템 메시지는 데몬에 의해 전송될 수 있습니다. syslogd원격 호스트에. 하지만 누군가는 그를 그곳에서 받아들여야 한다. 같은 악마가 이런 일을 하고 있다는 것이 밝혀졌습니다 syslogd, 이 원격 호스트에서 실행 중입니다. 더 정확하게, syslogd어느 컴퓨터에서나 /dev/log 소켓(따라서 로컬 소스로부터 메시지 수신)뿐만 아니라 포트 514/UDP도 수신할 수 있습니다. 로컬 파일). 이를 통해 시스템 관리자에게 매우 편리한 "로깅 서버"를 생성할 수 있으며(네트워크의 모든 이벤트가 한 곳에서 모니터링됨) 해커의 침투에 대한 메시지가 다음 중 하나에 전달되므로 네트워크 보안도 향상됩니다. 이 해커가 네트워크 호스트를 프로토콜에서 제거한 것을 즉시 보고할 수 없습니다.

    그러나 이러한 "네트워크 로깅"을 구성하려면 몇 가지 추가적인 노력이 필요합니다.

    첫째, 포트 514/UDP는 네트워크를 통해 메시지를 보내고 받는 데 사용되므로 두 컴퓨터(클라이언트와 서버) 모두에서 사용할 수 있어야 합니다. 파일에서 이 작업을 수행하려면 /etc/서비스이 라인은 두 컴퓨터 모두에 존재해야 합니다
    syslog 514/udp
    그런 줄이 있다면 /etc/서비스결석한, syslogd UDP 포트를 열 수 없기 때문에 메시지를 받거나 네트워크로 보낼 수 없습니다. 그런 상황이 발생하면, syslogd로컬 로그에도 모든 메시지 쓰기가 즉시 중지됩니다. 동시에 팀이 보여주듯이 추신, 메모리에 남아 있으며 일부 버퍼에 메시지를 저장하기도 합니다. 왜냐하면 " syslog 514/udp"파일로 복원 /etc/서비스클라이언트에서 다음으로 적어도일부 "누락" 메시지가 여전히 로그에 나타납니다(다시 시작한 후에도). syslogd).

    둘째, 데몬을 시작할 때 syslogd옵션은 서버에서 지정되어야 합니다. -아르 자형, 원격 로깅 기능을 제공합니다(기본 데몬 syslogd로컬 소켓의 메시지만 기다립니다. 이 옵션을 설정하는 방법과 위치는 아래의 데몬 시작 섹션에서 설명합니다. syslogd.

    셋째, 파일의 설정을 그에 따라 수정해야 합니다. /etc/syslog.conf두 컴퓨터 모두에서. 예를 들어 모든 메시지를 로깅 서버로 리디렉션하려면 클라이언트 컴퓨터의 파일에 작성해야 합니다. /etc/syslog.conf다음과 같은 줄 :
    *.* @호스트 이름
    악마가 시작되는 동안 syslogd서버를 사용할 수 없거나(예: 현재 네트워크 연결이 끊김) 이름으로 서버를 찾을 수 없습니다(DNS 서비스가 제대로 작동하지 않음). syslogd서버를 찾으려고 10번 더 시도하고 그 후에도 서버를 찾을 수 없는 경우에만 시도를 중지하고 해당 메시지를 보냅니다.

    네트워크에 단일 로깅 서버가 제공하는 여러 도메인이 있는 경우 서버의 로그에 클라이언트의 전체 이름(도메인 포함)이 포함된다는 사실에 놀라지 마십시오. 사실, 시작 시 syslogd옵션을 사용할 수 있습니다 -s 도메인_목록또는 -l 호스트_목록, 프로토콜의 전체 호스트 이름을 짧은 이름으로 대체합니다(도메인을 지정하지 않음).

    실행 및 파일 옵션을 조정한 후 잊지 마세요. /etc/syslog.conf데몬을 다시 시작하세요. 크론, sysklogd구성 파일을 자동으로 다시 읽지 않습니다.

    syslogd 데몬 시작 옵션

    이전 하위 섹션에서 데몬 시작 매개변수 설정 문제를 다루었으므로 syslogd, 이 문제를 더 자세히 살펴보겠습니다. 이미 언급했듯이 두 로깅 데몬은 모두 시스템 초기화 단계에서 시작되며, 보다 구체적으로는 스크립트를 통해 시작됩니다. /etc/rc.d/init.d/syslog(다른 서비스의 시작 스크립트의 경우 /etc/rc.d/rc?.d/ 디렉터리에 심볼릭 링크가 생성됩니다.) 그러나 시작 매개변수를 설정하기 위해 이 스크립트를 조정할 필요가 없습니다. Red Hat 배포판의 버전 7.2부터 두 데몬의 시작 옵션을 별도의 구성 파일에서 읽어오기 때문입니다. /etc/sysconfig/syslog. 다음은 데몬에 사용할 수 있는 매개변수의 간단한 목록입니다. syslogd.

    실행 매개변수 syslogd:

    • -소켓- 데몬이 수신할 추가 소켓을 지정합니다. syslogd. 최대 19개의 소켓을 지정할 수 있습니다. 더 많은 소켓도 지정할 수 있지만 이를 위해서는 패키지를 다시 컴파일해야 합니다. 이 옵션은 다른 데몬(예: ftp 또는 http)이 제한된 환경(chrooting)에서 실행되는 경우에 사용됩니다.
    • -디- 디버그 모드. 이 경우 악마는 들어가지 않습니다. 배경 모드모든 메시지를 현재 터미널에 출력합니다.
    • -f 구성 파일 이름기본 구성 파일 대신 사용할 대체 구성 파일의 이름을 지정합니다. /etc/syslog.conf.
    • -시간기본값 sysklogd네트워크를 통해 수신된 메시지를 다른 컴퓨터로 전송하는 것은 금지되어 있습니다. 이는 링 주위에서 메시지가 끝없이 전송되는 것을 방지하기 위해 수행됩니다. -h 옵션을 사용하면 일반적인 동작을 변경하고 원격 호스트에서 받은 메시지가 네트워크를 통해 더 많이 전송되도록 할 수 있습니다(그리고 가능한 루핑을 직접 처리할 수도 있습니다).
    • -l 호스트 목록- 이름이 전체 도메인 이름(FQDN - Full Qualified Domain Name)으로 기록되어서는 안 되는 호스트 목록을 지정합니다. 목록의 이름은 콜론으로 구분됩니다.
    • -m 분이 옵션 없이 실행됨 sysklogd정기적으로(20분마다) 프로토콜에 카테고리 메시지를 기록합니다. 표시, 즉 단순히 타임스탬프입니다. 옵션 사용 -중마크 사이의 간격을 변경하거나 해당 메시지의 발행을 완전히 취소할 수 있습니다. 이 경우 간격을 0으로 설정해야 합니다. -m 0.
    • -N배경으로 사라지지 마십시오. 이 옵션은 syslogd가 프로세스에 의해 시작되고 제어되는 경우에 필요합니다. 초기화.
    • -p 소켓대기하는 기본 UNIX 소켓 대신 대체 UNIX 소켓을 지정합니다. /개발/로그). 참고: 옵션 -ㅏ추가 소켓을 지정하고 -피- 대안!
    • -아르 자형원격 호스트로부터 메시지를 수신하도록 허용합니다. 이에 대해서는 이전 섹션에서 다루었으므로 자세한 내용은 생략하겠습니다.
    • -s 도메인 목록호스트 이름과 함께 이름을 기록할 필요가 없는 도메인 목록을 지정합니다. 즉, 이러한 도메인의 경우 FQDN(정규화된 도메인 이름) 대신 호스트 이름만 기록됩니다. 목록에 있는 이름은 다음과 같습니다. 콜론으로 구분됨 syslogd 서버가 위치한 도메인의 이름은 이 목록에 포함될 필요가 없습니다(해당 이름은 기본적으로 제거됩니다).
    • -V버전을 표시하고 작업을 완료합니다.
    • -엑스주소로 호스트 이름을 결정하는 것을 금지하고 DNS 서버와 동일한 호스트에서 작업할 때 교착 상태를 방지합니다.

    데몬을 시작한 후 syslogd상태 파일이 생성되었습니다 /var/lock/subsys/syslog길이가 0이고 프로세스 식별 번호가 있는 파일 /var/run/syslogd.pid.

    명령 사용
    kill -SIGNAL `cat /var/run/syslogd.pid`
    악마에게 보낼 수 있어 syslogd다음 신호 중 하나:

    • SIGHUP - 데몬을 다시 시작합니다(재초기화). 열려 있는 모든 파일이 닫히고 데몬이 다시 시작되어 구성 파일을 다시 읽습니다.
    • SIGTERM - 종료.
    • SIGINT, SIGQUIT - 디버깅 모드가 활성화되면(옵션 -d) 신호가 무시되고, 그렇지 않으면 종료됩니다.
    • SIGUSR1 - 디버깅 모드를 활성화/비활성화합니다(데몬이 -d 스위치로 시작된 경우에만 작동함).

    악마 클로그다음보다 적은 실행 옵션이 없습니다. syslogd, 그러나 여기서는 이를 제시하지 않고 독자에게 해당 매뉴얼 페이지를 참조하도록 합니다(사용자는 설정을 귀찮게해서는 안 됩니다). 클로그, 배포판 개발자가 제작한 상태로 두는 것이 좋습니다.

    dmesg 파일 및 dmesg 명령

    이미 언급했듯이 파일에 언급된 로그 파일은 /etc/syslog.conf일반적으로 디렉토리에 위치 /var/로그및 해당 하위 디렉터리. 하지만 이 디렉토리를 살펴보면 다음과 같은 여러 파일을 찾을 수 있습니다. /etc/syslog.conf언급되지 않았습니다. 그들의 목적을 살펴 보겠습니다. 파일부터 시작해 보겠습니다. dmesg.

    먼저 Linux에 동일한 이름을 가진 명령이 있다는 점을 언급해야 합니다. 이 명령의 출력(매개변수 없이 실행될 때)을 파일 내용과 비교하면 /var/log/dmesg, 비록 동일하지는 않지만 매우 유사하다는 것을 알게 될 것입니다(명령의 출력을 파일로 보내십시오) dmesg2파일을 비교하고 dmesg그리고 dmesg2). 보다 정확하게는 파일 /var/log/dmesg일대일은 명령에서 얻은 출력의 시작과 일치합니다. dmesg. 에서 다음과 같이 커널에는 커널 로깅 데몬의 메시지가 기록되는 링 버퍼가 있습니다. 다운로드 프로세스 중에 이 버퍼에 기록된 메시지는 파일의 내용을 구성합니다. /var/log/dmesg. 분명히 이 파일은 시스템 부팅 후에 생성됩니다.

    다시 제공되는 파일 목록을 보시면 /etc/syslog.conf, 카테고리의 모든 메시지가 표시됩니다. 장식 꼬리콘솔에도 발행됩니다. 그러나 그들은 화면을 빠르게 가로질러 지나가기 때문에 읽고 이해할 시간이 거의 없습니다. 하지만 파일에 저장되어 있어요 /var/log/dmesg따라서 여유롭게 생각해 볼 수 있습니다(다운로드 프로세스가 성공적으로 완료된 경우). 부팅 프로세스가 완료된 후 커널에서 링 버퍼로 메시지 쓰기가 계속됩니다. 명령이 실행될 때 dmesg, 버퍼의 현재 상태가 표시됩니다. 따라서 이 명령의 출력에는 파일보다 더 많은 메시지가 포함됩니다. /var/log/dmesg: 이 명령의 출력에는 부팅 프로세스가 완료된 후 커널이 발행하는 메시지도 표시됩니다.

    보낸 사람의 모든 메시지 /var/log/dmesg파일에서 찾을 수 있습니다 /var/log/메시지, 거기에서만 다른 프로그램의 메시지와 번갈아 나타납니다. 단 하나의 중요한 차이점이 있습니다: 파일에 dmesg메시지의 시간과 소스(호스트 이름 및 메시지 카테고리)가 지정되지 않았습니다. 여기의 호스트는 항상 "로컬"이며 시간 카운트의 시작은 컴퓨터의 마지막 재부팅에 따라 결정됩니다.

    lastlog, wtmp 및 utmp 파일

    파일 외에도 dmesg카탈로그에 /var/로그/언급되지 않은 파일이 두 개 더 있습니다 /etc/syslog.conf, 그러나 로깅과 직접적으로 관련되어 있습니다. 이는 파일입니다. 마지막 로그그리고 중량프. 하지만 우리가 파일을 보던 것과 같은 방식으로 그것들을 살펴보세요 /var/log/메시지말이 안 돼요 – 당신은 아무것도 이해하지 못할 것입니다. 사실 이러한 파일의 정보는 특수 형식으로 기록되므로 특수 형식을 사용하여 확인해야 합니다. 소프트웨어. 하지만 먼저 이 파일의 목적에 대해 몇 마디 말해야 합니다.

    파일 마지막 로그사용자의 마지막 로그인에 대한 정보를 저장합니다. 사용자 이름과 비밀번호를 입력하면 화면에 다음과 같은 메시지가 나타나는 것을 눈치채셨는지 모르겠습니다.

    로컬호스트 로그인: kos 비밀번호: 마지막 로그인: Wed Oct 9 19:25:53 on tty1 이 세 줄은 유틸리티에 의해 생성됩니다. 로그인, 사용자에게 로그인 권한이 있는지 확인한 후 파일에 액세스합니다. /var/log/마지막 로그, 거기에서 사용자의 이전 성공적인 로그인에 대한 정보를 검색하여 화면에 표시한 다음 파일의 기록을 업데이트합니다. 마지막 로그. 홈 디렉터리에 빈 .hushlogin 파일을 생성하면 이 메시지를 표시하지 않을 수 있습니다. 그러나 이를 권장하지 않으며, 반대로 다른 사람이 귀하의 이름으로 로그인한 경우를 놓치지 않도록 이 메시지의 내용에 특별한 주의를 기울여야 합니다.

    파일과 달리 /var/log/마지막 로그, 시간 기록이 포함되어 있습니다. 마지막파일에서 각 사용자에 대해 로그인 /var/log/wtmp기억된다 모두이 파일 생성 이후 사용자의 로그인 및 로그아웃. 파일과 동일 마지막 로그, 항목 /var/log/wtmp특별한 형식으로 만들어져 있기 때문에 특별한 명령을 통해서만 볼 수 있습니다. 하지만 이러한 명령에 대해 이야기하기 전에 사용자 로깅 기록을 포함하는 또 다른 파일이 있다고 가정해 보겠습니다. /var/실행/utmp. 이 파일에는 현재 시스템에서 작업 중인 사용자에 대한 정보가 포함되어 있습니다.

    이제 시스템에서 현재 작업 중이거나 이전에 작업한 사용자에 대한 정보를 보는 방법에 대해 설명할 수 있습니다. 이에 대한 주요 명령은 다음 명령입니다. 마지막. 파일의 모든 레코드를 표시합니다. /var/log/wtmp, 여기에는 사용자 이름, 사용자가 작업한 단말기, 사용자가 시스템에 로그인한 시간, 시스템에서 로그아웃한 시간, 사용자가 시스템에서 세션을 수행한 시간이 표시됩니다. 시스템 자체가 꺼졌기 때문에 사용자 작업이 중단된 경우 사용자 종료 시간 대신 "down"이라는 단어가 표시됩니다(이 줄에서 시스템이 중지된 시간을 쉽게 확인할 수 있습니다). 재부팅 시간은 "reboot"라는 단어로 시작하는 별도의 줄에 표시됩니다.

    마지막팀처럼 마지막이지만 실패한 사용자 로그인 시도에 대한 정보를 표시합니다. 그러나 이 명령은 파일이 존재하는 경우에만 작동한다는 점에 유의해야 합니다. /var/log/btmp. 그러나 여기서 설명하는 프로그램 중 로그 파일을 생성하는 프로그램은 없으므로, 그 중 하나라도 삭제하면 녹화가 종료됩니다.

    마지막 로그파일의 내용을 형식화하고 표시합니다. /var/log/마지막 로그. 사용자 이름, 사용자가 로그인한 단말기 이름, 마지막 로그인 시간이 표시됩니다. 기본적으로(매개변수 없이 명령을 입력한 경우) 파일 요소는 /var/log/마지막 로그사용자 ID 번호 순서대로 표시됩니다. -u login-name 옵션을 지정하면 지정된 사용자의 마지막 로그인 시간만 표시됩니다. -t days 매개변수를 지정하면 마지막 날의 레코드만 수신됩니다. 사용자가 시스템에 전혀 로그인하지 않은 경우 단말기 이름과 마지막 로그인 시간 대신 "**로그인하지 않음**"이라는 문자열이 표시됩니다.

    명령을 실행할 때 마지막 로그느린 컴퓨터에서는 명령이 멈춘 것처럼 보일 수도 있습니다. 이는 시스템에 두 명의 사용자(루트 및 사용자)만 등록되어 있는 경우에도 파일에 /var/log/마지막 로그가능한 한 많은 사용자가 시스템에서 작업할 수 있는 공간이 아직 남아 있습니다. 그러므로 파일에 /var/log/마지막 로그시스템에서 작업하는 사용자의 ID 번호 사이에는 큰 차이가 있을 수 있습니다. 이러한 간격을 볼 때 프로그램은 화면에 정보를 표시하지 않고 "정지"된 느낌이 들기 때문입니다.

    현재 시스템에서 작업 중인 사람에 대한 정보를 표시하려면 다음 명령을 사용하십시오. , WHO그리고 사용자. 팀 사용자현재 시스템에서 어떤 사용자가 작업하고 있는지 알고 싶을 때만 사용되며, 어떤 터미널에서 연결했는지, 무엇을 하고 있는지는 관심이 없습니다. 누가 어느 터미널에서 로그인했는지 알고 싶다면 다음 명령을 사용하세요. WHO. 이 명령은 파일의 정보를 인쇄합니다. /var/실행/utmp. 파일에서 데이터를 출력하도록 강제할 수 있습니다. /var/log/wtmp(또는 의미가 있는 다른 파일) 명령줄. 그러나 출력에는 사용자 이름, 사용자가 로그인한 터미널 표시, 로그인 시간 및 다음을 사용하여 로그인한 경우만 표시됩니다. 원격 컴퓨터, 이 컴퓨터의 이름입니다.

    이 명령은 훨씬 더 많은 정보를 출력합니다. . 출력에는 현재 시간, 시스템 실행 시간, 현재 시스템에서 작업 중인 사용자 수, 마지막 1분(5분 및 15분) 동안의 평균 시스템 로드가 표시됩니다. 그런 다음 각 사용자에 대해 다음을 인쇄합니다.

  • 사용자 이름,
  • 터미널 이름,
  • 원격 호스트 이름
  • 로그인 후 경과된 시간,
  • 이 단말기를 사용하지 않는 시간(유휴 시간),
  • 다음부터 시작된 모든 프로세스에 소요된 총 시간 이 터미널의(JCPU 열),
  • 사용자가 마지막으로 시작한 프로세스가 실행되는 시간(PCPU 그래프)
  • 사용자가 현재 실행 중인 프로그램에 대한 정보(모든 매개변수를 사용하여 명령을 실행하기 위한 명령줄 형식)

    이미 언급했듯이 팀은 파일에 저장된 정보를 표시합니다. UMP. 그런데 설명서에는 남성상태 일반 사용자파일에 대한 쓰기 액세스가 거부되어야 합니다. UMP, 설명할 수 없는 이유로 많은 시스템 프로그램이 무결성에 의존하기 때문입니다. 모든 사용자가 utmp 파일에 쓸 수 있도록 허용하면 시스템 통계 파일이 혼동되고 시스템 파일이 변경될 위험이 있습니다.

    다른 프로그램의 로그 파일

    이미 설명한 파일 외에도 별도의 프로그램에서 생성된 다른 프로토콜 파일이 있습니다. 가장 일반적인 예는 데몬의 프로토콜입니다. 삼바, ftpd또는 httpd, 이는 다음에서 수행됩니다. 별도의 파일. 이러한 프로그램 중 일부는 디렉토리의 하위 디렉토리에 프로토콜을 생성합니다. /var/로그/, 다른 것들은 프로토콜을 다른 장소에 저장합니다. 그리고 이러한 파일의 구조는 시스템에서 생성된 파일의 구조와 크게 다를 수 있습니다. 시스템 로그. 예를 들어, 서버 프로토콜에서 몇 줄을 제공하겠습니다. 아파치내 컴퓨터에서 실행 중: 192.168.36.21 - - "GET /ve/papers/new/log/ HTTP/1.1" 200 1774 "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0 . 0) Gecko/20020530" 192.168.36.21 - - "GET /icons/back.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0 ) Gecko/20020530" 192.168.36.21 - - "GET /icons/folder.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko / 20020530" 192.168.36.21 - - "GET /icons/text.gif HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530 " 192.168.36.21 - - "GET /ve/papers/new/log/protok_lovim.htm HTTP/1.1" 200 46597 "http://linux/ve/papers/new/log/" "Mozilla/5.0 (X11; U ; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /bugtraq.css HTTP/1.1" 404 279 "http://linux/ve/papers/new/log/ protok_lovim .htm" "Mozilla/5.0(X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/bug1.gif HTTP/1.1" 404 280 " http ://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla/5.0 (X11; 유; 리눅스 i686; 루-RU; rv:1.0.0) Gecko/20020530" 192.168.36.21 - - "GET /img/title.gif HTTP/1.1" 404 281 "http://linux/ve/papers/new/log/protok_lovim.htm" "Mozilla /5.0 (X11; U; Linux i686; ru-RU; rv:1.0.0) Gecko/20020530" 보시다시피 이 프로토콜 파일의 구조는 시스템 프로토콜에서 본 것과 크게 다릅니다.

    Samba 서버는 기본 서버 운영 프로토콜 외에 하위 디렉터리에 생성됩니다. /var/log/삼바다양한 경우에 대한 일련의 로그 파일, 특히 이 서버에서 제공하는 리소스를 사용할 수 있는 각 사용자에 대한 별도의 파일입니다. 다음 두 항목은 해당 파일 중 하나에서 가져옵니다.

    Smbd/service.c:make_connection(550) linux (192.168.36.10) 사용자 kos (uid=500, gid=500) (pid 1366) smbd/service.c:close_cnum(550) linux (192.168.1)로 공개 서비스에 연결합니다. 36.10) 닫힌 연결 서비스 공개 위의 예는 영어를 조금 읽고 레코드의 구조를 어느 정도 이해할 수 있다면 로그 파일에서 많은 내용을 추출할 수 있음을 보여줍니다. 유용한 정보. 단지 "폐석"의 전체 퇴적물(거대한 순차적 프로토콜 파일)에서 추출해야 하는데 이는 결코 쉽지 않은 작업입니다. 따라서 프로토콜 분석을 위해 특수 소프트웨어 도구가 개발되었습니다.

    프로토콜 처리 도구

    프로토콜 분석을 위해 매우 다양한 프로그램과 스크립트가 개발되었습니다. 나는 나 자신을 제한할 것이다 간단한 설명두 가지 의미는 다음과 같습니다. 로그워치그리고 견본.

    로그워치표준 Red Hat Linux 배포판에 포함된 Perl 스크립트입니다. 이 기사를 준비하는 동안 이 프로그램의 버전 4.1이 개발자 웹사이트에 게시되었습니다(그는 Kirk Bauer입니다).

    이 프로그램의 주요 아이디어는 로그 파일이 필터를 통과하여 주어진 기준을 만족하는 모든 행(즉, 메시지)을 로그에서 선택한다는 것입니다. 결과는 다음에 의해 전송됩니다. 이메일지정된 사용자(기본적으로 루트)에게. 필터는 모든 프로그래밍 언어로 작성할 수 있지만 패키지 작성자는 Perl을 선호합니다. stdin에서 데이터를 읽고 결과를 stdout으로 출력하려면 필터를 작성해야 합니다.

    기본 사용 로그워치기본 스크립트에 대한 링크를 포함하는 것으로 구성됩니다( /etc/log.d/scripts/logwatch.pl)를 /etc/cron.daily 디렉토리에 추가하여 매일 실행하게 합니다. 로그워치기본 설정으로. 스크립트가 logrotate보다 먼저 실행되도록 링크에는 "00"(예: 00-logwatch)으로 시작하는 이름이 지정됩니다.

    그러나 명령줄에서 스크립트를 실행할 수도 있습니다. 물론 정보 출력 매개변수를 변경하지 않은 경우에는 해당 작업의 결과를 슈퍼유저의 메일함에서 찾아야 합니다. 이 결과를 화면에서 보려면 명령줄에서 매개변수를 설정해야 합니다. --인쇄- stdout에 보고서를 발행합니다.

    일반 스크립트 실행 형식:

    /etc/log.d/scripts/logwatch.pl [--detail수준 ] [--로그 파일잡지 그룹 ] [--서비스서비스 이름 ] [--인쇄] [--mailto주소 ] [--구하다파일 이름 ] [--아카이브] [--범위날짜-간격 ]

    기본 매개변수는 명령줄 매개변수의 의미를 이해하는 데 도움이 되는 설명인 /etc/log.d/logwatch.conf 파일에 저장됩니다.

    • LogDir - 파일 이름이 고려되는 디렉토리입니다.
    • MailTo - 보고서를 보낼 사람.
    • 인쇄 - 보고서를 메일로 보내는 대신 표준 출력으로 출력합니다.
    • 저장 - 보고서를 메일로 보내는 대신 지정된 파일에 저장합니다.
    • 아카이브 - 프로세스뿐만 아니라 현재 버전로그뿐만 아니라 logrotate에 의해 생성된 이전 복사본도 포함됩니다.
    • 범위 - 지정된 시간 간격을 처리합니다. 모두, 오늘, 어제(어제 달력일);
    • 세부사항 - 보고서 세부사항 수준: 0~10 또는 낮음, 중간, 높음;
    • 서비스 - /etc/log.d/scripts/services/의 전체 또는 필터 이름(여러 필터를 지정할 수 있음)
    • LogFile - 로그 그룹 전체 또는 이름(여러 그룹을 지정할 수 있음)

    스크립트에 대한 추가 정보 로그워치에서 찾을 수 있습니다.

    이 기사에서는 Mandrake Linux 배포판에 포함된 로그 파일 처리를 위한 또 다른 스크립트를 설명합니다. 이 스크립트는 견본("Simple WATCHer") Perl로도 작성되었습니다.

    업무관리 견본기본적으로 단일 구성 파일을 사용하여 수행됩니다. $HOME/.swatchrc. 이 파일에는 샘플 텍스트가 포함되어 있습니다(형식: 정규 표현식), 어느 견본로그 파일을 검색합니다. 이러한 각 예에 따라 다음과 같은 작업이 표시됩니다. 견본패턴과 일치하는 텍스트를 발견하면 조치를 취해야 합니다.

    예를 들어, 매우 긴 파일 이름이 요청될 때 웹 서버에서 버퍼 오버플로 공격이 시도될 때마다 경고를 받고 싶습니다. 그리고 그러한 경우에는 로그 파일에 /var/apache/error.log"파일 이름이 너무 깁니다."라는 메시지가 나타납니다. 이 경우 귀하의 파일에 .swatchrc다음 명령을 삽입해야 합니다.

    /파일 이름이 너무 김/메일 주의 [이메일 보호됨], 제목=BufferOverflow_attempt

    여기서는 프로그램에 대한 자세한 설명을 제공하지 않겠습니다. 견본. 이에 대한 열정적인 기사가 실려 있으며 프로그램 자체는 웹사이트에서 찾을 수 있습니다. 나는 단지 지적하고 싶다. 견본, 그리고 로그워치프로토콜 파일 처리를 위한 다소 원시적인 알고리즘을 구현합니다. 이는 주어진 문자열(서명)에 대한 프로토콜 검색으로 귀결됩니다. 한편, 첫째, 이러한 라인의 존재는 종종 공격자의 침입을 의미하지 않으며, 둘째, 유능한 공격자는 자신의 활동 흔적을 지울 수 있습니다. 검토된 제품의 또 다른 명백한 단점은 일정에 따라서만 실행되기 때문에 "지연 모드"에서 작동한다는 것입니다. 그리고 침입자와의 싸움은 시스템에 침투하려는 시도에 즉시 대응하여 "실시간"으로 수행되어야 합니다. 따라서 상용 제품은 지속적으로 작동하고 "지능형" 프로토콜 분석 알고리즘을 구현하는 모니터링 시스템을 제공합니다. 이러한 알고리즘은 메시지 흐름에 대한 통계적 분석과 시스템의 정상적인 동작에서 통계적으로 유의미한 편차 식별을 기반으로 합니다.

    이 섹션의 결론적으로 저는 SecurityLab.ru 웹사이트(http://www.securitylab.ru/tools/?ID=22111)가 간단한 설명과 함께 프로토콜 처리를 위한 다양한 소프트웨어 도구 사이트에 대한 링크 목록을 제공한다는 점에 주목합니다. 이러한 도구에 대한 설명입니다. 다양한 프로그램을 실험해보고 자신에게 맞는 프로그램을 선택할 수 있습니다.

    로그 파일 순환

    물론 시스템을 집중적으로 사용하면 로그 파일이 빠르게 증가한다는 점을 이해하실 것입니다. 이로 인해 디스크 공간이 낭비됩니다. 그리고 프로토콜을 "길들이는" 문제가 발생합니다. Red Hat Linux에서는 이 문제가 스크립트로 해결됩니다. 로그로테이션, 이는 디렉토리에 있습니다. /etc/cron.daily, 따라서 데몬에 의해 시작됩니다. 크론일일. 이 스크립트를 사용하면 시스템 로그뿐만 아니라 처리할 수도 있습니다. 시스템 로그, 다른 프로그램도 마찬가지입니다.

    스크립트 로그로테이션로그 파일의 증가를 모니터링하고 파일이 지정된 크기를 초과하는 경우(또는 지정된 시간 간격 이후) 이러한 파일의 회전을 제공합니다. 회전은 대략 다음과 같이 이전 버전의 아카이브 파일을 순차적으로 복사하는 것 이상입니다.

  • 메시지.2 -> 메시지.3
  • 메시지.1 -> 메시지.2
  • 메시지.0 -> 메시지.1
  • 메시지 -> 메시지.0
    후속 메시지를 기록하기 위해 새 메시지 파일을 생성합니다.

    스크립트에서 처리할 파일 목록 로그로테이션이 처리의 매개변수는 구성 파일에 의해 결정되며 그 중 여러 개가 있을 수 있습니다. 구성 파일의 이름은 스크립트 실행 명령줄에서 지정됩니다(실행 매개변수는 아래 참조). Red Hat Linux에서는 기본적으로 다음 구성 파일이 있습니다. 로그로테이션파일이 사용됩니다 /etc/logrotate.conf, 다음과 같이 보일 수 있습니다.

    주간 회전 4 생성 압축 포함 /etc/logrotate.d /var/log/wtmp /var/log/lastlog (월간 생성 0664 루트 utmp 회전 1)

    이 파일은 스크립트의 구성 파일과 같습니다. 로그로테이션여러 섹션으로 구성됩니다. 첫 번째 섹션에서는 모든 로그에 대한 기본 매개변수를 설정하는 전역 매개변수(한 줄에 하나씩)를 정의합니다. 다음 섹션에서는 일련의 로그 파일에 대한 로컬 매개변수를 정의합니다. 이러한 파일의 이름은 섹션의 첫 번째 줄에 나열되며 로컬 매개변수는 중괄호 안에 지정됩니다. 이는 지정된 파일을 처리할 때만 유효합니다(한 줄에 하나의 매개변수도 있음). 로그 파일 이름에 공백이나 기타 특수 문자가 포함된 경우 쉘 규칙에 따라 인용할 수 있습니다. 공백으로 구분된 여러 파일 이름이나 파일 이름 패턴을 지정할 수 있습니다(패턴도 셸 규칙을 따릅니다). 각 섹션 처리는 단일 작업으로 처리됩니다. "#" 기호로 시작하는 줄은 주석입니다. 로컬 매개변수는 전역 매개변수보다 우선합니다.

    예제 구성 파일은 먼저 전역 매개변수를 설명한 다음 별도의 섹션에서 /var/log/wtmp 및 /var/log/lastlog 파일을 처리하기 위한 매개변수를 설명합니다. 또한 전역 매개변수 중 디렉토리에 대한 링크가 제공됩니다. /etc/logrotate.d, 각 패키지는 해당 로그에 대한 로컬 매개변수를 작성합니다.

    전역 매개변수 섹션에서 먼저 파일 회전 기준을 결정하는 다음 매개변수 중 하나를 설정합니다.

  • 일일- 시리즈 버전의 변경은 매일 발생합니다.
  • 주간- 버전은 매주 변경됩니다.
  • 월간 간행물- 버전은 매달 변경됩니다.
  • 크기 바이트 - 로그 크기가 지정된 바이트 수를 초과하면 버전 변경이 발생합니다. 접미사 "k"(킬로바이트) 및 "M"(메가바이트)을 사용할 수 있습니다.

  • 및 매개변수 포함하다, 그 뒤에 다른 (추가) 구성 파일 이름 또는 디렉터리 이름이 옵니다. 후자의 경우 하위 디렉터리, 특수 파일 및 예외 목록의 접미사가 붙은 파일을 제외하고 지정된 디렉터리의 모든 파일은 스크립트의 구성 파일로 간주됩니다. 로그로테이션(지령 포함하다파일 그룹에 대한 처리 매개변수를 지정하는 섹션 내에서는 사용할 수 없습니다.

    매개변수 회전하다 숫자 전역 및 로컬 매개변수 모두에서 찾을 수 있으며 저장해야 하는 이전 버전 수를 결정합니다. 숫자가 0이면 프로토콜의 보관된 버전이 생성되지 않습니다.

    매개변수가 지정된 경우 압박 붕대, 이전 버전은 gzip을 사용하여 압축되며 지정된 경우 압축하지 않음- 줄어들지 않아요. 매개변수 압축cmd사용할 압축 프로그램(기본적으로 gzip)을 지정할 수 있습니다. 압축 해제cmd압축 해제 프로그램을 지정합니다(기본값 - ungzip). 압축 옵션압축 프로그램 매개변수를 설정합니다. 기본값은 "-9"입니다. 즉, gzip의 최대 압축. 매개변수 사용 압축 확장압축 파일의 접미사를 변경할 수 있으며 확대 접미사 회전 중에 파일 이름에 추가되는 접미사(압축 접미사 앞)를 지정합니다.

    중에 키워드, 구성 파일에 있는 다음 단어에 특히 유의해야 합니다. 후회전그리고 미리 회전하다, 쉘 스크립트 구성 파일에 포함하기 위한 여는 괄호 역할을 합니다. 라인에서 구성 파일의 모든 라인 후회전라인에 끝스크립트로그 파일 버전을 변경하는 과정을 거친 후 쉘 명령으로 실행됩니다. 따라서 라인의 모든 라인 미리 회전하다라인에 끝스크립트로그 파일이 회전되기 전에 실행됩니다. 이러한 스크립트를 사용하면 순환 중에 로그 파일을 처리하기 위한 다양한 절차를 구성할 수 있습니다.

    구성 파일의 다른 매개변수를 사용하면 로그 파일에 대한 액세스 권한을 재정의할 수 있습니다(이 매개변수를 지정하지 않으면 이전 로그 파일의 속성이 사용됩니다). 로깅 시스템 기능의 오류에 대한 메시지를 누구에게 보낼지 나타냅니다. 지정된 사용자에게 로그의 보관된 복사본을 보냅니다. 버전 변경 중에 로그가 이동할 디렉터리를 설정하거나(디렉터리는 /var/log와 동일한 물리적 장치에 있어야 함) 디렉터리에 대한 제외 접미사 목록을 설정합니다. 포함하다. 상세 설명다음 명령을 사용하면 이러한 기능과 매개변수(언급되지 않은 기능 포함)를 찾을 수 있습니다. 남자 로그 회전.

    이미 언급했듯이 추가 구성 파일 로그로테이션스크립트 시작 명령줄에서 지정할 수 있습니다. 구성 파일 또는 디렉터리 이름을 원하는 수만큼 지정할 수 있습니다. 이 목록의 파일 및 디렉터리 이름은 단순히 공백으로 구분됩니다. 이름이 나열되는 순서는 다음 항목에 나열된 옵션 때문에 중요합니다. 구성 파일, 지정된 매개 변수의 값을 겹칩니다. 이전 파일. 구성 디렉터리의 파일 순서는 정의되지 않습니다.

    또한 시작 명령줄에서 다음 매개변수를 지정할 수 있습니다.

    • -디- 디버그 모드에서는 실제 변경이 이루어지지 않습니다.
    • -에프- 변경하더라도 로그로테이션필요하지 않음 - 처리된 로그 목록에 변경 사항이 있을 때 사용됩니다.
    • 남자 로그워치
    • Mick Bauer, "Paranoid Penguin: 견본: 경계하지만 게으른 사람들을 위한 자동 로그 모니터링"
    • RFC 3164. C. Lonvick, BSD Syslog 프로토콜, 2001년 8월.
    • RFC 3195. D. New, M. Rose, syslog에 대한 안정적인 전달, 2001년 11월.
    • 당. S. Lapshansky, “악마가 시스템을 지켜보고 있다”
    • 데니스 콜리스니첸코,

    syslogd 데몬의 작업은 /etc/syslog.conf 구성 파일에 의해 제어됩니다. 이것은 빈 줄과 첫 번째 위치에 #이 있는 줄이 무시되는 간단한 텍스트 파일입니다. 파일 형식은 다음과 같습니다.

    <селектор> <действие>.

    예를 들어,

    mail.err /var/log/mail.errors

    이 줄은 모든 메일 배달 오류가 /var/log/mail.errors 파일에 기록되도록 합니다.

    중요: 선택기와 작업 사이의 구분 기호로 키만 사용하세요. . 공백을 사용하면 감지하기 쉽지 않은 오류가 발생합니다.

    이미 알고 있듯이 선택기는 복합 형식으로 작성됩니다. 안에 일반적인 견해그것은 수단처럼 보입니다.수준

    게다가 현장에서는<селектор>세미콜론으로 구분된 하나 이상의 선택자를 포함할 수 있습니다. 선택기는 쉼표로 구분된 기능 그룹을 포함할 수 있습니다. 선택기에는 각각 "모두"와 "아무것도"를 의미하는 * 및 없음 문자가 포함될 수 있습니다.

    선택기 예:

    수단 행동 수준

    1을 의미하고, 2를 의미합니다. 행동 수준

    1. 레벨 1을 의미하고, 2. 레벨 2 동작을 의미합니다.

    *.액션레벨

    *.level;means.none 작업

    다음 표에는 주요 syslog 기능 이름과 심각도 수준이 나열되어 있습니다.

    그것을 사용하는 도구 프로그램

    kern 시스템 커널

    사용자 사용자 프로세스

    메일 이메일 시스템

    데몬 시스템 데몬

    인증 보안 및 권한 시스템

    lpr 인쇄 시스템

    뉴스 화상회의 시스템

    cron cron 데몬

    local0-7 8개 수준의 로컬 메시지

    syslog 내부 syslog 시스템 메시지

    ftp ftpd 데몬

    *위의 모든 의미는

    레벨 레벨 값

    긴급상황 발생

    긴급 상황 알림

    crit 위험 상태

    오류 오류 조건

    경고 경고

    공지 특이한 상황

    정보 정보 메시지

    디버그 디버깅 정보

    레벨은 내림차순으로 나열됩니다. 이는 수준이 syslog 시스템에 기록되기 위해 메시지가 가져야 하는 최소 중요성을 나타냄을 의미합니다.

    필드<действие>수신된 메시지로 수행할 작업을 나타냅니다.

    동작 설명

    filename 로컬 시스템의 파일에 메시지를 씁니다.

    @machinename 지정된 시스템의 syslogd 데몬으로 메시지를 전달합니다.

    @IP_address 동일합니다. 머신의 IP 주소만 지정됩니다.

    user1, 지정된 사용자의 화면에 메시지를 표시합니다....

    사용자N

    * 모든 사용자의 화면에 메시지 표시

    *.emerg /dev/console

    *.err;auth.notice /dev/console

    *.err;auth,mail,user.info /var/log/messages

    mail.err /var/log/mail.log

    메일.정보@192.168.0.1

    syslog 시스템에 관해 말하면, 쉘 스크립트에서 시스템 로그에 항목을 쓸 수 있게 해주는 logger 명령을 언급해야 합니다.

    이 명령은 /etc/syslog.conf 파일의 변경 사항을 확인하는 데 유용합니다.

    local5.warning /var/log/local.log

    작동하는지 확인하려면 다음 명령을 입력하십시오.

    # logger -p local5.warning "로컬 테스트"

    /var/log/local.log 파일을 살펴보세요. "로컬 테스트" 줄이 없으면 HUP 신호를 syslogd 데몬으로 보내는 것을 잊었을 가능성이 높습니다.

    세르게이 수프루노프

    FreeBSD 팁: syslog 사용

    - 실례합니다, 동지 여러분, 동작을 모두 적어 두었습니다!

    Ostap은 "사무실에서 글을 씁니다"라고 말했습니다.

    I. Ilf, E. Petrov "의자 12개".

    모든 시스템, 특히 서버의 작동을 기록하는 것은 관리의 가장 중요한 구성 요소 중 하나입니다. 시스템에 문제가 발생했을 때 가장 먼저 살펴보는 것은 로그 파일이다. 거기에서 우리는 이 프로그램이나 저 프로그램이 예상대로 작동한다는 확신을 얻습니다. 웹 애플리케이션을 개발할 때 로그 파일은 디버깅 정보의 가장 중요한 소스가 됩니다. 시스템 정보 기록을 담당하는 syslog 데몬의 기능에 대해 설명합니다.

    시스로그란 무엇인가

    Syslog는 다양한 운영 체제 구성 요소와 사용자 프로세스에서 로그 정보를 수집하고 기록하는 중앙 집중식 서비스입니다. 일반적으로 타사 프로그램은 로그 파일을 독립적으로 사용할 수 있지만 대부분은 syslogd 데몬과 함께 작동하도록 구성할 수 있습니다. syslog 사용의 이점에는 단일 구성 파일을 사용하여 필요한 정보 수집을 관리하는 기능이 포함됩니다. 이는 결과 로그 파일의 일관성을 보장하고 궁극적으로 관리를 단순화합니다.

    syslog 서비스는 시스템 시작 시 자동으로 시작되는 syslogd 데몬에 의해 제공됩니다. 이는 지속적으로 메모리에 상주하며 다른 프로세스의 메시지를 기다리고 설정에 따라 처리합니다.

    각 메시지는 레벨과 소스(시설)로 특성화됩니다. 레벨은 시스템 운영 관점에서 메시지의 중요도를 지정합니다. syslog.h 파일은 다음 수준(우선순위)을 정의합니다.

    표 1. 메시지 수준

    수준

    설명

    나타나다, 당황하다

    '패닉' 상태

    알리다

    즉각적인 개입이 필요한 상태

    치명타

    심각한 상태

    오류, 오류

    기타 작동 오류

    경고, 경고

    경고

    알아채다

    오류는 아니지만 주의해야 할 메시지

    정보

    정보 메시지(정상 작동)

    디버그

    디버그 정보

    표 1에는 메시지 수준이 내림차순으로 나열되어 있습니다. 이 순서는 나중에 구성 파일 구문을 논의할 때 필요합니다.

    같은 줄에 기록된 메시지 수준 지정(예: emerg 및 패닉)은 동의어이며 둘 중 하나를 사용할 수 있습니다. 그러나 패닉, 오류 및 경고(표에서 두 번째에 나열됨)는 더 이상 사용되지 않으며 구성 파일을 편집할 때 피해야 합니다. 대신, 각각 emerg, err 및 warning을 사용하십시오.

    가능한 메시지 소스는 표 2에 나열되어 있습니다.

    표 2. 메시지 소스

    원천

    설명

    장식 꼬리

    커널 메시지

    인증, 인증 개인

    보안

    보안 메시지(예: 방화벽에서 전송)

    콘솔

    콘솔(/dev/console)로 들어오는 메시지

    시스템 로그

    기본 syslog 메시지

    크론

    크론 메시지

    시간 서비스 메시지

    메시지 FTP 서버

    하위 시스템 메시지 인쇄

    우편

    우편 서비스 메시지

    소식

    뉴스 서비스 메시지

    uucp

    메시지 UUCP

    악마

    시스템에서 실행 중인 다른 데몬의 메시지

    사용자

    사용자 프로세스 메시지

    로컬0 – 로컬7

    다양한 사용자 요구에 따라 사용 가능(때때로 시스템에서 사용됨)

    syslog 서비스를 사용하도록 애플리케이션을 구성할 때 어떤 기능을 사용하는지 확인하세요. 일부 프로그램에서는 소스를 직접 지정할 수 있습니다. 예를 들어 clamd 데몬(clamav 바이러스 백신의 기본 프로세스)은 기본적으로 local6을 사용하지만 다른 소스(구성 파일의 LogFacility 매개 변수)를 지정할 수 있습니다. 어떤 경우에는 LOG_MAIL을 소스로 지정하여 해당 메시지를 메일 서비스의 메시지와 결합하는 것이 유용할 수 있습니다.

    데몬 시작 옵션

    시작 옵션의 전체 목록은 syslogd 매뉴얼 페이지를 참조하십시오. 여기서는 그 중 몇 가지만 살펴보겠습니다.

    Syslog는 들어오는 메시지를 로그 파일(일반적으로 /var/log 디렉터리에 있음)에 기록하고, 이를 사용자의 콘솔이나 연결된 터미널로 보내거나, 원격 호스트로 보내거나, 처리를 위해 외부 유틸리티로 보낼 수 있습니다. 파이프라인을 통해.

    네트워크를 통해 작업하기 위해 syslog는 포트 514(UDP 및 TCP)를 사용합니다. 추가 매개변수 없이 실행하면 syslogd는 이러한 포트에서 수신 대기하며 수신 메시지를 기다립니다. -s 스위치는 들어오는 메시지가 허용되는 것을 방지하지만 syslogd가 원격 호스트에 메시지를 보낼 수 있도록 나가는 연결을 위해 포트 514의 소켓이 계속 생성됩니다. 스위치를 두 배로 늘리면(-ss) 나가는 연결도 비활성화됩니다.

    기본적으로 syslogd는 -s 스위치(/etc/defaults/rc.conf, syslogd_flags 매개변수 참조)로 시작되므로 들어오는 연결이 금지됩니다. 서버의 syslog 서비스를 사용하여 여러 시스템에 서비스를 제공하려면 /etc/rc.conf에 다음 줄을 추가하세요.

    syslogd_flags= ””

    이는 /etc/defaults/rc.conf에 설정된 값을 무시하고 syslogd는 들어오는 연결을 서비스할 수 있습니다. 당연히 이 경우 필요한 보안 수준을 보장하여 다른 호스트가 로그에 무엇이든 쓸 가능성을 제거해야 합니다. -a 스위치를 사용하면 들어오는 연결에 대한 제한을 설정할 수 있습니다(man syslogd 참조). 적절하게 구성된 방화벽도 중요한 역할을 합니다.

    또 다른 유용한 스위치 -l을 사용하면 기본 /var/run/log 외에 syslogd 데몬이 수신하는 추가 소켓 파일을 지정할 수 있습니다. 예를 들어, syslog가 루트 환경에서 실행되는 프로그램을 제공하려면 이 키가 필요합니다. 특히 이것은 BIND 9부터 시작하여 명명된 작동 방식입니다. FreeBSD 5.3에서 syslogd는 다음 키로 시작됩니다:

    #ps-왁스 | grep syslog

    321 ?? Ss 0:01.67 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -s

    구성 파일 구문

    로깅은 /etc/syslog.conf 파일에서 구성됩니다. 당연히 루트 사용자만 편집할 수 있습니다. 이 파일에는 두 가지 유형의 문자열이 포함되어 있습니다. 이를 "필터"와 "규칙"이라고 부르겠습니다.

    필터 라인은 다음 규칙이 메시지에 적용될 프로그램이나 호스트를 지정합니다. "!prog"(또는 "#!prog") 형식의 필터는 다음 줄이 지정된 prog 프로그램에 의해 생성된 로그를 참조함을 나타냅니다. 이 항목의 동의어는 "!+prog"입니다. 반면에 "!-prog" 행은 후속 규칙이 prog 프로그램에서 발생한 메시지를 제외한 모든 메시지에 적용됨을 나타냅니다. 여러 프로그램을 쉼표로 구분하여 나열할 수 있으며 "+" 또는 "-" 기호는 전체 목록에 적용됩니다.

    필터 문자열이 "+hostname"으로 지정되면 지정된 호스트가 후속 규칙에 의해 처리되어야 하는 메시지의 소스로 사용됩니다. 프로그램과 마찬가지로 "-" 기호는 지정된 호스트에서 오는 메시지를 제외한 모든 메시지에 규칙이 적용된다는 것을 나타냅니다. 쉼표로 구분된 호스트 목록을 지정할 수 있습니다.

    프로그램이나 호스트로 지정된 "*" 문자는 이전에 설정된 필터를 재정의합니다. 즉, 해당 줄 다음에 지정된 규칙은 모든 메시지에 적용됩니다. 호스트 또는 프로그램 이름이 포함된 필터는 서로 독립적이며 동시에 작동할 수 있습니다. 예를 들어:

    # 여기에 있는 규칙은 모든 메시지에 적용됩니다.

    내.호스트

    # 규칙은 my.host의 모든 메시지에 적용됩니다.

    나무꾼

    # 규칙은 my.host의 로거 메시지에 적용됩니다(호스트 필터는 계속 적용됩니다).

    # su에서 my.host로 보내는 메시지에는 규칙이 적용됩니다.

    # 규칙은 모든 호스트의 su에서 보낸 메시지에 적용됩니다(호스트 필터가 취소되고 프로그램 필터가 계속 작동함).

    # 모든 메시지에 규칙이 적용됩니다. (프로그램 필터도 해제됩니다.)

    규칙 라인은 다음과 같습니다:

    시설.CMP레벨 대상

    여기서 Facility는 메시지의 소스("*"는 모든 소스를 나타냄)이고, level은 이 규칙에 따라 처리될 메시지의 수준입니다. 레벨 대신 지정된 서비스 단어 "none"은 이 소스에서 메시지를 완전히 제외하라는 지시를 제공합니다.

    CMP - 비교 연산(">", "" 기호 허용)<», «=», «>=», «<=», а также символ отрицания «!»). Если символ сравнения не указан, подразумевается «больше или равно», то есть обрабатываются все сообщения уровня level и выше.

    대상은 이 메시지를 저장할 위치를 지정합니다. 로그 파일(전체 경로는 "/"로 시작하여 표시됨), 원격 서버 주소("@" 기호로 시작), 사용자 이름(사용자가 접속한 터미널로 메시지가 전송됨)일 수 있습니다. 연결됨). 메시지는 처리를 위해 외부 프로그램으로 전송될 수도 있으며, 여기에는 컨베이어 기호 "|"가 사용됩니다.

    규칙의 몇 가지 예

    모든 커널 메시지는 kern.log 파일로 전송됩니다.

    kern.* /var/log/kern.log

    모든 오류 메시지는 응급, 경고 및 위험 수준 메시지뿐만 아니라 all-err.log에 저장됩니다. 로그 파일 이름 앞의 하이픈을 참고하세요. 기본적으로 메시지는 메모리에 버퍼링되어 버퍼가 가득 차면 디스크에 기록됩니다. 이렇게 하면 파일 시스템의 로드가 줄어들지만 시스템이 충돌할 경우 일부 정보가 손실될 수 있습니다. 파일 이름 앞의 하이픈은 syslogd 데몬이 즉시 디스크에 메시지를 쓰도록 합니다.

    *.err -/var/log/all-err.log

    사용자 프로세스에 대한 디버깅 메시지는 사용자 vasya가 현재 연결된 터미널에 출력됩니다.

    user.debug 바샤

    뉴스 및 이메일 서비스의 모든 메시지는 syslog.host.ru 시스템의 포트 514로 전달됩니다.

    mail.*,news.* @syslog.host.ru

    경고보다 낮은 수준의 모든 인쇄 서비스 메시지는 지정된 파일에 저장됩니다. 앞서 설명한 대로 기본 비교는 "보다 크거나 같음"이고 "!" 이를 뒤집어 "less"로 바꿉니다. 특정 수준을 제외해야 하는 경우 "!=" 구성을 사용해야 합니다.

    lpr.!경고 /var/log/printers.log

    레벨0 및 레벨3 기능이 포함된 디버그 레벨(및 이 메시지만)은 연결된 모든 터미널에 출력됩니다.

    level0,level3.=디버그 *

    위험보다 높고(즉, emerg 및 경고) 통지보다 작거나 같은(알림, 정보 및 디버그) 시간 서비스 메시지는 ntpuser 및 루트 사용자 터미널로 전송됩니다.

    ntp.>치명타,<=notice ntpuser,root

    메일 서비스에서 오는 메시지를 제외한 모든 경고 수준 메시지는warn.log 파일에 기록됩니다.

    *.=경고,mail.none /var/log/warn.log

    이 경우, 수준이 crit보다 크거나 같은 모든 메시지는 이메일을 통해 루트 사용자에게 전송됩니다.

    *.치명타 | mail -s "중요한 메시지" 루트

    보시다시피 구성 파일 형식을 사용하면 여러 수준, 소스 및 대상을 한 줄에 나열할 수 있으므로 구성이 더욱 유연해집니다. 편집 후 변경 사항을 적용하려면 syslogd 프로세스에 HUP 신호를 보내야 합니다.

    # kill –HUP `cat /var/run/syslog.pid`

    메시지가 구성 파일의 여러 줄에 해당하는 경우 각 줄에 따라 처리됩니다. 예:

    메일.* /var/log/maillog

    *.=err /var/log/error.log

    이 경우 mail.err 메시지는 maillog와 error.log 모두에 남게 됩니다.

    구성 파일 생성 전략

    구성 파일에 대한 검토를 마치면서 구성 파일 컴파일 전략에 대해 몇 마디 말씀드리겠습니다. 매우 인기 있는 "작동하는 한" 외에도 대략 "소스별"과 "목적별"이라고 부르는 두 가지 주요 항목을 구분할 수 있습니다.

    • 여러 GNU/Linux 배포판에서 볼 수 있는 첫 번째 전략은 각 메시지 소스(또는 서로 다른 수준의 메시지를 다르게 처리해야 하는 경우 규칙 그룹)에 대해 서로 다른 규칙을 작성하는 것입니다. 장점은 특정 서비스의 메시지가 기록되는 위치를 쉽게 결정할 수 있다는 것입니다.
    • "대상별" 전략에는 가능하다면 파일과 같은 메시지의 각 "수신자"에 대해 한 줄만 생성하는 것이 포함됩니다. 특히 FreeBSD가 이 접근 방식을 따르고 있습니다. 결과적으로 특정 로그 파일에 어떤 정보가 기록되는지 쉽게 확인할 수 있지만, 예를 들어 커널 메시지의 대상은 구성 파일 전체에서 수집되어야 합니다.

    로거 유틸리티

    시스템에는 명령줄에서 직접 syslog 서비스에 메시지를 보낼 수 있는 로거 유틸리티가 포함되어 있습니다. 구성 규칙을 테스트할 때뿐만 아니라 해당 작업을 기록하기 위해 개발된 스크립트에서도 사용하는 것이 편리합니다. 예:

    user$ logger -p user.err “사용자 프로그램에 오류가 있습니다!”

    user$ logger -h syslog.host.ru “테스트해 보세요”

    첫 번째 예에서는 시설 사용자 수준이 err인 메시지를 보내며, 이는 구성 파일에 따라 처리됩니다. 두 번째 명령은 원격 호스트에 메시지를 보내고 기본 소스와 수준은 user.notice로 설정됩니다.

    회전 메커니즘 사용

    위에서 설명한 로깅 메커니즘은 로그 파일 관리를 제공하지 않습니다. 메시지는 구성 파일에 설명된 규칙에 따라 간단히 배치됩니다. 이는 로그 파일이 지속적으로 증가하고 아무 조치도 취하지 않으면 조만간 해당 파티션의 사용 가능한 공간을 모두 채울 것임을 의미합니다. 이를 방지하기 위해 회전 메커니즘이 사용됩니다.

    예를 들어, debug.log 파일의 크기가 100MB를 초과하면 debug.log.0으로 이름이 바뀌고 debug.log.0.bz2로 패키지됩니다. 대신 새로운 debug.log가 생성됩니다. 그런 다음 새 파일의 크기가 100MB에 도달하면 debug.log.0.bz2의 이름을 debug.log.1.bz2로 변경하고 위에서 설명한 절차를 반복합니다. 시스템은 특정 수의 아카이브 파일만 저장하고 가장 오래된 파일을 삭제합니다. 이것이 회전입니다.

    newsyslog 유틸리티

    FreeBSD 시스템에서 newsyslog 유틸리티는 기본적으로 cron 데몬에 의해 매 시간 초에 시작되는 회전을 담당합니다. /etc/crontab을 편집하여 순환 기간을 변경할 수 있습니다.

    위의 예(파일 크기, 패키징)에 표시된 회전 매개변수와 기타 여러 매개변수는 /etc/newsyslog.conf 구성 파일에 설정됩니다. 회전해야 하는 각 파일에 대해 일반적으로 파일 이름, 소유자 및 그룹, 액세스 권한, 아카이브 파일 이름의 최고 숫자, 최대 파일 크기, 회전 기간, 추가 플래그 및 경로 등 9개 필드로 구성된 줄이 포함됩니다. 회전 후 신호를 보내야 하는 응용 프로그램의 PID 파일과 보내야 하는 신호의 번호입니다. (예를 들어 프로세스가 로그 파일을 항상 열어두는 경우 프로세스에 신호를 보내는 것이 필요할 수 있습니다. 그렇지 않으면 사용된 파일 설명자가 새로 생성된 파일과 일치하지 않습니다.) 일부 필드는 생략될 수 있습니다. . 다음은 완전하고 "일반적인" 두 가지 예입니다.

    /var/log/pflog 루트:휠 600 3 100 * JB /var/run/pflog.pid 1

    이 규칙에 따르면 pflog 파일은 시간(6번째 필드의 "*" 문자)에 관계없이 크기가 100MB(5번째 필드)를 초과하는 즉시 덮어써야 합니다. 아카이브된 파일은 pflog.X.bz2(pflog.0.bz2, pflog.1.bz2 등)와 같은 이름을 가지며 X는 3개를 초과할 수 없습니다(4번째 필드의 매개변수 3). J 플래그는 bzip2 유틸리티를 사용하여 아카이브 파일을 패키지해야 함을 나타냅니다. B 플래그 덕분에 파일이 바이너리로 인식되므로 보관된 파일과 새로 생성된 파일에 회전 서비스 메시지가 추가되지 않습니다. 새로 생성된 파일은 루트 사용자와 휠 그룹이 소유하게 됩니다(기본 소유자이므로 이 필드는 생략할 수 있습니다). 권한은 rw-------(숫자 값 600)로 설정됩니다. 즉, 소유자만 이 파일을 읽고 쓸 수 있습니다. 마지막으로 신호 1(HUP)은 로그 파일을 다시 열기 위해 /var/run/pflog.pid에 PID가 저장된 프로세스로 전송됩니다.

    /var/log/maillog 640 7 * @T00 J

    이 규칙은 메일로그 파일의 회전 매개변수를 지정합니다. 크기(5번째 필드의 별표)에 관계없이 파일은 매일 밤 00:00에 다시 작성됩니다(man newsyslog.conf에서 시간 형식이 충분히 자세히 설명되어 있습니다). 아카이브는 압축되어야 하며, 마지막 8개의 아카이브(0부터 7까지 번호 지정)가 저장되고, 새로 생성된 파일은 루트 사용자가 소유하며(기본값이므로 소유자 필드를 건너뜁니다) rw-r 권한을 갖습니다. -----.

    압축된 로그 파일을 보려면 zcat 및 bzcat 유틸리티(각각 gzip 및 bzip2용)를 사용할 수 있습니다. Midnight Commander는 적절한 유틸리티를 자동으로 호출합니다.

    newsyslog.conf 파일을 편집한 후에는 아무 신호도 보낼 필요가 없습니다. 다음에 newsyslog가 호출될 때 구성이 다시 읽혀집니다.

    newsyslog 유틸리티는 syslogd 데몬에 연결되어 있지 않다는 점에 유의해야 합니다. 즉, 필요한 파일을 회전하는 데 사용할 수 있습니다. 애플리케이션이 독립적으로 유지 관리하는 로그(예: clamd 또는 squid 로그)에 대해 회전이 활성화된 경우 소유자 및 액세스 권한을 지정할 때 특히 주의하세요. 이를 잘못 지정하면 회전 후 권한 없는 사용자로 실행되는 응용 프로그램이 새로 생성된 파일에 쓸 수 없게 될 수 있습니다.

    합산

    syslog 시스템은 시스템에서 발생하는 다양한 이벤트를 기록하는 매우 강력하고 효과적인 도구입니다. 기본 설정은 균형이 잘 잡혀 있으며 대부분의 시스템에서 잘 작동합니다. 그러나 syslog의 작동 방식을 이해하면 필요에 따라 엄격하게 로그 정보 기록을 사용자 정의하여 로깅 품질을 크게 향상시킬 수 있습니다.