iptables
는 Ubuntu에서 네트워크 트래픽을 필터링하고 방화벽 역할을 하는 강력한 도구입니다. 다음은 Ubuntu에서 iptables
의 주요 사용법과 설정 방법을 안내합니다.
1. 기본 명령어 구조
iptables
명령어는 다음과 같은 구조를 가집니다:
iptables [테이블] [체인] [동작] [매개변수]
- 테이블:
filter
,nat
,mangle
등이 있습니다. 기본은filter
. - 체인:
INPUT
,OUTPUT
,FORWARD
등이 있습니다.INPUT
: 서버로 들어오는 트래픽.OUTPUT
: 서버에서 나가는 트래픽.FORWARD
: 서버를 경유하는 트래픽.
- 동작:
-A
(추가),-D
(삭제),-I
(삽입),-L
(목록 보기) 등이 있습니다.
2. 기본 명령어 예제
(1) 포트 열기
특정 포트(예: 80번 포트)를 허용하려면:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT
: 입력 체인에 규칙 추가.-p tcp
: TCP 프로토콜 대상.--dport 80
: 80번 포트 지정.-j ACCEPT
: 트래픽 허용.
443번 포트(HTTPS)를 열려면:
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
(2) IP 차단
특정 IP(예: 192.168.1.100
)에서 들어오는 트래픽을 차단:
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
(3) 기본 정책 설정
기본 정책을 설정하여 트래픽을 허용하거나 차단:
- 모든 입력 차단:
sudo iptables -P INPUT DROP
- 모든 출력 허용:
sudo iptables -P OUTPUT ACCEPT
(4) 현재 규칙 보기
적용된 규칙 목록을 확인하려면:
sudo iptables -L -v
3. 규칙 관리
(1) 규칙 삽입
특정 위치에 규칙을 삽입하려면 -I
를 사용합니다:
sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
위 명령은 입력 체인의 첫 번째 위치에 규칙을 삽입합니다.
(2) 규칙 삭제
특정 규칙을 삭제하려면:
sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT
또는 규칙 번호를 사용하여 삭제:
- 규칙 번호 확인:
sudo iptables -L --line-numbers
- 규칙 삭제:
sudo iptables -D INPUT [번호]
4. 규칙 저장 및 복원
(1) 규칙 저장
iptables
규칙은 서버 재부팅 시 사라집니다. 영구적으로 저장하려면:
iptables-persistent
패키지 설치:sudo apt install iptables-persistent
- 규칙 저장:
sudo netfilter-persistent save
- 규칙 복원:
sudo netfilter-persistent reload
(2) 수동으로 저장 및 복원
규칙을 수동으로 저장하고 복원할 수도 있습니다.
- 규칙 저장:
sudo iptables-save > /etc/iptables/rules.v4
- 규칙 복원:
sudo iptables-restore < /etc/iptables/rules.v4
5. 기본 설정 예제
기본 보안 설정 예제입니다.
모든 트래픽 차단 후 필요한 것만 허용:
# 기본 정책 설정 sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT # SSH 허용 (포트 22) sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # HTTP/HTTPS 허용 (포트 80, 443) sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # localhost 트래픽 허용 sudo iptables -A INPUT -i lo -j ACCEPT # 이미 허용된 연결 유지 sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
위 설정 후 트래픽이 정상적으로 작동하는지 확인하고 필요에 따라 조정하세요.