Linux에는 공용 인터넷의 Linux 서버에 거의 필수 소프트웨어인 방화벽이 있습니다. 많은 Linux 배포판에는 이미 방화벽(일반적으로 Fedora, CentOS 및 Red Hat 배포판의 iptables)이 함께 제공됩니다. 기본적으로 설치된 방화벽 소프트웨어는 "firewall-cmd" 명령을 통해 구성 및 제어할 수 있는 방화벽 소프트웨어입니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
Linux에는 방화벽과 바이러스 백신 소프트웨어가 있습니다. 방화벽은 공용 인터넷의 Linux 서버에 거의 필수 소프트웨어입니다. 또한 거의 모든 컴퓨터실에는 침입 탐지, 공격 방지 등을 위한 하드웨어 방화벽이 있습니다.
합리적인 방화벽은 컴퓨터가 네트워크 침입을 방지하는 첫 번째 장벽입니다. 집에서 인터넷 서핑을 할 때 일반적으로 인터넷 서비스 제공업체는 라우팅에 방화벽을 구축합니다. 집을 비울 때는 컴퓨터의 방화벽이 유일한 방화벽이므로 Linux 컴퓨터에서 방화벽을 구성하고 제어하는 것이 중요합니다. Linux 서버를 유지 관리하는 경우 로컬이든 원격이든 불법 트래픽으로부터 서버를 보호할 수 있도록 방화벽을 관리하는 방법을 아는 것도 똑같이 중요합니다.
Linux 설치 방화벽
많은 Linux 배포판에는 이미 자체 방화벽(일반적으로 iptables)이 함께 제공됩니다. 강력하고 사용자 정의가 가능하지만 구성하기가 약간 복잡합니다. 다행스럽게도 일부 개발자는 사용자가 긴 iptables 규칙을 작성하지 않고도 방화벽을 제어할 수 있도록 일부 프런트 엔드 프로그램을 작성했습니다.
Fedora, CentOS, Red Hat 및 일부 유사한 배포판에서 기본으로 설치된 방화벽 소프트웨어는 Firewalld이며, 이는 Firewall-cmd 명령을 통해 구성 및 제어됩니다. Debian 및 대부분의 다른 배포판에서는 방화벽을 저장소에서 설치할 수 있습니다. Ubuntu에는 복잡하지 않은 방화벽(ufw)이 함께 제공되므로 방화벽을 사용하려면 유니버스 소프트웨어 저장소를 활성화해야 합니다:
$ sudo add-apt-repository universe $ sudo apt install firewalld
또한 ufw를 비활성화해야 합니다:
$ sudo systemctl disable ufw
ufw를 사용하지 않을 이유가 없습니다. 강력한 방화벽 프런트엔드입니다. 그러나 이 기사에서는 대부분의 배포판이 방화벽을 지원하고 거의 모든 배포판에 포함되어 있는 systemd에 통합되어 있기 때문에 방화벽에 중점을 둡니다.
어떤 배포판을 사용하든 방화벽이 적용되기 전에 방화벽을 활성화해야 하며 시작 시 로드해야 합니다.
$ sudo systemctl enable --now firewalld
방화벽 도메인 이해
Firewalld는 다음과 같이 방화벽을 구성하도록 설계되었습니다. 최대한 쉽게 간단합니다. 도메인 영역을 설정하여 이 목표를 달성합니다. 도메인은 대부분의 사용자의 일상적인 요구에 맞게 조정되는 합리적이고 일반적인 규칙 집합입니다. 기본적으로 9개의 도메인이 있습니다.
신뢰할 수 있음: 모든 연결을 수락합니다. 이는 편집증이 가장 적은 방화벽 설정이며 네트워크의 모든 사람이 다른 사람을 알고 있는 테스트 랩이나 홈 네트워크와 같이 완전히 신뢰할 수 있는 환경에서만 사용해야 합니다.
집, 직장, 내부: 이 세 가지 도메인에서는 대부분의 들어오는 연결이 허용됩니다. 각각은 활성화되지 않을 것으로 예상되는 포트에서 들어오는 트래픽을 제외합니다. 세 가지 모두 홈 환경에서 불확실한 포트로 인한 네트워크 트래픽이 없고, 홈 네트워크에서는 일반적으로 다른 사용자를 신뢰할 수 있기 때문에 홈 환경에서 사용하기에 적합합니다.
public: 공공 장소에서 사용됩니다. 이는 네트워크의 다른 컴퓨터를 신뢰하지 않을 때 사용되는 편집증적인 설정입니다. 선택된 일반적이고 가장 안전한 수신 연결만 허용됩니다.
dmz: DMZ는 비무장지대를 의미합니다. 이 도메인은 조직의 외부 네트워크에 있고 내부 네트워크에 대한 액세스가 제한된 공개적으로 액세스 가능한 컴퓨터에 주로 사용됩니다. 개인용 컴퓨터에서는 거의 사용되지 않지만 특정 유형의 서버에서는 중요한 옵션이 될 수 있습니다.
external: 외부 네트워크에 사용되며 위장이 활성화됩니다(개인 네트워크의 주소가 외부 IP 주소에 매핑되어 숨겨집니다). DMZ와 마찬가지로 SSH를 포함하여 선택된 수신 연결만 허용됩니다.
block: 이 시스템에서 초기화된 네트워크 연결만 허용합니다. 수신된 모든 네트워크 연결은 icmp-host-prohibited 메시지와 함께 거부됩니다. 이는 매우 편집증적인 설정으로, 신뢰할 수 없거나 보안되지 않은 환경의 특정 유형의 서버나 개인용 컴퓨터에 중요합니다.
drop: 수신된 모든 네트워크 패킷은 응답 없이 삭제됩니다. 나가는 네트워크 연결만 사용할 수 있습니다. 이 설정보다 더 극단적인 해결책은 WiFi를 끄고 네트워크 케이블을 뽑는 것입니다.
구성 파일 /usr/lib/firewalld/zones를 통해 배포에 대한 모든 영역을 보거나 관리자 설정을 볼 수 있습니다. 예: Fefora 31과 함께 제공되는 FedoraWorkstation 영역은 다음과 같습니다.
$ cat /usr/lib/firewalld/zones/FedoraWorkstation.xml <?xml version="1.0" encoding="utf-8"?> <zone> <short>Fedora Workstation</short> <description>Unsolicited incoming network packets are rejected from port 1 to 1024, except for select network services. Incoming packets that are related to outgoing network connections are accepted. Outgoing network connections are allowed.</description> <service name="dhcpv6-client"/> <service name="ssh"/> <service name="samba-client"/> <port protocol="udp" port="1025-65535"/> <port protocol="tcp" port="1025-65535"/> </zone>
현재 영역 가져오기
언제든지 --get-active-zones 옵션을 통해 현재 어느 영역에 있는지 확인할 수 있습니다.
$ sudo firewall-cmd --get-active-zones
输出结果中,会有当前活跃的域的名字和分配给它的网络接口。笔记本电脑上,在默认域中通常意味着你有个 WiFi 卡:
FedoraWorkstation interfaces: wlp61s0
修改你当前的域
要更改你的域,请将网络接口重新分配到不同的域。例如,把例子中的 wlp61s0 卡修改为 public 域:
$ sudo firewall-cmd --change-interface=wlp61s0 --zone=public
你可以在任何时候、任何理由改变一个接口的活动域 —— 无论你是要去咖啡馆,觉得需要增加笔记本的安全策略,还是要去上班,需要打开一些端口进入内网,或者其他原因。在你凭记忆学会 firewall-cmd 命令之前,你只要记住了关键词 change 和 zone,就可以慢慢掌握,因为按下 Tab 时,它的选项会自动补全。
相关推荐:《Linux视频教程》
위 내용은 리눅스에는 방화벽이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!