배퍼버전(Ubuntu, CentOS, 등)과 상관없이 리눅스에서 가장 많이 사용하는 방화벽입니다.
iptables 는 커널상에서 netfilter 패킷필터링 기능을 사용자가 제어할 수 있습니다.
패킷필터링이란 수신된 패킷의 헤더 정보를 보고 패킷을 폐기할지 수신할지를 결정하는 것을 말합니다.
헤더에 필터링할 정보인 출발지 ip:port / 도착지 ip:port 등 프로토콜 옵션을 가지며 각각의 전송 데이터가 들어갑니다.
특정 조건을 가지고 있는 패킷에 대해 허용(ACCEPT) 및 차단(DROP)등을 지정할 수 있습니다.
사용예:
# iptables 초기화
iptables -F
# 설정 내용 출력
iptables -nL
# TCP port 22 를 열어 ssh 접속을 가능하도록 설정
iptables -A INPUT -p tcp -m tcp --drpot 22 -j ACCEPT
# localhost 접속 허용
iptables -A INPUT -i lo -j ACCEPT
# DNS TCP 53 / UDP 53
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
# 80 443 포트 개방
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# iptables 는 등록 순서에 영향을 받는다. 먼저 등록한 정책이 우선순위가 높다.
# 나중에 추가로 추가할 경우 순서를 설정해서 추가할 수 있다. 1번으로 등록하는 예시이다.
# -A 옵션 대신 -I 옵션을 쓰고 번호를 지정해 주면 된다.
iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
# ip 차단
iptables -I INPUT -s 111.222.33.44 -j DROP
# 포워딩
iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 8080
# 확인
iptables -t nat -L
# 제거
iptables -D INPUT 1 -p tcp --dport 443 -j ACCEPT
# 변경후 저장을 해 주어야 os 재시작시 동일한 설정이 적용된다.
netfilter-persistent save
netfilter-persistent reload
위 예는 LukeHan님의 블로그에서 발췌했습니다.
참고사이트
'Linux > Linux Shell Command' 카테고리의 다른 글
cron (2) | 2024.10.30 |
---|---|
nftables - iptables 이제 그만!!! (0) | 2023.09.30 |
useradd - 사용자 계정 추가하기 (0) | 2023.09.11 |
usermod - 사용자 계정 정보 변경 (0) | 2023.09.11 |
du - 리눅스 디스크 사용량 확인 (1) | 2023.09.09 |