[python] Fabric으로 원격 서버 SSH 접속 제한하기

개요

Fabric은 Python으로 작성된 라이브러리로, SSH를 통해 원격 서버에 접속하여 명령어를 실행할 수 있도록 도와주는 도구입니다. 이번 포스트에서는 Fabric을 사용하여 원격 서버의 SSH 접속을 제한하는 방법을 알아보겠습니다.

필요한 패키지 설치

Fabric을 사용하기 위해서는 먼저 필요한 패키지를 설치해야 합니다. 아래의 명령어를 터미널에 입력하여 필요한 패키지를 설치합니다.

pip install fabric

SSH 접속 제한하기

Fabric을 사용하여 원격 서버의 SSH 접속을 제한하기 위해서는 fabfile.py라는 파일을 생성해야 합니다. 이 파일은 Fabric에서 사용되는 파이썬 스크립트입니다.

다음은 fabfile.py에 작성해야하는 코드입니다.

from fabric import Connection, Config

# SSH 접속 정보 설정
config = Config(overrides={'connect_kwargs': {'key_filename': '/path/to/private_key.pem'}})
connection = Connection('user@hostname', config=config)

# SSH 접속 제한하기
def restrict_ssh():
    connection.run('sudo systemctl stop sshd')
    connection.run('sudo iptables -A INPUT -p tcp --dport ssh -j DROP')
    connection.run('sudo iptables-save > /etc/iptables/rules.v4')
    connection.run('sudo systemctl start sshd')

위 코드에서 중요한 부분은 restrict_ssh() 함수입니다. 이 함수는 원격 서버에서 SSH 서비스를 중지하고, SSH 포트에 대한 입력을 차단한 뒤, 방화벽 설정을 저장하고 다시 SSH 서비스를 시작합니다.

사용법

fabfile.py를 작성한 후에는 아래와 같은 명령어를 사용하여 원격 서버의 SSH 접속을 제한할 수 있습니다.

fab restrict_ssh

결론

Fabric을 사용하면 간단하게 원격 서버의 SSH 접속을 제한할 수 있습니다. 이를 통해 보안을 강화하고 불필요한 접속을 차단하여 시스템의 안전성을 높일 수 있습니다.

참고 자료: