Làm thế nào để bạn tạo một hồ sơ ứng dụng cho ufw?


31

Ufw có một lệnh liệt kê các hồ sơ mà bạn có thể khám phá thêm các định nghĩa hồ sơ của họ

$ ufw app list

$ ufw app PROFILE {app profile title}

Tôi đã tự hỏi làm thế nào bạn có thể tạo một hồ sơ cho một chương trình không xác định, như hộp ảo và để hồ sơ đó chạy cùng các định nghĩa tôi đã đưa ra iptables cho bản phân phối Ubuntu của tôi.


Tôi không chỉ cố gắng sử dụng tường lửa Ubuntus để phục vụ máy ảo của mình. Tôi cũng thực sự tò mò về cách tạo một hồ sơ cho một ứng dụng không đi kèm với một ứng dụng.

Câu trả lời:


36

Để trả lời câu hỏi thực sự, về cách tạo tệp ứng dụng của riêng bạn, bạn chỉ cần biết rằng nó đang sử dụng định dạng tệp Windows INI (yuck).

[appname]
title=1-liner here
description=a longer line here
ports=1,2,3,4,5,6,7,8,9,10,30/tcp|50/udp|53

Dòng cổng có thể chỉ định nhiều cổng, với / udp hoặc / tcp, để giới hạn giao thức, nếu không, nó mặc định là cả hai. Bạn phải chia các phần giao thức với |.

Vì vậy, đối với một tập hợp các ví dụ thực tế tôi đã thực hiện:

[puppet]
title=puppet configuration manager
description=Puppet Open Source from http://www.puppetlabs.com/
ports=80,443,8140/tcp

[AMANDA]
title=AMANDA Backup
description=AMANDA the Advanced Maryland Automatic Network Disk Archiver
ports=10080

Bạn có thể liệt kê nhiều phiên bản của ứng dụng trong một tệp, như phiên bản này từ apache:

===start of apache2.2-common file===
[Apache]
title=Web Server
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=80/tcp

[Apache Secure]
title=Web Server (HTTPS)
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=443/tcp

[Apache Full]
title=Web Server (HTTP,HTTPS)
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=80,443/tcp

===end of file===

Khi bạn đã xác định tệp ứng dụng của mình, hãy đặt nó vào /etc/ufw/applications.d, sau đó yêu cầu ufw tải lại các định nghĩa ứng dụng với

ufw app update appname
ufw app info appname

Sử dụng nó với một cái gì đó như:

ufw allow from 192.168.1.10 to any app amanda
ufw allow amanda

giả sử 192.168.1.10 là IP của máy chủ amanda của bạn.


cú pháp của bạn để kết hợp udp và tcp là sai. Nó phải xx/tcp|yy/udp. Nói cách khác, sự tách biệt giữa các giao thức nên là một đường ống, không phải là dấu phẩy như trong ví dụ của bạn
Hilikus 7/07/2015

Ví dụ của tôi đã không cố gắng kết hợp chúng, đó là một danh sách đơn giản của port-on-udp này, một số khác-port-on-tcp.
dùng207998

Tôi vừa thử sử dụng netstatđể tìm tên ứng dụng ... đúng không? Nó làm việc cho tôi ít nhất. Là trường hợp nhạy cảm? Tôi không thực sự chắc chắn mối quan hệ giữa "tên ứng dụng" trong tệp ứng dụng so với tiêu đề so với tên quy trình, v.v.
intcreator

Netstat chỉ liệt kê tên quy trình được kết nối với một cổng cụ thể. Điều này không nhất thiết phải khớp với tên của ứng dụng. Ví dụ: ứng dụng postfix khởi chạy một loạt các quy trình, bao gồm cả quy trình 'chính' mở cổng 25. Tôi đặt tên cho tệp cấu hình ứng dụng ufw dựa trên, giả sử tên gói, tức là 'Postfix' hoặc 'AMANDA'. Trong tệp cấu hình có một hoặc nhiều định nghĩa ứng dụng đại diện cho các cổng được mở bởi gói đó. Có thể có bội số, xem gói 'postfix' làm ví dụ. Có tên ứng dụng khác nhau dựa trên cách cấu hình postfix.
dùng207998

đối với nhiều cổng tcp, nó là cổng trước hay cổng sau? xx/tcp,xy/tcp,xz/tcphoặcxx/tcp|xy/tcp|xz/tcp
errolflynn

10

Đó thực sự là tất cả trong trang chủ trong phần "Tích hợp ứng dụng".

Cú pháp cơ bản là:

ufw allow <app_name>

Hoặc bạn có thể sử dụng cú pháp mở rộng để cụ thể hơn:

ufw allow from <some_address> to any app <app_name>

Trang đặc biệt nói không chỉ định số cổng:

Bạn không nên chỉ định giao thức với một trong hai cú pháp và với cú pháp mở rộng, hãy sử dụng ứng dụng thay cho mệnh đề cổng.

Điều này có lẽ có nghĩa là nó sẽ cho phép <app_name>sử dụng bất cứ cổng nào nó muốn ..

Các lệnh hữu ích khác:

ufw app info <app_name>

Trong đó liệt kê các thông tin trên <app_name>hồ sơ của.

ufw app update <app_name>  

Mà cập nhật <app_name>hồ sơ. Bạn có thể sử dụng allđể cập nhật tất cả các hồ sơ ứng dụng.

Bạn có thể dùng:

ufw app update --add-new <app_name>  

lệnh để thêm một hồ sơ mới <app_name>và cập nhật nó, theo các quy tắc bạn đặt ra ufw app default <policy>.

Hồ sơ ứng dụng được lưu trữ trong /etc/ufw/applications.dvà đôi khi /etc/services.

Để biết thêm thông tin xem man ufw.


Có, bạn không chỉ định một cổng theo cú pháp 'ufw allow' vì giao thức được cho là được chỉ định, nếu cần, trong chính tệp định nghĩa ứng dụng.
dùng207998
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.