웹사이트 검색

LFCE: 네트워크 서비스 설치 및 부팅 시 자동 시작 구성 - 1부


Linux 재단 인증 엔지니어(LFCE)는 Linux 시스템에서 네트워크 서비스를 설치, 구성, 관리 및 문제 해결할 준비가 되어 있으며 시스템 아키텍처의 설계 및 구현을 담당합니다. .

Linux Foundation 인증 프로그램을 소개합니다.

LFCE(Linux Foundation Certified Engineer) 시험 준비라는 제목의 12개 기사 시리즈에서는 Ubuntu, CentOS 및 openSUSE에서 필요한 도메인과 역량을 다룹니다.

네트워크 서비스 설치

모든 종류의 네트워크 서비스를 설정하고 사용할 때 Linux가 포함될 수 없는 시나리오는 상상하기 어렵습니다. 이 문서에서는 Linux에 다음 네트워크 서비스를 설치하는 방법을 보여줍니다(각 구성은 향후 별도의 문서에서 다룹니다).

  1. NFS(네트워크 파일 시스템) 서버
  2. 아파치 웹 서버
  3. 오징어 프록시 서버 + SquidGuard
  4. 이메일 서버(Postfix + Dovecot) 및
  5. IP테이블

또한 부팅 시 또는 요청 시 이러한 모든 서비스가 자동으로 시작되는지 확인하려고 합니다.

동일한 물리적 시스템이나 가상 사설 서버에서 이러한 네트워크 서비스를 모두 실행할 수 있는 경우에도 소위 네트워크 보안의 첫 번째 "규칙" 중 하나는 시스템 관리자에게 다음을 피하라고 지시한다는 점에 유의해야 합니다. 그래서 가능한 한. 그 진술을 뒷받침하는 판결은 무엇입니까? 이는 다소 간단합니다. 어떤 이유로든 둘 이상의 서비스를 실행하는 시스템에서 네트워크 서비스가 손상되면 공격자가 나머지 서비스도 손상시키기가 상대적으로 쉬울 수 있습니다.

이제 동일한 시스템(예: 테스트 랩)에 여러 네트워크 서비스를 설치해야 하는 경우 특정 순간에 필요한 서비스만 활성화하고 나중에 비활성화하십시오.

시작하기 전에 현재 기사(LFCSLFCE 시리즈의 나머지 기사와 함께)가 성능 기반 관점에 초점을 맞추고 있으므로 다루는 주제에 대한 모든 이론적 세부 사항을 검토합니다. 그러나 필요한 정보를 시작점으로 하여 각 주제를 소개하겠습니다.

다음 네트워크 서비스를 사용하려면 해당 트래픽이 방화벽을 통과하도록 허용하는 방법을 배울 때까지 당분간 방화벽을 비활성화해야 합니다.

프로덕션 설정에는 권장되지 않습니다. 그러나 학습 목적으로만 권장됩니다.

기본 Ubuntu 설치에서는 방화벽이 활성화되어서는 안 됩니다. openSUSE 및 CentOS에서는 이를 명시적으로 비활성화해야 합니다.

systemctl stop firewalld
systemctl disable firewalld 
or
or systemctl mask firewalld

이제 시작하겠습니다!

NFSv4 서버 설치

NFS 자체는 네트워크 프로토콜이며 최신 버전은 NFSv4입니다. 이것이 이 시리즈 전체에서 사용할 버전입니다.

NFS 서버는 원격 Linux 클라이언트가 네트워크를 통해 공유를 마운트하고 마치 로컬에 마운트된 것처럼 해당 파일 시스템과 상호 작용할 수 있도록 하는 전통적인 솔루션으로, 네트워크의 스토리지 리소스를 중앙 집중화할 수 있습니다.

CentOS에서
yum update && yum install nfs-utils
우분투에서
aptitude update && aptitude install nfs-kernel-server
OpenSUSE에서
zypper refresh && zypper install nfsserver

자세한 지침은 Linux 시스템에서 NFS 서버 및 클라이언트 구성 방법을 설명하는 문서를 읽어보세요.

Apache 웹 서버 설치

Apache 웹 서버는 HTTP 서버의 강력하고 안정적인 FOSS 구현입니다. 2014년 10월 말 현재 Apache는 3억 8,500만 개의 사이트를 지원하며 37.45% 시장 점유율을 차지하고 있습니다. Apache를 사용하여 단일 시스템에서 독립형 웹사이트나 여러 가상 호스트를 제공할 수 있습니다.

yum update && yum install httpd		[On CentOS]
aptitude update && aptitude install apache2 		[On Ubuntu]
zypper refresh && zypper install apache2		[On openSUSE]

더 자세한 지침을 보려면 IP 기반 및 이름 기반 Apache 가상 호스트를 생성하는 방법과 Apache 웹 서버를 보호하는 방법을 보여주는 다음 기사를 읽어보세요.

  1. Apache IP 기반 및 이름 기반 가상 호스팅
  2. Apache 웹 서버 강화 및 보안 팁

Squid 및 SquidGuard 설치

Squid는 프록시 서버이자 웹 캐시 데몬이므로 여러 클라이언트 컴퓨터와 인터넷(또는 인터넷에 연결된 라우터) 사이의 중개자 역할을 하는 동시에 웹 콘텐츠를 캐싱하여 빈번한 요청의 속도를 높입니다. 동시에 DNS 확인도 가능합니다. 또한 네트워크 세그먼트별로 또는 금지된 키워드를 기반으로 특정 URL에 대한 액세스를 거부(또는 허용)하는 데 사용할 수 있으며 사용자별로 외부 세계에 이루어진 모든 연결에 대한 로그 파일을 유지합니다.

Squidguard는 블랙리스트를 구현하여 오징어를 강화하고 완벽하게 통합하는 리디렉터입니다.

yum update && yum install squid squidGuard			[On CentOS] 
aptitude update && aptitude install squid3 squidguard		[On Ubuntu]
zypper refresh && zypper install squid squidGuard 		[On openSUSE]

Postfix와 Dovecot 설치

Postfix는 MTA(메일 전송 에이전트)입니다. Dovecot은 소스에서 대상 메일 서버로 전자 메일 메시지를 라우팅하고 전달하는 역할을 하는 응용 프로그램인 반면, dovecot은 MTA에서 메시지를 가져와 올바른 사용자 사서함으로 전달하는 널리 사용되는 IMAP 및 POP3 전자 메일 서버입니다.

여러 관계형 데이터베이스 관리 시스템을 위한 Dovecot 플러그인도 사용할 수 있습니다.

yum update && yum install postfix dovecot 				[On CentOS] 
aptitude update && aptitude postfix dovecot-imapd dovecot-pop3d 	[On Ubuntu]
zypper refresh && zypper postfix dovecot				[On openSUSE]	

IPtables 소개

간단히 말해서, 방화벽은 개인 네트워크에 대한 액세스를 관리하고 특정 규칙에 따라 들어오고 나가는 트래픽을 리디렉션하는 데 사용되는 네트워크 리소스입니다.

Iptables는 Linux에 기본적으로 설치되는 도구이며 패킷 필터링/리디렉션 및 네트워크 주소 변환 기능을 수행하기 위해 방화벽을 구현하는 궁극적인 책임을 맡은 netfilter 커널 모듈의 프런트엔드 역할을 합니다.

iptables는 Linux에 기본적으로 설치되어 있으므로 실제로 실행되는지 확인하기만 하면 됩니다. 그러기 위해서는 iptables 모듈이 로드되었는지 확인해야 합니다.

lsmod | grep ip_tables

위 명령이 아무것도 반환하지 않으면 ip_tables 모듈이 로드되지 않았음을 의미합니다. 이 경우 다음 명령을 실행하여 모듈을 로드하세요.

modprobe -a ip_tables

추가 읽기: Linux Iptables 방화벽에 대한 기본 가이드

부팅 시 서비스 자동 시작 구성

시스템 시작 프로세스 및 서비스 관리 – LFCS 인증에 관한 10개 기사 시리즈 중 7부에서 설명한 대로 Linux에서 사용할 수 있는 여러 시스템 및 서비스 관리자가 있습니다. 무엇을 선택하든 필요에 따라 네트워크 서비스를 시작, 중지 및 다시 시작하는 방법과 부팅 시 자동으로 시작되도록 설정하는 방법을 알아야 합니다.

다음 명령을 실행하여 시스템 및 서비스 관리자가 무엇인지 확인할 수 있습니다.

ps --pid 1

위 명령의 출력에 따라 다음 명령 중 하나를 사용하여 부팅 시 각 서비스가 자동으로 시작되어야 하는지 여부를 구성합니다.

시스템 기반
----------- Enable Service to Start at Boot -----------
systemctl enable [service]
----------- Prevent Service from Starting at Boot -----------
systemctl disable [service] # prevent [service] from starting at boot
sysvinit 기반에서
----------- Start Service at Boot in Runlevels A and B -----------
chkconfig --level AB [service] on 
-----------  Don’t Start Service at boot in Runlevels C and D -----------
chkconfig --level CD service off 
스타트업 기반

/etc/init/[service].conf 스크립트가 존재하고 다음과 같은 최소 구성을 포함하는지 확인하세요.

When to start the service
start on runlevel [2345]
When to stop the service
stop on runlevel [016]
Automatically restart process in case of crash
respawn
Specify the process/command (add arguments if needed) to run
exec /absolute/path/to/network/service/binary arg1 arg2

또한 LFCS 시리즈의 파트 7(이 섹션의 시작 부분에서 언급한 내용)을 확인하여 주문형 네트워크 서비스를 관리하는 데 유용한 다른 명령을 확인할 수도 있습니다.

요약

이제 이 문서에 설명된 모든 네트워크 서비스가 설치되어 있고 기본 구성으로 실행될 수도 있습니다. 이후 기사에서는 필요에 따라 구성하는 방법을 알아볼 예정이므로 계속 지켜봐 주시기 바랍니다! 그리고 아래 양식을 사용하여 이 기사에 대한 의견을 자유롭게 공유하거나 질문이 있는 경우 게시해 주시기 바랍니다.

참조 링크
  1. LFCE 소개
  2. Linux Foundation 인증을 받아야 하는 이유는 무엇입니까?
  3. LFCE 시험 등록