설치

설치

나는 Linux 세계에 아주 익숙하지 않으며 나에게 매우 낯설게 보이는 개념이 있다는 것을 고백해야 합니다.

제가 가장 그리워하는 것 중 하나는 훌륭하면서도 단순한 애플리케이션 수준의 방화벽입니다. 현재로서는 이러한 모든 침투적이고 영구적인 인터넷 연결로 인해 컴퓨터가 정확히 무엇을, 왜, 누구와 함께 수행하는지 아는 것이 필수입니다. 프로토콜 분석기는 괜찮지만 "분석"하기에는 너무 비우호적이고 시간 소모적이어서 가정 사용자에게는 사실상 쓸모가 없습니다.

저는 Windows 환경에서 인터넷에 연결하면 안 되지만 연결되는 많은 프로그램을 발견했습니다(그리고 ZoneAlarm 무료 방화벽을 사용하면 해당 프로그램을 중지할 수 있습니다).

Gufw(및 기타 여러 앱)를 사용하면 어떤 앱이 이미 설치되어 있는지 알아야 합니다(그리고 수십억 개의 코드 라인이 있는 이 최신 OS에서는 이것이 거의 불가능하다는 것을 알고 있습니다).

내가 찾고 있는 것은 NIC/WAN 연결을 모니터링하고 모든 프로그램/앱 또는 사용하려는 포트에 관계없이 사전에 이를 통해 "대화"하려는 모든 것을 감지하는 방화벽입니다(앞서 언급한 앱 중 연결을 시도해야 함). 잘 알려진 TCP 포트(80, 443, 8080)를 사용합니다. 이것이 존재합니까? (그렇지 않다면 내 컴퓨터에서 무슨 일이 일어나고 있는지 어떻게 알 수 있나요?)

답변1

두안

Douane은 사용자가 GNU/Linux 컴퓨터에서 인터넷에 연결할 수 있는 응용 프로그램을 제어할 수 있도록 하여 사용자의 개인 정보를 보호하는 개인 방화벽입니다.


설치

현재(2017/05/22)까지 Ubuntu 패키지를 사용할 수 없습니다. 소스에서 빌드해야 합니다.

이 설치 지침은 다음의 정보를 기반으로 합니다.두안 위키Ubuntu 16.04.2 64비트에서 테스트되었습니다.

터미널( Ctrl+ Alt+ T)을 열어 명령을 실행합니다.

준비

시스템을 업데이트하세요:

sudo apt update
sudo apt full-upgrade

컴퓨터를 다시 시작하라는 알림을 받으면 컴퓨터를 다시 시작하세요.

종속성 설치

sudo apt install git build-essential dkms libboost-filesystem-dev libboost-regex-dev libboost-signals-dev policykit-1 libdbus-c++-dev libdbus-1-dev liblog4cxx10-dev libssl-dev libgtkmm-3.0-dev python3 python3-gi python3-dbus

컴파일을 위한 디렉터리 생성

cd
mkdir Douane
cd Douane

커널 모듈 빌드

git clone https://github.com/Douane/douane-dkms
cd douane-dkms
sudo make dkms

모듈이 올바르게 빌드되고 설치되었는지 확인하십시오.

lsmod | grep douane

다음과 같은 내용이 표시됩니다.

douane                 20480  0

데몬 빌드

cd ~/Douane
git clone --recursive https://github.com/Douane/douane-daemon
cd douane-daemon
make
sudo make install

대화 프로세스 구축

cd ~/Douane
git clone --recursive https://github.com/Douane/douane-dialog
cd douane-dialog
make
sudo make install

대화 프로세스를 시작합니다.

/opt/douane/bin/douane-dialog &

그런 다음 실행 중인지 확인하십시오.

pgrep -a douane-dialog

다음과 같은 내용이 표시됩니다.

21621 /opt/douane/bin/douane-dialog

구성자 빌드

cd ~/Douane
git clone https://github.com/Douane/douane-configurator
cd douane-configurator
sudo python3 setup.py install

데몬을 시작하고 자동 시작을 설정합니다.

/etc/init.d/douane데몬의 자동 시작을 활성화하려면 파일에 다음 텍스트를 삽입해야 했습니다 .

### BEGIN INIT INFO
# Provides:          douane
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Douane firewall
### END INIT INFO

편집할 파일을 엽니다.

sudo nano /etc/init.d/douane

그런 다음 프로그램 설명 뒤에 위 텍스트를 붙여넣습니다. Ctrl+를 눌러 저장한 다음 O+ 를 눌러 편집기를 종료하세요.EnterCtrlX

다음은 텍스트를 삽입한 후 파일의 처음 21줄입니다.

#!/bin/bash
#
# douane      This shell script takes care of starting and stopping
#             douane daemon (A modern firewall at application layer)
#
# Author: Guillaume Hain [email protected]
#
# description: douane is the daemon process of the Douane firewall application. \
# This firewall is limiting access to the internet on application bases.

### BEGIN INIT INFO
# Provides:          douane
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Douane firewall
### END INIT INFO

# Source function library.
. /lib/lsb/init-functions

이제 자동 시작을 설정하고 데몬을 시작할 수 있습니다.

sudo systemctl daemon-reload
sudo systemctl enable douane
sudo systemctl start douane

필터를 활성화하고 대화 상자를 자동으로 시작하세요

구성기를 시작합니다.

douane-configurator

그런 다음 스위치를 확인하십시오Douane을 사용하여 내 네트워크 트래픽 필터링그리고부팅 시 Douane 자동 시작둘 다 켜져 있습니다.

다음에서 필터링 규칙을 검토할 수 있습니다.규칙탭. 규칙을 마우스 오른쪽 버튼으로 클릭하면 삭제할 수 있는 옵션이 표시됩니다.

시험

모든 것이 정상이라면 네트워크 연결을 사용하는 애플리케이션을 열 때 권한을 요청하는 Douane 창이 표시되어야 합니다.

답변2

OpenSnitch라는 새로운 프로젝트가 설명되어 있습니다.

https://www.cyberciti.biz/python-tutorials/opensnitch-the-little-snitch-application-like-firewall-tool-for-linux/

프로젝트 페이지는https://www.opensnitch.io/

이 시점에서 그것은 알파 소프트웨어로 간주되며 이상하게도 Python으로 작성되었지만 적어도 새로운 시도인 반면 Douane은 설치하기가 훨씬 더 어려운 매우 오래된 프로그램입니다.

면책 조항: 저는 개인적으로 두 프로그램을 모두 테스트하지 않았습니다. 다른 옵션이 있는지 찾으려고 노력했으며 아직 여기에서 OpenSnitch를 언급한 사람이 아무도 없다는 것을 알았습니다.

답변3

정말 좋은 질문인데, 보안이 중요하지 않다는 듯이 대답하지 않고는 대답하기가 정말 어렵기 때문에 이런 질문을 싫어합니다.

먼저, 보안은 중요하지만 Linux는 Windows와는 매우 다르게 보안을 처리한다는 점을 말씀드리고 싶습니다.

이제 귀하의 질문을 해결해 보겠습니다.

첫째, 구역 경보와 동일한 방식으로 작동하는 나가는 방화벽이 없을 것입니다. Linux에는 그다지 필요하지 않습니다. 많은 애플리케이션이 동일한 시스템에서 사용되더라도 클라이언트/서버 아키텍처에서 작동합니다. Xorg가 좋은 예입니다. 먼저 서버(이 경우 화면에 그리는 부분)가 있고 클라이언트(gedit) gedit는 버튼 그리기, 텍스트 배치 등에 관해 서버와 대화합니다. 마우스처럼 단순한 것조차도 이와 동일한 아키텍처를 갖습니다(또는 가질 수 있음). 프로그램은 정보를 수신하고 데이터를 받으면 데이터를 보내는 서버 역할을 하며, 클라이언트는 해당 "마우스 서버"에 "연결"하고 정보를 기다립니다.

이는 Linux에서 매우 널리 퍼져 있으므로 모든 네트워크 연결에 대한 권한을 요청하는 "방화벽"을 생성하려는 경우 자체 서버에 연결할 수 없기 때문에 방화벽을 구성할 수 없을 것입니다.

이것은 모두 매우 대략적인 예이며 일부는 너무 높은 수준이기 때문에 오해의 소지가 있습니다. 그러나 그것은 여전히 ​​매우 사실이다.

이에 대해 Linux 사용자를 보호하기 위해 우리는 매우 효과적인 "기본" 작업을 수행하는 두 가지 매우 기본적인 규칙 세트를 가지고 있습니다.

첫째, 루트를 제외한 어떤 사용자도 1024 이하의 포트를 열 수 없습니다. (역시 매우 높은 수준) 즉, 표준 포트에서 FTP 서버를 실행하려면 루트 액세스 권한이 필요합니다. 사용자는 일반적으로 "높은 포트"(1024 이상의 포트)를 열 수 있습니다. 그러나 규칙 2를 참조하십시오.

둘째. 어떤 프로세스도 프로세스를 시작하는 사용자가 액세스할 수 없는 파일에 액세스할 수 없습니다. (역시 매우 높은 수준) 따라서 "coteyr"가 FTP 서버를 시작한다면 최악의 경우(높은 수준)의 FTP 서버는 이를 시작한 사용자 coteyr와 정확히 동일한 액세스 권한만 갖게 됩니다.

이 두 가지 규칙의 조합으로 인해 무언가가 방화벽에 연결하려고 할 때마다 묻는 "소프트웨어"가 방해가 될 뿐이고 그에 대한 수요도 많지 않습니다.

즉, 항상 아웃바운드 방화벽 규칙을 만들 수 있으며 대부분의 경우 이는 나쁜 생각이 아닐 것입니다. 많은 서비스는 네트워크 기반 소켓이 아닌 파일 기반 소켓(또는 메모리 기반)을 사용하도록 구성될 수 있으며 기본적으로 구성됩니다.

인바운드 방화벽 규칙은 일반적으로 규칙 1 또는 2에 의해 남겨진 이상한 공백을 닫습니다.

내 요점은 이것이다. 보안은 중요하며 그렇지 않다고 말하려는 것은 아닙니다. 단지 여기 Linux 영역에서 우리는 다양한 도구와 목표를 가지고 있습니다. Linux 사용자 및 그룹 권한을 조사한 다음 gfw 및 IPTABLES와 같은 도구를 사용하여 공백을 메우는 것이 좋습니다.

답변4

여기 답변에서 언급된 OpenSnitch는,더 이상 활발한 개발이 진행되지 않습니다.. 있다포크하지만 이는 현재 유지 관리되지 않는 OpenSnitch에 비해 많은 영역에서 개선된 개발을 계속하고 있습니다.

원래 프로젝트와 마찬가지로 OpenSnitch 포크는 데몬(Go로 작성)과 GUI(PyQt5)로 구성된 Linux용 무료 오픈 소스 애플리케이션 수준 방화벽입니다. 또한 원래 프로젝트와 마찬가지로 이 포크도 작업이 진행 중이며 프로젝트 페이지에는 "버그가 없을 것이라고 기대하지 말고 어떤 유형의 보안에도 의존하지 마십시오"라는 메시지가 표시됩니다.

애플리케이션은 애플리케이션이 설정하려고 하는 아웃바운드 연결을 모니터링하고 일련의 규칙에 따라 연결을 방지하거나 허용합니다(기존 규칙이 발견되지 않으면 사용자에게 액세스를 허용하거나 거부하라는 메시지가 표시됩니다). 이 애플리케이션은 macOS용 상용 호스트 기반 애플리케이션 방화벽인 Little Snitch에서 영감을 받았습니다.

Ubuntu의 경우 프로젝트에서 다운로드할 수 있는 DEB 패키지가 있습니다.GitHub.

원천.

관련 정보