이 자세한 튜토리얼은 Linux에서 검증되고 신뢰할 수 있는 진정한 방화벽인 iptables를 사용하는 방법을 알려줍니다.
Linux 시스템은 매우 안전한 것으로 알려져 있습니다. 연구에 따르면 Linux는 안전한 방식으로 설계되었습니다. 그러나 Linux 설치와 함께 번들로 제공되는 모든 보안 기능에도 불구하고 이러한 기능을 올바르게 구성해야 제대로 작동합니다. 컴퓨터를 보호하는 데 도움이 되는 도구 중 하나인 방화벽을 설정하는 과정을 안내해 드리겠습니다. 이 연습에서는 Linux의 iptables 방화벽을 사용합니다. Red Hat Enterprise Linux 4 또는 이와 유사한 버전을 실행하는 서버를 사용하고 있다고 가정합니다. 그러나 대부분의 단계는 다른 Linux 배포판에서도 잘 작동합니다. 이 기사에서는 Apache Web Server, FTP 및 SSH를 실행하는 Linux 서버에 방화벽을 설정합니다.
먼저 이러한 애플리케이션이 사용하는 포트와 방화벽에서 포트를 열어야 하는 포트를 살펴보겠습니다.
Apache 웹 서버는 기본적으로 포트 80에서 실행됩니다. Apache는 이 포트에서 모든 웹 콘텐츠를 서버할 것이므로 방화벽에서 이 포트를 열어 두어야 합니다. SSH 서비스는 포트 22에서 실행됩니다. 작동하려면 서버에 원격으로 연결할 수 있어야 하므로 열어 둡니다. FTP는 포트 21에서 실행되며 통신을 위해 포트가 열려 있어야 합니다.
다음으로 iptables가 설치되어 있는지 확인합니다. 루트 사용자로 다음 명령을 실행하십시오.
# rpm -qa | grep iptables
iptables를 설치했다면 시스템은 당신이 설치한 iptables의 버전을 알려줄 것입니다. 그렇지 않은 경우 다음과 같이 시도하여 다운로드하고 시작할 수 있습니다.
# yum install iptables
# /etc/init.d/iptables 시작
현재 iptables가 어떤 구성으로 실행되고 있는지 확인하려면:
# iptables –list
체인 INPUT(정책 ACCEPT)
대상 보호 옵션 소스 대상
체인 FORWARD(정책 ACCEPT)
대상 prot opt 소스 대상
체인 OUTPUT(정책 ACCEPT)
대상 prot opt 소스 대상
이 명령은 현재 설정된 모든 방화벽 규칙을 나열합니다. Linux 상자의 iptables 구성에 방화벽 규칙이 없다는 가정을 계속하겠습니다. 이제 웹 서버의 경우 포트 80, SSH의 경우 포트 22, FTP의 경우 포트 21에서 개방형 통신을 허용하도록 방화벽을 구성하겠습니다. 또한 지정되지 않은 포트와의 통신도 차단하도록 하겠습니다.
다음은 방화벽 스크립트 구성 스크립트입니다. 새 파일을 만들고 이름을 iptable-firewall.sh로 지정합니다. . 다음 텍스트를 복사하십시오.
<블록 인용>#!/bin/sh
ANY=”0/0″
OPEN_PORTS=”21 22 80″
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# 모든 특정 규칙을 플러시(-F)
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
$OPEN_PORTS의 포트용
do
iptables -A INPUT -i eth0 -p tcp -s $ANY -d $ANY –destination-port $port –syn -j ACCEPT
iptables -A 입력 -i eth1 -p tcp -s $ANY -d $ANY –destination-port $port –syn -j ACCEPT
완료
iptables -A 입력 -i eth1 -p icmp -s $ANY -d $ANY -j 수락
#관련/설정된 연결 허용
iptables -A INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -m state –state ESTABLISHED,RELATED -j 수락
#다른 모든 것을 죽이십시오
iptables -A INPUT -i eth0 -j DROP
iptables -A INPUT -i eth1 -j DROP
#부팅용 쓰기
iptables-save> /etc/sysconfig/iptables
이제 위의 파일을 저장하고 실행 권한을 부여한 다음 실행합니다.
# chmod +x iptable-firewall.sh
# ./iptable-firewall.sh
이제 방화벽 규칙을 확인하십시오.
# iptables –list
이제 모든 방화벽 규칙이 설정되어야 합니다. 이제 서버가 안전합니다. 이 규칙 집합을 수정하거나 추가하려면 OPEN_PORTS 매개변수가 정의되고 목록에서 포트를 추가하거나 제거합니다. 스크립트를 변경한 후 다시 실행하는 것을 잊지 마십시오.
이 모든 명령줄 내용이 다소 생소한 경우 사용하기 쉬운 그래픽 인터페이스가 있는 사용하기 쉬운 Linux 방화벽인 Firestarter를 설정하는 방법 자습서를 참조하세요.