불행히도 내가 본 모든 스크립트 사용은 학습 모드 또는 수동 모드에서 실행되어 모든 네트워크 사용량을 기록하고 결과를 가져와 iptables
로그에서 실제 방화벽을 생성 할 수 있습니다.
가장 좋은 방법은 시스템이 제공하는 서비스를 완전히 이해하기 시작할 때 간단하고 지속적으로 다양한 부분을 계속 추가하는 것입니다. netstat
호스팅하는 다양한 서비스에 어떤 포트가 사용되고 있는지, 그리고 어떤 IP 주소에 액세스하고 있는지 확인하는 등의 도구 를 사용해야합니다.
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:890 0.0.0.0:* LISTEN 26149/ypbind
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 26226/python
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 26221/./hpiod
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 26237/snmpd
tcp 0 0 0.0.0.0:809 0.0.0.0:* LISTEN 26067/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 26038/portmap
tcp 0 0 0.0.0.0:35604 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26249/sshd
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 26257/cupsd
tcp 0 0 :::22 :::* LISTEN 26249/sshd
tcp 0 0 :::631 :::* LISTEN 26257/cupsd
참고 : 위의 내용에서 TCP 연결을 수락하는 서버에서 어떤 서비스를 실행하고 있는지 확인할 수 있습니다.
SSH (포트 22) 및 HTTP (포트 80)와 같은 것들로 시작하는 것은 쉬운 일이 아닙니다. 따라서 이러한 유형의 서비스를 한꺼번에 대량으로 수행 할 것입니다. LDAP 또는 NIS와 같은 다른 서비스의 경우보다 통제 된 방식으로 이러한 서비스를 수행하여 서비스를 도입 할 때 문제가 발생하지 않도록 할 수 있습니다.
FireHOL , Firewall Builder (fwbuilder) 및 eztables 와 같은 도구 는이 프로젝트를 공격 할 때 유용 할 수 있습니다.이 iptable
규칙은 수작업으로 사용자 지정 규칙 을 작성하는 데 필요한 추상화 계층을 제공 하므로 까다로울 수 있습니다.
FireHOL
FireHOL은 이해하기 쉽고 사람이 읽을 수있는 구성에서 복잡하고 안전한 상태 저장 방화벽을 구축하는 언어 (및 실행 프로그램)입니다.
예
transparent_squid 8080 "squid root" inface eth0
interface eth0 mylan
policy accept
interface ppp+ internet
server smtp accept
server http accept
server ftp accept
server ssh accept src example.firehol.org
client all accept
router mylan2internet inface eth0 outface ppp+
masquerade
route all accept
fwbuilder
Fwbuilder는 사용자가 객체를 생성 한 다음 방화벽으로 끌어다 놓아 단일 PC 또는 PC 네트워크를위한 강력한 보안 시스템을 구축 할 수있는 고유 한 그래픽 방화벽 도구입니다. Fwbuilder는 광범위한 방화벽 (Cisco ASA / PIX, Linux iptables, FreeBSD의 ipfilter, OpenBSD의 pf 등)을 지원하므로 규칙을 여러 플랫폼에 배포 할 수 있습니다. Linux에서 Fwbuilder를 사용하는 방법을 살펴 보겠습니다. 강력한 보안 시스템으로 인해 평생 문제가 될 수 있습니다.
예

eztables
Eztables를 사용하면 iptables를 건드리지 않고도 방화벽을 빠르게 구성 할 수 있습니다. 방화벽 규칙 구문은 쉽게 읽고 적용 할 수 있도록 설계되었습니다.
다음은 전체 인터넷이 TCP 포트 80에서 웹 서버에 액세스하도록 허용하는 방법입니다.
allow_in any $eth0 any 80/tcp
Eztables는 단순하면서도 강력하도록 설계되었습니다. 랩톱을 보호하고 싶거나 가정용 라우터를 설정하거나 회사 방화벽을 구축하려는 경우에는 문제가되지 않습니다.
Fail2Ban 사용
초보적인 iptables
방화벽이 설치되어 있으면 Fail2Ban 과 같은 도구를 사용하여 방화벽을 보완 할 수 있습니다.
발췌
Fail2ban은 로그 파일 (예 : / var / log / apache / error_log)을 검사하고 악의적 인 징후를 나타내는 IP를 금지합니다 (너무 많은 암호 오류, 악용 시도 등). 일반적으로 Fail2Ban은 방화벽 규칙을 업데이트하여 IP 주소를 거부하는 데 사용됩니다. 임의의 다른 작업 (예 : 이메일 전송)도 구성 할 수 있지만 지정된 시간 동안 Fail2Ban은 다양한 서비스 (아파치, 택배, ssh 등)를위한 필터를 제공합니다.
이와 같은 도구를 사용하면 계속 강화할 때 시스템이 견뎌야하는 노출을 제한하는 데 도움이됩니다. 시스템이 강화되었다고 확신 한 후에도 보안 조치의 일부로 Fail2Ban을 계속 사용하는 것이 좋습니다.
참고 문헌