IPTALBES 사용법
IPTABLES 사용해보기
서버를 운영한다면 방화벽은 선택사항이 아니라 필수입니다 그중 리눅스에 방화벽인 IPTABLES 라는 네트워크 필터링이 있으며, 설정이 까다롭고 복잡하지만 천천 하나씩 알아보도록 하겠습니다.
이전글 :
IPTABLES 란? - http://server-talk.tistory.com/169
방화벽 IPTABLES 용어와 옵션 - http://server-talk.tistory.com/170
| IPTABLES 설치, 부팅시 자동실행, 시작 |
▶ IPTABLES 설치 확인
[root@server ~]# rpm -qa | grep iptables iptables-1.4.7-16.el6.x86_64 iptables-ipv6-1.4.7-16.el6.x86_64
먼저 IPTABLES이 설치되어 있는지 확인을 합니다
▶ IPTABLES 설치
[root@server ~]# yum -y install iptables
▶ IPTALBES 부팅시 자동 실행 등록
[root@server ~]# chkconfig iptables on
▶ IPTABLES 시작
[root@server ~]# service iptables start
▶ IPTABLES 규칙 저장
[root@server ~]# service iptables save
| IPTABLES 규칙 보기 |
▶ IPTABLES 기본 규칙보기
[root@server ~]# iptables -L
▶ IPTABLES 상세한 모든 규칙보기
[root@server ~]# iptables -nL
▶ IPTABLES 규칙 순서를 포함하여 보기
[root@server ~]# iptables -nL -line-numbers
| IPTABLES 기본 정책 |
1. IPTABLES 정책 초기화
▶ IPTABLES 체인내의 모든 규칙 제거
[root@server ~]# iptables -F
▶ IPTABLES 체인제거
[root@server ~]# iptables -X
▶ IPTABLES 체인내의 모든 규칙의 패킷과 바이트의 카운트를 0으로 초기화
[root@server ~]# iptables -Z
2. 들어오는 패킷 모두 차단
▶ IPTABLES 들어오는 패킷 차단
[root@server ~]# iptables -P INPUT DROP
▶ IPTABLES 외부로 나가는 패킷 차단
[root@server ~]# iptables -P OUTPUT DROP
▶ IPTABLES 지나가는 패킷 차단
[root@server ~]# iptables -P FORWARD DROP
3. 로컬호스트 접속 허용 - 네트워크가 연결되어 있지 않아도 로컬호스트의 접속이 이루어 질수 있는 설정
▶ IPTABLES 들어오는 패킷 허용
[root@server ~]# iptables -A INPUT -i lo -j ACCEPT
▶ IPTABLES 나가는 패킷 허용
[root@server ~]# iptables -A OUTPUT -i lo -j ACCEPT
| IPTABLES CentOS 서비스 허용 |
네임서버(DNS)
DNS - TCP 53 / UDP 53
[root@server ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT [root@server ~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
웹서버
HTTP - TCP 80
[root@server ~]# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
HTTPS(SSL) - TCP 443
[root@server ~]# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
MYSQL - 3306
[root@server ~]# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
FTP(파일전송)
FTP
[root@server ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT [root@server ~]# iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
FTP(passive mode)
[root@server ~]# iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT [root@server ~]# iptables -A OUTPUT -p tcp --dport 1024:65535 -j ACCEPT
메일서버
SMTP - TCP 25
[root@server ~]# iptables -A INPUT -p tcp -m --dport 25 -j ACCEPT
ICMP(인터넷 통제 메시지 프로토콜)
ICMP 허용(ping)
[root@server ~]# iptables -A INPUT -p icmp-type echo-request -j ACCEPT [root@server ~]# iptables -A OUTPUT -p icmp-type echo-reply -j ACCEPT
NFS(Network File System) 허용
NFS 서버
- TCP 111 / UDP 111
[root@server ~]# iptables -A INPUT tcp --dport 111 -j ACCEPT [root@server ~]# iptables -A INPUT udp --dport 111 -j ACCEPT
- TCP 2049 / UDP 2049
[root@server ~]# iptables -A INPUT tcp --dport 2049 -j ACCEPT [root@server ~]# iptables -A OUTUP udp --dport 2049 -j ACCEPT
- TCP 32766 ~ 32769
[root@server ~]# iptables -A INPUT tcp --dport 32766 -j ACCEPT [root@server ~]# iptables -A INPUT tcp --dport 32767 -j ACCEPT [root@server ~]# iptables -A INPUT tcp --dport 32769 -j ACCEPT
NFS 클라이언트
- TCP 111 / UDP 111
[root@server ~]# iptables -A INPUT -p tcp --sport 111 -j ACCEPT [root@server ~]# iptables -A INPUT -p udp --sport 111 -j ACCEPT
- TCP 2049
[root@server ~]# iptables -A INPUT -p tcp --sport 2049 -j ACCEPT [root@server ~]# iptables -A INPUT -p udp --sport 2049 -j ACCEPT
Rsync(파일 동기화)
- TCP 879
[root@server ~]# iptables -A -INPUT -p tcp -m tcp --dport 873 -j ACCEPT