Skip to content

Thực hành cấu hình firewalld#

Yêu cầu bài lab#

Mô hình bài lab#

Cấu hình mô hình bài lab như hình sau:

Yêu cầu bài lab#

  • Cho phép PC1 và PC2 truy cập được internet thông qua Server Firewalld.
  • Chặn liên hệ giữa PC1 và PC2.
  • Chặn PC1 truy cập vào trang website: baomoi.com
  • Máy ngoài internet có thể truy cập ssh vào PC2 thông qua IP cổng ngoài của Firewalld.

:::caution Bạn nên thực hành trên hệ thống lab trước khi áp dụng vào môi trường thực tế. :::

Cấu hình bài lab#

Cấu hình cho PC1 và PC2 truy cập được internet#

Kiểm tra IP, Interface và zone trên server FirewallD :

Ta thấy cả ba card mạng của server đang ở zone public, tiến hành đổi Interface: - ens35(10.88.88.30/24) chuyển xang zone external vì đây là interface giao tiếp với mạng ngoài để ra internet. - ens33(10.11.11.30/24) và ens34(10.22.22.30/24) chuyển xang zone internal.

Cấu hình

[root@firewalld ~]# firewall-cmd --zone external --change-interface ens35 --permanent
The interface is under control of NetworkManager, setting zone to 'external'.
success
[root@firewalld ~]# firewall-cmd --zone internal --change-interface ens33 --change-interface ens34 --permanent
The interface is under control of NetworkManager, setting zone to 'internal'.
The interface is under control of NetworkManager, setting zone to 'internal'.
success
[root@firewalld ~]# firewall-cmd --reload
success
[root@firewalld ~]# firewall-cmd --get-active-zone
internal
  interfaces: ens33 ens34
external
  interfaces: ens35
[root@firewalld ~]# 
Kiểm tra chức năng ip_forward:

[root@firewalld ~]# cat /proc/sys/net/ipv4/ip_forward
1

Thấy chức năng này đã được bật (nếu trả về 0 là đang bị tắt) và cho phép forward các gói tin giữa các mạng khác với nhau.

Kiểm tra ping từ pc1 đến pc2:

Mặc định zone external sẽ bật tính năng masquerade để có thể Nat:

[root@firewalld ~]# firewall-cmd --list-all --zone external 
external (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens35
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 	

Nếu tính năng masquerade, chưa được bật, chạy lệnh:

# firewall-cmd --zone external --add-masquerade

Kiểm tra truy cập internet trên PC1 và PC2:

Cấu hình chặn truy cập giữa PC1 và PC2, chặn PC1 truy cập baomoi.vn#

Tạo Direct rule, chặn các gói tin có nguồn từ dải mạng 10.11.11.0/24 đến dải mạng 10.22.22.0/24 và ngược lại:

[root@firewalld ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -s 10.11.11.0/24 -d 10.22.22.0/24 -j REJECT
success
[root@firewalld ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -d 10.11.11.0/24 -s  10.22.22.0/24 -j REJECT
success
[root@firewalld ~]# firewall-cmd --reload
success

Chặn PC1 truy cập baomoi.vn:#

Kiểm tra địa chỉ ip của website baomoi.vn:

[root@firewalld ~]# nslookup
> baomoi.vn
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	baomoi.vn
Address: 118.102.1.120
> 

Kiểm tra kết nối đến port 80 và 443 của webserver baomoi.vn bằng telnet có thể thấy PC1 vẫn đang kết nối được đến web của baomoi.vn:

[root@pc1 ~]# telnet baomoi.vn 80
Trying 118.102.1.120...
Connected to baomoi.vn.
Escape character is '^]'.

[root@pc1 ~]# telnet baomoi.vn 443
Trying 118.102.1.120...
Connected to baomoi.vn.
Escape character is '^]'.

Tạo Direct rule chặn các truy cập từ PC1 đến trang web:

[root@firewalld ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -d 10.11.11.10 -s  118.102.1.120 -j REJECT
success
Kết nối từ PC1 đến baomoi.vn đã bị chặn:

Cấu hình port forwarding#

Cấu hình port forwarding forward port 22 trên ip phía ngoài của server firewalld( 10.88.88.30) đến port 22 trên pc2(10.22.22.20) với lệnh:

firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=22:toaddr=10.22.22.20 --permanent
firewall-cmd --reload
Kiểm tra ssh đến địa chỉ ip ngoài của firewalld (10.88.88.30) thì thấy kết nối được đến pc2.