웹사이트 검색

Linux에서 ConfigServer 보안 및 방화벽(CSF) 설치 및 구성


IT 관련 채용 공고를 어디든 찾아보면 보안 전문가에 대한 수요가 꾸준하다는 것을 알 수 있습니다. 이는 사이버 보안이 흥미로운 연구 분야일 뿐만 아니라 매우 수익성이 높은 분야라는 것을 의미합니다.

이를 염두에 두고 이 문서에서는 다음을 위한 완전한 보안 제품군인 ConfigServer 보안 및 방화벽(간단히 CSF라고도 함)을 설치하고 구성하는 방법을 설명합니다. Linux를 사용하고 몇 가지 일반적인 사용 사례를 공유합니다. 그런 다음 CSF를 방화벽 및 침입/로그인 실패 감지 시스템으로 사용하여 담당 서버를 강화할 수 있습니다.

더 이상 별말 없이 시작하겠습니다.

Linux에서 CSF 설치 및 구성

시작하려면 Perllibwww가 지원되는 배포판(RHELCSF를 설치하기 위한 전제 조건이라는 점에 유의하세요. > 및 CentOS, openSUSE, DebianUbuntu). 기본적으로 사용할 수 있어야 하므로 다음 단계 중 하나에서 치명적인 오류가 반환되지 않는 한 사용자가 취해야 할 조치는 없습니다. 이 경우 패키지 관리 시스템을 사용하여 누락된 종속 항목을 설치하세요.

yum install perl-libwww-perl
apt install libwww-perl

1단계 - CSF 다운로드

cd /usr/src
wget https://download.configserver.com/csf.tgz

2단계 - CSF 타르볼 추출

tar xzf csf.tgz
cd csf

3단계 - CSF 설치 스크립트 실행

이 프로세스 부분에서는 모든 종속성이 설치되었는지 확인하고, 웹 인터페이스에 필요한 디렉토리 구조와 파일을 생성하고, 현재 열려 있는 포트를 감지하고, csflfd<를 다시 시작하도록 알려줍니다. 초기 구성이 완료된 후 데몬입니다.

sh install.sh
perl /usr/local/csf/bin/csftest.pl

위 명령의 예상 출력은 다음과 같습니다.

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server

4단계: 방화벽 비활성화 및 CSF 구성

실행 중인 경우 방화벽을 비활성화하고 CSF를 구성합니다.

systemctl stop firewalld
systemctl disable firewalld

TESTING="1"TESTING="0"으로 변경하고(그렇지 않으면 lfd 데몬이 시작되지 않음) 허용된 들어오고 나가는 목록을 나열합니다. 아래 출력에 표시된 대로 /etc/csf/csf.conf에 쉼표로 구분된 목록(각각 TCP_INTCP_OUT)으로 포트됩니다. :

Testing flag - enables a CRON job that clears iptables incase of
configuration problems when you start csf. This should be enabled until you
are sure that the firewall works - i.e. incase you get locked out of your
server! Then do remember to set it to 0 and restart csf when you're sure
everything is OK. Stopping csf will remove the line from /etc/crontab
#
lfd will not start while this is enabled
TESTING = "0"

Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

구성에 만족하면 변경 사항을 저장하고 명령줄로 돌아갑니다.

5단계 – CSF 재시작 및 테스트

systemctl restart {csf,lfd}
systemctl enable {csf,lfd}
systemctl is-active {csf,lfd}
csf -v

이제 다음에 설명할 방화벽 및 침입 탐지 규칙 설정을 시작할 준비가 되었습니다.

CSF 및 침입 탐지 규칙 설정

먼저, 다음과 같이 현재 방화벽 규칙을 검사해야 합니다.

csf -l

다음을 사용하여 중지하거나 다시 로드할 수도 있습니다.

csf -f
csf -r

각기. 이러한 옵션을 기억해 두십시오. 특히 변경하고 csflfd를 다시 시작한 후 확인하는 데 필요합니다.

예 1 – IP 주소 허용 및 금지

192.168.0.10에서 들어오는 연결을 허용합니다.

csf -a 192.168.0.10

마찬가지로 192.168.0.11에서 시작되는 연결을 거부할 수 있습니다.

csf -d 192.168.0.11

원하는 경우 위의 각 규칙을 제거할 수 있습니다.

csf -ar 192.168.0.10
csf -dr 192.168.0.11

위에서 -ar 또는 -dr를 사용하면 특정 IP 주소와 관련된 기존 허용 및 거부 규칙이 어떻게 제거되는지 참고하세요.

예 2 - 소스별로 들어오는 연결 제한

서버의 용도에 따라 들어오는 연결을 포트별로 안전한 번호로 제한할 수 있습니다. 그렇게 하려면 /etc/csf/csf.conf를 열고 CONNLIMIT를 검색하세요. 여러 포트를 지정할 수 있습니다. 쉼표로 구분된 연결 쌍입니다. 예를 들어,

CONNLIMIT = "22;2,80;10"

동일한 소스에서 TCP 포트 2280으로 각각 210 들어오는 연결만 허용합니다.

예 3 - 이메일을 통해 경고 보내기

선택할 수 있는 경고 유형은 여러 가지가 있습니다. /etc/csf/csf.conf에서 EMAIL_ALERT 설정을 찾아 관련 경고를 수신하려면 "1"로 설정되어 있는지 확인하세요. 예를 들어,

 
LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"

누군가가 SSH를 통해 성공적으로 로그인하거나 su 명령을 사용하여 다른 계정으로 전환할 때마다 LF_ALERT_TO에 지정된 주소로 경고가 전송됩니다.

CSF 구성 옵션 및 사용법

다음 옵션은 csf 구성을 수정하고 제어하는 데 사용됩니다. csf의 모든 구성 파일은 /etc/csf 디렉터리에 있습니다. 다음 파일 중 하나를 수정하는 경우 csf 데몬을 다시 시작하여 변경 사항을 적용해야 합니다.

  • csf.conf : CSF 제어를 위한 기본 구성 파일입니다.
  • csf.allow : 방화벽에서 허용된 IP 및 CIDR 주소 목록입니다.
  • csf.deny : 방화벽에서 거부된 IP 및 CIDR 주소 목록입니다.
  • csf.ignore : 방화벽에서 무시된 IP 및 CIDR 주소 목록입니다.
  • csf.*ignore : 사용자, IP의 다양한 무시 파일 목록입니다.

CSF 방화벽 제거

CSF 방화벽을 완전히 제거하려면 /etc/csf/uninstall.sh 디렉토리에 있는 다음 스크립트를 실행하세요.

/etc/csf/uninstall.sh

위 명령은 모든 파일 및 폴더와 함께 CSF 방화벽을 완전히 지웁니다.

요약

이 문서에서는 CSF를 방화벽 및 침입 탐지 시스템으로 설치, 구성 및 사용하는 방법을 설명했습니다. csf.conf에 더 많은 기능이 설명되어 있습니다.

예를 들어, 웹 호스팅 사업을 하고 있다면 CSF를 Cpanel, WHM 또는 잘 알려진 Webmin과 같은 관리 솔루션과 통합할 수 있습니다.

이 기사에 대해 질문이나 의견이 있으신가요? 아래 양식을 사용하여 메시지를 보내주세요. 여러분의 의견을 기다리겠습니다!