개발, 웹, 블로그/Linux 상식
iptable로 특정 포트 허용 및 간단 방화벽 설정하기
삼성동고양이
2024. 11. 12. 08:11
반응형
다음은 SSH 포트(기본 22번 포트)와 3000, 3001번 포트만 허용하고 나머지는 차단하는 iptables 명령어.
설정 명령어
SSH 포트를 먼저 허용 (기본적으로 22번 포트를 사용). 만약 SSH 포트를 변경했다면 해당 포트로 수정.
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
필요한 포트를 허용 (예: 3000번, 3001번 포트).
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3001 -j ACCEPT
로컬호스트(127.0.0.1)에서 오는 트래픽은 허용.
sudo iptables -A INPUT -i lo -j ACCEPT
기본 정책을 설정하여 나머지 모든 입력 트래픽을 차단.
sudo iptables -P INPUT DROP
나가는 트래픽은 허용하려면 아래 명령을 추가.
sudo iptables -P OUTPUT ACCEPT
연결이 이미 허용된 세션(ESTABLISHED, RELATED)에 대해서는 계속 허용하도록 설정.
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
이 설정을 완료하면 SSH(22번 포트), 3000번 포트, 3001번 포트만 허용되고 나머지 트래픽은 모두 차단.
설정 저장
Ubuntu에서는 iptables 설정이 서버 재부팅 후에도 유지되도록 저장해야 함.
iptables-persistent 패키지를 설치:
sudo apt install iptables-persistent
설정을 저장합니다:
sudo netfilter-persistent save
이제 iptables 설정이 시스템 재부팅 후에도 유지됨.
반응형