CentOS 7 ssh 설정 및 ssh 포트 변경 쉽고 정확하게

반응형

최신 리눅스 배포판에는 기본적으로 openssh rpm이 설치되어 있습니다. 그렇기 때문에 굳이 따로 설치할 필요는 없지만 워낙 많이 사용되고 있기 때문에 혹시나 없으면 굉장히 불편한 게 바로 ssh입니다. 

 

이번 시간에는 centos 7 ssh 설정 방법에 대해서 정확하면서 쉽게 설명드리겠습니다. 가시죠!!

사용 조건

 

# ssh 프로토콜 사용 조건

* openssh-server RPM이 설치되어 있고, 프로세스가 동작 중 이어야 한다.

* 22번(default port number) tcp 포트에 대해 방화벽 정책에서 허용되어야 한다.

 

 

ssh 설치

 

# 설치 유무 확인

아래와 같이 최근 리눅스 배포판에는 기본적으로 openssh-server가 탑재되어 있습니다.

[root@Eloquence ~]# rpm -qa | grep -i openssh-server
openssh-server-7.4p1-21.el7.x86_64

 

또는

 

[root@Eloquence ~]# which sshd

/usr/sbin/sshd

 

# 설치 방법

설치 유무 확인 과정에서 openssh-server가 보이지 않는 경우 yum으로 설치 진행

[root@Eloquence ~]# yum install openssh-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

 

. . . (중략)

 

   Intsalling : openssh-server-7.4p1-21.e17.x86_64

1/1

   Verifying : openssh-server-7.4p1-21.e17.x86_64

1/1

 

Installed:

   openssh-server.x86_64 0:7.4p1-21.e17

 

Complete!

 

# 설치 확인

[root@Eloquence ~]# rpm -qa | grep -i openssh-server
openssh-server-7.4p1-21.el7.x86_64 

 

또는

 

[root@Eloquence ~]# which sshd

/usr/sbin/sshd

 

ssh 설정

 

# ssh config 파일 설정

[root@Eloquence ~]# vi /etc/ssh/sshd_config

#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

 

. . . (중략)


Port 22 (주석 제거)
#AddressFamily any
ListenAddress 0.0.0.0
#ListenAddress ::

 

. . . (중략)

 

# Authentication:

#LoginGraceTime 2m (사용자 인증 과정에서의 최대 시간 - 연결 후 2m 안에 사용자 인증이 안될 시 연결 종료)
#PermitRootLogin yes (root 로그인 - yes : 허용   no : 차단)
#StrictModes yes
#MaxAuthTries 6 (최대 접속 시도 수 - 6회 이상 인증 실패 시 연결 종료)
#MaxSessions 10 (최대 접속 세션 수 - 동시 접속 클라이언트 최대 10개)

위 값들은 보안상 '#'주석 제거 후 설정 적용이 권장된다.

 

방화벽 설정

 

# 방화벽 설정 (CentOS6, 7 그리고 Ubuntu 각각 방법이 상이하다)

ssh를 사용하기 위해 특정 포트를 방화벽에서 허용시켜준다.

 

# CentOS 6 - iptables (방화벽)

[root@Eloquence ~]# iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

 

# CentOS 7 - firewalld (방화벽)

[root@Eloquence ~]# firewall-cmd --zone=public --add-port=22/tcp --permanent
success

 

# Ubuntu - ufw (방화벽)

[root@Eloquence ~]# ufw allow 22/tcp

 

 

ssh 프로세스 실행

 

# ssh-server 프로세스 실행

# CentOS 6

[root@Eloquence ~]# service sshd start

[root@Eloquence ~]# service sshd status
Redirecting to /bin/systemctl status sshd.service
 sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 일 2019-12-01 15:36:14 KST; 4h 33min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1072 (sshd)

. . . (후략)

 

[root@Eloquence ~]# ps -ef | grep sshd
root      1072     1  0 15:36 ?        00:00:00 /usr/sbin/sshd -D

 

# CentOS 7

[root@Eloquence ~]# systemctl start sshd

[root@Eloquence ~]# systemctl status sshd
 sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since 일 2019-12-01 15:36:14 KST; 4h 35min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1072 (sshd)


. . . (후략)

 

설치 및 모든 설정이 끝났습니다. 이제는 서버 ip 확인 후 클라이언트에서 ssh를 이용하여 서버로 접근할 수 있겠네요!!

 

아! 혹시나 ssh default port 22번을 바꾸고 싶다면 아래 설명을 참고하세요.

ssh 포트 변경

 

# ssh 포트 변경 

임시로 포트를 2222로 변경하는 것으로 가정하겠습니다.

 

# ① sshd_config 파일 수정

[root@Eloquence ~]# vi /etc/ssh/sshd_config

#       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ 

# This is the sshd server system-wide configuration file.  See 
# sshd_config(5) for more information. 

 

. . . (중략)


Port 2222
#AddressFamily any 
ListenAddress 0.0.0.0 
#ListenAddress :: 

 

# ② services 파일 수정

[root@Eloquence ~]# vi /etc/services
# The Registered Ports are those from 1024 through 49151
# The Dynamic and/or Private Ports are those from 49152 through 65535
#
# Each line describes one service, and is of the form:
#
# service-name  port/protocol  [aliases ...]   [# comment]

tcpmux          1/tcp                           # TCP port service multiplexer
tcpmux          1/udp                           # TCP port service multiplexer

 

. . . (중략)

 

ftp             21/tcp
ftp             21/udp          fsp fspd
ssh             2222/tcp                          # The Secure Shell (SSH) Protocol
ssh             2222/udp                          # The Secure Shell (SSH) Protocol
telnet          23/tcp
telnet          23/udp

 

# 방화벽 설정

# CentOS 6 - iptables (방화벽)

[root@Eloquence ~]# iptables -A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT

 

# CentOS 7 - firewalld (방화벽)

[root@Eloquence ~]# firewall-cmd --zone=public --add-port=2222/tcp --permanent 
success 

 

# Ubuntu - ufw (방화벽)

[root@Eloquence ~]# ufw allow 2222/tcp

 

# ssh-server 프로세스 재시작

[root@Eloquence ~]# systemctl restart sshd

[root@Eloquence ~]# systemctl status sshd
 sshd.service - OpenSSH server daemon 
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) 
   Active: active (running) since 일 2019-12-01 15:36:14 KST; 4h 33min ago 
     Docs: man:sshd(8) 
           man:sshd_config(5) 
 Main PID: 1072 (sshd) 

. . . (후략)

 

[root@Eloquence ~]# ps -ef | grep sshd 
root      1072     1  0 15:36 ?        00:00:00 /usr/sbin/sshd -D 

 

# 변경된 포트 확인

[root@Eloquence ~]# netstat -natp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State               PID/Program name
tcp        0      0 127.0.0.1:25                          0.0.0.0:*               LISTEN                1156/master
tcp        0      0 0.0.0.0:2222                          0.0.0.0:*               LISTEN                11113/sshd
tcp        0     64 192.168.0.100:2222          xxx.xxx.xxx.xxx:5742     ESTABLISHED     11105/sshd: root@pt

tcp6       0      0 ::1:25                                     :::*                   LISTEN                1156/master

 

※. 3번째 정보는 현재 클라이언트에서 서버로 ssh 프로토콜로 1대가 접속되어 있어서 나오는 정보.

 

centos 7 ssh 포트 변경 방법까지 자세하게 알아봤습니다. 위 방법대로 진행하면 어려운 거 하나 없이 ssh 프로토콜을 설정하고 사용하실 수 있습니다. 감사합니다.

반응형

댓글

Designed by JB FACTORY