네트워크 보안과 보호 강화에 진지하다면 침입 탐지 및 방지 시스템(IPS 또는 IDS)을 설치하여 네트워크 경계를 강화하고 원치 않는 네트워크 트래픽을 차단하는 것이 필수입니다.
Snort는 개인 용도로 무료로 사용할 수 있는 인기 있는 IPS/IDS 솔루션이며, 오픈 소스입니다. Linux에 Snort를 설치하고 구성하여 사이버 공격으로부터 네트워크를 보호하는 방법을 알아보겠습니다. 휴대전화가 당신을 감시한다면 무슨 일이 일어날까?

로압 스리유에스
Snort란 무엇인가요?

Snort는 이름에서 알 수 있듯이 네트워크 침입 탐지 및 방지(NIDS/IPS) 애플리케이션으로, 네트워크에 주입된 악성 패킷을 탐지하고 삭제하는 규칙과 필터를 적용하여 네트워크 경계를 보호하는 데 도움이 됩니다.
Snort를 사용하면 고급 네트워크 트래픽 로깅, 패킷 스니핑 및 분석을 수행하고, 원치 않는 잠재적으로 악의적인 트래픽으로부터 네트워크를 보호하는 강력한 침입 방지 시스템을 설정할 수 있습니다.
Snort 설치를 위한 필수 구성 요소
Snort를 설치하기 전에 몇 가지 초기 설정을 해야 합니다. 이는 주로 시스템을 업데이트 및 업그레이드하고 Snort가 제대로 작동하는 데 필요한 종속성을 설치하는 작업입니다.
시스템 업데이트 및 업그레이드를 시작하세요.
Ubuntu 및 Debian 기반 Linux 배포판의 경우:
sudo apt update && apt upgrade -y
Arch Linux 및 기반 배포판의 경우:
수독 팩맨 -Syu
RHEL 및 Fedora의 경우:
sudo dnf 업그레이드
시스템을 업그레이드하는 동안 Snort에 필요한 종속성을 계속 설치하세요. 실행해야 하는 명령은 다음과 같습니다.
Ubuntu와 Debian에서는 다음을 실행합니다.
sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev
Arch Linux에서 다음을 실행합니다.
sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pulledporkxz zlib cmake pkgconf
RHEL 및 Fedora의 경우 다음 명령을 실행합니다.
sudo dnf install gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y
또한, Snort가 제대로 작동하려면 데이터 수집 라이브러리인 LibDAQ를 수동으로 설치해야 하며, 빌드 파일을 생성하려면 gperftools도 설치해야 합니다.
먼저 공식 웹사이트에서 다음 명령을 사용하여 LibDAQ 소스 파일을 다운로드합니다. wget다음으로, 압축 파일을 추출하고 cd 명령을 사용하여 디렉터리로 이동합니다. 디렉터리 내에서 부팅 및 구성 스크립트를 실행한 후, 다음 명령을 사용하여 파일 준비를 계속합니다. 설치 만든다.
wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz tar -xzvf lib* cd lib* ./bootstrap ./configure make sudo make install
LibDAQ를 설치했으면 마지막으로 gperftools라는 종속성을 설치해야 합니다. 먼저 GitHub 저장소에서 소스 파일을 가져옵니다. 파일을 추출하고 해당 디렉터리로 이동하여 구성 스크립트를 실행합니다. 마지막으로 명령을 사용하여 패키지를 설치합니다. 설치 만든다.
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz tar -xvzf gper* && cd gper ./configure make sudo make install
이러한 종속성이 설치되면 다음 단계로 진행하여 Snort를 설치할 수 있습니다.
Linux에서 소스로 Snort 설치

초기 설정이 완료되면 이제 실제 애플리케이션 설치에 집중할 수 있습니다. 소스 코드에서 빌드하므로 먼저 필요한 빌드 파일을 다운로드하세요.
wget 명령을 사용하거나 공식 다운로드 페이지에서 수동으로 파일을 다운로드하세요.
wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz
다운로드: 흡입
빌드 파일이 포함된 zip 파일 다운로드가 완료되면 다음 명령을 사용하여 압축을 풉니다. 타르:
tar -xzvf 스노트*
추출된 폴더로 이동하여 구성 스크립트를 실행하고 명령을 사용하세요. 확인 파일을 준비한 후 마지막으로 다음을 사용하여 설치합니다. 설치 만든다:
cd snort* ./configure_cmake.sh — prefix=/usr/local — enable-tcmalloc cd build make sudo make install
이제 Snort가 시스템에 성공적으로 설치되었습니다. 하지만 한 가지 단계를 더 완료해야 합니다. 새 애플리케이션을 수동으로 설치하는 경우, 설치 디렉터리와 필요한 라이브러리가 기본 시스템 경로에 자동으로 포함되지 않을 수 있습니다. 따라서 애플리케이션 실행 시 오류가 발생할 수 있습니다.
이 문제를 방지하려면 다음 명령을 실행해야 합니다. ldconfig시스템의 공유 라이브러리 캐시를 새로 설치된 라이브러리 및 바이너리와 동기화합니다. 다음 명령을 실행하세요. ldconfig 루트 권한 또는 접두사 사용 sudo는:
sudo ldconfig
이제 Snort 설치에 필요한 모든 중요 단계를 완료했습니다. 설치를 확인하려면 플래그를 사용하여 Snort 명령을 실행하세요. -V 그러면 버전 이름과 기타 데이터가 반환되는 출력이 표시됩니다.
코를 킁킁거리다 -V
Snort가 설치되었는지 확인한 후 다음 단계에 따라 Snort를 본격적인 IDS/IPS로 설정하세요.
Linux에서의 초기 Snort 구성

Snort의 효율성은 제공되는 규칙 세트의 품질에 거의 전적으로 달려 있습니다.
하지만 규칙 설정을 시작하기 전에 Snort와 호환되도록 네트워크 카드를 구성해야 하며, Snort가 기본 구성을 어떻게 처리하는지 테스트해야 합니다. 먼저 네트워크 카드를 구성하세요.
네트워크 인터페이스를 무차별 모드로 설정해야 합니다.
sudo ip link set dev interface_name promisc on
사용 Ethtool 대용량 네트워크 패킷이 삭제되는 것을 방지하려면 일반 수신 오프로드(GRO) 및 대규모 수신 오프로드(LRO)를 비활성화하세요.
sudo ethtool -K interface_name gro off lro off

기본 구성으로 Snort의 성능을 테스트해 보세요.
snort -c /usr/local/etc/snort/snort.lua
시스템에 Snort를 올바르게 설치하고 구성했음을 나타내는 성공적인 출력이 반환됩니다. 이제 기능을 조정하고 다양한 구성을 실험하여 네트워크 보안에 가장 적합한 규칙을 찾을 수 있습니다.
Snort를 사용하여 규칙 설정 및 적용
기본 설정이 완료되었으므로 이제 Snort가 경계를 방어할 준비가 되었습니다. 아시다시피 Snort는 트래픽의 유효성을 판단하기 위해 규칙 세트를 필요로 하므로, 커뮤니티에서 무료로 제공하는 Snort용 규칙 세트를 몇 가지 설정해 보겠습니다.
Snort는 특정 디렉터리에서 규칙 세트와 구성을 읽습니다. 따라서 먼저 다음 명령을 사용하여 mkdir و 터치 Snort에 대한 규칙 및 기타 관련 데이터를 저장하기 위해 몇 가지 중요한 디렉터리를 만듭니다.
sudo mkdir -p /usr/local/etc/{lists,so_rules,rules} sudo touch /usr/local/etc/rules/local.rules sudo touch /usr/local/etc/lists/default.blocklist이러한 가이드를 만들면 명령을 사용하여 공식 웹사이트에서 커뮤니티 규칙 세트를 다운로드할 수 있습니다. wget:
wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz
규칙 세트 다운로드가 완료되면 이를 추출하여 디렉토리에 복사합니다. /usr/local/etc/규칙/.
tar -xvzf snort3-com* cd snort3-com* cp * /usr/local/etc/rules/

규칙 집합으로 Snort를 실행하려면 다음 명령을 실행하세요.
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k none
명령의 해석:
- -c 기본 구성 파일의 경로를 지정합니다.
- -R 적용할 규칙의 경로를 지정합니다.
- -i 인터페이스를 지정합니다.
- -s 스냅렌 제한을 무시합니다.
- -k 체크섬을 무시합니다.
이렇게 하면 구성이 검증되고 모든 Snort 규칙 세트가 적용됩니다. 네트워크 장애가 감지되면 콘솔 메시지로 경고합니다.
자신만의 규칙 세트를 만들고 구현하려면 다음에서 자세히 알아볼 수 있습니다. 공식 문서 페이지. 검증 웹사이트 보안을 위한 최고의 웹 애플리케이션 방화벽 서비스.
Snort로 로그 준비

기본적으로 Snort는 로그를 출력하지 않습니다. 플래그를 사용하여 이를 지정해야 합니다. -L Snort를 로깅 모드로 시작하려면 로그 파일 유형과 태그를 선택하세요. -l Snort가 로그를 덤프할 로깅 디렉토리를 설정합니다.
로깅을 활성화하여 Snort를 시작하는 명령은 다음과 같습니다.
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k none -L file_type -l /var/log/snort
명령의 해석:
- -c 기본 구성 파일의 경로를 지정합니다.
- -R 적용할 규칙의 경로를 지정합니다.
- -i 인터페이스를 지정합니다.
- -s 스냅렌 제한을 무시합니다.
- -k 체크섬을 무시합니다.
- -L 로깅 모드를 활성화하고 로그 파일 유형을 지정합니다.
- 그는 구체적으로 말한다 -l 로그 저장 경로.
이전 명령 예에서 녹음 디렉토리가 다음과 같이 설정되었음을 참고하십시오. /var/log/snort이는 권장되는 관행이지만, 기록을 다른 곳에 보관해도 됩니다.
지정한 디렉토리에서 Snort의 로그 파일을 읽거나 Splunk와 같은 SIEM 애플리케이션에 전달하여 추가 분석을 수행할 수 있습니다.
시스템에서 Snort를 시작하려면 데몬 프로세스로 Snort를 추가하세요.

Snort를 설치하고 구성했더라도, 시스템 시작 시 자동으로 실행되고 백그라운드 서버로 실행되도록 해야 합니다. 자동 시작 시스템 서비스로 추가하면 인터넷에 연결된 동안 Snort가 항상 실행되어 시스템을 보호합니다.
Linux에서 Snort를 시작하기 위해 데몬 프로세스를 추가하는 방법은 다음과 같습니다.
- 서비스 파일을 만듭니다. 시스템 새로운:
touch /lib/systemd/system/snort.service
- 원하는 텍스트 편집기에서 파일을 열고 다음 정보를 입력하세요. 필요에 따라 태그를 수정할 수 있습니다.
[Unit] Description=Snort Daemon After=syslog.target network.target [Service] Type=simple ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k none -l /var/log/snort -D -L pcap -i ens33 [Install] WantedBy=multi-user.target
- 파일을 저장하고 종료합니다. 다음으로 다음 명령을 사용하세요. 서비스 و systemctl 스크립트를 활성화하고 시작합니다.
sudo systemctl enable snort.service sudo snort start
이제 Snort 데몬 프로세스가 실행 중이어야 합니다. 다음 명령을 사용하여 스크립트 상태를 확인할 수 있습니다. 긍정적인 출력이 반환되어야 합니다.
systemctl status snort
이제 Snort IDS를 사용하여 네트워크를 보호하는 방법을 알게 되었습니다.
IDS를 구축하는 것은 좋은 관행이지만, 능동적인 조치라기보다는 수동적인 조치에 가깝습니다. 네트워크 보안을 개선하고 보장하는 가장 좋은 방법은 지속적으로 테스트하고 수정해야 할 결함을 찾는 것입니다.
침투 테스트는 악용 가능한 취약점을 찾아 패치하는 좋은 방법입니다. 지금 바로 확인해 보세요. 사이버 보안 전문가를 위한 최고의 침투 테스트 도구.










