RHCSA 시리즈: SSH 보안, 호스트 이름 설정 및 네트워크 서비스 활성화 – 파트 8

시스템 관리자로서 당신은 종종 터미널 에뮬레이터를 사용하여 다양한 관리 작업을 수행하기 위해 원격 시스템에 로그온해야 할 것입니다. 실제(물리적인) 터미널 앞에 앉아 있을 일은 거의 없으므로, 관리해야 할 기계에 원격으로 로그온할 수 있는 방법을 설정해야 합니다.

사실, 그것은 물리적인 터미널 앞에서 해야 할 마지막 일이 될 수도 있습니다. 보안 상의 이유로, 이 목적으로 텔넷을 사용하는 것은 좋지 않은 생각입니다. 모든 트래픽이 암호화되지 않은 평문으로 전송되기 때문입니다.

또한, 이 글에서는 부팅 시 네트워크 서비스를 자동으로 시작하도록 설정하는 방법과 정적 또는 동적으로 네트워크와 호스트 이름 해상도를 설정하는 방법에 대해서도 살펴볼 것입니다.

RHCSA: Secure SSH and Enable Network Services – Part 8

SSH 통신 설치 및 보안 확립

RHEL 7 상자에 SSH를 사용하여 원격으로 로그온하려면 openssh, openssh-clientsopenssh-servers 패키지를 설치해야 합니다. 다음 명령은 원격 로그인 프로그램뿐만 아니라 안전한 파일 전송 도구와 원격 파일 복사 유틸리티도 설치합니다:

# yum update && yum install openssh openssh-clients openssh-servers

언젠가는 같은 기계를 클라이언트와 서버로 모두 사용하고 싶을 수도 있으므로, 서버 카운터파트를 설치하는 것도 좋은 생각입니다.

설치 후에는 SSH 서버에 대한 원격 액세스를 보호하려면 고려해야 할 기본 사항이 몇 가지 있습니다. 다음 설정은 /etc/ssh/sshd_config 파일에 있어야 합니다.

1. sshd 데몬이 수신 대기할 포트를 기본값인 22에서 고 포트(2000 이상)로 변경하되, 선택한 포트가 사용 중인지 확인하세요.

예를 들어, 포트 2500을 선택한다고 가정해 보겠습니다. 선택한 포트가 사용 중인지 확인하려면 netstat을 사용하세요:

# netstat -npltu | grep 2500

만약 netstat이 아무것도 반환하지 않으면, 안전하게 sshd에 포트 2500을 사용할 수 있으며, 구성 파일에서 포트 설정을 다음과 같이 변경해야 합니다:

Port 2500

2. 프로토콜 2만 허용하세요:

Protocol 2

3. 인증 시간 제한을 2분으로 설정하고, 루트 로그인을 허용하지 않고, ssh를 통해 로그인할 수 있는 사용자 목록을 최소한으로 제한하세요:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. 가능하다면 암호 인증 대신 키 기반 인증을 사용하세요:

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

이는 이미 여기에서 설명한 대로 클라이언트 머신에서 사용자 이름으로 키 쌍을 생성하고 서버로 복사했다고 가정합니다.

  1. SSH 암호 없는 로그인 사용

네트워크 및 이름 해결 구성

1. 모든 시스템 관리자는 다음 시스템 전역 구성 파일에 익숙해져야 합니다:

  1. /etc/hosts는 작은 네트워크에서 이름과 IP를 해결하는 데 사용됩니다.<—> IP주소.

/etc/hosts 파일의 각 줄에는 다음과 같은 구조가 있습니다.

IP address - Hostname - FQDN

예를 들어,

192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf는 DNS 서버의 IP 주소와 검색 도메인을 지정하는데 사용됩니다. 이는 도메인 접미사가 제공되지 않은 경우 주어진 쿼리 이름을 완전한 도메인 이름으로 완성하는 데 사용됩니다.

보통의 경우에는 시스템이 관리하기 때문에 이 파일을 편집할 필요가 없습니다. 그러나 DNS 서버를 변경하려는 경우 각 줄에 다음과 같은 구조를 지켜야 합니다.

nameserver - IP address

예를 들어,

nameserver 8.8.8.8

3. 3. /etc/host.conf는 네트워크 내에서 호스트 이름을 해결하는 방법과 순서를 지정합니다. 다시 말해, 이름 해결기에게 사용할 서비스 및 순서를 알려줍니다.

이 파일에는 여러 옵션이 있지만 가장 일반적이고 기본적인 설정은 다음과 같은 줄이 포함되어 있습니다.

order bind,hosts

즉, 해결기가 먼저 resolv.conf에서 지정된 네임서버를 찾은 다음 이름 해결을 위해 /etc/hosts 파일을 찾아야 함을 나타냅니다.

4. /etc/sysconfig/network에는 모든 네트워크 인터페이스의 경로 및 전역 호스트 정보가 포함되어 있습니다. 다음 값이 사용될 수 있습니다:

NETWORKING=yes|no
HOSTNAME=value

값은 완전한 도메인 이름 (FQDN)이어야 합니다.

GATEWAY=XXX.XXX.XXX.XXX

여기서 XXX.XXX.XXX.XXX는 네트워크의 게이트웨이의 IP 주소입니다.

GATEWAYDEV=value

여러 NIC를 가진 기계에서 은 게이트웨이 장치입니다. 예를 들어 enp0s3.

5. /etc/sysconfig/network-scripts 디렉토리 내의 파일(네트워크 어댑터 구성 파일).

이전에 언급한 디렉토리 내에서 이름이라는 이름의 여러 개의 일반 텍스트 파일이 있습니다.

ifcfg-name

이름은 ip link show에 의해 반환된 NIC의 이름입니다.:

Check Network Link Status

예를 들어:

Network Files

루프백을 제외한 다른 인터페이스에 대해서도 유사한 구성을 기대할 수 있습니다. 일부 변수는 특정 인터페이스에 대해 설정된 경우 /etc/sysconfig/network에 있는 것을 무시하게 됩니다. 각 줄은 이 기사에서 설명을 위해 주석이 달려 있지만 실제 파일에서는 주석을 피해야 합니다:

HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

호스트명 설정

Red Hat Enterprise Linux 7에서는 hostnamectl 명령을 사용하여 시스템의 호스트명을 조회하고 설정합니다.

현재 호스트명을 표시하려면 다음을 입력하세요:

# hostnamectl status
Check System Hostname

호스트명을 변경하려면 다음을 사용하십시오:

# hostnamectl set-hostname [new hostname]

예를 들면,

# hostnamectl set-hostname cinderella

변경 사항을 적용하려면 hostnamed 데몬을 다시 시작해야 합니다(이렇게 하면 변경 사항을 적용하기 위해 로그오프 및 다시 로그인할 필요가 없습니다):

# systemctl restart systemd-hostnamed
Set System Hostname

또한 RHEL 7은 호스트명을 동일한 목적으로 사용할 수 있는 nmcli 유틸리티를 포함하고 있습니다. 호스트명을 표시하려면 다음을 실행하십시오:

# nmcli general hostname

변경하려면 다음을 실행하십시오:

# nmcli general hostname [new hostname]

예를 들면,

# nmcli general hostname rhel7
Set Hostname Using nmcli Command

부팅 시 네트워크 서비스 시작

마무리하며, 부팅 시 네트워크 서비스가 자동으로 시작되도록하는 방법을 살펴봅시다. 간단히 말해서, 이 작업은 서비스 구성 파일의 [Install] 섹션에 지정된 특정 파일에 대한 심볼릭 링크를 생성하여 수행됩니다.

firewalld (/usr/lib/systemd/system/firewalld.service)의 경우:

[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

서비스를 활성화하려면:

# systemctl enable firewalld

반면에, firewalld를 비활성화하려면 심볼릭 링크를 제거하는 것이 필요합니다:

# systemctl disable firewalld
Enable Service at System Boot

결론

본문에서는 SSH를 통해 연결을 설치하고 보안을 강화하는 방법, 서버 이름을 변경하는 방법 및 네트워크 서비스가 부팅될 때 시작되도록 하는 방법을 요약했습니다. 특정 서비스가 제대로 시작되지 않은 경우 systemctl status -l [service]journalctl -xn을 사용하여 문제를 해결할 수 있습니다.

이 문서에 대한 의견을 아래 댓글 양식을 사용하여 자유롭게 공유해 주세요. 질문도 환영합니다. 여러분의 소식을 기다리고 있겠습니다!

Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/