정보보안기사 : Iptables
- Linux에서 사용하는 SW방화벽
---- ESTABLISHED,RELATED : 패킷상태
- table
-- filter : 특정규칙에 따라 패킷을 차단하거나 허용하는 역할 (INPUT, OUTPUT, FORWARD chain으로 구성)
-- nat : 주소변환용으로 사용
-- mangle : 패킷안에 데이터를 변환 또는 조작
-- raw : 연결추적 기능
- chain
-- INPUT : 외부에서 내부(server)로 들어올 때 input chain을 통과
-- OUTPUT : 내부(server)에서 외부로 나갈 때 output chain을 통과
-- FORWARD : 패킷의 도착지가 server가 아닌 패킷이면 forward chain을 통과
- root@ ~]# iptables -L //모든 테이블의 정책 보기
- CentOS 방화벽의 기본 정책
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 |
- target : 패킷이 규칙과 일치할 때 취하는 행동
-- ACCEPT : 패킷을 받아들임
-- REJECT : 패킷을 버리고 거절했다는 응답을 줌
-- DROP : 패킷을 삭제
-- LOG : 패킷을 syslog에 기록
- CentOS 방화벽의 기본 내용
root@ ~ ]# cat iptables //경로 : /etc/sysconfig
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT |
-- :INPUT ACCEPT [0:0], :FORWARD ACCEPT [0:0], :OUTPUT ACCEPT [0:0]
--- 서버로 들어오는것, 서버를 경유하는 것, 서버에서 나가는 것에 대한 기본 정책은 ACCEPT라는 의미이다
-- -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
--- 새로운 규칙을 추가, 패킷의 상태가 ESTABLISHED,RELATED한것 중 위 조건에 맞는 패킷은 수신을 허가한다
--- 명령어분석
---- -A명령어의 종류
[명령어 종류]
| |
명령어
|
설명
|
-A(--append)
|
새로운 규칙 추가
|
-D(--delete)
|
규칙 삭제
|
-C(--check)
|
패킷 테스트
|
-R(--replace)
|
새로운 규칙으로 교체
|
-I(--insert)
|
새로운 규칙 삽입
|
-L(--list)
|
규칙 출력
|
-F(--flush)
|
chain으로 부터 규칙 삭제
|
-Z(--zero)
|
모든 chain의 패킷과 바이트 카운터 값을 0으로 만듦
|
-N(--new)
|
새로운 chain을 추가
|
-X(--delete-chain)
|
chain 삭제
|
-P(--policy)
|
기본정책 변경
|
---- INPUT : 수신
---- -m, state --state, -j : 매치 (방화벽 정책을 적용하기 위한 조건)
[매치 종류]
| |
매치
|
설명
|
-s(--source)
|
출발지 IP주소나 네트워크와 매치
|
-d(--destination)
|
목적지 ip주소나 네트워크와 매치
|
-p(--protocol)
|
특정 프로토콜과 매치
|
-i(--in-interface)
|
입력 인터페이스
|
-o(out-interface)
|
출력 인터페이스
|
--state
|
연결 상태와 매치
|
--string
|
애플리케이션 계층 데이터 바이트 순서와 매치
|
--comment
|
커널 메모리 내의 규칙과 연계되는 최대 256바이트 주석
|
-y(--syn)
|
SYN 패킷을 허용하지 않는다.
|
-f(--fragment)
|
두 번째 이후의 조각에 대해서 규칙을 명시
|
-t(--table)
|
처리될 테이블
|
-j(--jump)
|
규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시
|
-m(--match)
|
특정 모듈과의 매치
|
---- ESTABLISHED,RELATED : 패킷상태
위 포스팅내용은 http://blog.naver.com/73053936/220437699960 이곳을 참고했습니다
ㅇㄹㅇㅇㅇ
댓글
댓글 쓰기