동적 IP 주소로 SSH에 대한 액세스 제한

R4D4

나는 비활성화 PasswordAuthenticationSSH과 로그인을위한 공공 - 민간 키를 사용하고 있습니다. 그러나, 가이드의 수 (특히, 이 중 하나 ) 난 단지 내 특정 IP 주소에서 SSH 액세스를 허용 제안 보았다.

/etc/ssh/sshd_config:
    AllowUsers deploy@(your-ip) deploy@(another-ip-if-any)

ufw allow from {your-ip} to any port 22
  • 내 IP 주소로 제한 sshd_config하고 방화벽 규칙을 추가하는 데 문제가 있습니까?

  • 동적 IP 주소가 있다고 가정하면 호스팅 공급자 콘솔 터미널을 사용해야하므로 이러한 규칙은 쓸모가 없어 보입니다. 루트에 로그인하여 홈 IP에서 액세스를 허용해야합니다. 어떤 경우 : 제안 된 경로는 무엇입니까?

1 : 호스팅 공급자 터미널을 처음 사용하지 않는 한 SSH에 의한 모든 로그인을 허용하지 않습니다. 루트로 로그인하여 홈 IP에서 SSH 로의 액세스를 허용합니까?

2 : SSH 포트를 열어두고 로그인을 위해 공개-개인 키를 신뢰합니다.

3 : 다른 제안이 있습니까?

R4D4

글쎄, 나는 많은 파기를했지만 아무것도 찾지 못했다. 그래서 저는 동적 DNS 서비스로 가정용 컴퓨터를 설정하고 다음 bash 스크립트를 만들었습니다. 다른 사람에게 유용 할 수 있기를 바랍니다.

명령:

  • 이 스크립트는 SSH에만 국한 되지 않으며 동적 호스트가 해당 포트에서 수신하는 서비스와 관계없이 ufw를 사용하여 대상 포트에 영구적으로 액세스 할 수 있도록 허용하는 방법입니다. 따라서 포트 22를 사용하면 기본적으로 동적 호스트에서 SSH 로의 영구 액세스가 허용됩니다. 마찬가지로이 스크립트를 사용하여 동적 호스트에서 FTP (포트 21)와 같은 항목에 영구적으로 액세스 할 수 있습니다.

  • 필요한 것은 파일 상단의 RemoteHostNamePortNumber변수를 수정하는 것뿐입니다 . 분명히는 RemoteHostName동적 DNS 공급자가 제공 한 호스트 이름 PortNumber이고은 액세스를 허용하는 포트입니다.

  • 에서 확인 된 IP가 RemoteHostName대상 포트에 대한 액세스 권한이있는 ufw 내에 이미 존재하는 경우 변경할 사항이 없으므로 스크립트가 종료됩니다.

  • 존재하지 않는 경우 ufw 내에 대상 포트 번호가있는 모든 항목이 삭제되고 업데이트 된 IP 주소 및 대상 포트를 사용하여 새 항목이 추가됩니다. 간단히 말해서 스크립트가 모든 포트를 탐색하므로 스크립트의 포트와 관련된 다른 규칙에 ufw를 사용 하지 마십시오 .

  • 이 스크립트가 크론 작업 또는 다른 작업에 의해 호출되는 경우 이론적으로 항상 ufw 내에서 IP 주소를 업데이트해야합니다.

  • 스크립트는 다음을 출력합니다.

    1) Standard output: Could not resolve the IP address of the RemoveHostName XYZ
    2) Standard output: No change necessary as the IP address XYZ already has access to port XYZ.
    3) Standard output: Deleting old ufw rule: XYZ
    4) Standard output: Adding new ufw rule: XYZ
    5) Error output: Could not resolve the IP address of the RemoveHostName XYZ
    
  • 하지만 저는 bash 스크립팅에 익숙 하지 않고 정규 표현식에 익숙하지 않습니다 . 따라서이 스크립트를 사용하는 경우 자신과 나에게 호의를 베풀고 살펴보십시오. 버그가 발견되면 댓글이나 새로운 답변을 남겨주세요.

스크립트:

#!/bin/bash


##############################################################
#Variables
##############################################################    
RemoteHostName=someremotehost.dyndnsorsomething.com
PortNumber="22"


##############################################################
#Check if the dynamic IP address exists within ufw.
##############################################################
DynamicIPAddress=$(host $RemoteHostName | awk '/has address/ { print $4 }')
if [[ $DynamicIPAddress = "" ]]
then
    echo $(date -u -Iseconds): Could not resolve the IP address of the RemoveHostName $RemoteHostName >&2
    exit
fi

UFWRules=$(ufw status numbered)
REGEX=" $PortNumber (.*)ALLOW IN(.*)$DynamicIPAddress$"
while read -r line; do
    if [[ $line =~ $REGEX ]]
    then
        echo $(date -u -Iseconds): No change necessary as the IP address $DynamicIPAddress already has access to port $PortNumber.
        exit
    fi
done <<< "$UFWRules"


##############################################################
#Remove all entries with the given port number.
##############################################################
while true
do

    UFWRules=$(ufw status numbered)
    REGEX="(.*) $PortNumber (.*)ALLOW IN(.*)"
    Matched="No"
    while read -r line; do
        if [[ $line =~ $REGEX ]]
        then
            echo $(date -u -Iseconds): Deleting old ufw rule: $line
            RuleNumber=$(echo $line | (cut -d "[" -f2 | cut -d "]" -f1))
            ufw --force delete $RuleNumber
            Matched="Yes"
            break
        fi
    done <<< "$UFWRules"

    if [ $Matched = "No" ]
    then
        break
    fi

done


##############################################################
#Add in access from the dynamic IP address.
##############################################################
echo $(date -u -Iseconds): Adding new ufw rule: "ufw allow from $DynamicIPAddress to any port $PortNumber".
ufw allow from $DynamicIPAddress to any port $PortNumber

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

IP 주소로 특정 클라이언트에 대한 SSH 액세스 제한

분류에서Dev

Oracle의 특정 IP 주소에 대한 스키마 액세스 제한

분류에서Dev

IP 주소를 통해 디렉토리에 대한 액세스 제한

분류에서Dev

사용자의 특정 IP에 대한 SSH 액세스 제한

분류에서Dev

사용자의 특정 IP에 대한 SSH 액세스 제한

분류에서Dev

특정 IP 주소에서 경로 / URL에 대한 액세스 허용

분류에서Dev

특정 계정에 대한 SSH 별 액세스를 LAN / 특정 IP로 제한합니까?

분류에서Dev

동적으로 모델 속성에 대한 Django 액세스

분류에서Dev

WSDL 파일에서 서비스 제공자에 대한 동적 IP 주소 사용

분류에서Dev

iptables 및 규칙에 대한 IP 주소를 동적으로 표현

분류에서Dev

.htaccess가 허용되지 않는 경우 IP 주소를 기반으로 웹 사이트에 대한 액세스 제한

분류에서Dev

AWS S3 정적 웹 호스팅에 액세스하기위한 IP 주소 화이트리스트

분류에서Dev

다른 사설 IP에 대한 동적 DNS 주소 라우팅

분류에서Dev

공유 리소스에 대한 액세스 동기화 최적화

분류에서Dev

수동으로 주소를 할당 한 포인터에서 값 액세스

분류에서Dev

동적으로 생성 된 배열 객체에 대한 JavaScript 액세스

분류에서Dev

Linux / Oracle db : 로컬 IP 주소를 사용하여 동일한 서브넷의 웹 사이트에 액세스하는 방법은 무엇입니까?

분류에서Dev

정적 파일에 대한 CherryPy 액세스 제한

분류에서Dev

AWS Lightsail-정적 IP에 대한 직접 액세스 비활성화

분류에서Dev

키 대 IP 주소 변경에 대한 SSH RSA 호스트 키 경고 방지

분류에서Dev

.htaccess가 제대로 작동하지 않는 디렉토리에 대한 액세스를 제한합니다.

분류에서Dev

변경되는 IP 주소로 서버에 대한 SSH / SCP 자동화 (Amazon EC2)

분류에서Dev

Java에서 메소드 호출에 대한 액세스 제한

분류에서Dev

세계에서 볼 수있는 주소와 로컬 IP 주소로 동일한 http 성능을 얻음

분류에서Dev

동일한 호스트에 대한 mDNS / ZeroConf / Avahi 및 다중 IP 주소

분류에서Dev

동일한 호스트에 대한 mDNS / ZeroConf / Avahi 및 다중 IP 주소

분류에서Dev

단일 저장소에 대한 Github 액세스 제한

분류에서Dev

유사한 이름으로 동적으로 formvalue에 액세스

분류에서Dev

동적 IP 주소 : 블랙리스트에 대한 수정 사항이 있습니까?

Related 관련 기사

  1. 1

    IP 주소로 특정 클라이언트에 대한 SSH 액세스 제한

  2. 2

    Oracle의 특정 IP 주소에 대한 스키마 액세스 제한

  3. 3

    IP 주소를 통해 디렉토리에 대한 액세스 제한

  4. 4

    사용자의 특정 IP에 대한 SSH 액세스 제한

  5. 5

    사용자의 특정 IP에 대한 SSH 액세스 제한

  6. 6

    특정 IP 주소에서 경로 / URL에 대한 액세스 허용

  7. 7

    특정 계정에 대한 SSH 별 액세스를 LAN / 특정 IP로 제한합니까?

  8. 8

    동적으로 모델 속성에 대한 Django 액세스

  9. 9

    WSDL 파일에서 서비스 제공자에 대한 동적 IP 주소 사용

  10. 10

    iptables 및 규칙에 대한 IP 주소를 동적으로 표현

  11. 11

    .htaccess가 허용되지 않는 경우 IP 주소를 기반으로 웹 사이트에 대한 액세스 제한

  12. 12

    AWS S3 정적 웹 호스팅에 액세스하기위한 IP 주소 화이트리스트

  13. 13

    다른 사설 IP에 대한 동적 DNS 주소 라우팅

  14. 14

    공유 리소스에 대한 액세스 동기화 최적화

  15. 15

    수동으로 주소를 할당 한 포인터에서 값 액세스

  16. 16

    동적으로 생성 된 배열 객체에 대한 JavaScript 액세스

  17. 17

    Linux / Oracle db : 로컬 IP 주소를 사용하여 동일한 서브넷의 웹 사이트에 액세스하는 방법은 무엇입니까?

  18. 18

    정적 파일에 대한 CherryPy 액세스 제한

  19. 19

    AWS Lightsail-정적 IP에 대한 직접 액세스 비활성화

  20. 20

    키 대 IP 주소 변경에 대한 SSH RSA 호스트 키 경고 방지

  21. 21

    .htaccess가 제대로 작동하지 않는 디렉토리에 대한 액세스를 제한합니다.

  22. 22

    변경되는 IP 주소로 서버에 대한 SSH / SCP 자동화 (Amazon EC2)

  23. 23

    Java에서 메소드 호출에 대한 액세스 제한

  24. 24

    세계에서 볼 수있는 주소와 로컬 IP 주소로 동일한 http 성능을 얻음

  25. 25

    동일한 호스트에 대한 mDNS / ZeroConf / Avahi 및 다중 IP 주소

  26. 26

    동일한 호스트에 대한 mDNS / ZeroConf / Avahi 및 다중 IP 주소

  27. 27

    단일 저장소에 대한 Github 액세스 제한

  28. 28

    유사한 이름으로 동적으로 formvalue에 액세스

  29. 29

    동적 IP 주소 : 블랙리스트에 대한 수정 사항이 있습니까?

뜨겁다태그

보관