서버 보안 · 4 min read · Jan 08, 2026

Bastille 및 PSAD로 CentOS 서버 보안 강화하기

이 문서에서는 psad, Bastille 및 기타 몇 가지 조정을 사용하여 CentOS 서버를 보호하는 방법을 보여줍니다. psad는 포트 스캔 및 기타 의심스러운 트래픽을 감지하는 데 도움이 되는 도구이며, Bastille 하드닝 프로그램은 운영 체제를 잠그고 시스템을 사전 구성하여 보안을 강화하고 침해 가능성을 줄입니다.

시스템 관리를 위한 추가 계정 만들기

“adduser” 명령은 계정을 생성합니다.

adduser service

“passwd” 명령은 “service” 계정의 비밀번호를 설정합니다.

passwd service

다운로드를 위한 디렉토리 만들기.

이 명령은 RPM 및 기타 파일을 다운로드할 디렉토리를 생성합니다.

mkdir /downloads  
cd /downloads

PSAD 설치하기

psad는 리눅스 머신에서 실행되고 Netfilter 로그 메시지를 분석하여 포트 스캔 및 기타 의심스러운 트래픽을 감지하는 세 개의 경량 시스템 데몬(두 개의 주요 데몬과 하나의 보조 데몬)으로 구성된 모음입니다. 자세한 정보는 여기에서 확인할 수 있습니다.

wget http://www.cipherdyne.com/psad/download/psad-2.4.6.tar.gz  
tar xfz psad-2.4.6.tar.gz  
cd psad-2.4.6  
./install.pl

Bastille 설치하기

Bastille 하드닝 프로그램은 운영 체제를 “잠그고” 시스템을 사전 구성하여 보안을 강화하고 침해 가능성을 줄입니다. Bastille는 또한 시스템의 현재 하드닝 상태를 평가하고, 작업하는 각 보안 설정에 대해 세부적으로 보고할 수 있습니다. 자세한 정보는 여기에서 확인할 수 있습니다.

wget https://downloads.sourceforge.net/project/bastille-linux/bastille-linux/3.2.1/Bastille-3.2.1-0.1.noarch.rpm  
  
rpm -ivh Bastille-3.2.1-0.1.noarch.rpm 

Bastille 실행하기

이 명령은 대화형 프롬프트를 시작합니다.

/usr/sbin/bastille -c

대화형 프롬프트 응답

이 설정은 완벽한 설치를 위한 권장 사항입니다. 다른 소프트웨어나 패키지가 설치된 경우 변경해야 할 특정 값이 있을 수 있습니다.

accept  
  
  

관리 유틸리티에 대해 더 제한적인 권한을 설정하시겠습니까? -> YES  
  
  

mount/umount에 대한 SUID 상태를 비활성화하시겠습니까? -> YES  
ping에 대한 SUID 상태를 비활성화하시겠습니까? -> YES  
at에 대한 SUID 상태를 비활성화하시겠습니까? -> YES  
r-tools를 비활성화하시겠습니까? -> YES  
usernetctl에 대한 SUID 상태를 비활성화하시겠습니까? -> YES  
traceroute에 대한 SUID 상태를 비활성화하시겠습니까? -> YES  
Bastille가 IP 기반 인증을 사용하는 평문 r 프로토콜을 비활성화해야 합니까? -> YES  
비밀번호 만료를 시행하시겠습니까? -> YES  
기본 umask를 설정하시겠습니까? -> YES   
시스템의 사용자에 대해 어떤 umask를 설정하시겠습니까? -> 007  
tty의 1-6에서 root 로그인을 금지해야 합니까? -> NO  
Bastille가 삭제할 불필요한 계정을 요청해야 합니까? -> NO  
GRUB 프롬프트에 비밀번호 보호를 설정하시겠습니까? -> NO  
CTRL-ALT-DELETE 재부팅을 비활성화하시겠습니까? -> YES  
단일 사용자 모드에 비밀번호 보호를 설정하시겠습니까? -> NO  
TCP Wrappers 및 xinetd에 대해 기본 거부를 설정하시겠습니까? -> NO  
로그인 시 "허가된 사용" 메시지를 표시하시겠습니까? -> YES  
이 머신을 사용할 수 있는 권한을 부여할 책임자는 누구입니까? -> YOUR COMPANY NAME  
시스템 리소스 사용에 제한을 두시겠습니까? -> YES  
  
  

콘솔 접근을 소수의 사용자 계정으로 제한해야 합니까? -> YES  
콘솔에 로그인할 수 있는 계정은 무엇입니까? -> root  
프로세스 회계를 설정하시겠습니까? -> NO  
  
  

acpid 및/또는 apmd를 비활성화하시겠습니까? -> YES  
PCMCIA 서비스를 비활성화하시겠습니까? -> YES  
GPM을 비활성화하시겠습니까? -> YES  
이 머신에서 HP OfficeJet (hpoj) 스크립트를 비활성화하시겠습니까? -> YES  
이 머신에서 ISDN 스크립트를 비활성화하시겠습니까? -> YES  
부팅 시 kudzu의 실행을 비활성화하시겠습니까? -> YES  
sendmail이 데몬 모드로 실행되는 것을 중지하시겠습니까? -> YES  
named를 비활성화하시겠습니까, 적어도 지금은? -> NO  
Apache 웹 서버를 비활성화하시겠습니까? -> NO  
웹 서버를 로컬호스트만 수신하도록 바인딩하시겠습니까? -> NO  
특정 인터페이스에 웹 서버를 바인딩하시겠습니까? -> NO  
  
  

다음의 심볼릭 링크 추적을 비활성화하시겠습니까? -> YES  
인쇄를 비활성화하시겠습니까? -> YES  
TMPDIR/TMP 스크립트를 설치하시겠습니까? -> NO  
패킷 필터링 스크립트를 실행하시겠습니까? -> YES  
  
  

고급 네트워킹 옵션이 필요하십니까? -> NO  
DNS 서버: [0.0.0.0/0] -> 기본값 유지  
공용 인터페이스: -> eth+  
감사할 TCP 서비스: -> telnet ftp imap pop3 finger sunrpc exec login linuxconf ssh  
감사할 UDP 서비스: -> 31337  
감사할 ICMP 서비스: -> 빈칸  
공용 인터페이스에서 허용할 TCP 서비스 이름 또는 포트 번호: -> 21 22 25 53 80 110 111 143 443 631 953 993 995 3306  
공용 인터페이스에서 허용할 UDP 서비스 이름 또는 포트 번호: -> 빈칸  
수동 모드를 강제하시겠습니까? -> YES  
차단할 TCP 서비스: -> 2049 2065:2090 6000:6020 7100  
차단할 UDP 서비스: -> 2049 6770  
허용된 ICMP 유형: -> destination-unreachable echo-reply time-exceeded  
소스 주소 검증을 활성화하시겠습니까? -> YES  
거부 방법: -> DENY  
DHCP 쿼리를 위한 인터페이스: -> 빈칸  
쿼리할 NTP 서버: -> 빈칸  
아웃바운드에서 허용하지 않을 ICMP 유형: -> destination-unreachable time-exceeded  
Bastille가 방화벽을 실행하고 부팅 시 활성화해야 합니까? -> YES  
psad를 설정하시겠습니까? -> YES  
psad 체크 간격: -> 15  
포트 범위 스캔 임계값: -> 1  
스캔 지속성을 활성화하시겠습니까? -> NO  
스캔 타임아웃: -> 3600  
모든 스캔 서명을 표시하시겠습니까? -> NO  
위험 수준: -> 5 50 1000 5000 10000  
이메일 주소: -> root@localhost  
이메일 경고 위험 수준: -> 1  
모든 새로운 패킷에 대해 경고하시겠습니까? -> YES  
스캔 IP의 자동 차단을 활성화하시겠습니까? -> NO  
Bastille가 부팅 시 psad를 활성화해야 합니까? -> YES  
질문에 대한 답변을 마치셨습니까, 즉 변경을 진행해도 될까요? -> YES  
  

SSH 구성 편집하기

이 명령은 SSH를 보안하기 위한 추가 단계를 수행합니다. 다음 설정은:

  • SSHv2가 사용되도록 보장합니다.
  • root 사용자가 SSH를 통해 직접 로그인할 수 없습니다.
  • 비밀번호가 없는 계정은 로그인이 허용되지 않습니다.
  • 로그인 배너가 표시됩니다.
vi /etc/ssh/sshd_config

다음 줄을 편집하고 주석을 제거합니다. 저장하고 종료하는 것을 잊지 마십시오.

#Protocol 2,1 -> Protocol 2  
#PermitRootLogin yes -> PermitRootLogin no  
#PermitEmptyPasswords no -> PermitEmptyPasswords no  
#Banner /some/path -> Banner /etc/issue

시스템 재부팅

최종 점검으로 시스템을 재부팅하십시오. 모든 것이 제대로 시작되는지 확인하십시오.

reboot
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.