Rocky9 문서 원본 보기
←
Rocky9
둘러보기로 이동
검색으로 이동
문서 편집 작업을 수행할 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 작업은 다음 중 하나의 권한을 가진 사용자에게 제한됩니다:
관리자
, 문서 편집자.
문서의 원본을 보거나 복사할 수 있습니다.
= Rocky Linux 9 초기 설치 및 기본 서버 설정 가이드 = == 문서 개요 == 본 문서는 Rocky Linux 9 또는 RHEL 9 계열 운영체제를 처음 설치한 후 기본 서버로 사용하기 위한 설정 절차를 설명한다. 다음 순서로 진행한다. # 운영체제 설치 # CLI에서 IP 주소 설정 # 호스트 이름 설정 # SSH 기본 설정 # SSH 특정 계정 접속 제한 # SSH 포트 변경 # firewalld 포트 허용 # firewalld 비활성화 및 iptables 전환 # 서비스 상태 및 포트 확인 # SSH 및 SFTP 접속 테스트 # Samba 파일 공유 설정 본 문서의 명령어는 기본적으로 root 계정으로 실행하는 것을 기준으로 한다. 일반 계정으로 실행할 경우 명령어 앞에 <code>sudo</code>를 추가한다. <syntaxhighlight lang="bash"> sudo 명령어 </syntaxhighlight> == 1. 운영체제 설치 == === 1.1 설치 이미지 준비 === Rocky Linux 설치 이미지는 일반적으로 다음 두 종류를 사용한다. {| class="wikitable" ! 이미지 종류 ! 설명 | ! 권장 용도 | | ------------------------------- | | DVD ISO | | 운영체제 설치에 필요한 대부분의 패키지가 포함되어 있다. | | 인터넷 연결이 제한된 환경 | | - | | Boot ISO | | 최소 설치 이미지이며 설치 중 인터넷 저장소에 연결한다. | | 인터넷 연결이 가능한 환경 | | } | 서버 환경에서는 일반적으로 DVD ISO 사용을 권장한다. === 1.2 설치 USB 제작 === Windows 환경에서는 Rufus, Ventoy 등의 프로그램을 사용하여 설치 USB를 만들 수 있다. 설치 대상 디스크의 기존 데이터는 모두 삭제될 수 있으므로 설치 전에 반드시 필요한 자료를 백업한다. === 1.3 BIOS 또는 UEFI 설정 === 서버 또는 PC 전원을 켠 후 BIOS/UEFI 설정 화면에 진입한다. 주로 확인할 항목은 다음과 같다. {| class="wikitable" ! 항목 | ! 권장 설정 | | ------------------- | | Boot Mode | | UEFI | | - | | Secure Boot | | 일반적으로 활성화 가능 | | - | | SATA Mode | | AHCI | | - | | Virtualization | | 가상화 사용 시 활성화 | | - | | Boot Priority | | USB 설치 장치를 첫 번째로 설정 | | } | VMware, KVM, Proxmox 등의 가상화 환경에 Rocky Linux를 설치하는 경우 ISO 파일을 가상 CD/DVD 장치에 연결한다. === 1.4 설치 화면 진입 === 설치 USB 또는 ISO로 부팅한 후 다음 항목을 선택한다. <syntaxhighlight lang="text"> Install Rocky Linux 9 </syntaxhighlight> 설치 언어를 선택한 후 설치 요약 화면으로 이동한다. === 1.5 설치 대상 디스크 설정 === 설치 대상 디스크를 선택한다. 초심자는 자동 파티션 구성을 사용해도 된다. 서버 용도로 별도 파티션을 구성하려면 다음 예시를 참고한다. {| class="wikitable" ! 마운트 지점 ! 권장 용도 | ! 예시 크기 | | --------------- | | /boot/efi | | UEFI 부트 영역 | | 600 MiB | | - | | /boot | | 커널 및 부트로더 | | 1 GiB | | - | | / | | 운영체제 루트 영역 | | 40 GiB 이상 | | - | | /var | | 로그 및 서비스 데이터 | | 사용 목적에 따라 결정 | | - | | /home | | 사용자 홈 디렉터리 | | 사용 목적에 따라 결정 | | - | | swap | | 메모리 보조 공간 | | 메모리 및 용도에 따라 결정 | | } | 로그 서버, DB 서버, 웹 서버는 <code>/var</code> 사용량이 크게 증가할 수 있으므로 별도 볼륨으로 분리하는 것이 좋다. === 1.6 소프트웨어 선택 === 서버 용도에서는 다음 설치 유형을 권장한다. <syntaxhighlight lang="text"> Minimal Install </syntaxhighlight> GUI가 필요한 경우 다음을 선택할 수 있다. <syntaxhighlight lang="text"> Server with GUI </syntaxhighlight> 일반적인 서버는 보안과 자원 사용량을 고려하여 Minimal Install을 권장한다. === 1.7 root 비밀번호 및 사용자 생성 === 설치 과정에서 root 비밀번호를 설정한다. 관리용 일반 계정도 함께 생성하는 것을 권장한다. 예시 계정: <syntaxhighlight lang="text"> 사용자 이름: admin 관리자 권한: 활성화 </syntaxhighlight> 관리자 권한을 활성화하면 해당 계정이 일반적으로 <code>wheel</code> 그룹에 추가된다. 설치 완료 후 시스템을 재부팅한다. == 2. 설치 직후 기본 확인 == === 2.1 운영체제 버전 확인 === <syntaxhighlight lang="bash"> cat /etc/os-release </syntaxhighlight> 출력 예시: <syntaxhighlight lang="text"> NAME="Rocky Linux" VERSION="9.x" ID="rocky" </syntaxhighlight> 커널 버전 확인: <syntaxhighlight lang="bash"> uname -r </syntaxhighlight> 전체 시스템 정보 확인: <syntaxhighlight lang="bash"> hostnamectl </syntaxhighlight> === 2.2 현재 사용자 확인 === <syntaxhighlight lang="bash"> whoami </syntaxhighlight> root 계정으로 전환: <syntaxhighlight lang="bash"> sudo -i </syntaxhighlight> === 2.3 패키지 업데이트 === 운영체제 설치 직후 전체 패키지를 업데이트한다. <syntaxhighlight lang="bash"> dnf update -y </syntaxhighlight> 업데이트 후 커널이 변경되었으면 재부팅한다. <syntaxhighlight lang="bash"> reboot </syntaxhighlight> 재부팅 후 커널 버전을 다시 확인한다. <syntaxhighlight lang="bash"> uname -r </syntaxhighlight> == 3. CLI에서 IP 주소 설정 == Rocky Linux 9는 NetworkManager를 기본 네트워크 관리 서비스로 사용한다. CLI에서는 주로 <code>nmcli</code> 명령어를 사용한다. === 3.1 네트워크 인터페이스 확인 === <syntaxhighlight lang="bash"> ip address </syntaxhighlight> 간단하게 확인: <syntaxhighlight lang="bash"> ip -br address </syntaxhighlight> NetworkManager 장치 상태 확인: <syntaxhighlight lang="bash"> nmcli device status </syntaxhighlight> 출력 예시: <syntaxhighlight lang="text"> DEVICE TYPE STATE CONNECTION ens192 ethernet connected ens192 lo loopback connected lo </syntaxhighlight> 위 예시에서 물리 네트워크 인터페이스는 <code>ens192</code>이다. === 3.2 네트워크 연결 프로파일 확인 === <syntaxhighlight lang="bash"> nmcli connection show </syntaxhighlight> 출력 예시: <syntaxhighlight lang="text"> NAME UUID TYPE DEVICE ens192 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet ens192 </syntaxhighlight> 장치 이름과 연결 프로파일 이름은 다를 수 있다. 이후 명령어에서는 연결 프로파일 이름을 정확히 사용해야 한다. === 3.3 DHCP 설정 === 연결 프로파일 이름이 <code>ens192</code>인 경우: <syntaxhighlight lang="bash"> nmcli connection modify ens192 ipv4.method auto nmcli connection modify ens192 ipv4.addresses "" nmcli connection modify ens192 ipv4.gateway "" nmcli connection modify ens192 ipv4.dns "" nmcli connection up ens192 </syntaxhighlight> 현재 할당된 IP 주소 확인: <syntaxhighlight lang="bash"> ip -br address show ens192 </syntaxhighlight> 기본 게이트웨이 확인: <syntaxhighlight lang="bash"> ip route </syntaxhighlight> DNS 확인: <syntaxhighlight lang="bash"> cat /etc/resolv.conf </syntaxhighlight> === 3.4 고정 IP 설정 === 다음 예시 환경을 기준으로 설정한다. {| class="wikitable" ! 항목 | ! 설정값 | | --------------------- | | 연결 프로파일 | | ens192 | | - | | IP 주소 | | 192.168.10.20 | | - | | 서브넷 | | /24 | | - | | 기본 게이트웨이 | | 192.168.10.1 | | - | | DNS 서버 | | 192.168.10.1, 8.8.8.8 | | } | 고정 IP 설정: <syntaxhighlight lang="bash"> nmcli connection modify ens192 \ ipv4.method manual \ ipv4.addresses 192.168.10.20/24 \ ipv4.gateway 192.168.10.1 \ ipv4.dns "192.168.10.1 8.8.8.8" </syntaxhighlight> 자동 연결 활성화: <syntaxhighlight lang="bash"> nmcli connection modify ens192 connection.autoconnect yes </syntaxhighlight> 설정 적용: <syntaxhighlight lang="bash"> nmcli connection up ens192 </syntaxhighlight> 원격 SSH 접속 상태에서 IP 주소를 변경하면 접속이 끊길 수 있다. 가능하면 콘솔, iLO, iDRAC, IPMI, VMware 콘솔 등 별도의 관리 경로를 확보한 후 변경한다. === 3.5 설정 결과 확인 === IP 주소 확인: <syntaxhighlight lang="bash"> ip -br address </syntaxhighlight> 라우팅 확인: <syntaxhighlight lang="bash"> ip route </syntaxhighlight> 게이트웨이 통신 확인: <syntaxhighlight lang="bash"> ping -c 4 192.168.10.1 </syntaxhighlight> 외부 IP 통신 확인: <syntaxhighlight lang="bash"> ping -c 4 8.8.8.8 </syntaxhighlight> DNS 이름 조회 확인: <syntaxhighlight lang="bash"> ping -c 4 google.com </syntaxhighlight> <code>8.8.8.8</code> 통신은 되지만 도메인 이름 통신이 되지 않으면 DNS 설정을 확인한다. === 3.6 네트워크 설정 상세 확인 === <syntaxhighlight lang="bash"> nmcli connection show ens192 </syntaxhighlight> IPv4 관련 항목만 확인: <syntaxhighlight lang="bash"> nmcli -f ipv4 connection show ens192 </syntaxhighlight> == 4. 호스트 이름 설정 == === 4.1 현재 호스트 이름 확인 === <syntaxhighlight lang="bash"> hostname </syntaxhighlight> 상세 확인: <syntaxhighlight lang="bash"> hostnamectl </syntaxhighlight> === 4.2 호스트 이름 변경 === 예시 호스트 이름: <syntaxhighlight lang="text"> rocky-file01 </syntaxhighlight> 설정 명령어: <syntaxhighlight lang="bash"> hostnamectl set-hostname rocky-file01 </syntaxhighlight> FQDN 형식으로 설정할 수도 있다. <syntaxhighlight lang="bash"> hostnamectl set-hostname rocky-file01.example.local </syntaxhighlight> 설정 확인: <syntaxhighlight lang="bash"> hostnamectl hostname </syntaxhighlight> === 4.3 /etc/hosts 등록 === 내부 DNS가 없는 환경에서는 <code>/etc/hosts</code>에 서버 정보를 등록할 수 있다. 먼저 백업한다. <syntaxhighlight lang="bash"> cp -a /etc/hosts /etc/hosts.bak.$(date +%Y%m%d_%H%M%S) </syntaxhighlight> 파일 편집: <syntaxhighlight lang="bash"> vi /etc/hosts </syntaxhighlight> 설정 예시: <syntaxhighlight lang="text"> 127.0.0.1 localhost localhost.localdomain ::1 localhost localhost.localdomain 192.168.10.20 rocky-file01.example.local rocky-file01 </syntaxhighlight> 확인: <syntaxhighlight lang="bash"> getent hosts rocky-file01 </syntaxhighlight> == 5. SSH 기본 설정 == SSH는 원격에서 서버 CLI에 접속하기 위한 서비스다. SFTP도 SSH 서비스를 이용하므로 SSH 설정과 동일한 포트를 사용한다. === 5.1 SSH 서버 설치 여부 확인 === <syntaxhighlight lang="bash"> rpm -q openssh-server </syntaxhighlight> 설치되지 않은 경우: <syntaxhighlight lang="bash"> dnf install -y openssh-server </syntaxhighlight> === 5.2 SSH 서비스 시작 및 자동 시작 설정 === <syntaxhighlight lang="bash"> systemctl enable --now sshd </syntaxhighlight> 서비스 상태 확인: <syntaxhighlight lang="bash"> systemctl status sshd </syntaxhighlight> 간단하게 정상 여부만 확인: <syntaxhighlight lang="bash"> systemctl is-active sshd systemctl is-enabled sshd </syntaxhighlight> 정상 상태 예시: <syntaxhighlight lang="text"> active enabled </syntaxhighlight> === 5.3 SSH 기본 설정 파일 === SSH 서버 설정 파일: <syntaxhighlight lang="text"> /etc/ssh/sshd_config </syntaxhighlight> 추가 설정 파일 디렉터리: <syntaxhighlight lang="text"> /etc/ssh/sshd_config.d/ </syntaxhighlight> Rocky Linux 9에서는 기존 설정 파일 전체를 직접 수정하기보다 별도 설정 파일을 생성하는 방법도 사용할 수 있다. 예시: <syntaxhighlight lang="text"> /etc/ssh/sshd_config.d/10-custom.conf </syntaxhighlight> === 5.4 SSH 설정 백업 === 설정 변경 전 반드시 백업한다. <syntaxhighlight lang="bash"> cp -a /etc/ssh/sshd_config \ /etc/ssh/sshd_config.bak.$(date +%Y%m%d_%H%M%S) </syntaxhighlight> 추가 설정 파일 생성: <syntaxhighlight lang="bash"> vi /etc/ssh/sshd_config.d/10-custom.conf </syntaxhighlight> === 5.5 기본 보안 설정 예시 === <syntaxhighlight lang="apache"> PermitRootLogin no MaxAuthTries 5 LoginGraceTime 60 X11Forwarding no </syntaxhighlight> 각 항목의 의미는 다음과 같다. {| class="wikitable" ! 항목 | ! 설명 | | ------------------------------ | | PermitRootLogin no | | root 계정의 직접 SSH 로그인을 차단한다. | | - | | MaxAuthTries 5 | | 한 연결에서 허용할 인증 실패 횟수를 제한한다. | | - | | LoginGraceTime 60 | | 인증을 완료해야 하는 제한 시간을 초 단위로 지정한다. | | - | | X11Forwarding no | | 사용하지 않는 X11 포워딩 기능을 비활성화한다. | | } | 설정 문법 검사: <syntaxhighlight lang="bash"> sshd -t </syntaxhighlight> 아무 메시지도 출력되지 않으면 일반적으로 문법 오류가 없는 상태다. 설정 적용: <syntaxhighlight lang="bash"> systemctl reload sshd </syntaxhighlight> reload 실패 시: <syntaxhighlight lang="bash"> systemctl restart sshd </syntaxhighlight> SSH 설정을 변경한 후 기존 접속 세션을 즉시 종료하지 않는다. 새 터미널에서 접속이 정상적으로 되는 것을 먼저 확인한 뒤 기존 세션을 종료한다. == 6. SSH 접속 계정 제한 == === 6.1 관리 계정 생성 === 예시 계정: <syntaxhighlight lang="bash"> useradd admin passwd admin </syntaxhighlight> 관리자 권한이 필요한 경우 <code>wheel</code> 그룹에 추가한다. <syntaxhighlight lang="bash"> usermod -aG wheel admin </syntaxhighlight> 그룹 확인: <syntaxhighlight lang="bash"> id admin </syntaxhighlight> 출력에 <code>wheel</code> 그룹이 포함되어 있는지 확인한다. === 6.2 특정 계정만 SSH 접속 허용 === 설정 파일 편집: <syntaxhighlight lang="bash"> vi /etc/ssh/sshd_config.d/10-custom.conf </syntaxhighlight> 특정 계정만 허용: <syntaxhighlight lang="apache"> AllowUsers admin </syntaxhighlight> 여러 계정 허용: <syntaxhighlight lang="apache"> AllowUsers admin operator backupuser </syntaxhighlight> 특정 그룹만 허용할 수도 있다. <syntaxhighlight lang="apache"> AllowGroups wheel </syntaxhighlight> <code>AllowUsers</code> 또는 <code>AllowGroups</code> 설정을 잘못 적용하면 SSH 접속이 모두 차단될 수 있다. 현재 사용 중인 관리 계정이 허용 목록에 포함되어 있는지 반드시 확인한다. 문법 검사: <syntaxhighlight lang="bash"> sshd -t </syntaxhighlight> 설정 적용: <syntaxhighlight lang="bash"> systemctl reload sshd </syntaxhighlight> == 7. SSH 포트 변경 == SSH 기본 포트는 TCP 22번이다. 외부에 직접 노출되는 서버는 자동화된 스캔 로그를 줄이기 위해 포트를 변경하는 경우가 있다. 포트 변경 자체는 강력한 보안 대책이 아니며, 계정 제한, 키 인증, 방화벽 접근 제어를 함께 적용해야 한다. 다음 예시에서는 SSH 포트를 TCP 2222번으로 변경한다. === 7.1 SSH 설정 변경 === <syntaxhighlight lang="bash"> vi /etc/ssh/sshd_config.d/10-custom.conf </syntaxhighlight> 설정 추가: <syntaxhighlight lang="apache"> Port 2222 </syntaxhighlight> 문법 검사: <syntaxhighlight lang="bash"> sshd -t </syntaxhighlight> 아직 SSH 서비스를 재시작하지 않는다. 먼저 방화벽과 SELinux 설정을 적용해야 한다. === 7.2 SELinux에 SSH 포트 등록 === SELinux 관리 도구 설치: <syntaxhighlight lang="bash"> dnf install -y policycoreutils-python-utils </syntaxhighlight> 현재 SSH 포트 정책 확인: <syntaxhighlight lang="bash"> semanage port -l | grep ssh </syntaxhighlight> TCP 2222번을 SSH 포트로 등록: <syntaxhighlight lang="bash"> semanage port -a -t ssh_port_t -p tcp 2222 </syntaxhighlight> 이미 포트가 등록되어 있다는 오류가 발생하면 수정 명령어를 사용한다. <syntaxhighlight lang="bash"> semanage port -m -t ssh_port_t -p tcp 2222 </syntaxhighlight> 등록 결과 확인: <syntaxhighlight lang="bash"> semanage port -l | grep ssh </syntaxhighlight> === 7.3 firewalld에서 SSH 포트 허용 === 현재 활성 존 확인: <syntaxhighlight lang="bash"> firewall-cmd --get-active-zones </syntaxhighlight> 기본 존에 TCP 2222번 허용: <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --reload </syntaxhighlight> 확인: <syntaxhighlight lang="bash"> firewall-cmd --list-ports </syntaxhighlight> === 7.4 SSH 서비스 재시작 === <syntaxhighlight lang="bash"> systemctl restart sshd </syntaxhighlight> 상태 확인: <syntaxhighlight lang="bash"> systemctl status sshd </syntaxhighlight> 포트 리스닝 확인: <syntaxhighlight lang="bash"> ss -lntp | grep 2222 </syntaxhighlight> === 7.5 새 포트 접속 테스트 === 다른 PC 또는 새 터미널에서 테스트한다. <syntaxhighlight lang="bash"> ssh -p 2222 admin@192.168.10.20 </syntaxhighlight> 접속이 정상임을 확인한 후 기존 22번 포트를 방화벽에서 제거한다. <syntaxhighlight lang="bash"> firewall-cmd --permanent --remove-service=ssh firewall-cmd --reload </syntaxhighlight> 방화벽 상태 확인: <syntaxhighlight lang="bash"> firewall-cmd --list-all </syntaxhighlight> SSH 신규 포트 접속 확인 전에 기존 22번 포트를 먼저 차단하면 원격 접속이 불가능해질 수 있다. == 8. firewalld 기본 사용법 == Rocky Linux 9는 기본 방화벽 관리 도구로 firewalld를 사용한다. 일반적인 환경에서는 firewalld 사용을 권장한다. === 8.1 firewalld 상태 확인 === <syntaxhighlight lang="bash"> systemctl status firewalld </syntaxhighlight> 간단 확인: <syntaxhighlight lang="bash"> systemctl is-active firewalld systemctl is-enabled firewalld </syntaxhighlight> === 8.2 firewalld 시작 및 자동 시작 === <syntaxhighlight lang="bash"> systemctl enable --now firewalld </syntaxhighlight> === 8.3 활성 존 확인 === <syntaxhighlight lang="bash"> firewall-cmd --get-active-zones </syntaxhighlight> 기본 존 확인: <syntaxhighlight lang="bash"> firewall-cmd --get-default-zone </syntaxhighlight> 전체 설정 확인: <syntaxhighlight lang="bash"> firewall-cmd --list-all </syntaxhighlight> === 8.4 서비스 단위 포트 허용 === SSH 허용: <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-service=ssh firewall-cmd --reload </syntaxhighlight> HTTP 허용: <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-service=http firewall-cmd --reload </syntaxhighlight> HTTPS 허용: <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-service=https firewall-cmd --reload </syntaxhighlight> Samba 허용: <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-service=samba firewall-cmd --reload </syntaxhighlight> === 8.5 포트 번호로 허용 === TCP 8080 허용: <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload </syntaxhighlight> UDP 514 허용: <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-port=514/udp firewall-cmd --reload </syntaxhighlight> TCP와 UDP를 모두 사용하는 경우 각각 등록한다. <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-port=514/tcp firewall-cmd --permanent --add-port=514/udp firewall-cmd --reload </syntaxhighlight> === 8.6 허용 설정 제거 === TCP 8080 제거: <syntaxhighlight lang="bash"> firewall-cmd --permanent --remove-port=8080/tcp firewall-cmd --reload </syntaxhighlight> HTTP 서비스 제거: <syntaxhighlight lang="bash"> firewall-cmd --permanent --remove-service=http firewall-cmd --reload </syntaxhighlight> === 8.7 런타임 설정과 영구 설정 차이 === <code>--permanent</code> 옵션 없이 추가하면 현재 실행 중인 설정에만 반영된다. <syntaxhighlight lang="bash"> firewall-cmd --add-port=8080/tcp </syntaxhighlight> 시스템 또는 firewalld 재시작 후 설정이 사라질 수 있다. 영구 설정: <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload </syntaxhighlight> === 8.8 특정 IP에서만 SSH 허용 === 다음 예시는 <code>192.168.10.0/24</code> 대역에서만 TCP 22번 접근을 허용한다. 기존 SSH 서비스가 전체 대역에 허용되어 있다면 먼저 별도 콘솔을 확보한다. Rich Rule 추가: <syntaxhighlight lang="bash"> firewall-cmd --permanent \ --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="22" protocol="tcp" accept' </syntaxhighlight> 기존 전체 SSH 허용 제거: <syntaxhighlight lang="bash"> firewall-cmd --permanent --remove-service=ssh firewall-cmd --reload </syntaxhighlight> 설정 확인: <syntaxhighlight lang="bash"> firewall-cmd --list-rich-rules </syntaxhighlight> == 9. firewalld 비활성화 및 iptables 전환 == Rocky Linux 9에서는 firewalld 사용을 우선 권장한다. iptables 방식은 다음과 같은 경우에만 고려한다. * 기존 운영 환경이 iptables 규칙으로 표준화되어 있는 경우 * 기존 스크립트가 iptables 명령어를 사용해야 하는 경우 * 애플리케이션 또는 운영 정책상 레거시 규칙 형식이 필요한 경우 Rocky Linux 9의 iptables 명령어는 내부적으로 nftables 호환 계층을 사용할 수 있다. firewalld와 iptables 서비스를 동시에 운영하면 규칙 충돌이나 관리 혼선이 발생할 수 있으므로 한 가지 방식만 선택한다. === 9.1 현재 방화벽 규칙 백업 === firewalld 설정 확인 및 백업: <syntaxhighlight lang="bash"> firewall-cmd --list-all-zones > /root/firewalld-backup-$(date +%Y%m%d_%H%M%S).txt </syntaxhighlight> 현재 nftables 규칙 백업: <syntaxhighlight lang="bash"> nft list ruleset > /root/nftables-backup-$(date +%Y%m%d_%H%M%S).txt </syntaxhighlight> 원격 작업 중 방화벽 전환에 실패하면 SSH 접속이 차단될 수 있다. 콘솔, iLO, iDRAC, IPMI 또는 가상화 콘솔을 확보한 상태에서 진행한다. === 9.2 iptables 서비스 패키지 설치 === <syntaxhighlight lang="bash"> dnf install -y iptables-services </syntaxhighlight> 설치 확인: <syntaxhighlight lang="bash"> rpm -q iptables-services </syntaxhighlight> === 9.3 firewalld 비활성화 === <syntaxhighlight lang="bash"> systemctl disable --now firewalld </syntaxhighlight> 상태 확인: <syntaxhighlight lang="bash"> systemctl is-active firewalld systemctl is-enabled firewalld </syntaxhighlight> 예상 출력: <syntaxhighlight lang="text"> inactive disabled </syntaxhighlight> === 9.4 iptables 기본 규칙 작성 === 기존 파일 백업: <syntaxhighlight lang="bash"> cp -a /etc/sysconfig/iptables \ /etc/sysconfig/iptables.bak.$(date +%Y%m%d_%H%M%S) 2>/dev/null </syntaxhighlight> 설정 파일 편집: <syntaxhighlight lang="bash"> vi /etc/sysconfig/iptables </syntaxhighlight> SSH 22번과 Samba를 허용하는 예시: <syntaxhighlight lang="text"> *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -p tcp --dport 22 -j ACCEPT -A INPUT -p udp --dport 137 -j ACCEPT -A INPUT -p udp --dport 138 -j ACCEPT -A INPUT -p tcp --dport 139 -j ACCEPT -A INPUT -p tcp --dport 445 -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP COMMIT </syntaxhighlight> SSH 포트를 2222번으로 변경한 경우 다음과 같이 수정한다. <syntaxhighlight lang="text"> -A INPUT -p tcp --dport 2222 -j ACCEPT </syntaxhighlight> 기본 정책이 DROP인 상태에서 SSH 허용 규칙이 누락되면 원격 접속이 차단된다. === 9.5 iptables 서비스 시작 === <syntaxhighlight lang="bash"> systemctl enable --now iptables </syntaxhighlight> 상태 확인: <syntaxhighlight lang="bash"> systemctl status iptables </syntaxhighlight> 규칙 확인: <syntaxhighlight lang="bash"> iptables -L -n -v --line-numbers </syntaxhighlight> 저장: <syntaxhighlight lang="bash"> service iptables save </syntaxhighlight> 또는 현재 규칙을 파일로 저장한다. <syntaxhighlight lang="bash"> iptables-save > /etc/sysconfig/iptables </syntaxhighlight> === 9.6 규칙 테스트 === SSH 포트 확인: <syntaxhighlight lang="bash"> iptables -L INPUT -n -v --line-numbers | grep -E '22|2222' </syntaxhighlight> Samba 포트 확인: <syntaxhighlight lang="bash"> iptables -L INPUT -n -v --line-numbers | grep -E '137|138|139|445' </syntaxhighlight> 전체 규칙 확인: <syntaxhighlight lang="bash"> iptables-save </syntaxhighlight> == 10. 서비스 정상 유무 확인 == === 10.1 systemctl을 이용한 서비스 확인 === SSH 상태 확인: <syntaxhighlight lang="bash"> systemctl status sshd </syntaxhighlight> Samba 상태 확인: <syntaxhighlight lang="bash"> systemctl status smb systemctl status nmb </syntaxhighlight> 실행 여부만 확인: <syntaxhighlight lang="bash"> systemctl is-active sshd systemctl is-active smb </syntaxhighlight> 부팅 시 자동 시작 여부 확인: <syntaxhighlight lang="bash"> systemctl is-enabled sshd systemctl is-enabled smb </syntaxhighlight> === 10.2 실패한 서비스 확인 === <syntaxhighlight lang="bash"> systemctl --failed </syntaxhighlight> 특정 서비스의 최근 로그 확인: <syntaxhighlight lang="bash"> journalctl -u sshd -n 50 --no-pager </syntaxhighlight> Samba 로그 확인: <syntaxhighlight lang="bash"> journalctl -u smb -n 50 --no-pager </syntaxhighlight> 실시간 로그 확인: <syntaxhighlight lang="bash"> journalctl -u sshd -f </syntaxhighlight> === 10.3 설정 파일 문법 검사 === SSH 설정 검사: <syntaxhighlight lang="bash"> sshd -t </syntaxhighlight> Samba 설정 검사: <syntaxhighlight lang="bash"> testparm </syntaxhighlight> == 11. 서비스 포트 리스닝 확인 == === 11.1 ss 명령어 사용 === 전체 TCP/UDP 리스닝 포트 확인: <syntaxhighlight lang="bash"> ss -lntup </syntaxhighlight> TCP 포트만 확인: <syntaxhighlight lang="bash"> ss -lntp </syntaxhighlight> UDP 포트만 확인: <syntaxhighlight lang="bash"> ss -lnup </syntaxhighlight> SSH 22번 확인: <syntaxhighlight lang="bash"> ss -lntp | grep ':22' </syntaxhighlight> SSH 2222번 확인: <syntaxhighlight lang="bash"> ss -lntp | grep ':2222' </syntaxhighlight> Samba 포트 확인: <syntaxhighlight lang="bash"> ss -lntup | grep -E ':137|:138|:139|:445' </syntaxhighlight> === 11.2 결과에서 확인할 항목 === 출력 예시: <syntaxhighlight lang="text"> LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3)) </syntaxhighlight> 확인할 항목: {| class="wikitable" ! 항목 | ! 설명 | | -------------------------- | | LISTEN | | 해당 포트가 연결을 기다리는 상태 | | - | | 0.0.0.0:22 | | 모든 IPv4 인터페이스에서 TCP 22번 수신 | | - | | [::]:22 | | 모든 IPv6 인터페이스에서 TCP 22번 수신 | | - | | 127.0.0.1 | | 로컬 서버에서만 접근 가능 | | - | | users | | 해당 포트를 사용하는 프로세스 | | } | 서비스가 실행 중이어도 포트가 리스닝하지 않으면 설정 오류 또는 프로세스 시작 실패를 의심해야 한다. == 12. 외부에서 포트 오픈 여부 확인 == 서버 내부의 <code>ss</code> 명령은 서비스 리스닝 여부를 확인한다. 방화벽과 네트워크를 포함한 실제 접근 가능 여부는 다른 PC에서 테스트해야 한다. === 12.1 nc 명령어 설치 === Rocky Linux에서 설치: <syntaxhighlight lang="bash"> dnf install -y nmap-ncat </syntaxhighlight> === 12.2 TCP 포트 테스트 === SSH 22번 테스트: <syntaxhighlight lang="bash"> nc -zv 192.168.10.20 22 </syntaxhighlight> SSH 2222번 테스트: <syntaxhighlight lang="bash"> nc -zv 192.168.10.20 2222 </syntaxhighlight> Samba 445번 테스트: <syntaxhighlight lang="bash"> nc -zv 192.168.10.20 445 </syntaxhighlight> 성공 예시: <syntaxhighlight lang="text"> Connection to 192.168.10.20 22 port [tcp/ssh] succeeded! </syntaxhighlight> 실패 유형: {| class="wikitable" ! 메시지 | ! 의심 원인 | | ----------------------------- | | Connection refused | | 서비스가 실행되지 않거나 해당 포트를 리스닝하지 않음 | | - | | Connection timed out | | 방화벽 차단, 라우팅 문제, 네트워크 단절 | | - | | No route to host | | 라우팅 또는 네트워크 경로 문제 | | } | === 12.3 Windows PowerShell에서 테스트 === <syntaxhighlight lang="powershell"> Test-NetConnection 192.168.10.20 -Port 22 </syntaxhighlight> SSH 포트가 2222번인 경우: <syntaxhighlight lang="powershell"> Test-NetConnection 192.168.10.20 -Port 2222 </syntaxhighlight> 확인 항목: <syntaxhighlight lang="text"> TcpTestSucceeded : True </syntaxhighlight> == 13. SSH 접속 테스트 == === 13.1 Linux 또는 macOS에서 접속 === 기본 포트: <syntaxhighlight lang="bash"> ssh admin@192.168.10.20 </syntaxhighlight> 변경 포트: <syntaxhighlight lang="bash"> ssh -p 2222 admin@192.168.10.20 </syntaxhighlight> 최초 접속 시 서버 호스트 키 확인 메시지가 표시될 수 있다. <syntaxhighlight lang="text"> Are you sure you want to continue connecting (yes/no/[fingerprint])? </syntaxhighlight> 서버 주소가 맞는지 확인한 후 다음을 입력한다. <syntaxhighlight lang="text"> yes </syntaxhighlight> === 13.2 Windows에서 SSH 접속 === Windows PowerShell 또는 명령 프롬프트에서 실행한다. <syntaxhighlight lang="powershell"> ssh admin@192.168.10.20 </syntaxhighlight> 변경 포트: <syntaxhighlight lang="powershell"> ssh -p 2222 admin@192.168.10.20 </syntaxhighlight> PuTTY를 사용할 경우 다음 항목을 입력한다. {| class="wikitable" ! 항목 | ! 값 | | ---------------- | | Host Name | | 192.168.10.20 | | - | | Port | | 22 또는 변경한 SSH 포트 | | - | | Connection Type | | SSH | | } | === 13.3 SSH 접속 장애 확인 순서 === # 서버 IP 통신 확인 # SSH 서비스 상태 확인 # SSH 설정 문법 확인 # SSH 포트 리스닝 확인 # firewalld 또는 iptables 규칙 확인 # SELinux 포트 등록 확인 # 서버 로그 확인 확인 명령어: <syntaxhighlight lang="bash"> ping -c 4 192.168.10.20 systemctl status sshd sshd -t ss -lntp | grep sshd firewall-cmd --list-all semanage port -l | grep ssh journalctl -u sshd -n 100 --no-pager </syntaxhighlight> == 14. SFTP 접속 테스트 == SFTP는 FTP와 다른 프로토콜이다. SFTP는 SSH 서비스를 이용하며 별도의 FTP 서버 프로그램이 필요하지 않다. SSH 포트가 TCP 22번이면 SFTP도 TCP 22번을 사용한다. SSH 포트를 2222번으로 변경하면 SFTP도 TCP 2222번을 사용한다. === 14.1 Linux에서 SFTP 접속 === 기본 포트: <syntaxhighlight lang="bash"> sftp admin@192.168.10.20 </syntaxhighlight> 변경 포트: <syntaxhighlight lang="bash"> sftp -P 2222 admin@192.168.10.20 </syntaxhighlight> SFTP에서 자주 사용하는 명령어: {| class="wikitable" ! 명령어 | ! 설명 | | ----------------- | | pwd | | 서버의 현재 디렉터리 확인 | | - | | lpwd | | 로컬 PC의 현재 디렉터리 확인 | | - | | ls | | 서버 파일 목록 확인 | | - | | lls | | 로컬 파일 목록 확인 | | - | | cd | | 서버 디렉터리 이동 | | - | | lcd | | 로컬 디렉터리 이동 | | - | | get 파일명 | | 서버 파일 다운로드 | | - | | put 파일명 | | 로컬 파일 업로드 | | - | | exit | | SFTP 종료 | | } | === 14.2 Windows FileZilla에서 SFTP 접속 === FileZilla 사이트 관리자에서 다음과 같이 설정한다. {| class="wikitable" ! 항목 | ! 설정값 | | --------------------------------- | | 프로토콜 | | SFTP - SSH File Transfer Protocol | | - | | 호스트 | | 192.168.10.20 | | - | | 포트 | | 22 또는 변경한 SSH 포트 | | - | | 로그온 유형 | | 일반 | | - | | 사용자 | | admin | | - | | 비밀번호 | | 해당 계정 비밀번호 | | } | SFTP를 사용할 때 프로토콜을 FTP 또는 FTPS로 선택하면 접속되지 않는다. === 14.3 SFTP 업로드 권한 확인 === 사용자 홈 디렉터리 권한 확인: <syntaxhighlight lang="bash"> ls -ld /home/admin </syntaxhighlight> 파일 생성 테스트: <syntaxhighlight lang="bash"> sudo -u admin touch /home/admin/sftp-test.txt </syntaxhighlight> 확인: <syntaxhighlight lang="bash"> ls -l /home/admin/sftp-test.txt </syntaxhighlight> 테스트 파일 삭제: <syntaxhighlight lang="bash"> rm -f /home/admin/sftp-test.txt </syntaxhighlight> == 15. Samba 파일 공유 설정 == Samba는 Linux 서버의 디렉터리를 Windows 네트워크 공유 방식으로 제공하는 서비스다. Windows에서는 다음 형식으로 접근한다. <syntaxhighlight lang="text"> \\192.168.10.20\share </syntaxhighlight> === 15.1 Samba 패키지 설치 === <syntaxhighlight lang="bash"> dnf install -y samba samba-client </syntaxhighlight> 설치 확인: <syntaxhighlight lang="bash"> rpm -q samba rpm -q samba-client </syntaxhighlight> === 15.2 공유용 계정 생성 === Linux 계정 생성: <syntaxhighlight lang="bash"> useradd -m shareuser passwd shareuser </syntaxhighlight> Samba 비밀번호 등록: <syntaxhighlight lang="bash"> smbpasswd -a shareuser </syntaxhighlight> Samba 계정 활성화: <syntaxhighlight lang="bash"> smbpasswd -e shareuser </syntaxhighlight> 등록된 Samba 사용자 확인: <syntaxhighlight lang="bash"> pdbedit -L </syntaxhighlight> Linux 계정 비밀번호와 Samba 비밀번호는 별도로 관리될 수 있다. === 15.3 공유 디렉터리 생성 === 공유 경로 예시: <syntaxhighlight lang="text"> /data/share </syntaxhighlight> 디렉터리 생성: <syntaxhighlight lang="bash"> mkdir -p /data/share </syntaxhighlight> 소유자 설정: <syntaxhighlight lang="bash"> chown -R shareuser:shareuser /data/share </syntaxhighlight> 권한 설정: <syntaxhighlight lang="bash"> chmod 2770 /data/share </syntaxhighlight> 권한 확인: <syntaxhighlight lang="bash"> ls -ld /data/share </syntaxhighlight> === 15.4 Samba 설정 파일 백업 === <syntaxhighlight lang="bash"> cp -a /etc/samba/smb.conf \ /etc/samba/smb.conf.bak.$(date +%Y%m%d_%H%M%S) </syntaxhighlight> === 15.5 Samba 기본 설정 === 설정 파일 편집: <syntaxhighlight lang="bash"> vi /etc/samba/smb.conf </syntaxhighlight> 설정 예시: <syntaxhighlight lang="ini"> [global] workgroup = WORKGROUP security = user map to guest = never server min protocol = SMB2 server role = standalone server [share] comment = Shared Folder path = /data/share browseable = yes writable = yes read only = no valid users = shareuser create mask = 0660 directory mask = 0770 </syntaxhighlight> 주요 설정 설명: {| class="wikitable" ! 항목 | ! 설명 | | -------------------------- | | workgroup | | Windows 작업 그룹 이름 | | - | | security = user | | 사용자 계정 기반 인증 | | - | | server min protocol = SMB2 | | 오래된 SMB1 프로토콜 사용 방지 | | - | | path | | 실제 공유 디렉터리 경로 | | - | | browseable | | 네트워크 검색 시 공유 표시 여부 | | - | | writable | | 쓰기 허용 여부 | | - | | valid users | | 공유에 접근할 수 있는 Samba 사용자 | | - | | create mask | | 새 파일의 기본 권한 | | - | | directory mask | | 새 디렉터리의 기본 권한 | | } | === 15.6 Samba 설정 문법 확인 === <syntaxhighlight lang="bash"> testparm </syntaxhighlight> 특정 설정 파일 검사: <syntaxhighlight lang="bash"> testparm /etc/samba/smb.conf </syntaxhighlight> 문법 오류가 있으면 서비스를 시작하기 전에 수정한다. === 15.7 SELinux 설정 === Samba가 공유 디렉터리에 접근할 수 있도록 SELinux 컨텍스트를 설정한다. 필요 도구 설치: <syntaxhighlight lang="bash"> dnf install -y policycoreutils-python-utils </syntaxhighlight> 영구 컨텍스트 등록: <syntaxhighlight lang="bash"> semanage fcontext -a -t samba_share_t "/data/share(/.*)?" </syntaxhighlight> 실제 디렉터리에 적용: <syntaxhighlight lang="bash"> restorecon -Rv /data/share </syntaxhighlight> 확인: <syntaxhighlight lang="bash"> ls -ldZ /data/share </syntaxhighlight> 출력에 다음 타입이 포함되어 있는지 확인한다. <syntaxhighlight lang="text"> samba_share_t </syntaxhighlight> 기존에 같은 경로의 SELinux 규칙이 이미 있는 경우 수정 옵션을 사용한다. <syntaxhighlight lang="bash"> semanage fcontext -m -t samba_share_t "/data/share(/.*)?" restorecon -Rv /data/share </syntaxhighlight> === 15.8 Samba 서비스 시작 === <syntaxhighlight lang="bash"> systemctl enable --now smb </syntaxhighlight> NetBIOS 이름 검색이 필요한 환경에서는 <code>nmb</code>도 시작한다. <syntaxhighlight lang="bash"> systemctl enable --now nmb </syntaxhighlight> 서비스 상태 확인: <syntaxhighlight lang="bash"> systemctl status smb systemctl status nmb </syntaxhighlight> 최신 Windows 환경에서 IP 주소 또는 DNS 이름으로 직접 접근하는 경우 <code>smb</code> 서비스만으로도 동작할 수 있다. === 15.9 firewalld에서 Samba 허용 === <syntaxhighlight lang="bash"> firewall-cmd --permanent --add-service=samba firewall-cmd --reload </syntaxhighlight> 설정 확인: <syntaxhighlight lang="bash"> firewall-cmd --list-services </syntaxhighlight> 상세 확인: <syntaxhighlight lang="bash"> firewall-cmd --info-service=samba </syntaxhighlight> === 15.10 Samba 포트 확인 === <syntaxhighlight lang="bash"> ss -lntup | grep -E ':137|:138|:139|:445' </syntaxhighlight> 주요 Samba 포트: {| class="wikitable" ! 포트 ! 프로토콜 | ! 용도 | | -------------- | | 137 | | UDP | | NetBIOS 이름 서비스 | | - | | 138 | | UDP | | NetBIOS 데이터그램 | | - | | 139 | | TCP | | NetBIOS 세션 서비스 | | - | | 445 | | TCP | | SMB 직접 통신 | | } | === 15.11 서버 내부에서 Samba 공유 테스트 === 공유 목록 확인: <syntaxhighlight lang="bash"> smbclient -L localhost -U shareuser </syntaxhighlight> 공유 접속: <syntaxhighlight lang="bash"> smbclient //localhost/share -U shareuser </syntaxhighlight> 접속 후 파일 목록 확인: <syntaxhighlight lang="text"> ls </syntaxhighlight> 테스트 파일 업로드: <syntaxhighlight lang="text"> put test.txt </syntaxhighlight> 종료: <syntaxhighlight lang="text"> exit </syntaxhighlight> === 15.12 Windows에서 Samba 접속 === Windows 탐색기 주소 표시줄에 다음을 입력한다. <syntaxhighlight lang="text"> \\192.168.10.20\share </syntaxhighlight> 호스트 이름으로 접근하는 경우: <syntaxhighlight lang="text"> \\rocky-file01\share </syntaxhighlight> 인증 창이 나오면 Samba 사용자 계정을 입력한다. <syntaxhighlight lang="text"> 사용자 이름: shareuser 비밀번호: smbpasswd에서 등록한 비밀번호 </syntaxhighlight> 사용자 이름 인식 문제가 있으면 다음 형식으로 입력한다. <syntaxhighlight lang="text"> rocky-file01\shareuser </syntaxhighlight> 또는: <syntaxhighlight lang="text"> .\shareuser </syntaxhighlight> === 15.13 Windows 자격 증명 초기화 === 잘못된 계정 정보가 저장된 경우 명령 프롬프트에서 기존 연결을 삭제한다. <syntaxhighlight lang="batch"> net use * /delete /y </syntaxhighlight> 특정 서버 연결만 삭제: <syntaxhighlight lang="batch"> net use \\192.168.10.20\share /delete </syntaxhighlight> 다시 연결: <syntaxhighlight lang="batch"> net use Z: \\192.168.10.20\share /user:shareuser </syntaxhighlight> === 15.14 Samba 접속 장애 확인 순서 === # 서버와 IP 통신 확인 # smb 서비스 상태 확인 # TCP 445 포트 리스닝 확인 # 방화벽 허용 확인 # Samba 설정 문법 확인 # Samba 계정 등록 확인 # Linux 디렉터리 권한 확인 # SELinux 컨텍스트 확인 # Samba 로그 확인 확인 명령어: <syntaxhighlight lang="bash"> ping -c 4 192.168.10.20 systemctl status smb ss -lntp | grep ':445' firewall-cmd --list-all testparm pdbedit -L ls -ld /data/share ls -ldZ /data/share journalctl -u smb -n 100 --no-pager </syntaxhighlight> SELinux 차단 로그 확인: <syntaxhighlight lang="bash"> ausearch -m AVC -ts recent </syntaxhighlight> 최근 Samba 로그 확인: <syntaxhighlight lang="bash"> tail -n 100 /var/log/samba/log.smbd </syntaxhighlight> 로그 파일은 Samba 설정이나 패키지 버전에 따라 위치가 다를 수 있다. == 16. 전체 설정 최종 점검 == === 16.1 시스템 정보 === <syntaxhighlight lang="bash"> cat /etc/os-release hostnamectl timedatectl </syntaxhighlight> === 16.2 네트워크 === <syntaxhighlight lang="bash"> ip -br address ip route nmcli device status nmcli connection show ping -c 4 192.168.10.1 </syntaxhighlight> === 16.3 SSH === <syntaxhighlight lang="bash"> systemctl is-active sshd systemctl is-enabled sshd sshd -t ss -lntp | grep sshd journalctl -u sshd -n 30 --no-pager </syntaxhighlight> === 16.4 방화벽 === firewalld 사용 시: <syntaxhighlight lang="bash"> systemctl is-active firewalld firewall-cmd --get-active-zones firewall-cmd --list-all </syntaxhighlight> iptables 사용 시: <syntaxhighlight lang="bash"> systemctl is-active iptables iptables -L -n -v --line-numbers iptables-save </syntaxhighlight> === 16.5 Samba === <syntaxhighlight lang="bash"> systemctl is-active smb systemctl is-enabled smb testparm pdbedit -L ss -lntup | grep -E ':137|:138|:139|:445' ls -ldZ /data/share </syntaxhighlight> == 17. 구축 완료 후 권장 사항 == === 17.1 불필요한 root 원격 로그인 차단 === <syntaxhighlight lang="apache"> PermitRootLogin no </syntaxhighlight> === 17.2 일반 관리자 계정 사용 === 관리 계정을 <code>wheel</code> 그룹에 추가하고 필요할 때만 sudo를 사용한다. <syntaxhighlight lang="bash"> usermod -aG wheel admin </syntaxhighlight> === 17.3 사용하지 않는 서비스 비활성화 === 실행 중인 서비스 확인: <syntaxhighlight lang="bash"> systemctl --type=service --state=running </syntaxhighlight> 불필요한 서비스를 확인한 후 비활성화한다. <syntaxhighlight lang="bash"> systemctl disable --now 서비스명 </syntaxhighlight> 서비스 용도를 확인하지 않고 임의로 비활성화하면 시스템 기능에 문제가 발생할 수 있다. === 17.4 정기 업데이트 === 업데이트 확인: <syntaxhighlight lang="bash"> dnf check-update </syntaxhighlight> 업데이트 적용: <syntaxhighlight lang="bash"> dnf update -y </syntaxhighlight> 커널 및 핵심 라이브러리 업데이트 후에는 재부팅이 필요할 수 있다. === 17.5 시간 동기화 확인 === <syntaxhighlight lang="bash"> timedatectl chronyc tracking chronyc sources -v </syntaxhighlight> 시간대가 잘못된 경우 서울 시간대로 설정한다. <syntaxhighlight lang="bash"> timedatectl set-timezone Asia/Seoul </syntaxhighlight> === 17.6 설정 파일 백업 === 주요 설정 파일: <syntaxhighlight lang="text"> /etc/NetworkManager/system-connections/ /etc/hosts /etc/hostname /etc/ssh/sshd_config /etc/ssh/sshd_config.d/ /etc/firewalld/ /etc/sysconfig/iptables /etc/samba/smb.conf </syntaxhighlight> 백업 예시: <syntaxhighlight lang="bash"> tar czvf /root/rocky-basic-config-$(date +%Y%m%d).tar.gz \ /etc/NetworkManager/system-connections \ /etc/hosts \ /etc/hostname \ /etc/ssh \ /etc/firewalld \ /etc/sysconfig/iptables \ /etc/samba/smb.conf 2>/dev/null </syntaxhighlight> == 18. 전체 작업 순서 요약 == <syntaxhighlight lang="text"> 1. Rocky Linux 9 설치 2. 설치 후 패키지 업데이트 3. 네트워크 인터페이스 확인 4. 고정 IP 및 DNS 설정 5. 게이트웨이와 외부 통신 확인 6. 호스트 이름 설정 7. 관리자 계정 생성 8. SSH 서비스 확인 9. root 직접 로그인 차단 10. 필요 시 SSH 허용 계정 제한 11. 필요 시 SSH 포트 변경 12. SELinux에 변경 포트 등록 13. 방화벽 포트 허용 14. SSH와 SFTP 접속 테스트 15. Samba 패키지 설치 16. Samba 계정 및 공유 디렉터리 생성 17. Samba 설정 파일 작성 18. SELinux 컨텍스트 설정 19. Samba 방화벽 허용 20. Windows에서 공유 접속 테스트 21. 설정 파일 백업 </syntaxhighlight> == 19. 빠른 점검 명령어 모음 == <syntaxhighlight lang="bash"> # OS 버전 cat /etc/os-release # 호스트 이름 hostnamectl # IP 주소 ip -br address # 라우팅 ip route # NetworkManager nmcli device status nmcli connection show # SSH 상태 systemctl status sshd # SSH 문법 sshd -t # 포트 리스닝 ss -lntup # firewalld firewall-cmd --list-all # iptables iptables -L -n -v --line-numbers # Samba 문법 testparm # Samba 계정 pdbedit -L # Samba 서비스 systemctl status smb # 실패한 서비스 systemctl --failed # 최근 부팅 로그 오류 journalctl -p err -b --no-pager </syntaxhighlight> == 관련 문서 == * Rocky Linux 9 사용자 및 그룹 관리 * Rocky Linux 9 패키지 관리 * Rocky Linux 9 systemd 서비스 관리 * Rocky Linux 9 firewalld 상세 설정 * Rocky Linux 9 SSH 키 인증 설정 * Rocky Linux 9 SELinux 기본 관리 * Rocky Linux 9 Samba 고급 설정 * Rocky Linux 9 로그 확인 및 장애 분석
Rocky9
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
associated-pages
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보