학원

2023/06/26 IPtables 방화벽

맹진호 2023. 6. 26. 18:00

2. iptables

 

1) 개념

IPtablesLinux 운영체제에서 특정 IP주소에 대한 OS의 동작을 정의해 놓은 Kernel프로그램이다.

IPtables의 기본구조 "Table" -> "Chain" -> "Rule"형식으로 구성함

 

 

2) 종류

 

Filter Table

실제 Packet Filtering을 적용하는 Table, rule에 따라서 packet을 허용 혹은 차단하는 역할을 진행한다.

(INPUT, OUTPUT, FORWARD 3가지 Chain을 갖는다)

 

INPUT : 호스트 컴퓨터를 향한 모든 패킷

OUTPUT : 호스트 컴퓨터에서 발생하는 모든 패킷

FORWARD : 호스트 컴퓨터가 목적지가 아닌 모든 패킷, 즉 라우터로 사용되는 호스트 컴퓨터를 통과하는 패킷

 

 

Nat Table

NAT 테이블은 PacketFiltering 하거나 특성을 변환하는 기능은 없다, 단지 방화벽으로 향하는 packet을 방화벽이 보호하는

내부 네트워크의 다른 주소로 Forwarding 하거나 방화벽 내부 네트워크에서 방화벽을 통해 외부 네트워크로 나갈 때

다른 주소로 변환 시켜 주는 역할을 한다.

 

 

Mangle Table

자주 사용되지는 않지만 packetTTL이나 TOS 값을 변경 할 때 사용된다. (packet의 특성을 변경할 때 사용되는 Table)

 

 

Raw Table

Filter 테이블의 Connecion Tracking (연결추적) 기능을 좀 더 자세히 다룰 때 사용된다.

마찬가지로 자주 사용되지는 않는다.

많이 사용되는 TableFilter TableNat Table이다

 

 

 

3) 사용형식

 

기본 사용 형식 iptables [-t table ] 명령어 [ Match option ] [ target ]

테이블명은 생략이 가능하며, 생략시 "filter Table이 기본값"으로 설정 된다.

iptables 작업시에는 반드시 대소문자 구분

iptables는 명령어, 설정파일 설정 2가지 형식으로 룰을 정의 할 수 있다.

명령어에 의한 룰설정은 즉시적용, 설정파일을 이용 한 경우에는 서비스를 반드시 재 시작을 진행한다.

 

매치(match)

iptables에서 패킷을 처리할 때 만족해야 하는 조건을 가르킨다. , 이 조건을 만족시키는 패킷들만 규칙을 적용

 

--source ( -s ) : 출발지 IP주소나 네트워크와의 Match

--destination ( -d ) : 목적지 ip주소나 네트워크와의 Match

--sport / --dport : 출발지 포트/목적지 포트를 Match

--protocol ( -p ) : 특정 프로토콜과의 Match ( "tcp, udp, icmp, !tcp = tcp가 아닌 나머지 프로토콜지정" )

 

이 정도가 많이 사용이 되는 매치라고 할 수 있다.

 

 

자주 쓰이는 명령어는

-A ( --append ) : 새로운 규칙을 추가한다. ( "여러 개의 룰 중 가장 마지막 라인에 추가" )

-I ( --insert ) : 새로운 규칙을 삽입한다. ( "여러 개의 룰 중 가장 처음 라인에 추가" )

-D ( --delete ) : 규칙을 삭제한다.

-P ( --policy ) : 기본정책을 변경한다.

-L ( --list ) : 규칙을 출력한다.

-F ( --flush ) : chain으로부터 규칙을 모두 삭제한다.

이정도가 있고 등등

 

-Z ( --zero ) : 모든 chainPacket과 바이트 카운터 값을 0 으로 만든다.

-N ( --new ) : 새로운 chain을 만든다.

-X ( --delete-chain ) : chain을 삭제한다.

-C ( --check ) : Packet을 테스트한다.

-R ( --replace ) : 새로운 규칙으로 교체한다.

 

 

 

 

내 부분 대본

 


다음은 IPtables입니다.
IPtables란 Linux 운영체제에서 특정 IP주소에 대한 OS의 동작을 정의해놓은 kerner프로그램입니다.
기본구조는 Table -> Chain -> Rule형식으로 구성이 되어있습니다.

IPtables은 종류, 사용형식, 옵션으로 나누었습니다.

IPtables의 종류에는 Filter Table과 Nat Table, Mangle Table과 Raw Table이 있습니다.
그중 주로 사용하는 것은 Filter Table과 Nat Table입니다.
Filter Table은 실제 Packet Filtering을 적용하는 Table, rule에 따라서 Packet을 허용 혹은
차단하는 역할을 진행합니다.
INPUT, OUTPUT, FORWARD 3가지 Chain을 갖습니다.

그리고 Nat Table은 Packet을 Filtering 하거나 특성을 변환하는 기능은 없습니다
단지 방화벽으로 향하는 packet을 방화벽이 보호하는 내부 네트워크의 다른 주소로
Fowarding 하거나 방화벽 내부 네트워크에서 방화벽을 통해 외부 네트워크로 나갈 때
다른 주소로 변환 시켜 주는 역할을 합니다.


다음은 iptables의 사용 형식입니다.
IPtables은
- 테이블명는 생략이 가능하며 생략시 fiter Table이 기본설정값으로 설정
- ipables는 명령어, 설정파일 설정 2가지 형식을 룰을 정의 할 수 있다.
- iptables는 작업중에 반드시대소문자 구분


매치는 iptables에서 패킷을 처리할 때 만족해야 하는 조건을 가르킵니다.
즉 이 조건을 만족시키는 패킷들만 규칙을 적용합니다.
자주쓰이는 규칙에는 이런것들이 있습니다.


IPtables의 마지막인 옵션입니다.
기본 명령어는 이런식으로 쓰이고 자주 쓰이는 명령어에는 
규칙을 출력하는-L,
새로운 규칙을 추가하는 -A, 
새로운 규칙을 삽입하는 -I, 
규칙을 삭제하는 -D등이 있습니다.
-F는 규칙을 모두 삭제하는 것이기 때문에 신중하게 사용해야합니다.
옆에는 IPtables를 -L옵션을 사용한 예시입니다.