본문 바로가기

IT 엔지니어/Linux server

[Centos7] Security

 

W 접근 통제 4 단계 W

 

1. 방화벽

     (linux=netfiler/firewalld/iptables)

2. XINETD

3. TCPWrapper

4. Service

 

Daemon Operation Mode

  1. Standalone
    1. cd /etc/init.d
  2. xinetd ( 실질적으로 상주하여 super daemon을 할당)
    1. 방화벽
    firewall-cmd --permanent --add-port=23/tcp
    
    firewall-cmd --permanent --remove-port=23/tcp
    --add-service=telnet
    
    
    1. cd /etc/xinetd.d

서비스 오픈 시 포트까지 동시 오픈됨

firewall-cmd --reload

 

 

reload 적용 후 화면

 

firewall-cmd --permanent 

--add-port=23/tcp
--add-service=telnet

--add-rich-rule=
'rule family="ipv4" 
source address="192.168.1.100" 
service name="ssh" 
port protocol="tcp" port="23" ACCPET' [accept/drop]

# firewall-cmd --permanent 
--add-rich-rule='rule family="ipv4" 
source address="192.168.10.150" 
service name="http" drop'
  1. 방화벽 환경설정 파일
    1. 잡다 - 방화벽 - public - 체크 설정
    2.  vi /etc/firewalld/zones/public.xml
  2. xinetd
vi /etc/xinetd.conf

23 no access 접속시 차단 주소 192.168.10.50 192.168.10.100 //여기서 접속시 차단

24 only from 접속시 허용 주소 192.168.10.0/24 except 192.168.10.100

 

3. TCPWrapper

vi /etc/hosts.deny

all:all

vi /etc/hosts.allow

all:192.168.10.202

in.telnetd, sshd:192.168.10.100 192.168.10.200

 

 

4. 서비스

1️⃣ SSH Root 로그인 차단 (/etc/ssh/sshd_config)

PermitRootLogin no

2️⃣ 비밀번호 없이 SSH 로그인 차단 (/etc/ssh/sshd_config)

baPa

passwordAuthentication no

 3️⃣FTP(21번 포트) 접근 차단 (Firewalld 사용)

firewall-cmd --permanent --remove-service=ftp
firewall-cmd --reload



1️⃣ Firewalld

→ 네트워크 트래픽 제어 (IP, 포트 차단)

2️⃣ xinetd

→ 서비스 실행 여부 제어 (불필요한 서비스 차단)

3️⃣ TCP Wrapper

→ 서비스 접근 제어 (호스트/IP 기준)

4️⃣ 각 개별 서비스 보안 설정

→ SSH, FTP 등 보안 강화

🚀 Firewalld vs. xinetd의 IP 기반 제어 차이점

둘 다 IP 기반 접근 제어가 가능하지만, 적용 방식과 범위가 다릅니다.

기능 Firewalld (방화벽) xinetd (슈퍼 데몬)

작동 계층 네트워크 계층 (L3/L4) 애플리케이션 계층 (L7)
차단 대상 모든 트래픽(IP, 포트, 프로토콜) xinetd로 관리되는 서비스만 (Telnet, FTP 등)
적용 범위 전체 시스템 특정 서비스별 적용 가능
접근 제어 방법 IP, 포트, 프로토콜 단위로 제어 only_from(허용), no_access(차단) 사용
기능 예시 특정 IP의 모든 네트워크 접근 차단 특정 IP의 특정 서비스 접근 차단
서비스 관리 모든 네트워크 트래픽을 관리 xinetd가 관리하는 서비스만 제어
실행 방식 커널 수준에서 작동 사용자가 요청한 서비스 실행 시 작동

✅ Firewalld vs. xinetd 사용 예시

상황 Firewalld 사용 xinetd 사용

특정 IP의 모든 서비스 차단 ✅ drop 설정 ❌ 불가능
특정 IP의 특정 서비스만 차단 🔹 포트 차단 가능 (--remove-service=ssh) ✅ no_access 설정
서비스 별로 다른 IP 접근 제어 🔹 가능하지만 서비스마다 별도 정책 필요 ✅ 각 서비스 설정 파일에서 직접 관리 가능
Ping(icmp) 차단 ✅ 가능 (icmp drop 설정) ❌ 불가능
방화벽 없이 서비스만 보호 ❌ 모든 트래픽을 필터링하지 않음 ✅ xinetd가 관리하는 서비스는 보호 가능

 

 

 

 

1. 네트워크 설정 파일 확인 및 수정

VMware에서 기본 네트워크 인터페이스는 ens33입니다. 먼저 설정 파일을 확인하세요.

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

다음과 같이 설정해야 합니다.

TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes

# 고정 IP 설정 (예: 192.168.1.100)
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

중요:

  • BOOTPROTO=static → 고정 IP 설정
  • ONBOOT=yes → 부팅 시 자동으로 네트워크 활성화

설정 변경 후 저장하고 종료합니다.


2. 네트워크 서비스 재시작

설정을 적용하려면 다음 명령어를 실행하세요.

systemctl restart network

또는

sudo nmcli connection reload
sudo nmcli connection up ens33


3. 네트워크 관리자(NetworkManager) 사용 여부 확인

CentOS 7은 기본적으로 NetworkManager가 활성화되어 있어, 직접 ifcfg-ens33을 수정해도 적용되지 않을 수 있습니다.

현재 NetworkManager가 활성화되어 있는지 확인

systemctl status NetworkManager

만약 활성화되어 있다면 NetworkManager를 중지하고 비활성화

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

네트워크재시작

sudo systemctl restart network


4. VMware의 네트워크 어댑터 설정 확인

VMware의 네트워크가 Bridged 또는 NAT 모드인지 확인

  • Bridged: 호스트와 같은 네트워크 대역 사용 (추천)
  • NAT: 내부 네트워크에서 호스트를 통해 인터넷 사용

설정 방법:

  1. VMware에서 가상 머신 선택
  2. Settings(설정) → Network Adapter(네트워크 어댑터) → Bridged 선택
systemctl restart network


5. 네트워크 인터페이스 상태 확인

ip addr show ens33

또는

nmcli device status

IP 설정이 제대로 적용되었는지 확인 dhclient 명령어로 DHCP IP 해제하고 다시 적용

sudo dhclient -r ens33
sudo dhclient ens33



  1. Telnet 서비스 설정
cd /etc/xinetd.d/
cp tftp telnet

systemctl stop telnet.socket
systemctl restart xinetd

systemctl stop firewalld
setenforce 0
  1. Telnet용으로 xinetd 파일 수정
service telnet
{
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        flag                    = REUSE
        server                  = /usr/sbin/in.telnetd
        disable                 = no
        log_on_failure          += USERID
				access_times            = 14:15-14:16 /// 실제 사용 가능 시간대

}

  1. 시스템 재시작
[root@localhost xinetd.d]# systemctl stop telnet.socket
[root@localhost xinetd.d]# systemctl restart xinetd

방화벽 해제

1. Telnet 설정 변경 (root 접속 허용)

Telnet은 기본적으로 root 계정의 접속을 차단합니다. 이를 해제하려면 설정 파일을 수정해야 합니다.

🔹 (1) /etc/securetty 파일 수정

securetty 파일을 수정하여 root가 Telnet을 사용할 수 있도록 설정합니다.

vi /etc/securetty

아래 내용을 추가합니다.

pts/0
pts/1
pts/2
pts/3

VSFTPD 설정

service ftp
{
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        flag                    = REUSE
        server                  = /usr/sbin/vsftpd
        disable                 = no
        log_on_failure          += USERID

}

'IT 엔지니어 > Linux server' 카테고리의 다른 글

iptables  (0) 2025.03.21
Linux Mail Server  (0) 2025.03.20
Linux php 서버  (0) 2025.03.19
Linux DNS sub  (0) 2025.03.17
Linux 가상호스팅 웹서버  (0) 2025.03.15