웹사이트 검색

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


시스템 관리자는 터미널 에뮬레이터를 사용하여 다양한 관리 작업을 수행하기 위해 원격 시스템에 로그온해야 하는 경우가 많습니다. 실제(물리적) 터미널 앞에 앉아 있는 경우는 거의 없으므로 관리하도록 요청받을 시스템에 원격으로 로그온할 수 있는 방법을 설정해야 합니다.

실제로 이는 물리적 터미널 앞에서 수행해야 하는 마지막 작업일 수 있습니다. 보안상의 이유로 이 목적으로 Telnet을 사용하는 것은 좋은 생각이 아닙니다. 모든 트래픽은 암호화되지 않은 일반 텍스트로 전송되기 때문입니다.

또한 이 기사에서는 부팅 시 자동으로 시작되도록 네트워크 서비스를 구성하는 방법을 검토하고 네트워크 및 호스트 이름 확인을 정적 또는 동적으로 설정하는 방법도 알아봅니다.

SSH 통신 설치 및 보안

SSH를 사용하여 RHEL 7 상자에 원격으로 로그온하려면 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 이름을 확인하는 데 사용됩니다.

/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

여기서 name은 ip link show에서 반환된 NIC의 이름입니다.

예를 들어:

루프백 인터페이스 외에 NIC에 대해서도 유사한 구성을 기대할 수 있습니다. 일부 변수가 설정되면 이 특정 인터페이스에 대해 /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

호스트 이름을 변경하려면 다음을 사용하십시오.


hostnamectl set-hostname [new hostname]

예를 들어,


hostnamectl set-hostname cinderella

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


systemctl restart systemd-hostnamed

또한 RHEL 7에는 동일한 목적으로 사용할 수 있는 nmcli 유틸리티도 포함되어 있습니다. 호스트 이름을 표시하려면 다음을 실행하세요.


nmcli general hostname

변경하려면 다음을 수행하세요.


nmcli general hostname [new hostname]

예를 들어,


nmcli general hostname rhel7

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

마무리하기 위해 부팅 시 네트워크 서비스가 자동으로 시작되도록 하는 방법을 살펴보겠습니다. 간단히 말해서 서비스 구성 파일의 [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

결론

이 문서에서는 SSH를 통해 RHEL 서버에 설치하고 연결을 보호하는 방법, 이름을 변경하는 방법, 마지막으로 네트워크 서비스가 시작되는지 확인하는 방법을 요약했습니다. 신병. 특정 서비스가 제대로 시작되지 않은 경우 systemctl status -l [service]journalctl -xn을 사용하여 문제를 해결할 수 있습니다.

아래 의견 양식을 사용하여 이 기사에 대한 귀하의 생각을 자유롭게 알려주십시오. 질문도 환영합니다. 여러분의 의견을 기다리겠습니다!