점점 더 많은 웹마스터가 전용 호스트와 VPS를 사용하기 시작하고 있습니다. 비용을 절감하거나 성능을 향상시키기 위해 많은 사람들의 독립형 컴퓨터와 VPS는 관리되지 않는 베어 메탈을 기반으로 하며 모든 것이 DIY로 이루어져야 합니다. 이때 보안 정책의 구현은 여전히 중요합니다. 다음 기사에서는 CentOS를 예로 들어 SSH 보안 액세스를 구성하는 방법을 간략하게 요약하겠습니다.
Linux SSH 보안 전략 1: 관련 없는 포트 닫기
네트워크에 손상을 입은 대부분의 호스트는 대규모 검사를 수행하기 위해 검사 도구를 사용하는 해커의 대상이었습니다. 따라서 스캔을 피하기 위해서는 Web, FTP, SSH 등 꼭 필요한 포트를 제외하고 나머지는 모두 닫아야 합니다. ICMP 포트를 닫고 ICMP 패킷을 삭제하도록 규칙을 설정하는 것이 좋습니다. 이렇게 하면 다른 사람들이 귀하의 서버에 ping을 보낼 수 없으며 위협은 자연스럽게 절반으로 줄어듭니다. ICMP 패킷을 삭제하려면 iptables에 다음 줄을 추가하세요.
-A 입력 -p icmp -j DROP
Linux SSH 보안 전략 2: SSH 포트 변경
기본 SSH 포트는 22입니다. 10,000 이상으로 변경하는 것이 좋습니다. 이런 방식으로 다른 사람이 포트를 스캔할 가능성이 크게 줄어듭니다. 수정 방법:
# /etc/ssh/ssh_config를 편집합니다.
vi /etc/ssh/ssh_config
# 호스트 * 아래에 새 포트 값을 추가합니다. 18439를 예로 들어 보겠습니다(아래도 동일).
포트 22
포트 18439
# /etc/ssh/sshd_config를 편집합니다.
vi /etc/ssh/sshd_config
#새 포트 값 추가
포트 22
포트 18439
# 저장 후 SSH 서비스를 다시 시작합니다.
서비스 sshd 다시 시작
여기서는 주로 수정 오류로 인해 SSH에 로그인할 수 없는 것을 방지하기 위해 두 개의 포트를 설정했습니다. SSH 클라이언트(예: Putty)의 연결 포트를 변경하고 연결을 테스트합니다. 새 포트가 성공적으로 연결되면 위의 두 파일을 편집하고 포트 22의 구성을 삭제합니다. 연결에 실패하면 포트 22를 사용하여 연결한 후 다시 구성하세요.
포트가 성공적으로 설정되면 iptables에서 포트 22도 삭제하고 새로 구성된 18439를 추가한 후 iptables를 다시 시작해야 합니다.
SSH 로그인 비밀번호가 취약한 경우 복잡한 비밀번호를 설정해야 합니다. Google 블로그에는 비밀번호 보안을 강조하는 기사가 있습니다. 비밀번호가 테스트를 통과합니까?
Linux SSH 보안 전략 3: IP 로그인 제한
고정 IP로 서버에 접속할 수 있는 경우, 특정 IP로만 서버에 로그인할 수 있도록 설정할 수 있습니다. 예를 들어, 저는 자체 VPN을 통해 서버에 로그인합니다. 설정은 다음과 같습니다:
# /etc/hosts.allow를 편집합니다.
vi /etc/hosts.allow
# 예를 들어 123.45.67.89만 로그인이 허용됩니다.
SSHD:123.45.67.89
Linux SSH 보안 전략 4: 인증서를 사용하여 SSH에 로그인
인증서를 사용하는 것이 비밀번호로 로그인하는 것보다 더 안전합니다. 나는 수돗물로 커피를 만드는 방법에 대한 자세한 튜토리얼을 작성했으며 그의 허락을 받아 다음과 같이 재인쇄합니다.
CentOS에 대한 SSH 인증서 로그인 확인 구성
회사의 네트워크 관리자가 메일 서버인 CentOS 5.1을 원격으로 감지하고 OpenSSH를 사용하여 원격으로 관리할 수 있도록 도와주세요. 보안 로그를 확인해 보니 지난 며칠 동안 거의 매일 수많은 IP들이 비밀번호를 추측하러 찾아온 것으로 나타났습니다. 로그인 인증 방식을 수정하여 인증서 인증으로 변경해야 할 것 같습니다.
만일을 대비해 구성이 완료되는 것을 방지하기 위해 일시적으로 VNC를 시작했으며, 만족스러울 때 sshd를 다시 시작하면 문제가 발생할 수 있습니다. (나중에 중복인줄 알았더니 퍼티만 미리 열어두고 닫지마세요)
간단한 단계는 다음과 같습니다.
1) 먼저 유지 관리 계정을 추가합니다: msa
2) 그런 다음 su - msa
3) ssh-keygen -t rsa
키 경로를 지정하고 비밀번호를 입력하면 /home/msa/.ssh/에 공개 키와 개인 키가 생성됩니다. id_rsa id_rsa.pub
4) 고양이 id_rsa.pub >> Authorized_keys
이 파일이 생성되는 이유는 sshd_config에 이렇게 쓰여 있기 때문입니다.
그런 다음 chmod 400 authenticate_keys를 사용하여 약간 보호합니다.
5) psftp를 사용하여 id_rsa를 로컬 컴퓨터로 다시 가져온 다음 서버에서 id_rsa 및 id_rsa.pub를 종료합니다.
6) /etc/ssh/sshd_config 구성
프로토콜 2
서버키비트 1024
PermitRootLogin no #루트 로그인만 금지합니다. 이 기사와 관련이 없으며 더 안전합니다.
#다음 세 줄에는 변경할 것이 없으며 기본 # 주석만 제거하면 됩니다.
RSA 인증 예
Pubkey인증 예
AuthorizedKeys파일 .ssh/authorized_keys
비밀번호인증번호
빈 비밀번호 허용
7) SSH를 다시 시작
/sbin/service sshd 재시작
8) 인증서 형식 변환 및 퍼티 수용
puttygen을 실행하여 id_rsa를 putty의 ppk 인증서 파일로 변환하세요.
9) 연결--SSH--Auth에서 Putty 로그인을 구성하고 찾아보기를 클릭한 후 방금 변환한 인증서를 선택합니다.
그런 다음 연결 데이터에 자동 로그인 사용자 이름을 입력합니다. 예를 들어 광산은 msa입니다.
세션에 있는 서버의 IP 주소를 입력하면 저장할 수 있습니다.
10) 약간의 고민을 해결하고 이 단계에 이르면 헛된 행복을 느낄 수도 있습니다. 이때 신나게 로그인할 수는 있지만 로그인이 되지 않을 수도 있습니다.
지원되는 인증 방법이 없습니다.
이때 sshd_config를 수정하여 변경할 수 있습니다.
PasswordAuthentication 번호는 일시적으로 다음과 같이 변경됩니다.
PasswordAuthentication yes 및 sshd를 다시 시작하십시오.
이렇게 하면 성공적으로 로그인할 수 있습니다. 로그아웃한 후 다시 PasswordAuthentication 값을 no로 변경하고 sshd를 다시 시작하세요.
앞으로 로그인할 때 정상적으로 키 파일의 비밀번호를 물어보게 되는데, 정답을 맞히시면 즐겁게 로그인하실 수 있습니다.
psftp 명령의 경우 -i 매개변수를 추가하고 인증서 파일 경로를 지정하면 됩니다.
위 구성을 수정하기 위해 원격으로 서버를 운영하는 경우 모든 단계에서 주의를 기울이고 실수하지 않도록 주의하세요. 구성이 잘못되어 SSH 연결이 불가능할 경우 실패하게 됩니다.
기본적으로 위의 네 가지 사항에 따라 구성한 후에는 Linux에서의 SSH 액세스가 비교적 안전합니다. 물론 보안과 불안은 상대적입니다. 서버 로그를 정기적으로 확인하여 숨겨진 위험을 적시에 발견하고 제거해야 합니다.
기사 출처: http://www.xiaohui.com/dev/server/linux-centos-ssh-security.htm