Cách bật/tắt tường lửa trên Alpine Linux

Tác giả sysadmin, T.Sáu 05, 2023, 11:44:46 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách bật/tắt tường lửa Awall trên Alpine Linux


Awall (Alpine Wall) là một giao diện dễ sử dụng và thân thiện với tường lửa iptables dành cho người dùng Alpine Linux. Nó đã có sẵn kể từ Alpine Linux phiên bản 2.4 và sử dụng một tập hợp các chính sách được xác định trước được viết ở định dạng JSON. Các tệp JSON này, được gọi là tệp chính sách, có sẵn trong thư mục /usr/share/awall/mandatory.


Trong công cụ tường lửa, bạn có thể dễ dàng theo dõi các khái niệm cấp cao như nguồn đơn, chính sách, giới hạn và vùng dành cho giao thức IPv6 và IPv4. Hướng dẫn này chỉ ra cách sử dụng gói này để bật/tắt tường lửa trên Alpine Linux.

1. Cách thiết lập tường lửa (Awall)

Thiết lập tường lửa trên hệ thống Alpine Linux là một trong những nhiệm vụ quan trọng nhất mà bạn có thể thực hiện để tăng cường bảo mật cho hệ thống của mình.

1.1. Cài đặt Tường lửa (Awall)

Bạn có thể cài đặt tường lửa trên Alpine rất dễ dàng với sự trợ giúp của thiết bị đầu cuối. Để làm điều này, hãy làm theo các bước sau:

Trước khi cài đặt bất kỳ gói nào trong hệ thống, tốt hơn hết bạn nên cập nhật hệ thống trước.

Mã nguồn [Chọn]
apk update

Tiếp theo, cài đặt Iptables cho cả giao thức IPv6 và IPv4 bằng lệnh sau:

Mã nguồn [Chọn]
apk add ip6tables iptables

Tường lửa awall có sẵn trong kho Alpine Linux cho nhiều kiến trúc, bao gồm kiến trúc arch64, c86 và x86_64. Bạn cần cài đặt tường lửa awall bằng lệnh apk đơn giản. Chạy lệnh sau để cài đặt awall:

Mã nguồn [Chọn]
apk add -u awall

Sử dụng lệnh sau, bạn có thể xác nhận rằng tường đã được cài đặt:

Mã nguồn [Chọn]
apk info awall

Sử dụng lệnh sau để kiểm tra phiên bản của tường đã cài đặt:

Mã nguồn [Chọn]
apk version awall

Thư mục /usr/share/awall/mandatory chứa một bộ chính sách tường lửa được xác định trước ở định dạng JSON. Bạn có thể liệt kê các chính sách này bằng lệnh sau:

Mã nguồn [Chọn]
ls-l /usr/share/awall/mandatory

1.2. Điều kiện tiên quyết trước khi bật/tắt tường lửa trong Alpine Linux

Sau khi cài đặt thành công tường lửa, bạn có thể bật và tắt nó. Tuy nhiên, trước đó, bạn phải cấu hình nó.

Trước tiên, bạn cần tải các mô-đun hạt nhân iptables cho tường lửa bằng lệnh sau:

Mã nguồn [Chọn]
modprobe -v ip_tables

modprobe -v ip6_tables


Lưu ý: Lệnh trước chỉ được sử dụng khi cài đặt tường lần đầu tiên trong Alpine Linux.

Tự động khởi động tường lửa khi khởi động và tự động tải các mô-đun nhân Linux bằng các lệnh sau:

Mã nguồn [Chọn]
rc-update add iptables && rc-update add ip6tables

Bạn có thể kiểm soát các dịch vụ tường lửa bằng các lệnh sau:

Mã nguồn [Chọn]
rc-service iptables {start|stop|restart|status}

rc-service ip6tables {start|stop|restart|status}

Bây giờ, chúng tôi bắt đầu dịch vụ bằng lệnh sau:

Mã nguồn [Chọn]
rc-service iptables start && rc-service ip6tables start

Sử dụng lệnh sau, bạn có thể kiểm tra trạng thái dịch vụ tường lửa:

Mã nguồn [Chọn]
rc-service iptables status && rc-service ip6tables status

Như bạn có thể thấy, dịch vụ tường lửa hiện đã bắt đầu.

Đáng chú ý là awall là một công cụ giao diện người dùng tạo ra các quy tắc. Tất cả các quy tắc tường lửa của nó được lưu trữ trong thư mục /etc/awall/. Bây giờ, chúng tôi tạo một số quy tắc trong thư mục này.

Đầu tiên, mở thư mục này bằng lệnh sau:

Mã nguồn [Chọn]
cd /etc/awall
Kiểm tra các tệp có trong đó bằng lệnh ls:


Bạn có thể thấy rằng có hai tệp trong /etc/awall: tùy chọn và riêng tư. Ở đây, chúng tôi tạo một số chính sách trong tệp tùy chọn.

Mở tệp tùy chọn của thư mục với sự trợ giúp của lệnh sau:

Mã nguồn [Chọn]
cd /etc/awall/optional
Đầu tiên, tạo một tệp mới có tên "server.json" thông qua lệnh chạm. Nó bỏ tất cả các kết nối đến và đi.

Mã nguồn [Chọn]
touch server.json
Bạn có thể mở tệp này bằng bất kỳ trình soạn thảo văn bản nào. Trong ví dụ này, chúng tôi sử dụng trình chỉnh sửa vi để mở tệp.

Mã nguồn [Chọn]
vi server.json

Khi bạn đã hoàn tất, hãy dán tất cả các dòng sau:

Mã nguồn [Chọn]
{
  "description": "An awall policy that drops all incoming and outgoing traffic",

  "variable": { "internet_if": "eth0" },

  "zone": {
    "internet": { "iface": "$internet_if" }
  },

  "policy": [
    { "in": "internet", "action": "drop" },
    { "action": "reject" }
  ]

}

Sau khi dán tất cả các dòng trước đó, nhấn "Esc". Viết ":wq" và nhấn "Enter" để thoát tệp.

Chúng ta tạo một tệp "ssh.json" để truy cập các kết nối SSH trên cổng 22 với giới hạn đăng nhập tối đa. Tệp này tránh được những kẻ tấn công và ngăn chặn các cuộc tấn công vũ phu từ các máy chủ của Alpine.

Mã nguồn [Chọn]
touch ssh.json

vi ssh.json


Dán các chi tiết sau vào tệp này:

Mã nguồn [Chọn]
{
    "description": "Allow incoming SSH access (TCP/22)",

    "filter": [
        {
            "in": "internet",
            "out": "_fw",
            "service": "ssh",
            "action": "accept",
            "src": "0.0.0.0/0",
            "conn-limit": { "count": 3, "interval": 60 }
        }
    ]
}

Tạo tệp "ping.json" để xác định chính sách tường lửa cho phép các yêu cầu ping ICMP.

Mã nguồn [Chọn]
touch ping.json

vi ping.json


Dán các dòng sau vào tệp này:

Mã nguồn [Chọn]
{

    "description": "Allow ping-pong",

    "filter": [
        {
              "in": "internet",
              "service": "ping",
              "action": "accept",
              "flow-limit": { "count": 10, "interval": 6 }
        }
    ]
}

Tạo tệp "webserver.json" để xác định quy tắc mở cổng HTTPS và HTTP.

Mã nguồn [Chọn]
touch webserver.json

vi webserver.json


Dán các dòng sau vào tệp này:

Mã nguồn [Chọn]
{
    "description": "Allow incoming Apache (TCP 80 & 443) ports",
    "filter": [
        {
            "in": "internet",
            "out": "_fw",
            "service": [ "http", "https"],
            "action": "accept"
        }
    ]
}

Cuối cùng, chúng tôi tạo một tệp "outgoing.jsopn" cho phép các kết nối gửi đi đến một số giao thức được sử dụng phổ biến nhất như ICMP, NTP, SSH, DNS, HTTPS và HTTP ping.

Mã nguồn [Chọn]
touch outgoing.json

vi outgoing.json


Dán tất cả các chi tiết sau vào tệp này:

Mã nguồn [Chọn]
{
    "description": "Allow outgoing connections for http/https, dns, ssh, ntp, ssh and ping",

    "filter": [
        {
            "in": "_fw",
            "out": "internet",
            "service": [ "http", "https", "dns", "ssh", "ntp", "ping" ],
            "action": "accept"
        }
    ]
}

Bạn có thể thấy rằng tất cả các tệp đã tạo trước đó đều có trong thư mục /etc/awall/option.


Sử dụng lệnh sau, bạn có thể liệt kê tất cả các chính sách tường lửa:

Mã nguồn [Chọn]
awall list

Bây giờ, bạn có thể bật hoặc tắt tường lửa trên Alpine Linux.

3. Cách bật/tắt tường lửa trên Alpine Linux

Khi bạn đã cài đặt và định cấu hình tường lửa, bạn có thể bật và tắt tường lửa trong Alpine Linux.

3.1. Bật Tường lửa trên Alpine Linux

Theo mặc định, tất cả các chính sách của tường lửa đều bị tắt. Để kích hoạt nó, trước tiên các chính sách của họ cần được kích hoạt.

Bạn có thể kích hoạt tất cả các chính sách đã tạo bằng lệnh sau:

Mã nguồn [Chọn]
awall enable<policy_name>
Bây giờ, chúng tôi kích hoạt tất cả các chính sách đã tạo:

Mã nguồn [Chọn]
awall enable ssh

awall enable server

awall enable webserver

awall enable ping

awall enable  outgoing


Sử dụng lệnh sau, chúng ta có thể thấy rằng tất cả các chính sách đã được bật:

Mã nguồn [Chọn]
awall list

Cuối cùng, bạn có thể kích hoạt tường lửa awall bằng cách chạy lệnh sau:

Mã nguồn [Chọn]
awall activate

Do đó, tường lửa hiện đã được bật trên hệ thống của bạn.

3.2. Vô hiệu hóa Tường lửa trên Alpine Linux

Khi bạn không muốn sử dụng nó, bạn có thể vô hiệu hóa tường lửa trong Alpine Linux bằng cách vô hiệu hóa tất cả các chính sách của nó.

Sử dụng lệnh sau, bạn có thể dễ dàng tắt chính sách tường lửa:

Mã nguồn [Chọn]
awall disable <policy_name>
Để tắt tường lửa, chúng tôi tắt tất cả các chính sách trước đó:

Mã nguồn [Chọn]
awall disable ssh

awall disable server

awall disable webserver

awall disable ping

awall disable outgoing


Sử dụng lệnh sau, bạn có thể thấy rằng tất cả các chính sách của nó đã bị vô hiệu hóa:

Mã nguồn [Chọn]
awall list

Nếu bạn không muốn sử dụng tường lửa trong Alpine Linux, bạn có thể dừng dịch vụ của nó đối với cả giao thức IPv6 và IPv4 thông qua lệnh sau:

Mã nguồn [Chọn]
rc-service iptables stop && rc-service ip6tables stop

Ngoài ra, bạn có thể nhận thêm thông tin bổ sung về tường với sự trợ giúp của lệnh sau:

Mã nguồn [Chọn]
awall help

Mẹo bổ sung: Bạn cũng có thể gỡ cài đặt tường lửa trên Alpine Linux thông qua lệnh sau:

Mã nguồn [Chọn]
rc-update del ip6tables && rc-update del iptables

Bạn có thể tăng cường hơn nữa và tăng cường bảo mật cho hệ thống của mình bằng cách bật tường lửa. Hướng dẫn này trình bày cách bật và tắt tường lửa trên Alpine Linux. Tường lửa awall iptables trong Alpine có sẵn cho các giao thức IPv6 và IPv4 và không được cài đặt sẵn.

Awall đã có trong kho của Alpine Linux nên bạn có thể dễ dàng cài đặt. Sau khi cài đặt, bạn có thể kích hoạt tường lửa bằng cách tạo và kích hoạt các chính sách. Tương tự, bạn cũng có thể tắt tường lửa bằng cách tắt lại tất cả các chính sách đã tạo.