답변:
SSH 서버에 대해 이야기하고 있으므로 명령 줄 솔루션을 제공합니다.
사용자 로그인 및 로그 아웃을 추적하십시오. 파일 /var/log/auth.log
에는이 정보가 있어야합니다.
해당 사용자의 활동 추적 : 사용자가 상당히 결백 한 경우 .bash_history
홈 디렉토리에서 파일 을 확인할 수 있습니다 . 실행 한 명령 목록이 표시됩니다. 문제는 물론이 파일을 삭제하거나 편집 할 수 있다는 것입니다.
사용자가 로그를 삭제하지 못하도록 방지 : 사용자는을 터치 할 수 없습니다 auth.log
. 그들과 놀지 못하게하려면 .bash_history
몇 가지 트릭 을해야합니다 .
사용자가 루트 액세스 권한을 얻으려면 어떻게해야합니까? : 넌 망했어. 그들이 실수하지 않으면 모든 발자국을 숨길 수 있습니다.
~/.bash_history
또는 ~/.bashrc
)을 시작하면에 표시 되기 때문에 추적 성이 약간 향상 됩니다 $HISTFILE
. 그러나 그 자체로 완벽하게 합법적 일 수 있습니다 (예 : 사용자가 실행 zsh
하기를 원하거나 다른 옵션으로 자신의 옵션을 설정하려고 함 bashrc
).
[면책 조항] 나는 파티에 늦었다는 것을 알고 있지만, 다른 질문에 대한 답변을 붙여 넣기를 원합니다. 독자에게 좋은 통찰력을 줄 수 있다고 생각하기 때문에이 질문은가는 것 같습니다. 기본 ssh 정보를위한 장소입니다.
AskUbuntu 에서이 질문 을 읽고 VPS를 확인한 후에도 무차별 대대적 인 공격 시도 만 보인 비슷한 문제가있었습니다 . 그때 내가 행동하기로 결정했습니다.
이제 내가 연결 한 질문에 따라 ssh를 통해 컴퓨터에서 로그인 시도가 실패한 것을 보려면 (무차별 대입 시도 또는 기타 일 수 있음) 다음을 입력하십시오.
grep sshd.\*Failed /var/log/auth.log | less
출력이 여러 줄로 구성되는 경우 (특히 짧은 간격 사이에 발생한 경우) 많은 무차별 대입 시도가 발생하면 다음과 같은 조치를 수행 할 수 있습니다.
이렇게하려면 / etc / ssh / sshd_config 에있는 파일을 좋아하는 편집기로 엽니 다 (예 :)vim /etc/ssh/sshd_config
.
1. 포트 22에서 ssh를 이동 시키십시오 . 이제 다음과 같은 행을 찾으십시오.
# What ports, IPs and protocols we listen for
Port 22
포트 22를 주석 처리하고 원하는 사람을 사용하십시오. 예:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
1024 미만의 포트에는 특별한 (루트) 권한이 필요합니다. 나는 이것이 어떻게 그것을 방해 할 수 있는지 모르겠지만 그냥 말하고 있습니다.
2. ssh를 통한 루트 로그인 비활성화 : 루트 사용자 이름을 예측할 수 있고 시스템에 대한 완전한 액세스를 제공하므로 SSH를 통해이 계정에 무제한 액세스를 제공하는 것은 현명하지 않습니다. PermitRootLogin 행을 찾아서 no로 설정하십시오 .
PermitRootLogin no
3. 비밀번호 인증 비활성화 : SSH 키 를 생성하고 사용 하여 시스템에 로그인합니다. 암호를 사용하지 않으면 공격자는 서버에 액세스하기 위해 SSH 개인 키를 추측 (또는 도용)해야합니다. 매우 어려운 것. PasswordAuthentication 을 읽는 행을 찾아서 no로 설정하십시오.
PasswordAuthentication no
!경고! 그렇게하기 전에,이 설명서를 참조하십시오 이상 여기에 인증서 인증을 설정하는 방법에 대한.
참고 : 변경 한 후에는를 사용하십시오 sudo /etc/init.d/ssh restart
. ssh를 통해 다른 포트에 연결하려면 다음을 사용하십시오 ssh username@hostname.com -p <port_number>
.
Linux, IPTables에 통합 된 매우 강력하고 효과적인 방화벽을 설정하는 방법에 대한 이 안내서 를 확인하십시오 .
개인적으로 빠르게 사용하는 것은 Fail2Ban 입니다. Fail2ban은 로그인 시도 실패에 대한 로그 파일을 모니터합니다. IP 주소가 최대 인증 시도 횟수를 초과하면 네트워크 수준에서 차단되고 이벤트가 로그인됩니다 /var/log/fail2ban.log
. 설치하려면 :sudo apt-get install fail2ban
라는 리눅스 명령이 있는데 history
,이 시점까지 어떤 명령이 입력되었는지 확인할 수 있습니다. history
해당 지점까지 모든 명령을 보려면 터미널에 입력 하십시오. 당신이 뿌리면 도움이 될 수 있습니다 .
특정 명령 을 검색 하려면 다음을 수행하십시오 .history | grep command-name
ssh 이후의 모든 명령 을 나열 하려면 다음 을 수행 하십시오 .fc -l ssh
vi를 사용하여 명령을 편집 할 수도 있습니다 (vim을 시도하지는 않았지만 잘 작동한다고 가정합니다).fc -e vi
당신은 또한 역사를 삭제할 수 있습니다 :history -c
참고 : 명령의 팬이 아닌 경우 history
홈 디렉토리 ( cd ~
)에 .bash_history (bash를 사용하는 경우 )라는 파일 cat
이 있으며 bash 쉘에 입력 된 모든 파일을 볼 수 있습니다 .
약간 과잉이지만 "프로세스 이벤트 커넥터"를 사용하여 시스템에서 실행되는 모든 것을 볼 수 있습니다.
http://www.outflux.net/blog/archives/2010/07/01/reporting-all-execs/
unset HISTFILE
bash 안에 입력하는 것을 막을 방법이 없으며 bash 기록이 기록되지 않습니다.