Linux iptables 방화벽에 대한 13 개의 인터뷰 질문


Tecmint를 자주 방문하는 Nishita Agarwal은 인도 푸네의 개인 소유 호스팅 회사에서 방금 제공 한 취업 면접에 대한 경험 (질문 및 답변)을 우리와 공유했습니다. 그녀는 다양한 주제에 대해 많은 질문을 받았지만 그녀는 iptables의 전문가이며 iptables와 관련된 질문과 대답을 가까운 장래에 인터뷰를 할 다른 사람들에게 공유하고 싶었습니다.

모든 질문과 답변은 Nishita Agarwal의 기억을 바탕으로 다시 작성되었습니다.

\"안녕하세요 친구! "제 이름은 Nishita Agarwal입니다. "저는 기술 학사 학위를 취득했습니다. "저의 전문 분야는 UNIX이고 Variants of UNIX (BSD, Linux)는이 말을 들었을 때부터 매료되었습니다. "1 년 이상의 스토리지 경험이 있습니다. 저는 인도 푸네에있는 호스팅 회사로 끝나는 직업 변경을 찾고있었습니다.”

인터뷰에서 제가 요청한 내용은 다음과 같습니다. 내 기억을 기반으로 iptables와 관련된 질문과 답변 만 문서화했습니다. "이것이 당신의 인터뷰를 깨는 데 도움이되기를 바랍니다.

Firewalld는 RHEL/CentOS 7의 최신 필터링 규칙 구현입니다 (내가 알지 못하는 다른 배포판에서도 구현 될 수 있음). iptables 인터페이스를 대체하고 netfilter에 연결합니다.

iptables에서 사용되는 테이블은 무엇입니까? "iptables에서 사용되는 테이블과 그들이 지원하는 체인에 대한 간략한 설명을 제공하십시오.

  1. Nat Table
  2. Mangle Table
  3. Filter Table
  4. Raw Table

Nat 테이블 : Nat 테이블은 주로 네트워크 주소 변환에 사용됩니다. 가장 된 패킷은 표의 규칙에 따라 IP 주소가 변경됩니다. 스트림의 패킷은 Nat 테이블을 한 번만 통과합니다. 즉, 패킷 제트에서 나온 패킷이 위장되면 스트림의 나머지 패키지는이 테이블을 다시 통과하지 않습니다. 이 테이블에서 필터링하지 않는 것이 좋습니다. NAT Table에서 지원하는 Chain은 PREROUTING Chain, POSTROUTING Chain, OUTPUT Chain입니다.

Mangle Table : 이름에서 알 수 있듯이이 테이블은 패킷을 처리하는 데 사용됩니다. "특수 패키지 변경에 사용됩니다. "다른 패킷의 내용과 헤더를 변경하는 데 사용할 수 있습니다. Mangle 테이블은 마스커레이딩에 사용할 수 없습니다. "지원되는 체인은 PREROUTING Chain, OUTPUT Chain, Forward Chain, INPUT Chain, POSTROUTING Chain입니다.

필터 테이블 : 필터 테이블은 iptables에서 사용되는 기본 테이블입니다. 패킷 필터링에 사용됩니다. 정의 된 규칙이 없으면 필터 테이블이 기본 테이블로 사용되며이 테이블을 기준으로 필터링이 수행됩니다. "지원되는 체인은 INPUT Chain, OUTPUT Chain, FORWARD Chain입니다.

Raw Table : 이전에 제외 된 패키지를 구성하려는 경우 Raw 테이블이 작동합니다. PREROUTING Chain 및 OUTPUT Chain을 지원합니다.

    1. ACCEPT : Accept Packets
    2. QUEUE : Paas Package to user space (place where application and drivers reside)
    3. DROP : Drop Packets
    4. RETURN : Return Control to calling chain and stop executing next set of rules for the current Packets in the chain.

    CentOS에 iptables를 설치하는 데 필요한 iptables rpm을 어떻게 확인합니까?

    # rpm -qa iptables
    
    iptables-1.4.21-13.el7.x86_64
    

    설치해야하는 경우 yum을 사용하여 얻을 수 있습니다.

    # yum install iptables-services
    

    # service iptables status			[On CentOS 6/5]
    # systemctl status iptables			[On CentOS 7]
    

    실행 중이 아니면 아래 명령을 실행할 수 있습니다.

    ---------------- On CentOS 6/5 ---------------- 
    # chkconfig --level 35 iptables on
    # service iptables start
    
    ---------------- On CentOS 7 ---------------- 
    # systemctl enable iptables 
    # systemctl start iptables 
    

    다음과 같이 iptables 모듈이로드되었는지 여부를 확인할 수도 있습니다.

    # lsmod | grep ip_tables
    

    # iptables -L
    

    샘플 출력

    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
    ACCEPT     icmp --  anywhere             anywhere            
    ACCEPT     all  --  anywhere             anywhere            
    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    

     
    # iptables --flush OUTPUT
    

    모든 iptables 규칙을 플러시합니다.

    # iptables --flush
    

    # iptables -A INPUT -s 192.168.0.7 -j ACCEPT 
    

    소스에 다음과 같이 표준 슬래시 또는 서브넷 마스크를 포함 할 수 있습니다.

    # iptables -A INPUT -s 192.168.0.7/24 -j ACCEPT 
    # iptables -A INPUT -s 192.168.0.7/255.255.255.0 -j ACCEPT
    

    ssh 서비스에 대한 tcp 패킷을 수락하려면 (포트 22).

    # iptables -A INPUT -s -p tcp --dport 22 -j ACCEPT 
    

    ssh 서비스에 대한 tcp 패킷을 거부하려면 (포트 22).

    # iptables -A INPUT -s -p tcp --dport 22 -j REJECT
    

    ssh 서비스에 대한 tcp 패킷 거부 (포트 22).

     
    # iptables -A INPUT -s -p tcp --dport 22 -j DENY
    

    ssh 서비스에 대한 tcp 패킷을 삭제하려면 (포트 22).

     
    # iptables -A INPUT -s -p tcp --dport 22 -j DROP
    

    # iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP
    

    작성된 규칙은 아래 명령을 사용하여 확인할 수 있습니다.

    # iptables -L
    
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
    ACCEPT     icmp --  anywhere             anywhere            
    ACCEPT     all  --  anywhere             anywhere            
    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    DROP       tcp  --  192.168.0.6          anywhere             multiport dports ssh,telnet,http,webcache
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    

    Interviewer : 그게 제가 묻고 싶은 전부입니다. "당신은 우리가 놓치고 싶지 않은 소중한 직원입니다. HR에 귀하의 이름을 추천하겠습니다. "질문이 있으시면 저에게 물어보십시오.

    후보자로서 저는 대화를 중단하고 싶지 않았으므로 선택 될 경우 처리 할 프로젝트와 회사의 다른 공석에 대해 계속 질문합니다. HR 라운드는 크랙하기 어렵지 않았고 기회를 얻었습니다.

    또한 인터뷰를 문서화하는 데 시간을 할애 해주신 Avishek과 Ravi (오랜 친구였던)에게도 감사드립니다.

    친구! "그러한 인터뷰를 한 적이 있고 전 세계 수백만 명의 Tecmint 독자들에게 인터뷰 경험을 공유하고 싶으십니까? 그런 다음 [email protected]로 질문과 답변을 보내거나 다음 양식을 사용하여 인터뷰 경험을 제출할 수 있습니다.

    감사합니다! "연결 유지. "또한 내가 한 것보다 더 정확하게 질문에 답할 수 있었는지 알려주세요.