기타
[리눅스] iptables 사용법
1) iptables 사용법iptables [-t table] command [match] [targetjump]-A(--append) : 규칙을 추가한다.-N(--new-chain) : 새로운 체인 생성-X(--delete-chain) : 체인 제거-P(--policy) : 체인 기본정책 변경-L(--list) : 체인의 규칙상태 보기-F(--flush)...
자료 정보
작성자:관리자
작성일:8/21/2020
조회수:9,146
다운로드:0
1) iptables 사용법 iptables [
-t table] command [match] [targetjump]
-A(--append) : 규칙을 추가한다.
-N(--new-chain) : 새로운 체인 생성
-X(--delete-chain) : 체인 제거
-P(--policy) : 체인 기본정책 변경
-L(--list) : 체인의 규칙상태 보기
-F(--flush) : 체인내의 모든 규칙 제거(방화벽 초기화)
-Z(--zero) : 체인내의 모든 규칙의 패킷과 바이트의 카운트를 0으로 초기화
-D(--delete) : 규칙을 삭제
-R(--replace) : 새로운 규칙으로 대체
-I(--insert) : 체인의 가장 처음에 규칙을 추가한다.
-E(--rename-chain) : 체인의 이름을 변경한다.
-Firewall-1-INPUT라는 사용자 정의 체인을 사용한다. 3개의 기본 체인(INPUT, OUTPUT, FORWARD)은 수정이나 삭제가 불가능하며, 사용자 정의 체인은 다음과 같은 방법으로 생성해 줄 수 있다. 2) iptables 체인 종류 INPUT : 로컬로 들어오는 패킷(입력 패킷) FORWARD : INPUT와 OUTPUT 역할, 라우터에 방화벽을 적용할 때 쓰임 OUTPUT : 외부로 나가는 패킷(출력 패킷) INPUT 체인에 사용자 정의로 체인을 추가하여 INPUT 체인 대신에 사용할 수 있는데, 페도라 코어의 경우는 RH
3) iptables 다루기 ▶ 방화벽 정책 초기화 # iptables
-F
# iptables -X
# iptables -Z ▶ 기본 정책 설정
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP ▶ 사용자 정의 체인 생성 및 INPUT 체인에 추가
# iptables -N 사용자정의체인명
#
iptables -A INPUT -j 사용자정의체인명 ▶ 허용 정책 설정 루프백 접속 허용 다른 곳과 네트워크가 연결되어 있지 않더라도 시스템의 기본 네트워크이며 로컬 호스트의 인터페이스인 루프백에 대해서는 접속이 이뤄질 수 있도록 해야 하므로, 다음과 같이 설정한다.
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT 내부 네트워크 접속 iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT iptables -A OUTPUT -s 192.168.0.0/24 -d 192.168.0.0/24 -j ACCEPT 내부 -> 외부 접속 iptables -A FORWARD -s 외부주소 -p tcp -m tcp --sport 포트번호 -j ACCEPT iptables -A OUTPUT -d 외부주소 -p tcp -m tcp --dport 포트 -j ACCEPT ① DNS 포트 허용 iptables -A FORWARD -p udp -m udp --sport 53 -j ACCEPT iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT ② ICMP 핑 허용 iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-request -j ACCEPT iptables -A FORWARD -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-reply -j ACCEPT ③ SSH 포트 허용 ( 192.168.0.1 -> 172.16.1.20) iptables
-A fedora -s 172.16.1.20 -p tcp -m tcp --sport 22 -j ACCEPT iptables -A OUTPUT -d 172.16.1.20 -p tcp -m tcp --dport 22 -j ACCEPT ④ HTTP 포트 허용 iptables -A FORWARD -i eth0 -p tcp -m tcp --sport 80 --dport 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 80 -j ACCEPT ⑤ FTP 포트 허용 * 명령(제어) 포트(tcp
21) 접속 iptables
-A FORWARD -i eth0 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT *데이터 포트(tcp
20) 접속(능동 모드 접속) iptables
-A FORWARD -i eth0 -p tcp -m tcp --sport 21 --dport 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 21 -j ACCEPT *데이터 포트(tcp 1024이상의 포트) (Passive 모드 접속) iptables -A FORWARD -i eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -j ACCEPT 외부 -> 내부 접속 ① SSH 포트 허용 iptables -A FORWARD -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT ② http 포트 허용 iptables -A FORWARD -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT ③ ftp 포트 허용 ( passive mode) iptables -A FORWARD -i eth0 -p tcp -m tcp --dport 21 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 21 -j ACCEPT iptables -A FORWARD -i eth0 -p tcp -m tcp --dport 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp -m tcp --sport 1024:65535 -j ACCEPT [목록](http://prime-idc.jp/backoffice/module/board/board_view.php?mNum=&sNum=&boardid=data&mode=list&sk=&sw=&offset=20&category=) [삭제](http://prime-idc.jp/backoffice/module/board/board_view.php?mNum=&sNum=&boardid=data&mode=delete&idx=33&category=) [수정](http://prime-idc.jp/backoffice/module/board/board_view.php?mNum=&sNum=&boardid=data&mode=modify&idx=33&category=)
