ssh 보안 설정, 서버 보안 향상

6365 단어
sshd[25632]: Failed password for root from 121.43.184.36 port 30580 ssh2
sshd[25633]: Received disconnect from 121.43.184.36: 11: Bye Bye
 pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=12 1.43.184.36  user=root
서버를 공용 네트워크에 놓고 매일 대량의 ssh 연결이 로그인을 시도하고 루트 비밀번호를 풀려고 시도하며 인터넷에서 방법을 찾았다
SSH 구성 파일은/etc/ssh/ssh_config, 설정 파라미터를 수정하여 안전성을 높일 수 있습니다. 참고http://blog.licess.com/sshd_config/
다음http://www.coolskill.net/article/ssh-security-methods-to-improve.htm
1. sshd 서버의 프로필 수정/etc/ssh/sshd_config, 일부 파라미터를 다음과 같이 참조하여 수정하여 안전성을 강화합니다.
시스템은 22번 포트를 사용하지 않고 감청 포트를 다른 수치로 변경합니다 (다른 일반적인 서비스 포트와 충돌하지 않도록 1024 이상의 높은 포트가 좋습니다). 그러면 침입자가 시스템이 sshd 수호 프로세스를 실행했는지 탐지하는 데 어려움을 증가시킬 수 있습니다.
Port 5555

서버에 여러 개의 네트워크 카드를 설치하거나 여러 개의 IP 주소를 설정한 경우 sshd는 그 중 한 개의 지정된 인터페이스 주소에서만 감청하도록 설정하면 sshd의 입구를 줄이고 침입 가능성을 낮출 수 있다.
ListenAddress 192.168.0.1

만약 사용자가 루트 사용자를 사용하여 로그인할 수 있도록 허락한다면, 해커들은 루트 사용자를 대상으로 암호를 폭력적으로 해독하여 시스템 안전에 위험을 가져올 수 있다.
PermitRootLogin no

빈 암호 시스템을 허용하는 것은 무방비한 보루와 같아서 어떤 안전 조치도 빈말이다.
PermitEmptyPasswords no

지정한 일부 사용자만 ssh를 통해 서버에 접근할 수 있으며, ssh 사용 권한을 최소한의 범위로 제한합니다.
AllowUsers sshuser1 sshuser2

위의 AllowUsers와 유사하게 지정된 사용자 그룹이 ssh를 통해 서버에 접근하는 것을 제한하는데 양자는 서버에 접근하는 것을 제한하는 데 같은 효과가 있다.
AllowGroups sshgroup

버전 1 프로토콜의 사용을 금지합니다. 디자인 결함이 있기 때문에 비밀번호를 해킹하기 쉽습니다.
Protocol 2

세션이 납치되지 않도록 X11 Forwarding을 닫습니다.
X11Forwarding no

sshd 서비스가 실행될 때 모든 연결은 하나의 커다란 메모리를 사용해야 한다. 이것도 ssh가 서비스 공격을 거부하는 원인이다.한 대의 서버는 많은 관리자가 동시에 서버를 관리하지 않으면 위의 연결 수 설정은 충분하다.
MaxStartups 5

주의: 상기 매개 변수 설정은 단지 하나의 예일 뿐이며 사용자가 구체적으로 사용할 때 각자의 환경에 따라 상응하는 변경을 해야 한다.
2. sshd 서버의 프로필 수정/etc/ssh/sshd_config의 읽기와 쓰기 권한은 모든 비root 사용자에게 읽기 전용 권한을 설정하여 비권한 사용자가 sshd 서비스의 보안 설정을 수정하는 것을 방지합니다.
chmod 644 /etc/ssh/sshd_config

3. TCP 래퍼를 설정합니다.서버는 기본적으로 모든 요청 연결을 받아들입니다. 이것은 매우 위험합니다.TCP Wrappers를 사용하면 응용 서비스가 일부 호스트에만 개방되는 것을 막거나 허용하여 시스템에 보안 장벽을 추가할 수 있습니다.이 부분의 설정은 모두 두 개의 파일:hosts와 관련된다.allow와 호스트.deny.
명시적으로 허용된 요청을/etc/hosts에 추가합니다.allow 중.만약 시스템이 IP 주소가 192.168.0.15와 10.0.0.11인 호스트만 sshd 서비스를 사용할 수 있도록 허락한다면 다음과 같은 내용을 추가합니다.
sshd:192.168.0.15 10.0.0.11

사용 금지가 필요한 정보를/etc/hosts에 추가합니다.deny 중.만약에 호스트를 제외하고는.allow 목록에서 sshd를 사용할 수 있는 아웃도어를 명확하게 허용하고 모든 다른 사용자는 sshd 서비스를 사용할 수 없으며 다음과 같은 내용을 호스트에 추가합니다.deny 파일:
sshd:All

주의: 상기 두 파일에 대한 시스템의 판단 순서는hosts를 먼저 검사하는 것입니다.allow 파일hosts를 다시 볼 수 있습니다.deny 파일입니다. 따라서 사용자가hosts에 있습니다.allow는 네트워크 자원을 사용할 수 있으며,hosts.deny에서 이 네트워크 자원을 사용하는 것을 금지합니다. 이 경우 시스템은hosts를 우선적으로 사용합니다.allow 설정, 사용자가 이 네트워크 자원을 사용할 수 있도록 합니다.
4. 시스템이 필요하지 않은 시작 서비스를 가능한 한 닫아라.시스템은 기본적으로 네트워크와 관련된 많은 서비스를 시작하기 때문에 이에 대응하여 많은 포트를 열어 리스팅을 한다.우리는 개방된 포트가 많을수록 시스템이 외부에서 침입될 가능성이 높다는 것을 알고 있기 때문에 우리는 가능한 한 필요하지 않은 시작 서비스를 닫고 가능한 한 포트를 닫으며 시스템의 안전성을 제공해야 한다.
http://blog.ddup.us/2012/04/09/server-intrusion-events/
  • SSHD 기본 22포트는 문제없지만, 기본 포트를 열면 IPtables와 협조하여 접근 수량을 제한하여 폭력적인 해독을 방지해야 합니다.인터넷에서 찾은 IPtables 설정 규칙은 분당 최대 3개의 ssh 연결을 허용합니다. 일단 초과하면 클라이언트의 연결은 다음 분 안에 모두 거부됩니다
  • iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set \  
     --name SSH -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl \  
     --name SSH -j LOG --log-prefix "SSH_brute_force "
    iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 \  
     --hitcount 4 --rttl --name SSH -j DROP

    좋은 웹페이지 즐겨찾기