IPTABLES??
- 커널의 IP 패킷 필터링(Packet Filtering) 기능을 하는 Netfilter에 규칙을 설정하고 관리하는 도구
- '체인(Chain)'이라고 불리는 방향성을 가진 '규칙(Rule)'을 연결한 테이블(table)이다.
체인의 종류(기본)
(체인은 규칙을 묶는 용도일뿐, 중요한 것은 규칙이다. 체인은 삭제 추가 변경 가능.)
- INPUT : 서버로 들어오는(INCOMING) 패킷에 대한 규칙을 관리한다.
- OUTPUT : 서버에서 외부로 나가는(OUTGOING) 패킷에 대한 규칙을 관리한다.
- FORWARD : 다른 서버에게 패킷을 전달하는 규칙을 관리 한다.
방화벽 설정 순서
1 각 체인의 기본 정책(policy) 설정
2 체인에 규칙 추가
타겟
체인에 설정된 규칙에 부합하는 패킷이 어떻게 처리가 될 것인지를 결정한다.
- ACCEPT (허용)
- DROP (차단)
옵션
- A : 지정한 체인의 마지막 규칙을 추가 (Append)
- D : 지정한 체인에서 규칙을 삭제 (Delete)
- P : 지정한 체인의 정책을 변경 (Policy)
- L [체인]: 규칙 리스트를 확인 (List)
- N [체인]: 지정한 이름으로 사용자 정의 체인을 생성 (New)
- X [체인]: 지정한 사용자 정의 체인을 삭제
- I : 규칙 번호를 지정해 규칙을 삽입
- F [체인] : 지정한 체인 내 규칙을 모두 제거
- t [체인] : 테이블을 지정
- v : 상세 내용을 표시
- n : 숫자 값으로 표시
- --line-numbers : 규칙 번호를 표시
규칙
- s : 출발지 IP 주소
- d : 목적지 IP 주소
- --sport : 출발지 포트 번호
- --dprot : 목적지 포트 번호
- j : 사용할 대상
- p : 프로토콜
- i : 입력 인터페이스
- o : 출력 인터페이스
- -m state --state : 상태 패킷 상태(ESTABLISHED, NEW, RELATED, INVALID)
=============================================명령어
# iptables -nL // 숫자로 표시 확인 anywhere --> 0.0.0.0/0
# iptables -nL --line-numbers // 각각의 규칙에 행번호를 보여주는 옵션. --line-numbers
# iptables -vnL --line-numbers // 상세하게 출력 옵션 -v
# iptables -F //모든 정책 다 날리기
# iptables -A INPUT -p TCP --dport 22 -j ACCEPT INPUT Chain의 22포트를 허용해준다.
# iptables -A [INPUT] -p [protocol] --[s|dport] [number] -j [target]
============================= 로그 기록
기본적으로 생성되는 커널 로그 파일은 /var/log/messages에 저장
iptables 체인을 통과한 패킷에 로그를 기록
# iptables -A [체인] [옵션] -j LOG
# iptables -I INPUT 1 -j LOG // 전부다 로그를 찍겠다는 의미. ( 1번째출로 -I 옵션 Insert 삽입 )
# cat /var/log/messages
INPUT 체인을 통과하는 패킷의 목적지 포트가 8080번이면 로그를 기록한다. -> 접두사 : "INPUT 8080 :"
# iptables -I INPUT 1 -p tcp --dport 8080 -j LOG --log-prefix "INPUT 8080 :"
'SW > IPTABLES' 카테고리의 다른 글
IPTABLES - 파일 백업 관리하기 (0) | 2021.11.10 |
---|---|
iptables 초기 세팅 ( 개인적 선호 방식 ) (0) | 2021.11.09 |
IPTABLES 초기 세팅 설정 (0) | 2021.10.09 |
원격지에서iptables 설정이 필요할때 (0) | 2021.10.05 |
IPTABLES 설정 정리 (0) | 2021.10.01 |
댓글