본문 바로가기
Linux/서버구축 1.2.3...

(1) 워드프레스를 위한 리눅스 서버 구축 - 사용자 계정 추가와 SSH 설정

by aegypius 2021. 4. 18.
728x90
반응형

사용자 계정의 추가와 ssh의 설정


워드프레스, 그누보드 뿐만 아니라 일반적인 웹호스팅을 위한 리눅스 서버를 구축하는 과정의 정리.

 

  • 준비물 : 서버 + 고정IP

  서버를 준비하자. -_-; VPS도 있고, 리얼서버도 있으며, 클라우드, 베어메탈 등등 여러가지 용어가 있으며 조금씩 차이는 있지만 개념만 확실히 이해할 수 있으면 된다. 서버를 운영하다가 하드웨어적인 사양을 높여야 한다거나 추가로 한대를 더 둬야하는 등의 사건(?)이 발생하면 그때 비로소 깨닫게 되는 경우도 있다.

  외부에서 서버로의 보안쉘(ssh)접속이 가능하고 root 권한을 획득할 수 있다면 (당연히 이럴 수 있어야 한다) 이제부터 서버의 설정작업을 해야한다. (서버호스팅 업체의 서비스를 이용한다고 해도 당연히 가능하다)

  혹시...어디 idc센터에 서버를 두고 있다면 /etc/sysconfig/network-scripts/ifcfg-xxxxx를 열어서 IPADDR, GATEWAY,  ZONE, NETMASK, DNS, BOOTPROTO 등을 수동으로 설정해야 한다. (기본 네트워크와 고정ip설정 등)


  일단 서버가 준비 됐고 웹에서 콘솔모드로 접속이 가능하거나 PuTTY 등을 통해서 ssh 접속이 가능하다면 

1. root 계정의 암호 변경.

  • 기본적으로 제공되는 root 계정의 초기 비밀번호는 당연히 바꿔야 한다. (root 계정의 초기 비밀번호는 서버호스팅 업체의 상호에 날짜나 id를 조합한 것이거나 기타 무작위로 생성한 암호이다.)
login as: root
root@1x1.x6x.x4x.2xx's password:
Last login: Wed Apr 14 06:01:34 2021 from 125.191.230.194
[root@webpress ~]# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@webpress ~]#


2. 사용자 계정의 추가.

  •   root 계정으로 ssh와 ftp 등을 사용하는 것은 피하자. root를 대신할 계정을 하나 만들자.
[root@webpress ~]# useradd harepius
[root@webpress ~]#

 

  이제 새로만든 계정(위에서는 harepius)의 비밀번호를 설정하자. root의 비밀번호를 바꾸는 것과 비슷하다.

[root@webpress ~]# passwd harepius
Changing password for user harepius.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@webpress ~]#

 

3. SSH의 설정.(/etc/ssh/sshd_config)

  • SSH의 기본 포트와 방화벽을 설정하고, SSH의 접속을 허용할 계정을 별도로 설정하자.
      1 #       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
      2
      3 # This is the sshd server system-wide configuration file.  See
      4 # sshd_config(5) for more information.
      5
      6 # This sshd was compiled with PATH=/usr/local/bin:/usr/bin
      7
      8 # The strategy used for options in the default sshd_config shipped with
      9 # OpenSSH is to specify options with their default value where
     10 # possible, but leave them commented.  Uncommented options override the
     11 # default value.
     12
     13 # If you want to change the port on a SELinux system, you have to tell
     14 # SELinux about this change.
     15 # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
     16 #
     17 # Port 22
     18 #AddressFamily any
     19 #ListenAddress 0.0.0.0
     20 #ListenAddress ::
     21
     22 HostKey /etc/ssh/ssh_host_rsa_key
     23 #HostKey /etc/ssh/ssh_host_dsa_key
     24 HostKey /etc/ssh/ssh_host_ecdsa_key
     25 HostKey /etc/ssh/ssh_host_ed25519_key
     26
     27 # Ciphers and keying
     28 #RekeyLimit default none
     29
     30 # Logging
     31 #SyslogFacility AUTH
     32 SyslogFacility AUTHPRIV
     33 #LogLevel INFO
     34
     35 # Authentication:
     36
     37 #LoginGraceTime 2m
     38 #PermitRootLogin yes
     39 #StrictModes yes
     40 #MaxAuthTries 6
     41 #MaxSessions 10
     42
     43 #PubkeyAuthentication yes

 

  1. 17번째 줄의 주석을 풀고 포트를 변경하자. (바꾸고 싶지 않다면 굳이 변경하지 않아도 된다. -_-;)
  2. 38번째 줄의 주석을 풀고 yes를 no로 변경하자. (root 계정의 ssh 사용을 막는 것이다.)
  3. 42번째 줄(어디라도 상관없다)에 AllowUsers 를 추가하고 아래와 같이 새로 생성한 계정을 지정하자.
      1 #       $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $
      2
      3 # This is the sshd server system-wide configuration file.  See
      4 # sshd_config(5) for more information.
      5
      6 # This sshd was compiled with PATH=/usr/local/bin:/usr/bin
      7
      8 # The strategy used for options in the default sshd_config shipped with
      9 # OpenSSH is to specify options with their default value where
     10 # possible, but leave them commented.  Uncommented options override the
     11 # default value.
     12
     13 # If you want to change the port on a SELinux system, you have to tell
     14 # SELinux about this change.
     15 # semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
     16 #
     17 Port 55555
     18 #AddressFamily any
     19 #ListenAddress 0.0.0.0
     20 #ListenAddress ::
     21
     22 HostKey /etc/ssh/ssh_host_rsa_key
     23 #HostKey /etc/ssh/ssh_host_dsa_key
     24 HostKey /etc/ssh/ssh_host_ecdsa_key
     25 HostKey /etc/ssh/ssh_host_ed25519_key
     26
     27 # Ciphers and keying
     28 #RekeyLimit default none
     29
     30 # Logging
     31 #SyslogFacility AUTH
     32 SyslogFacility AUTHPRIV
     33 #LogLevel INFO
     34
     35 # Authentication:
     36
     37 #LoginGraceTime 2m
     38 #PermitRootLogin yes
     39 #StrictModes yes
     40 #MaxAuthTries 6
     41 #MaxSessions 10
     42 AllowUsers harepius
     43
     44 #PubkeyAuthentication yes

(위에서 예로든 포트 55555를 사용해도 무방하지만 굳이 이 포트를 고집할 이유는 없다. 포트의 범위는  0~65535 까지이며 보다 자세한 정보는 이곳에서 확인하자.)

  • sshd_config의 편집이 완료되었다면 현재의 방화 설정을 살펴보자.
[root@webpress ssh]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@webpress ssh]#

 

  포트 55555를 통해서 ssh에 접속하려고 설정했다면 이제는 방화벽에서도 해당 포트를 허용해야 한다. 아래와 같이 열어주자.

[root@webpress ssh]# firewall-cmd --permanent --zone=public --add-port=55555/tcp
success
[root@webpress ssh]# firewall-cmd --reload
success
[root@webpress ssh]#

  이제 sshd 데몬을 재시작 한 후에 새로 추가한 계정으로 ssh의 접속을 시도해보자. 위에서 변경한 포트로 접속을 시도해야 할 것이다.

[root@webpress ssh]# systemctl restart sshd
[root@webpress ssh]#

ssh와 sftp의 설정에 대한 내용은 이전에 정리했던 아래의 글을 참고하자.

 

[CentOS] ssh와 sftp 설정

[CentOS] 하나의 계정으로 SSH와 SFTP 모두 ACCESS를 허용하는 방법 직접 서버를 운영하고 있다면 ssh(secure shell)는 필수일 것이며, 파일전송을 위한 ftp(s)나 sftp 또한 필요할 것이다. ftp(s)의 설정에 대해.

aegypius.tistory.com


selinux의 설정이 off 상태라는 가정하에 정리하고 있다. 이것은 결코 바람직한 설정이 아니지만 나중에 보안에 대해서 따로 정리할 기회가 있을때에 별도로 다뤄볼 생각이다.

# sestatus

위의 명령으로 selinux의 상태를 확인할 수 있다.

selinux를 비활성화하는 방법은 여러가지가 있겠지만 /etc/sysconfig/selinux 중간의 SELINUX=enforcing을 disabled로 수정하면 된다.

728x90
반응형

댓글