Làm cách nào để thiết lập tường lửa đơn giản trên Ubuntu?


18

Ai đó có thể đưa ra một số bước đơn giản với ví dụ cấu hình làm thế nào để thiết lập tường lửa đơn giản trên Ubuntu (chỉ sử dụng bảng điều khiển) không? Chỉ cho phép truy cập ssh, http và https.


Bạn đang nói về tường lửa mạng, hay chỉ là tường lửa hệ thống?
Brad Gilbert

Bạn có ý nghĩa gì bởi tường lửa mạng? Có phải là một tường lửa trên bộ định tuyến? Nếu có, thì tôi đã nói về tường lửa hệ thống.
klew

Câu trả lời:


20

sudo ufw từ chối mặc định

sudo ufw cho phép http

sudo ufw cho phép https

sudo ufw cho phép ssh

sudo ufw cho phép


Nếu tôi gọi các lệnh này theo trình tự thông qua ssh, liệu nó có vi phạm kết nối của tôi không?
klew

Tôi không tin như vậy, nhưng bạn nên kiểm tra để đảm bảo. Điều này cũng giữ trạng thái giữa các lần khởi động lại, vì vậy bạn chỉ cần thực hiện một lần.
Nerdfest

Tôi sẽ kiểm tra nó khi tôi ở gần máy tính này ...
klew

Bạn có thể đặt nó vào một tập lệnh và chạy nó và sau đó ngay cả khi bạn bị ngắt kết nối, bạn sẽ có thể kết nối lại sau đó. Xem câu trả lời của tôi dưới đây cho kịch bản.
Hamish Downer

2
Nhận xét trước đó là chính xác. Về cơ bản, chạy lệnh đầu tiên trong đoạn script trên.
Nerdfest

14

Sử dụng kịch bản này.

Chỉ cần quyết định xem bạn có muốn cho phép ICMP (ping) đến hay không.

# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush

# As the default policies, drop all incoming traffic but allow all
# outgoing traffic.  This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT

# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT

# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT

# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT

# Reject all other incoming packets
iptables -A INPUT -j REJECT

8

Như đã lưu ý trong các nhận xét cho câu trả lời khác, bạn không muốn mất kết nối trước khi cho phép cổng ssh. Từ trang người đàn ông:

"QUẢN LÝ TỪ XA

Khi chạy ufw kích hoạt hoặc bắt đầu ufw thông qua initscript của nó, ufw sẽ xóa chuỗi của nó. Điều này là bắt buộc để ufw có thể duy trì trạng thái nhất quán, nhưng nó có thể loại bỏ các kết nối hiện có (ví dụ: ssh). ufw không hỗ trợ thêm quy tắc trước khi bật tường lửa, vì vậy quản trị viên có thể làm:

ufw allow proto tcp from any to any port 22

trước khi chạy 'ufw enable'. Các quy tắc sẽ vẫn bị xóa, nhưng cổng ssh sẽ được mở sau khi bật tường lửa. Xin lưu ý rằng một khi ufw được 'kích hoạt', ufw sẽ không xóa chuỗi khi thêm hoặc xóa quy tắc (nhưng sẽ sửa đổi quy tắc hoặc thay đổi chính sách mặc định). "

Vì vậy, đây là một cách tiếp cận sử dụng một kịch bản để thiết lập nó. Bạn sẽ nhận được đăng xuất khi bạn chạy tập lệnh này, nhưng sau khi chạy nó, bạn có thể đăng nhập lại qua ssh.

Đặt đoạn mã sau vào tập lệnh và gọi nó là start-firewall.sh

#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https

Và sau đó làm cho nó thực thi và chạy nó bằng cách làm

$ chmod + x start-firewall.sh
$ sudo ./start-firewall.sh

Để tìm hiểu thêm, đọc trang người đàn ông .


2

Nếu bạn làm quen với kịch bản iptables, bạn sẽ có toàn quyền kiểm soát tất cả các khả năng của tường lửa. Nó không thân thiện như Firestarter, nhưng nó có thể được thực hiện tại bàn điều khiển với nano/ vibiên tập viên. Kiểm tra hướng dẫn này hướng đến Ubuntu.


1

Quicktables đã giúp tôi tìm hiểu các quy tắc iptables. Chỉ cần chạy tập lệnh và nó sẽ tạo tập lệnh iptables cho bạn ... sau đó bạn có thể mở tập lệnh và xem các lệnh liên quan được tạo bởi các câu hỏi mà bạn đã hỏi về bạn. Đó là một tài nguyên học tập tuyệt vời.

Thật không may, nó không còn được duy trì.

http://qtables.radom.org/


1

Tôi thực sự thích sử dụng firehol ( gói ).

Để tạo quy tắc thiết lập bạn muốn, bạn cần chỉnh sửa tệp / etc / default / firehol và thay đổi START_FIREHOL = CÓ

Và bạn sẽ muốn làm cho /etc/firehol/firehol.conf của bạn trông như thế này.

version 5

interface any IfAll
    client any AnyClient accept
    server "ssh http https" accept
    # Accept everything from trusted networks
    server anystateless AllInside accept src "10.3.27.0/24"

Một trong những điều tuyệt vời về firehol là lệnh 'thử'. Bạn có thể điều chỉnh tệp cấu hình của mình và thực hiện 'thử lửa', nếu bạn kết nối qua ssh và một cái gì đó về những gì bạn đã thay đổi đã giết chết quyền truy cập mạng của bạn thì firehol sẽ hoàn nguyên các thay đổi. Để các thay đổi thực sự có hiệu lực, bạn phải nói cam kết.


1
Firehol là tuyệt vời để thao túng các quy tắc iptables. '$ firehol thử' "Kích hoạt tường lửa, nhưng đợi cho đến khi người dùng gõ từ cam kết. Nếu từ này không được gõ trong vòng 30 giây, tường lửa trước đó sẽ được khôi phục."
Gareth

Vì vậy, bạn có thể thêm / chỉnh sửa / xóa quy tắc và sau đó kiểm tra chúng. Nếu bạn đang thực hiện việc này thông qua SSH từ xa thì điều đó sẽ không khóa bạn khỏi máy chủ của chính bạn!
Gareth



-1

sudo apt-get install firestarter

Sau đó, tìm trong menu System-> Management.


người hỏi chỉ muốn sử dụng bảng điều khiển
Mikeage

Ahh, lỗi của tôi Cách khác. quản trị viên vẫn có thể ssh -X vào máy chủ và chạy Firestarter từ xa.
spoulson

1
Tôi cũng cần cài đặt một số máy chủ X để bắt đầu ssh -X :).
klew

@klew, bạn không cần phải cài đặt máy chủ X đầy đủ để chạy các ứng dụng X qua ssh. Bạn cần một vài thư viện, nhưng bạn không cần mọi thứ. Đối với mức tối thiểu, bạn chỉ cần các gói xauth và xbase-client.
Zoredache
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.