iptables 기초

7066 단어 iptables수필 노트
Linux 시스템 위 에 세 가지 안전 예방 수단 이 있 습 니 다.
① 패키지 필터 방화벽: iptables
② 응용 프로그램 방화벽: TCP Wrappers
③ 프 록 시 방화벽: nginx 등
iptables 프로그램 은 커 널 의 TCP / IP 네트워크 프로 토 콜 스 택 의 프레임 워 크 에서 작업 하고 사용자 공간 에서 작업 합 니 다.
용도 와 기능 에 따라 4 표 와 5 체인 으로 나 눌 수 있다.
4 표: filter, nat, mangle, raw
우선 순위: raw, mangle, nat, filter
filter
일반 필터 기능
nat
주소 변환, 맵, 포트 맵 등
mangle
특정 패 킷 에 대한 수정 에 사용 (사용 상황 이 적 음)
raw
일반적으로 iptables 를 패 킷 의 링크 추적 처리 하지 않 고 성능 을 향상 시 키 기 위해 서 입 니 다.
4 표 와 5 체인 의 대응:
filter:INPUT OUTPUT FORWARD
nat:PREROUTING POSTROUTING FORWARD
mangle:INPUT OUTPUT FORWARD PREROUTING POSTROUTING
raw:PREROUTING OUTPUT
규칙 을 추가 할 때 고려 해 야 합 니 다:
1. 실현 하고 자 하 는 기능: 그 표를 불 러 오 는 것 을 판단 합 니 다.
2. 서로 다른 규칙 으로 메시지 와 일치 하 는 확률 이 비교적 높 은 위 에 놓는다.
3. 기본 정책 을 설정 해 야 합 니 다.
iptables 의 문법 형식:
~]# man iptables-extensions

iptables [-t TABLE] SUBCOMMAND CHAIN CRETERIA -j TARGET
SUBCOMMAND
체인 조작
-F
지정 한 표 의 지정 한 체인 의 모든 규칙 비우 기;체인 이름 을 생략 할 때 표 의 모든 체인 을 비 웁 니 다.
-N
사용자 정의 체인 새로 만 들 기;기본 체인 의 점프 대상 으로 만 사용 할 수 있 으 며, 인용 을 통 해 유효 합 니 다.
-X
사용자 정의 빈 사슬 삭제 하기;사용자 정의 체인 과 내장 체인 이 아 닌 경우 삭제 할 수 없습니다.
-Z
규칙 적 인 계수 기 를 0 으로 설정 합 니 다.
-P
체인 의 기본 처리 체 제 를 설정 합 니 다.
-E
사용자 정의 체인 이름 바 꾸 기
메모: 인 용 된 체인 은 삭제 하거나 이름 을 바 꿀 수 없습니다.
규칙.
-A
체인 끝 에 규칙 을 추가 합 니 다.
-I
지정 한 위치 에 규칙 을 삽입 합 니 다.
-D
지정 한 규칙 삭제
-R
지정 한 규칙 바 꾸 기
-L
체인 의 모든 규칙 보기, 일반 사용 형식 - vnL
--line-number
규칙 번호 보이 기
CRETERIA: 일치 조건
-s
메시지 의 원본 IP 주 소 를 검사 합 니 다.
-d
메시지 의 대상 IP 주 소 를 검사 합 니 다.
-p
tcp, udp, icmp 와 같은 메시지 프로 토 콜 을 검사 합 니 다.
-i
데이터 메시지 의 유입 인 터 페 이 스 는 보통 PREROUTING INPUT FORWARD 체인 의 규칙 에 만 사 용 됩 니 다.
-o
메시지 의 유출 인터페이스 검사 하기;보통 PORWARD OUTPUT POSTROUTING 체인 에 사용 되 는 규칙 을 말 합 니 다.
  • icmp 프로 토 콜 (ping 요청)
  • iptables -A INPUT -d 192.168.1.1 -s 192.168.1.0/24 -p icmp --icmp-type 8/0 -j ACCEPT
    iptables -A OUTPUT -s 192.168.1.1 -d 192.168.1.0/24 -p icmp --icmp-type 0/0 -j ACCEPT

    8: ping 요청 메시지 와 일치 합 니 다.
    0: ping 요청 에 대한 응답 메시지 와 일치 합 니 다.
    -j :취한 동작 을 밝히다.REJECT (거부), ACCEPT (수락), DROP (폐기)
  • 한 번 에 여러 포트 지정
  • 예시:
        
    iptables -I INPUT 1 -d 192.168.1.1 -p tcp -m multiport --dports 22,80,443 -j ACCEPT

    INPUT 체인 에 새로운 규칙 을 삽입 합 니 다. 메시지 의 목표 IP 는 192.168.1.1 (일반적으로 이 컴퓨터 IP) 입 니 다. 즉, 이 컴퓨터 에 보 내 는 모든 22, 80, 443 포트 의 tcp 요청 을 받 아들 이 는 것 입 니 다. 여 기 는 기본 규칙 을 DROP (정의 되 지 않 은 요청 거부) 로 설정 합 니 다.
       
     iptables -I OUTPUT 1 -s 192.168.1.1 -p tcp -m multiport --sports 22,80,443 -j ACCEPT

    같은 이치: 모든 이 컴퓨터 에서 보 낸 응답 메시지, 22, 80, 443 포트 를 거 친 tcp 프로 토 콜 을 실행 합 니 다.
    - m 모듈 이름
    multiport 확장: 다 중 포트 와 분 산 된 정의 로 최대 15 개의 포트 를 지정 합 니 다.
    -s 192.168.1.1   원본 IP 
    --sports ...     원본 포트, 즉 메시지 출구 응답
  • 연속 IP 주소 범위 지정
  • iptables -A INPUT -d 192.168.1.1 -p tcp --dport 23 -m iprange --src-range 192.168.2.2-192.168.2.100 -j ACCEPT

    스 택 메시지 규칙
    iptables -A OUTPUT -s 192.168.1.1 -p tcp --sport 23 -m iprange --dst-range 192.168.2.2-192.168.2.100 -j ACCEPT

    스 택 메시지 규칙
  • 메시지 의 응용 층 데 이 터 를 문자열 로 일치 시 킵 니 다
  • iptables -A OUTPUT -s 192.168.1.1 -p tcp --sport 80 -m string --string "sex" --algo bm -j REJECT

    80 포트 의 스 택 메시지 와 일치 합 니 다. 응답 메시지 에 sex 문자 가 있 는 것 은 응답 하지 않 습 니 다.
    - m string: 모듈 을 string 모듈 로 표시 합 니 다.
    -- string: 뒤에 일치 하 는 문자열
    -- algo: 문자열 일치 검사 알고리즘 bm 알고리즘
     --hex - string pattern: 일치 할 때 성능 이 좋 고 효율 이 높 기 위해 문자열 을 16 진수 인 코딩 한 후 형식 을 바 꾼 후 일치 합 니 다.
    메시지 의 일부 위 치 를 검사 할 수 있 습 니 다.그리고 -- to 옵션
  • 시간 구간 에 따라 접근 제어
  • --datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]   언제 시작 해요?
    --datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]  언제 끝 날 까요
    --timestart hh:mm[:ss]            매일 언제 시작 해요?
    --timestop hh:mm[:ss]             언제 시작 해요?
    --monthdays day[,day...]           매월 며칠 
    --weekdays day[,day...]            매주 며칠
    예시:
    iptables -R INPUT 1 -d 192.168.1.1 -p tcp --dport 80 -m time --timestart 08:30 --timestop 18:30 --weekdays Mon,Tue,Wed,Thu,Fri -j REJECT

    PS: 이니셜 은 대문자 로 쓰 거나 1, 2, 3, 4, 5, 6, 7 로 써 도 됩 니 다.
    이 명령 의 역할:
        이 서버 80 포트 의 스 택 메 시 지 를 요청 합 니 다. 월요일 부터 금요일 까지 매일 8: 30 - 18: 30 사이 에는 허용 되 지 않 습 니 다.
  • 하 도 급 속도 에 따라 제한
  • connlimit: 모든 클 라 이언 트 IP 에 따라 동시 연결 요청 제한 을 합 니 다. 즉, 단일 IP 가 동시에 할 수 있 는 연결 요청 을 제한 합 니 다.
    -- connlimit - upto n: 연결 수가 같은 한도 값 보다 작 음;
    -- connlimit - above n: 연결 수가 한도 값 을 초과 합 니 다.
    예시:
    클 라 이언 트 마다 ssh 요청 이 2 개 를 초과 할 수 없습니다.
    iptables -I INPUT -d 192.168.1.1 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
  • 사용자 가 분당 시작 하 는 ping 요청 이 20 개 를 초과 할 수 없 도록 제한 합 니 다
  • --limit rate[/second|/minute|/hour|/day]
    -- limit - burst number 토 큰 통 의 크기 는 기본적으로 5 개 (피크 속도)
    iptables -I INPUT -d 192.168.1.1 -p icmp --icmp-type 8 -m limit --limit-burst 3 --limit 20/minute -j ACCEPT
    iptables -A OUTPUT -s 192.168.1.1 -p icmp --icmp-type 0 -j ACCEPT

    상태 모니터링 메커니즘
    iptables 는 커 널 의 한 메모리 에 모든 연결 의 원본 IP, 대상 IP 를 해시 표 로 기록 할 수 있 습 니 다.원본 포트, 대상 포트, 이 컴퓨터 와 언제 연결 되 었 습 니까? 얼마나 지속 되 었 습 니까?
    새로운 요청 이 도착 하면 이 표 에 기 록 된 정보 에 따라 기록 이 있 는 지, 없 으 면 기록 합 니 다.
    기록 가능 한 메모리 공간 보다 동시 접근 이 많 을 때 요청 이 거부 되 고,
    저장 가능 한 최대 요청 추적 수 보기:
    cat /proc/sys/net/nf_conntrack_max

    메모: 호스트 는 스케줄 러 입 니 다. 그 자체 에 매우 큰 병렬 요청 링크 수 를 탑재 해 야 합 니 다. 그러면 이 기능 을 켜 면 순식간에 대량의 서비스 요청 이 거부 되 고 치 명 적 입 니 다!!
    상태:
     NEW: 새 연결
      ESTABLISHED: 만들어 진 연결
      INVALID: 인식 할 수 없 는 연결
      UNTRACKED: 추적 되 지 않 은 연결
      RELATED: 연 결 된 연결 (예: ftp 의 명령 연결 과 데이터 전송 연결)
    지금 이런 상황 이 있다 고 가정 하면:
        서버 의 다른 포트 는 모두 닫 혔 고 80 포트 만 대외 적 으로 개방 되 었 다.갑자기 80 포트 에서 나 가 달 라 는 요청 이 있 었 다. 누군가가 서버 에 작은 프로그램 을 심 고 몰래 제어 단 에 연결 했다 는 뜻 이다.
    따라서 상태 모니터링 을 설정 해 야 합 니 다. 80 포트 를 통과 하 는 모든 메 시 지 는 NEW 의 요청 만 들 어 올 수 있 고 나 가 는 것 은 ESTABLISHED 밖 에 없습니다.
    ~]# iptables -A INPUT -d 192.168.1.1 -ptcp -m multiport --dports 22,23,80 -m state --state NEW,ESTABLISHED -j ACCEPT
    ~]# iptables -R OUTPUT 1 -m state--state ESTABLISHED -j ACCEPT

    기본 정책 은 DROP
    네, 기본적으로 이 정도 입 니 다. 그리고 로그 정보 기록 과 규칙 을 어떻게 저장 하고 다시 불 러 오 는 지 입 니 다.
    저장: iptables - save > / PATH / TO / SOMERULE_FILE 
    다시 불 러 오기: iptables - restore < / PATH / FROM / SOMERULE_FILE
        -n, -- noflush: 기 존 규칙 을 지우 지 않 음
        -t, -- test: 생 성 규칙 집합 만 분석 하고 제출 하지 않 습 니 다.
    메모: 파일 의 규칙 을 다시 불 러 오 면 기 존 규칙 이 삭 제 됩 니 다.
    규칙 최적화 의 사고:
      (1) 쌍방 이 상태 가 ESTABLISHED 라 는 메 시 지 를 우선 방출 한다.
      (2) 서로 다른 유형의 기능 에 서 비 스 를 제공 하 는 규칙 은 메시지 와 일치 할 가능성 이 높 은 것 을 앞 에 놓는다.
      (3) 같은 유형의 기능 에 서 비 스 를 제공 하 는 규칙 으로 일치 조건 이 비교적 엄격 하 다.
      (4) 기본 정책 설정: 화이트 리스트 메커니즘
        (a) iptables - P 를 사용 하여 기본 정책 을 설정 할 수 있 습 니 다.
        (b) 규칙 체인 의 마지막 정의 규칙 을 기본 정책 으로 하 는 것 을 권장 합 니 다.

    좋은 웹페이지 즐겨찾기