CentOS 7 / SSH / 포트 변경하는 방법

리눅스 서버에 SSH 접속을 하는 공격이 있습니다. SSH Brute Force라고 하는데, 여러 아이디와 비밀번호로 로그인을 시도하는 공격입니다.

이 공격을 방어하는 방법은 여러가지가 있습니다.

  • root 계정으로 로그인 못하게 하기
  • 암호를 복잡하게 만들기
  • 접속 가능 IP를 정하기
  • SSH 포트 번호 바꾸기

이 중에서 SSH 포트 번호 바꾸는 방법을 정리해보겠습니다. CentOS 7 기준이며, 포트 번호를 1980으로 바꾼다고 가정하겠습니다.

SSH 설정 파일 수정

/etc/ssh/sshd_config에 다음의 코드를 추가합니다.

Port 1980

SSH 다시 시작

다음과 같이 명령하여 SSH를 다시 시작합니다.

systemctl restart sshd.service

다시 시작해도 현재 접속은 끊기지 않습니다. 문제가 발생하면 곤란하니 접속을 끊지 않고 작업하는 게 좋습니다.

SELINUX 설정

SELINUX를 사용하고 있다면 다음과 같이 명령하여 1980 포트를 사용할 수 있게 만듭니다.

semanage port -a -t ssh_port_t -p tcp 1980

방화벽 설정

방화벽에 1980 포트를 추가합니다.

firewall-cmd --permanent --zone=public --add-port=1980/tcp

방화벽을 다시 로드합니다.

firewall-cmd --reload

테스트

현재 접속은 그대로 두고, SSH 클라이언트 프로그램을 새로 열여 변경한 포트로 접속해봅니다.

Log

참고로, SSH 접속과 관련된 로그는

/var/log/secure

에 있습니다.

같은 카테고리의 다른 글

CentOS / 버전 확인하는 방법

CentOS / 버전 확인하는 방법

cat /etc/redhat-release # cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) cat /etc/*release* # cat /etc/*release* CentOS Linux release 7.4.1708 (Core) Derived from Red Hat Enterprise Linux 7.4 (Source) NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" CentOS Linux release 7.4.1708 (Core) CentOS Linux release 7.4.1708 (Core) cpe:/o:centos:centos:7

CentOS 7 / ntp로 시간 동기화 하는 방법

CentOS 7 / ntp로 시간 동기화 하는 방법

리눅스가 OS인 서버의 시간과 실제 시간을 동기화하는 방법 중의 하나는 ntp를 이용하는 것입니다. CentOS 7에 ntp를 설치하고 설정하는 방법을 요약합니다. ntp 설치 yum install ntp 동기화할 서버 주소 가까운 곳에 있는 시간 서버를 사용하는 게 좋습니다. (하지만, 설정을 변경하지 않아도 큰 문제는 없습니다.) 서버 주소는 http://www.pool.ntp.org/에서 구할 수 있습니다. 지역을 아시아로 했을 때의 서버 주소는 다음과 같습니다. server 0.asia.pool.ntp.org server ...

CentOS / 원격 데스크톱으로 연결하는 방법

CentOS / 원격 데스크톱으로 연결하는 방법

서버용으로 CentOS를 사용하는 경우 보통 Minimal로 설치하고, 원격 접속은 SSH로 합니다. 하지만 하드웨어 사양이 좋아지고 사용의 편리함으로 GUI(Graphical User Interface)를 설치하는 경우도 많아지고 있습니다. GUI가 설치되어 있다면 SSH보다는 원격 데스크톱으로 관리하는 게 편합니다. CentOS에 원격 데스크톱으로 접속하는 방법을 알아봅니다. 패키지 설치 다음과 같이 명령하여 EPEL(Extra Packages of Enterprise Linux) 저장소를 추가합니다. yum install ...

CentOS 8 / 언어 변경하는 방법

CentOS 8 / 언어 변경하는 방법

현재 언어 확인하기 # localectl System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us 사용 가능한 언어 확인하기 # localectl list-locales C.utf8 en_AG en_AU en_AU.utf8 en_BW en_BW.utf8 en_CA en_CA.utf8 en_DK en_DK.utf8 en_GB en_GB.iso885915 en_GB.utf8 en_HK en_HK.utf8 en_IE en_IE.utf8 en_IE@euro en_IL en_IN en_NG en_NZ en_NZ.utf8 en_PH en_PH.utf8 en_SC.utf8 en_SG en_SG.utf8 en_US en_US.iso885915 en_US.utf8 en_ZA en_ZA.utf8 en_ZM en_ZW en_ZW.utf8 ko_KR.euckr ko_KR.utf8 언어를 한글로 변경하기 # localectl set-locale LANG=ko_KR.utf8 # localectl System Locale: LANG=ko_KR.utf8 ...

CentOS 7 / SELinux 끄는 방법

CentOS 7 / SELinux 끄는 방법

SELinux 인터넷에 연결된 리눅스라면 SELinux를 사용하는 게 좋다고 하지만, 설정이 어렵습니다. 위험을 감수하고서라도 편하게 사용하고 싶다면 SELinux를 끌 수 있습니다. SELinux를 끄는 두 가지 방법을 소개합니다. 방법 1 다음과 같이 명령하면 SELinux가 꺼집니다. 재부팅하면 다시 SELinux가 켜집니다. setenforce 0 만약 다시 SELinux를 사용하고 싶다면 다음과 같이 명령합니다. setenforce 1 방법 2 /etc/selinux/config에 다음과 같은 코드가 있습니다. SELINUX=enforcing 다음과 같이 바꿉니다. SELINUX=disabled 시스템을 재부팅하면 ...

CentOS / Apache, PHP, MariaDB 설치하는 방법

CentOS / Apache, PHP, MariaDB 설치하는 방법

CentOS에 Apache, PHP, MariaDB를 설치하는 방법을 간략히 정리합니다. APM 설치 Apache, PHP, MariaDB을 설치합니다. yum install httpd php mariadb-server php-mysql 서비스 설정 Apache가 부팅 시 자동으로 시작되도록 합니다. systemctl enable httpd.service MariaDB가 부팅 시 자동으로 시작되도록 합니다. systemctl enable mariadb.service Apache를 시작합니다. systemctl start httpd.service MariaDB를 시작합니다. systemctl start mariadb.service 방화벽 설정 http로 접속할 수 있도록 포트를 열어줍니다. firewall-cmd --permanent --add-service=http https로 접속할 수 있도록 포트를 ...

CentOS / hostname 확인하고 변경하는 방법

CentOS / hostname 확인하고 변경하는 방법

명령어 이용하기 hostname 확인 다음과 같이 명령하면 hostname을 출력합니다. hostname hostname 변경 다음과 같이 명령하면 hostname을 abc로 변경합니다. hostnamectl set-hostname abc 설정 파일 이용하기 hostname 확인 hostname 설정 파일은 /etc/hostname입니다. 그 파일을 열거나 다음과 같이 명령하여 설정 파일의 내용을 볼 수 있습니다. cat /etc/hostname hostname 변경 텍스트 편집기로 열면 한 줄의 코드가 있는데, 그것이 hostname입니다. 그 코드를 바꾸고 저장하면 hostname이 변경됩니다. 변경 사항 ...

CentOS 7 / MySQL 설치하고 root 사용자 비밀번호 만드는 방법

CentOS 7 / MySQL 설치하고 root 사용자 비밀번호 만드는 방법

CentOS 7 패키지에는 MySQL 대신 MariaDB가 들어있습니다. 이런저런 이유로 MySQL을 꼭 사용해야 한다면 좀 번거로운 과정을 거쳐야 합니다. 일단 다음 사이트에 접속합니다. https://dev.mysql.com/downloads/repo/yum/ CentOS 7에 맞는 패키지 이름을 확인합니다. CentOS 7에서 다음과 같이 명령하여 패키지를 다운로드합니다. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 패키지를 설치합니다. rpm -ivh mysql57-community-release-el7-11.noarch.rpm MySQL을 설치합니다. yum install mysql-server 시스템을 시작할 때 자동으로 MySQL이 시작되도록 합니다. systemctl enable mysqld MySQL을 시작합니다. systemctl start mysqld MySQL을 ...

CentOS 7 / SSH / 포트 변경하는 방법

CentOS 7 / SSH / 포트 변경하는 방법

리눅스 서버에 SSH 접속을 하는 공격이 있습니다. SSH Brute Force라고 하는데, 여러 아이디와 비밀번호로 로그인을 시도하는 공격입니다. 이 공격을 방어하는 방법은 여러가지가 있습니다. root 계정으로 로그인 못하게 하기 암호를 복잡하게 만들기 접속 가능 IP를 정하기 SSH 포트 번호 바꾸기 이 중에서 SSH 포트 번호 바꾸는 방법을 정리해보겠습니다. CentOS 7 기준이며, 포트 번호를 1980으로 바꾼다고 가정하겠습니다. SSH 설정 파일 ...

CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

하나의 서버에 하나의 사이트만 운영하는 것이 가장 이상적일 것입니다. 하지만 사이트 접속자가 많지 않거나 서버 사양이 훌륭하다면 여러 사이트를 하나의 서버에서 운영하는 게 경제적입니다. CentOS에 Apache 웹서버를 설치하고 운영하는 경우 여러 사이트를 운영할 수 있게 설정하는 방법을 요약해보겠습니다. 네임 서버 설정 각 도메인의 네임 서버의 호스트 IP를 웹서버 아이피로 설정합니다. 디렉토리 만들기 한 서버에 aaa.com과 ...