7.3. 일반 iptables 필터링

침입자들이 LAN에 침입하지 못하도록 하는 것이 네트워크 보안에서 가장 중요하지는 않아도 매우 중요한 부분입니다. 엄격한 방화벽 규칙을 사용하여 악의를 가진 원격 사용자가 LAN에 침입하는 것을 방지해야 합니다. 그러나 기본 정책이 들어오고 나가고, 전송되는 패킷을 모두 막도록 설정되어 있다면 방화벽/게이트웨이 및 내부 LAN 사용자는 서로 통신을 주고 받거나 외부와 통신을 주고 받을 수 없게 됩니다. 다라서 사용자들이 네트워크 관련 작업을 수행하고 네트워킹 프로그램을 사용할 수 있도록, 시스템 관리자는 통신에 사용되는 특정 포트를 열어두셔야 합니다.

예를 들어 방화벽에서 포트 80로의 액세스를 허용하시려면 다음 규칙을 추가하십시오:

iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT 

이렇게 하시면 포트 80을 통하여 통신하는 웹사이트에서 일반 웹 브라우징이 가능해 집니다. 보안 웹사이트 (예, https://www.example.com/)로의 액세스를 허용하시려면 포트 443도 열어야 합니다.

iptables -A INPUT -p tcp -m tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT 

가끔씩 외부에서 LAN에 원격 접속을 해야할 경우도 있습니다. LAN 서비스로 암호화된 원격 접속을 위해 SSH, CIPE와 같은 보안 서비스를 사용하실 수 있습니다. PPP 기반 자원 (예, 모뎀 뱅크 또는 대량 ISP 계정)을 사용하시는 관리자는 다이얼업 액세스를 사용하여 방화벽을 안전하게 통과하실 수 있습니다. 그 이유는 모뎀 연결은 일반적으로 직접적인 연결이므로 방화벽/게이트웨이를 통과할 수 있습니다. 그러나 초고속 접속을 사용하시는 원격 사용자의 경우 특별한 설정이 가능합니다. IPTables가 원격 SSH와 CIPE 클라이언트에서 들어오는 접속을 허용하도록 설정하실 수 있습니다. 예를 들어 원격 SSH 액세스를 허용하시려면 다음과 같은 규칙을 사용하실 수 있습니다:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p udp --sport 22 -j ACCEPT

다음 명령을 사용하여 외부에서 들어오는 CIPE 연결 요청을 수용할 수 있습니다 (x를 장치 번호로 대체하십시오):

iptables -A INPUT -p udp -i cipcbx -j ACCEPT
iptables -A OUTPUT -p udp -o cipcbx -j ACCEPT

CIPE는 데이터그램 (UDP) 패킷을 전송하는 자체 가상 장치를 사용하므로 이 규칙은 들어오는 연결에 소스나 목적 포트 대신 cipcb 인터페이스를 사용합니다 (소스나 목적 포트는 장치 옵션 대신 사용될 수 있습니다). CIPE 사용 방법에 대한 정보는 6 장을 참조하시기 바랍니다.

다른 서비스에도 규칙을 지정하셔야할 경우가 있습니다. Red Hat Enterprise Linux 참조 가이드에서 IPTables 및 함께 사용 가능한 다양한 옵션에 대한 광범위한 정보를 찾으실 수 있습니다.

이러한 규칙은 방화벽 상에서 일반 보안 서비스에 액세스할 수 있게 허용하지만, 방화벽으로 보호된 시스템은 이러한 서비스에 액세스할 수 없습니다. LAN에서 이러한 서비스에 액세스할 수 있도록 허용하시려면 IPTables 필터링 규칙에 NAT을 사용하시면 됩니다.