- 인쇄
- PDF
서버 원격 접속 오류 지원(Linux)
- 인쇄
- PDF
Linux 서버에 오류가 발생하여 원격 접속이 어려울 때 접속 문제를 해결하는 방법을 설명합니다.
서버 접속에 문제가 발생하면 네이버 클라우드 플랫폼 콘솔의 서버 목록에서 [서버 접속 콘솔] 버튼이 활성화됩니다.
ACG 설정 확인
서버에 원격으로 접속할 수 없는 경우, 가장 먼저 접속하려는 리소스의 IP 또는 Subnet이 ACG에서 허용되었는지 확인해 주십시오.
- ACG의 Inbound 규칙에서 다음 서비스에 대해 해당 포트가 올바르게 허용되어 있는지 확인해 주십시오(ACG 설정 참고).
서비스 허용 포트 SSH RDP
원격 접속 환경 확인
서버의 ACG 설정에 이상이 없는 경우, 다음 절차에 따라 운영 체제별 접속 환경 설정을 확인해 주십시오.
Linux 서버(CentOS 7 기준)
다음 절차에 따라 CentOS 7 운영 체제를 사용하는 Linux 서버의 접속 환경을 확인해 주십시오.
1. SSH 데몬 상태 확인
SSH 데몬 상태를 확인하는 방법은 다음과 같습니다.
- 다음 명령어를 입력해 SSH 데몬이 정상적으로 실행 중인 상태인지 확인해 주십시오.
# systemctl status sshd
active (running)
로 표시되는 경우 정상 실행 중입니다.inactive
로 표시되는 경우 SSH 데몬을 기동해 주십시오.- 데몬 기동 중 오류가 발생하는 경우 서버 로그를 확인해 SSH 데몬이 정상적으로 기동되도록 조치해 주십시오.
- 다음 명령어를 입력해 ssh 서비스가 22번 포트로
LISTEN
하는지 확인해 주십시오.- 22번 포트는 Ncloud에서 제공하는 서버의 기본 설정값입니다. 다른 포트로 수정한 경우 해당 포트를 ACG에서 허용했는지 확인하고 해당 포트로 검색해 주십시오.
# netstat -nap | grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 788/sshd tcp 0 64 10.0.1.6:22 61.83.152.147:54479 ESTABLISHED 75194/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 788/sshd
- 다음 명령어를 입력해 ssh 설정 파일(
sshd_config
)에서Port
및ListenAddress
항목에 설정된 부분이 있는지 확인해 주십시오.- 기본 설정은 주석 처리되어 있습니다.
# vi /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.93 2014/01/10 05:59:19 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/usr/bin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. # If you want to change the port on a SELinux system, you have to tell # SELinux about this change. # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER # #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: # The default requires explicit activation of protocol 1 #Protocol 2
2. hosts.deny 설정 상태 확인
hosts.allow
파일과 hosts.deny
파일에 설정된 부분이 있는지 확인해 주십시오. hosts.allow
파일과 hosts.deny
파일은 특정 클라이언트에 대한 서비스 허용 및 차단을 제어합니다.
- 기본 설정은 주석 처리되어 있습니다.
# cat /etc/hosts.allow
#
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
# cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
/etc/hosts.allow
,/etc/hosts.deny
파일은tcp_wrappers
만 제어하며, 규칙이 적용되는 순서는 다음과 같습니다./etc/hosts.allow
파일에 정의된 호스트의 접속은 허용/etc/hosts.allow
파일에 정의되지 않고/etc/hosts.deny
파일에 정의된 호스트의 접근은 거부- 둘 중 한 파일에도 정의되지 호스트의 접속은 허용
tcp_wrappers
는ssh
,telnet
,ftp
등xinetd
가 관리하는 데몬들의 특정 서비스만 제어할 수 있습니다.
3. 방화벽 확인
방화벽 상태를 확인하는 방법은 다음과 같습니다.
firewalld
firewalld
에서 ssh 거부 규칙을 정의했는지 확인하고,firewalld
를 실행해야 하는 경우 ssh 거부 규칙을 제외해 주십시오(기본 설정: 규칙 없음).# firewall-cmd --list-all public target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules:
iptables
iptables.service
가 설치된 경우iptables
에서 ssh 거부 규칙을 정의했는지 확인하고, ssh 거부 규칙을 제외해 주십시오(기본 설정: 규칙 없음).# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
SSH 데몬이 inactive
상태인 경우, firewalld
규칙은 적용되지 않지만 iptables
규칙은 적용됩니다.
4. 라우팅 확인
eth0에 대한 기본 경로(default route)가 설정되어 있지 않은 경우 접속이 이루어지지 않을 수 있습니다. 정적 경로(static route) 설정 상태를 확인해 주십시오.
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.5.1 0.0.0.0 UG 0 0 0 eth0
10.1.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
5. 권한 이슈 확인
SSH 설정 파일(/.ssh/config
)의 설정에 따라 root
계정의 원격 접속이 차단되어 있을 수 있습니다. root
계정으로 접속할 수 없는 경우 일반 계정으로 접속을 시도해 주십시오.
- 일반 계정이 없는 경우, 서버 접속 콘솔을 활성화한 후
root
계정으로 접속을 시도해 주십시오.
Linux 서버(Ubuntu 18.04 기준)
다음 절차에 따라 Ubuntu 18.04 운영 체제를 사용하는 Linux 서버의 접속 환경을 확인해 주십시오.
1. SSH 데몬 상태 확인
SSH 데몬 상태를 확인하는 방법은 다음과 같습니다.
- 다음 명령어를 입력해 SSH 데몬이 정상적으로 실행 중인 상태인지 확인해 주십시오.
# systemctl status sshd
active (running)
로 표시되는 경우 정상 실행 중입니다.inactive
로 표시되는 경우 SSH 데몬을 기동해 주십시오.- 데몬 기동 중 오류가 발생하는 경우 서버 로그를 확인해 SSH 데몬이 정상적으로 기동되도록 조치해 주십시오.
- 다음 명령어를 입력해 ssh 서비스가 22번 포트로
LISTEN
하는지 확인해 주십시오.- 22번 포트는 Ncloud에서 제공하는 서버의 기본 설정값입니다. 다른 포트로 수정한 경우 해당 포트를 ACG에서 허용했는지 확인하고 해당 포트로 검색해 주십시오.
# netstat -nap | grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 982/sshd tcp 0 0 10.0.1.8:22 61.83.152.147:55020 ESTABLISHED 1593/sshd: root@pts
- 다음 명령어를 입력해 ssh 설정 파일(
sshd_config
)에서Port
및ListenAddress
항목에 설정된 부분이 있는지 확인해 주십시오.- 기본 설정은 주석 처리되어 있습니다.
# vi /etc/ssh/sshd_config # $OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options override the # default value. #Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
2. hosts.deny 설정 상태 확인
hosts.allow
파일과 hosts.deny
파일에 설정된 부분이 있는지 확인해 주십시오. hosts.allow
파일과 hosts.deny
파일은 특정 클라이언트에 대한 서비스 허용 및 차단을 제어합니다.
- 기본 설정은 주석 처리되어 있습니다.
# cat /etc/hosts.allow
# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "rpcbind" for the
# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
#
# cat /etc/hosts.deny
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: some.host.name, .some.domain
# ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# If you're going to protect the portmapper use the name "rpcbind" for the
# daemon name. See rpcbind(8) and rpc.mountd(8) for further information.
#
# The PARANOID wildcard matches any host whose name does not match its
# address.
#
# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
# ALL: PARANOID
/etc/hosts.allow
,/etc/hosts.deny
파일은tcp_wrappers
만 제어하며, 규칙이 적용되는 순서는 다음과 같습니다./etc/hosts.allow
파일에 정의된 호스트의 접속은 허용/etc/hosts.allow
파일에 정의되지 않고/etc/hosts.deny
파일에 정의된 호스트의 접근은 거부- 둘 중 한 파일에도 정의되지 호스트의 접속은 허용
tcp_wrappers
는ssh
,telnet
,ftp
등xinetd
가 관리하는 데몬들의 특정 서비스만 제어할 수 있습니다.
3. 방화벽 확인
방화벽 상태를 확인하는 방법은 다음과 같습니다.
ufw
ufw
에서 ssh 거부 규칙을 정의했는지 확인하고,ufw
를 실행해야 하는 경우 ssh 거부 규칙을 제외해 주십시오(기본 설정: 규칙 없음).# ufw show raw ERROR: IPV4 (raw): Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
iptables
iptables.service
가 설치된 경우iptables
에서 ssh 거부 규칙을 정의했는지 확인하고, ssh 거부 규칙을 제외해 주십시오(기본 설정: 규칙 없음).# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
SSH 데몬이 inactive
상태인 경우, ufw
규칙은 적용되지 않지만 iptables
규칙은 적용됩니다.
4. 라우팅 확인
eth0에 대한 기본 경로(default route)가 설정되어 있지 않은 경우 접속이 이루어지지 않을 수 있습니다. 정적 경로(static route) 설정 상태를 확인해 주십시오.
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.5.0.1 0.0.0.0 UG 0 0 0 eth0
10.5.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
5. 권한 이슈 확인
SSH 설정 파일(/.ssh/config
)의 설정에 따라 root
계정의 원격 접속이 차단되어 있을 수 있습니다. root
계정으로 접속할 수 없는 경우 일반 계정으로 접속을 시도해 주십시오.
- 일반 계정이 없는 경우, 서버 접속 콘솔을 활성화한 후
root
계정으로 접속을 시도해 주십시오.