iptables는 운영체제 딴의 방화벽을 설정하는 도구이며 알아두면 좋을 것 같아 이렇게 포스팅해봅니다.
명령어를 실행하면 부팅하더라도 자동 적용되기 때문에 후속작업이 필요없습니다.
조회
# iptables -L
모든 목록을 조회 가능하지만 너무 복잡해보인다. 원하는 것들을 필터링 하기 위해 옵션을 더 해보자.
iptablse -t nat -L POSTROUTING -vn
-t 옵션 : 타입(테이블)을 넣을 수 있다. iptables에는 여러 타입이 있다. raw,mangle,nat,filter 있고 각 마다 체인이 있다. 등록할때 확인하고 등록하도록 하자.
-vn 옵션: 도메인으로 보이는 것을 아이피로 보이게 해준다.
형식 :iptables [테이블] [액션] [체인] [매치] [-j 타겟]
테이블
액션 :
-A : ADD : 정책 추가
-D : DELETE : 정책 삭제
-R : REPLACE : 정책 교체
-F : FLUSH : 모든 정책 삭제
-P : POLICY : 기본 정책을 설정
-L : LIST : 정책 나열
매치
-p : 프로토콜 이름이나 숫자 ex) tcp, udp, 이외 이름 또는 22,80,8080
-s : 출발지 (source)
-d : 목적지 (destination)
-i : 입력 인터페이스
-o : 출력 인터페이스
--sport : 출발지 포트
--dport : 목적지 포트
--tcp-flags : tcp 플래그
--syn : sym 플래그
-j : 규칙 ( DROP, REJECT, ACCEPT,LOG, RETURN)
-t : 처리될 테이블 (defualte: filter)
-v : 자세한 주소 출력
--line-numbers : 줄번호 출력
-m : 특정모듈 사용
--state : 연결상태
--string : 어플리케이션 계층 데이버 바이트 순서
--command : 주석
iptables 규직을 저장/ 복원
저장
iptables-save > table.bak
복구
iptables-restore < table.bak
예제
기본정책 ACCEPT로 설정
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
기본정책 DROP로 설정
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
루프백 허용
iptables -A INPUT -i lo ACCECT
특정 IP허용
iptables -A INPUT -s xxxx.xxx.xxx.xxx -j ACCEPT
특정 IP 차단
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
사설 IP 차단
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 172.16.0.0/16 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
iptables -A INPUT -s 244.0.0.0/4 -j DROP
주요 서비스 허용 ( http,ftp,mysql)
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
뒤에 따라오는 연결은 허용
iptables -A INPUT -m state --state ESTABLESHED,RELATED -j ACCEPT
SYN 패킷이 아닌 것만 허용
iptables -A INPUT -p tcp ! --syn -m state NEW -j DROP
'운영체제 > 리눅스' 카테고리의 다른 글
[리눅스] diff 명렁어 (0) | 2020.12.08 |
---|---|
[Xshell] AWS Xshell로 실행하기 (1) | 2020.11.13 |
리눅스)iptables 명령어 알아보기 (1) | 2020.06.26 |
리눅스) NTP서버 (0) | 2020.06.17 |
[리눅스] 우분투에서 GPU 사용량 확인하기/ CPU수 확인하기 (0) | 2020.02.28 |