nmtui
nmtui
는 NetworkManager의 텍스트 기반 사용자 인터페이스로, 네트워크와 관련된 대부분의 작업을 이 명령어를 통해 수행할 수 있다. 이를 통해 자동 IP 주소 설정 또는 고정 IP 주소 사용 여부를 결정하고, IP 주소, 서브넷 마스크, 게이트웨이 정보 및 DNS 정보를 입력할 수 있다. 또한, 네트워크 카드 드라이버 설정과 네트워크 장치의 세부 설정도 가능하며, 텍스트 기반으로 작동하여 GUI 환경 없이도 쉽게 네트워크를 관리할 수 있다.
nmtui로 네트워크 설정을 변경한 후에는 변경된 내용을 시스템에 적용해야한다.
sudo nmtui
sudo systemctl restart NetworkManager
ifconfig
ifconfig
ifconfig
명령어는 네트워크 인터페이스의 상태를 제어하고 정보를 확인하는 데 사용된다.
- 장치를 활성화하려면:
- sudo ifconfig <인터페이스> up
- sudo ifup <인터페이스>
- 장치를 비활성화하려면
- sudo ifconfig <인터페이스> down
- sudo ifdown <인터페이스>
- 장치의 IP 주소 설정 정보를 확인하려면:
- ifconfig <인터페이스>
nslookup
nslookup
nslookup
은 DNS 서버의 작동을 테스트하고 도메인 이름을 IP 주소로 변환하거나 그 반대로 수행할 때 사용된다. 이를 통해 서버나 특정 도메인을 검색할 수도 있다.
[root@localhost ~]# nslookup
> server
Default server: 8.8.8.8
Address: 8.8.8.8#53
> www.google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: www.google.com
Address: 142.250.207.100
Name: www.google.com
Address: 2404:6800:400a:813::2004
주요 네트워크 설정 파일
/etc/NetworkManager/system-connections/<인터페이스>.nmconnection
이 파일은 네트워크 인터페이스에 설정된 모든 네트워크 정보를 포함하고 있다. 여기에는 IP 주소, 서브넷 마스크, 게이트웨이 정보, DNS 설정 및 네트워크 카드 드라이버 설정 등이 저장된다. 이 파일은 nmtui
나 텍스트 에디터를 사용하여 직접 편집할 수 있다.
/etc/resolve.conf
DNS 서버의 정보 및 호스트 이름을 포함하고 있다. 이 파일에는 도메인 이름 해석을 위한 DNS 서버 주소와 검색 도메인 설정이 포함된다.
nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com
주의사항: /etc/resolv.conf
파일을 수동으로 수정한 후 systemctl restart NetworkManager
를 실행하면, NetworkManager가 이 파일을 다시 생성하면서 수정한 내용이 사라질 수 있다. 이를 방지하려면 NetworkManager를 통해 DNS 설정을 영구적으로 변경해야 한다.
/etc/hosts
현 컴퓨터의 호스트 이름과 완전한 도메인 이름(FQDN)을 매핑하는 데 사용된다. 이를 통해 도메인 이름과 IP 주소 간의 매핑을 수동으로 설정할 수 있다.
127.0.0.1 localhost localhost.localdomain
192.168.1.10 server.example.com server
- 로컬 호스트 정의: 특정 IP 주소에 호스트 이름을 매핑하여 네트워크 요청 시 DNS 서버를 거치지 않고도 빠르게 이름을 해석할 수 있다.
- 개발 및 테스트 환경 구성: 개발 중인 애플리케이션이 특정 도메인 이름을 로컬 서버로 가리키도록 설정할 수 있다.
- 호스트 이름 충돌 해결: 네트워크 내에서 동일한 호스트 이름을 가진 여러 장치가 있을 때, 특정 호스트 이름을 특정 IP 주소로 지정하여 충돌을 방지할 수 있다.
- 보안 강화: 특정 악성 도메인 이름을 로컬 IP 주소(예:
127.0.0.1
)로 매핑하여 접근을 차단할 수 있다.
# 예시: 특정 도메인 차단
127.0.0.1 malicious-site.com
네트워크 보안을 위한 SELinux
SELinux(Security-Enhanced Linux)는 시스템의 보안을 강화하기 위해 커널 수준에서 접근 제어를 제공하는 보안 모듈이다. SELinux는 정책 기반의 보안 모델을 사용하여, 시스템의 각 프로세스와 파일에 대한 세밀한 접근 권한을 정의하고 관리한다. 네트워크 보안 측면에서 SELinux는 다음과 같은 역할을 한다:
SELinux의 기본 개념
- 도메인(Domain): 각 프로세스는 특정 도메인으로 분류되며, 이 도메인은 해당 프로세스가 수행할 수 있는 작업을 정의한다.
- 타입(Type): 파일, 디렉토리, 소켓 등 시스템 객체는 타입으로 분류된다.
- 정책(Policy): 도메인과 타입 간의 상호작용을 정의하는 규칙 집합이다. 정책에 따라 프로세스가 특정 파일에 접근하거나 네트워크 서비스를 사용할 수 있는지 여부가 결정된다.
네트워크 보안에서 SELinux의 역할
SELinux는 네트워크 관련 서비스와 애플리케이션의 동작을 제어함으로써 시스템을 보호한다. 주요 기능은 다음과 같다:
- 서비스 간 격리: 웹 서버, 데이터베이스 서버 등 서로 다른 네트워크 서비스를 격리하여, 한 서비스의 취약점이 다른 서비스로 확산되는 것을 방지한다.
- 포트 제한: 각 네트워크 서비스가 사용할 수 있는 포트를 제한하여, 불필요한 포트 접근을 차단한다.
- 파일 접근 제어: 네트워크 서비스가 접근할 수 있는 파일과 디렉토리를 엄격하게 제한하여, 데이터 유출이나 손상을 방지한다.
- 네트워크 리소스 관리: 네트워크 소켓과 리소스에 대한 접근 권한을 세밀하게 제어하여, 악의적인 접근을 방지한다.
SELinux 활성화
# 활성화 여부 확인
sestatus
# 설정 파일을 수정하여 활성화한다.
sudo vi /etc/selinux/config
SELinux 모드
SELinux는 세 가지 모드로 동작할 수 있다:
- Enforcing: SELinux 정책이 강제로 적용되어, 허용되지 않은 접근 시도가 차단되고 로그에 기록된다.
- Permissive: SELinux 정책이 적용되지 않지만, 정책 위반 시도는 로그에 기록된다.
- Disabled: SELinux가 완전히 비활성화되어, 모든 접근 시도가 허용된다.
SELinux 정책 관리
SELinux 정책은 도메인과 타입 간의 접근 규칙을 정의한다. 네트워크 보안을 위해 정책을 수정하거나 확장할 수 있다.
- 도메인 타입 변경: 특정 서비스의 도메인을 변경하여, 해당 서비스가 더 제한된 권한을 가지도록 설정할 수 있다.
- 포트 접근 허용: 특정 포트를 서비스가 사용할 수 있도록 정책을 수정할 수 있다.
- 파일 컨텍스트 설정: 네트워크 서비스가 접근할 수 있는 파일의 컨텍스트를 설정하여, 접근 권한을 제어할 수 있다.
SELinux 관리 도구
- semanage: SELinux 정책을 관리하는 데 사용된다. 포트, 파일 컨텍스트, 사용자 매핑 등을 설정할 수 있다.
- setsebool: SELinux 부울 변수를 설정하여, 특정 정책을 활성화하거나 비활성화할 수 있다.
- restorecon: 파일의 SELinux 컨텍스트를 기본 정책에 맞게 복원한다.
- audit2allow: SELinux 로그를 기반으로 필요한 정책 허용 규칙을 생성한다.
# SELinux 부울 변수 설정 예시
sudo setsebool -P httpd_can_network_connect on
네트워크 서비스와 SELinux 예제
Apache 웹 서버
Apache는 기본적으로 특정 포트에서만 동작하도록 SELinux 정책이 설정되어 있다. 예를 들어, Apache가 HTTP 포트(80)와 HTTPS 포트(443)에서만 작동하도록 제한할 수 있다.
# Apache가 추가적인 포트에서 작동하도록 허용
sudo semanage port -a -t http_port_t -p tcp 8080
sudo systemctl restart httpd
FTP 서버
FTP 서버는 파일 전송과 관련된 다양한 작업을 수행하므로, SELinux 정책을 통해 FTP 서비스가 접근할 수 있는 디렉토리와 파일을 제한할 수 있다.
# FTP 서비스가 특정 디렉토리에 접근할 수 있도록 설정
sudo semanage fcontext -a -t public_content_rw_t "/srv/ftp(/.*)?"
sudo restorecon -Rv /srv/ftp
SELinux 로그 확인
SELinux가 접근을 차단한 시도는 /var/log/audit/audit.log
파일에 기록된다. 문제 해결을 위해 로그를 확인하고 필요한 정책을 수정할 수 있다.
sudo ausearch -m avc -ts recent # 최근의 SELinux 차단 로그 조회
sudo sealert -a /var/log/audit/audit.log # SELinux 경고 분석
'CS > Linux' 카테고리의 다른 글
[Linux] 부트로더 (0) | 2024.09.29 |
---|---|
[Linux] 파이프, 프로세스, 서비스 (1) | 2024.09.28 |
[Linux] CRON과 AT (0) | 2024.09.22 |
[Linux] 파일 위치 검색 (1) | 2024.09.22 |
[Linux] 파일의 압축과 묶기 (1) | 2024.09.22 |