cron을 사용하여 SSH를 활성화/비활성화할 수 있습니까?

cron을 사용하여 SSH를 활성화/비활성화할 수 있습니까?

ssh하루 중 특정 시간에 서버를 비활성화 하고 싶습니다 . 나는 최근에 무차별 대입을 통한 크래킹을 경험했기 때문에 이 작업을 수행하고 싶었습니다 ssh. crontabSSH를 활성화/비활성화하는 데 사용할 수 있습니까 ?

ssh그렇지 않다면 하루 중 특정 시간에 비활성화할 수 있는 다른 방법이 있습니까 ?

답변1

물론 적절한 시간에 SSH 데몬(예: /etc/init.d/ssh stop및 )을 중지하고 시작하려면 초기화 스크립트를 실행하세요 /etc/init.d/ssh start.

그러나 가장 안전한 방법은 물론, Fail2ban, 포트 노킹, 비밀번호 인증 비활성화 및 SSH 키만 사용하는 방법을 살펴보는 것이 좋습니다.두 가지 요인인증 및이디내 비밀번호.

답변2

특정 시간에 SSH 서버를 종료하는 대신 다음을 사용하는 것이 좋습니다.pam_time대신 모듈은 일주일 중 특정 시간에 인증을 거부합니다. 이는 해킹이 아니며 cron에 의존하지 않으며 인증 규칙 세트를 정의하는 데 더 많은 유연성을 제공합니다.

  • UsePAM yes당신 의sshd_config
  • 모듈을 /etc/pam.d/sshd삽입하려면 편집하세요.pam_time
  • 에 시간 제한 규칙을 작성하세요 /etc/security/time.conf.

답변3

선택할 수 있는 다양한 옵션이 있습니다.

  1. cron다음과 같이 서버를 켜고 ssh끌 수 있습니다 .
  2. 포트를 iptables차단 및 차단 해제하는 데 사용할 수 있습니다.ssh
  3. ssh다른 포트에서 실행하면 이 모든 문제를 해결할 수 있습니다.
  4. 포트 노킹을 구현할 수 있습니다
  5. 외부 액세스를 완전히 비활성화 ssh하고 VPN을 강제로 사용할 수 있습니다.

사용 가능한 다른 솔루션이 있다고 확신하지만 5개에서 멈췄습니다.

답변4

timeiptables 모듈이 있습니다 :

iptables ... -m time --timestart TIME --timestop TIME --days DAYS -j ACTION

-p tcp -j REJECT --reject-with tcp-rst포트가 닫힌 척하는 데 사용됩니다 (기본 동작 REJECT은 ICMP 패킷입니다).

ESTABLISHED또한 열려 있는 연결이 계속 작동하도록 하려면 연결이 통과하도록 허용하는 또 다른 규칙을 앞에 추가할 것입니다 .

이는 스크립트를 사용하여 특정 시간에 특정 작업을 수행하는 솔루션에 비해 큰 이점이 있습니다. 이는 정적 구성이고 액세스를 영구적으로 차단하는 등의 실패 모드가 발생할 가능성이 적기 때문입니다.

관련 정보