Ubuntu 16.04 용 응용 프로그램 수준 방화벽이 있습니까? (GUI 포함)


20

나는 리눅스 세계에 익숙하지 않다는 것을 고백해야하며, 나에게 익숙하지 않은 개념들이있다.

내가 가장 그리워하는 것은 훌륭하지만 간단한 응용 프로그램 수준의 방화벽입니다. 현재, 인터넷에 대한이 모든 침입적이고 영구적 인 연결을 통해 컴퓨터가 정확히 무엇을하고 있는지, 왜, 누구와 함께하는지 알아야합니다. 프로토콜 분석기는 양호하지만 너무 비우호적이며 시간이 많이 걸리므로 가정 사용자에게는 거의 쓸모가 없습니다.

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

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

내가 찾고있는 것은 NIC / WAN 연결을 모니터링하고 사용하려고하는 포트에 관계없이 모든 프로그램 / 응용 프로그램 또는 적극적으로 "통화하려고하는"모든 것을 감지하는 방화벽입니다 (앞서 언급 한 응용 프로그램은 반드시 연결하려고합니다) 잘 알려진 TCP 포트 사용 : 80, 443, 8080). 이것이 존재합니까? (그렇지 않다면, 컴퓨터가 무엇을하고 있는지 어떻게 알 수 있습니까?)


1
궁금한 점 :이 뱀 오일이 최근에 심각한 문제 (예 : 워너 크리)를 예방 했습니까?
복원 모니카

답변:


12

두안

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


설치

지금까지 (2017/05/22) 사용 가능한 우분투 패키지는 없습니다. 소스에서 빌드해야합니다.

이 설치 지침은 Douane Wiki의 정보를 기반으로 하며 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, Enter다음, 저장 Ctrl+ X편집기를 종료합니다.

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

#!/bin/bash
#
# douane      This shell script takes care of starting and stopping
#             douane daemon (A modern firewall at application layer)
#
# Author: Guillaume Hain zedtux@zedroot.org
#
# 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 창이 나타납니다.


1
에릭 안녕하세요, 신속하게 답변 해 주셔서 감사합니다. 언급했듯이 나는 리눅스를 처음 접한다. 나는 내 질문을 게시하기 전에이 Douane 것을 발견했고, Douane 사이트를 살펴 보았고 우분투에는 "패키지"가 없으며 "Archlinux"(Linux의 다른 배포판을 추측한다)라는 것만 있습니다. 재 컴파일과 설치를 수동으로하는 배포판에 상관없이 이것을 적용 할 수 있습니다.
jonabrv1965

1
우선 지원에 대해 Eric에게 다시 한 번 감사드립니다. .. 음 ... 리눅스에서 앱을 설치하고 실행하는 30 개 이상의 단계 ... 매우 사용자 친화적이지 않습니까? 리눅스가 매우 낮은 수신 외부의 일 techie 사람들이 왜 (내가 어떤 비용 M $ Windoze에서 떨어져 휴식이 주로하기 때문에) 나는 그것을 시도 줄 것입니다 ... 참조
jonabrv1965

바이너리를 제공 하는 PPA 가 없습니까? Google은 launchpad.net/~zedtux/+archive/ubuntu/douane을 찾았 지만 테스트하지는 않았습니다.
Melebius

4

OpenSnitch라는 새로운 프로젝트가 있습니다.

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

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

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

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


> "이상하게 파이썬으로 작성되었습니다"– 이상하게도, 실제로 "핫"부분을 제외한 모든 것에 대해 높은 수준의 언어를 사용하여 시간을 절약하고 실수를 줄이는 것이 좋습니다.
Sarge Borsch

3

이것은 정말 좋은 질문이지만 보안이 중요하지 않다고 말하는 것처럼 대답하기가 어렵 기 때문에 이와 같은 질문이 싫어요.

먼저, 보안이 중요하다고 말하지만 Linux는 Windows와는 매우 다르게 처리합니다.

그래서 당신의 질문을 다룰 것입니다.

먼저 구역 경보와 같은 방식으로 작동하는 발신 방화벽이 없습니다. 리눅스는 그다지 큰 필요가 없습니다. 동일한 응용 프로그램에서 사용하더라도 많은 응용 프로그램이 클라이언트 / 서버 아키텍처에서 작동합니다. Xorg가 좋은 예입니다. 먼저 서버 (이 경우 화면에 그리는 부분)와 클라이언트 (gedit) gedit가 서버와 대화하여 버튼 그리기, 텍스트 배치 등을 서버와 대화합니다. 단순한 OS와 같은 것조차도 같은 아키텍처를 가지고 있거나 가질 수 있습니다. 프로그램은 정보를 수신하고 정보를 수신 할 때 데이터를 전송하는 서버의 역할을하며 클라이언트는 해당 "마우스 서버"에 "연결"하고 정보를 기다립니다.

이것은 리눅스에서 널리 퍼져 있으므로 모든 네트워크 연결에 대한 권한을 요청한 "방화벽"을 만들면 자체 서버에 연결할 수 없기 때문에 구성 할 수 없을 것입니다.

이것은 모두 매우 거친 예이며 일부는 너무 높기 때문에 오해의 소지가 있습니다. 그러나 여전히 매우 사실입니다.

우리를 Linux 사용자로부터 보호하기 위해, 우리는 매우 훌륭한 "기본"작업을 수행하는 두 가지 기본 규칙을 가지고 있습니다.

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

2 일. 프로세스를 시작한 사용자가 액세스 할 수없는 파일은 프로세스에 액세스 할 수 없습니다. (매우 높은 수준) 따라서 "coteyr"이 FTP 서버를 시작하는 경우 더 나쁜 경우 (높은 수준의) FTP 서버는이를 시작한 사용자 coteyr와 정확히 동일한 액세스 권한 만 갖습니다.

이 두 규칙의 조합으로 인해 방화벽 연결을 시도 할 때마다 묻는 "소프트웨어"는 방해가되며 이에 대한 수요는 많지 않습니다.

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

인바운드 방화벽 규칙은 일반적으로 규칙 1 또는 2에 의해 남은 홀수 간격을 닫습니다.

내 요점은 이것입니다. 보안은 중요하며, 그렇지 않다고 말하려고하지는 않습니다. 리눅스 영역에는 다른 도구와 목표가 있습니다. Linux 사용자 및 그룹 권한을 조사한 다음 gfw 및 IPTABLES와 같은 도구를 사용하여 간격을 메우는 것이 좋습니다.


3
> 프로세스를 시작한 사용자가 액세스 할 수없는 파일에 프로세스가 액세스 할 수 없습니다 . 이는 사용자가 암시하는 것처럼 Windows와 다르지 않습니다. 그것은 OS의 차이가 아닙니다. 솔직히 모든 루프백 연결을 허용 한 경우 이러한 방화벽은 동일한 컴퓨터의 TCP 클라이언트 / 서버 응용 프로그램을 방해하지 않습니다. 네트워크 액세스 만 제어하도록 설정하는 것이 가능합니다. (또한 Windows 9x를 실행하지 않는 한 Windows ACL은 기존 Unix 권한보다 훨씬 강력합니다. 네트워크 제한과 관련이 거의 없습니다.)
Bob

1
사실, 답을 다시 읽으면 ... 잘 알려진 포트를 사용할 수없는 방법과 관련이 있는지 잘 모르겠습니다. 시스템 서비스의 마스킹을 방지하는 데만 도움이됩니다 (예 : sshd22 일 척 ). 데이터 유출에 대해 더 많이 묻습니다. 거의 전적으로 나가는 연결이며 바인딩 할 수있는 포트와 거의 관련이 없습니다.
Bob

1
먼저 구역 경보와 같은 방식으로 작동하는 발신 방화벽이 없습니다. 리눅스는 단순히 하나를 필요로하지 않습니다-IP 테이블은 앞으로뿐만 아니라 나가는 것을 제어합니다. 실제로 알지 못하는 것은 말하지 마십시오.
djsmiley2k-CoW

안녕 Honza, 나의 "숙제"여행 동안 나는 당신과 같은 몇 번의 대답을 보았다. 그리고 나는 그것을 다소 이해하지만 ... 그리고 큰 "그러나"... 내가 찾고있는 것이 아닙니다 ... 나는 항구, 낮은 노출 (플랫폼의 낮은 보급으로 인해)을 이해합니다. 당신이 언급 한 다른 모든 개념 ...하지만 내가 찾고있는 것은 내 컴퓨터가 컴퓨터 외부에서하는 일을 쉬운 방법 (예 : zonealarm)으로 이해하는 것입니다. (예를 들어 Xorg / gedit입니다. ? 내가 알고 / 필요합니다 있도록 경우 인터넷에 갈 필요가 아무것도 할 이유 / 때 / 어디 ...
jonabrv1965

그런 다음 조금 더 깊이 파고들 것입니다. netstat지금 시도하십시오 내 상자에는 1354 개의 열린 연결이 있습니다. 그 중 65 개는 네트워크 연결입니다. 그것은 나를 위해 상당히 낮은 숫자입니다 (모두를위한 것이 아니라고 말하지만) 당신은 그 연결들 각각이 무엇을하는지 알아 내려고 시도 할 것입니다. 내가 말했듯이 보안이 중요하지 않다는 것이 아니라 환경이 매우 다릅니다.
coteyr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.