기존 Linux 서버를 관리해야 할 때 안전한지 확인하는 가장 좋은 방법은 무엇입니까?


9

새로운 보안 서버 를 설정하는 방법에 대한 많은 자습서가 있습니다 .

그러나 다른 사람이 얼마 전에 설정 한 서버를 관리해야하는데 아직 그 구성에 대해 잘 모르는 경우 어떻게해야합니까?

"일반적인 용의자"를 자동으로 검사하는 도구 나 확실한 보안 허점이 없는지 확인하기위한 검사 목록이 있습니까? 취약점을 원격으로 확인하는 웹 서비스가 있습니까?

답변:


13

Nessus를 다운로드하고 네트워크 검사를 수행하십시오. 원격으로 악용 가능한 취약점에 대해 알려줍니다.

또한 Ossec을 설치 하십시오 . 기본 목적은 아니지만 몇 가지 일반적인 구성 오류 (예 : 잘못 구성된 계정)가 있습니다. 또한 호스트 기반 침입 탐지 기능의 주요 기능은 누군가가 취약점을 악용하려는 경우 찾는 데 도움이됩니다.


5
Nessus는 더 이상 오픈 소스가 아닙니다. 오픈 소스 포크를 오픈 바스라고합니다.
Anonymous

1
알아. 그러나 여전히 맥주 내 무료 IIRC이며 포스터는 F / OSS 만 원한다고 말한 적이 없습니다.
niXar

+1 Nessus는 매우 우수합니다. 또한 Nsuse가 결과를 Nessus에로드하면 Nvul에서 몇 가지 추가 취약점을 발견하는 데 도움이 될 수 있습니다.
Mark Davidson

1
OSSEC의 경우 +1 : 그것은 또한 당신이 독립을 실행할 수있는 루트킷 / 시스템 감사 모듈이 ossec.net/rootcheck
sucuri

5

인터넷 보안 센터의 "벤치 마크"체크리스트 부터 시작하겠습니다 . 보안 전문가가 다양한 플랫폼 및 소프트웨어 패키지에 대해 컴파일 한 합의 기반 검사 목록입니다. 검사 목록에서 언급했거나 일반적으로 권장되는 도구 중 일부는 보안 문제를 찾는 데 도움이됩니다.

  • Nessus / OpenVAS (취약성 스캐너)
  • Nmap (포트 스캐너)
  • TCPdump / Wireshark (libpcap 패킷 캡처)
  • SNORT (침입 탐지 시스템)

(tcpdump는 기본적으로 많은 Linux 시스템에 설치되거나 패키지 저장소에서 쉽게 설치 될 수 있으며 종합적인 매뉴얼 페이지가 있습니다)

근무하는 회사를위한 것이면 보안 분석이 관리자의 승인을 받았으며 스캔으로 인해 서비스 중단이나 응용 프로그램 사일런스가 발생하지 않도록하십시오. 예, 간단한 포트로 인해 문제가 발생할 수 있습니다. 포트는 구형 HP 레이저젯 프린터이며 용지 더미를 뱉어냅니다.


4

매우 빠른 첫 번째 점검으로 :

운영

netstat -ltnp

루트로. 네트워크에서 청취하는 모든 서비스가 표시됩니다.

이것은 즉시 종료하려는 항목을 표시 할 수 있습니다. 그런 다음 다른 답변의 솔루션을 계속 사용할 수 있습니다.

로컬 DB 서버와 같이 외부에서 액세스 할 수 없지만 실행해야하는 서비스의 경우 localhost / 127.0.0.1에서만 수신하도록 구성을 변경하십시오. 그렇게하면 로컬 사용자 만 액세스 할 수 있습니다.


4

http://www.bastille-unix.org/ 에서 Bastille-Linux를 확인하고 실행할 수있는 스크립트 세트를 확인하고 시스템 설정, 파일 권한, 사용자 설정 등을 확인합니다. 내 상자에서 한두 번, 기본 설치에서 문제가 발견되면 (rsh / rsync utils에서 주로 r_x). html / java + curses / flat 텍스트로 출력됩니다.


3

어떤 배포판?

일반:

  • iptables 및 / 또는 방화벽 설정 검토
  • SSHD 구성 검토
  • 외부에서 액세스 가능한 모든 서비스 구성 검토
  • 사용 가능한 최신 소프트웨어를 실행 중인지 확인하십시오
  • 커널 취약점 확인 (uname -a 및 google)
  • 편집 가능한 파일에 대한 사용자 권한 및 그룹 권한 검토

특별 배포판 / 모든 배포판
Daniel Rikowski

또한 설치된 패키지 목록을 잡고 싶을 수도 있습니다. 데비안 배포판의 경우 dpkg --get-selections> installed_pkgs.txt와 같은 것이 있습니다.
David Rickman

2
쉬운 백도어를 제거하기 위해 비정상적인 setuid / setgid 파일, 비밀번호가 설정된 계정, 로그인 쉘 등을 확인해야 할 수도 있습니다.
mas

위대한 제안 마스, 나는 그것을 완전히 잊어 버렸고, 이는 잠재적으로 거대한 구멍입니다.
David Rickman

3

또 다른 좋은 첫 번째 점검은 네트워크의 다른 호스트에서 nmap 호스트 이름 을 실행 하는 것입니다. 이것은 netstat가 호스트에 보여준 것에 대한 외부인의 관점을 제공합니다.


3

걱정되는 경우 언급 한 자습서를 따르고 서버를 다시 작성하는 것이 좋습니다. 특히 다른 관리자가 문제가 있다고 생각하는 경우. 새로운 관리자는 어쨌든 다시 실행중인 서비스를 배포하는 방법을 알아야합니다.

모든 것을 먼저 백업했는지 확인하고 모든 파티션을 이미지화하여 실제로 올바르게 만들 수 있습니다.

당신의 상사가 당신을 허락하지 않으면, 다른 모든 추천은 나에게 좋은 소리 :-)


+1 : 생성 / 구성이 문서화되어 있지 않고 시간이 있다면 다시 빌드 할 기회를 가지십시오. 나중에 협박을 당할 필요가 없습니다. 그런 다음 보안이 확실하며 나중에 참조 할 수 있도록 문서화됩니다.
Dan Carley

2

여기에 매우 훌륭한 답변 외에도 http://www.sans.org/를 확인 하십시오 . "심층 방어"에 대한 이해를 돕기 위해 약간의 독서를 기꺼이한다면 아주 좋은 문서가 있습니다.

매우 기본적인 전제 중 일부는 다음과 같습니다.

  • 서버를 패치 상태로 유지
  • 실행해야하는 서비스 만 실행
  • 서버에 대한 사용자 액세스 제한

1
네트워크뿐 아니라 물리적 액세스도 제한해야합니다.
iny

1

또한 chkrootkit을 사용해보십시오. 대부분의 배포판의 표준 저장소에 있으며 어쨌든 설치가 매우 쉽습니다. 알려진 많은 취약점, 루트킷 및 웜에 대해 시스템을 검사합니다.


1

당신이 시스템에 대한 느낌을 얻기 위해 할 수있는 한 가지입니다 DIFF (같은 업데이트 적용으로.)은 / etc 폴더 신선한에 대한 설치 당신이 당신의 보안 문제가 초점을 맞출 수 있도록이 변경된 내용을 알려줍니다.


1

mas가 말한 것을 확장하기 위해 검토를 위해 시스템의 모든 setuid 및 setgid 파일을 나열하는 간단한 찾기 명령이 있습니다.

find / -type f \( -perm -4000 -o -perm -2000 \) -print

물론 다른 사람들이 말했듯이 이것은 머신에 이미 루트킷이 없다고 가정하는 것입니다 ...


1

Chrootkit / rkhunter는 오래 걸려있는 과일입니다. 루트킷이 설치되어 있으면보고 된 모든 것이 손상되어 큰 도움이되지 않으므로 알려진 소스에서 다운로드하십시오. 이미 상자에있는 것을 사용하지 마십시오. 또 다른 좋은 요령은 잘 아는 커널을 설치하는 것입니다 (패키지 또는 직접 롤에서). 백도어를 확인하십시오 (lsof -i 및 0 uid 비 루트 계정). 방화벽 규칙을 검사하면 일반적으로 이전 관리자의 습관에 대해 많은 것을 알 수 있습니다. 그 위에 wireshark / snort를 놓고 비정상적인 것을 발견하십시오. 통나무가 어디로 가는지보십시오. 비정상적인 명령에 대해서는 모든 .profile / .bashrc 종류의 파일을 확인하십시오. 닷지 호스트에 대해서는 .ssh / known_hosts를 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.