19.4. 설정 예


19.4.1. 비표준 포트에 Squiid 연결

다음 예제에서는 SELinux가 위의 부울을 강제 적용하여 Squid를 보완하고 기본적으로 특정 포트에 대한 액세스만 허용하는 방법을 보여주는 실제 데모를 제공합니다. 그러면 이 예제에서 부울을 변경하고 해당 액세스가 허용됨을 보여 줍니다.
이 예제는 SELinux가 Squid의 간단한 설정에 어떤 영향을 줄 수 있는지를 보여줍니다. Squid에 대한 포괄적인 설명서는 이 문서의 범위를 벗어납니다. 자세한 내용은 공식 Squid 설명서 를 참조하십시오. 이 예제에서는 Squid 호스트에 인터넷 액세스라는 두 개의 네트워크 인터페이스가 있고, 방화벽이 Squid가 수신 대기하는 기본 TCP 포트를 사용하는 내부 인터페이스에서 액세스를 허용하도록 구성되었다고 가정합니다(TCP 3128).
  1. squid 가 설치되었는지 확인합니다.
    ~]$ rpm -q squid
    package squid is not installed
    
    Copy to clipboard
    패키지가 설치되지 않은 경우 yum 유틸리티를 root로 사용하여 설치합니다.
    ~]# yum install squid
    Copy to clipboard
  2. 기본 구성 파일 /etc/squid/squid.conf 를 편집하고 cache_dir 지시문의 주석을 제거하고 다음과 유사한지 확인합니다.
    cache_dir ufs /var/spool/squid 100 16 256
    
    Copy to clipboard
    이 줄은 이 예제에서 사용할 cache_dir 지시문의 기본 설정을 지정합니다. 이는 Squid 스토리지 형식(ufs), 캐시가 있는 시스템의 디렉터리(/var/spool/squid), 캐시에 사용할 디스크 공간 양(100) 및 마지막으로 생성되는 첫 번째 수준 및 두 번째 수준 캐시 수(각각16 )로 구성됩니다.
  3. 동일한 구성 파일에서 http_access allow localnet 지시문의 주석을 제거합니다. 이를 통해 Red Hat Enterprise Linux에 기본 Squid를 설치할 때 자동으로 구성된 localnet ACL의 트래픽이 허용됩니다. 이 간단한 예는 기존 RFC1918 네트워크의 클라이언트 시스템이 프록시를 통해 액세스할 수 있도록 합니다.
  4. 동일한 구성 파일에서 visible_hostname 지시문의 주석을 제거하고 시스템의 호스트 이름으로 구성되었는지 확인합니다. 값은 호스트의 FQDN(정규화된 도메인 이름)이어야 합니다.
    visible_hostname squid.example.com
    
    Copy to clipboard
  5. root 로 다음 명령을 입력하여 squid 데몬을 시작합니다. 이 명령은 squid 가 처음 시작되면 이 명령은 cache_dir 지시문에서 위에 지정된 대로 캐시 디렉토리를 초기화한 다음 데몬을 시작합니다.
    ~]# systemctl start squid.service
    Copy to clipboard
    squid 가 성공적으로 시작되었는지 확인합니다. 출력에는 아래 정보가 포함되어 있으며 타임스탬프만 다릅니다.
    ~]# systemctl status squid.service
    squid.service - Squid caching proxy
       Loaded: loaded (/usr/lib/systemd/system/squid.service; disabled)
       Active: active (running) since Thu 2014-02-06 15:00:24 CET; 6s ago
    
    Copy to clipboard
  6. squid _var_run_t 값에 표시된 대로 squid 프로세스 ID(PID)가 제한된 서비스로 시작되었는지 확인합니다.
    ~]# ls -lZ /var/run/squid.pid 
    -rw-r--r--. root squid unconfined_u:object_r:squid_var_run_t:s0 /var/run/squid.pid
    
    Copy to clipboard
  7. 이때 이전에 구성된 localnet ACL에 연결된 클라이언트 시스템이 이 호스트의 내부 인터페이스를 프록시로 사용할 수 있습니다. 이 설정은 모든 일반 웹 브라우저 또는 시스템 전체의 설정에서 구성할 수 있습니다. 이제 Squid가 대상 시스템의 기본 포트(TCP 3128)에서 수신 대기하지만 대상 시스템은 공통 포트를 통해 인터넷의 다른 서비스에 대한 나가는 연결만 허용합니다. 이는 SELinux 자체에서 정의한 정책입니다. SELinux는 다음 단계에 표시된 대로 비표준 포트에 대한 액세스를 거부합니다.
  8. 클라이언트가 TCP 포트 10000에서 수신 대기하는 웹 사이트와 같은 Squid 프록시를 통해 비표준 포트를 사용하여 요청하면 다음과 유사한 거부가 기록됩니다.
    SELinux is preventing the squid daemon from connecting to network port 10000
    
    Copy to clipboard
  9. 이 액세스를 허용하려면 기본적으로 비활성화되므로 squid_connect_any 부울을 수정해야 합니다.
    ~]# setsebool -P squid_connect_any on
    Copy to clipboard
    참고
    setsebool 변경 사항을 재부팅해도 유지하지 않으려면 -P 옵션을 사용하지 마십시오.
  10. Squid가 이제 클라이언트를 대신하여 모든 포트에 대한 연결을 시작할 수 있으므로 클라이언트는 인터넷에서 비표준 포트에 액세스할 수 있습니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat, Inc.