Cấu hình rules firewall iptables (Phần 4)

1.Mô hình

  • Client, Server cài hệ điều hành Ubuntu Server 16.04.
  • Router, có thể giả lập là VM.
  • Cấu hình iptables tại Server.
  • Trên Backend1, cài Web server (apache2) lắng nghê trên port 80.
  • Trên Backend2, cài Web server (apache2) lắng nghê trên port 443.

2.Mục đích

  • Mặc định, DROP INPUT.
  • Mặc định, ACCEPT OUTPUT.
  • Mặc định, DROP FORWARD.
  • ACCEPT Established Connection.
  • ACCEPT kết nối từ loopback.
  • FORWARD gói tin đến port 80 trên ens33 đến port tương tự trên Backend1.
  • FORWARD gói tin đến port 443 trên ens33 đến port tương tự trên Backend2.
  • Nhưng DROP gói tin từ 172.16.69.2.
  • ACCEPT kết nối Ping với 5 lần mỗi phút từ mạng LAN.
  • ACCEPT kết nối SSH từ trong mạng LAN
  • Nhưng DROP gói tin từ 10.10.10.101.
  • ACCEPT Outgoing Packets thông qua Server từ mạng LAN (10.10.10.0/24) và nat địa chỉ nguồn của packet.

3.Cấu hình

Đặt IP Tĩnh cho client, backend01 và 02 trỏ về gateway 10.10.10.11

1.Trên Backend1

  • Cấu hình IP như mô hình, gateway là 10.10.10.11.
  • Cài đặt apache2:
apt install openssh-server

Sửa nôi dụng file /var/www/html/index.html như sau:

<h1>This is Backend1</h1>

2.Trên Backend2

  • Cấu hình IP như mô hình, gateway là 10.10.10.11.
  • Cài đặt apache2:

Sửa nôi dụng file /var/www/html/index.html như sau:

<h1>This is Backend2</h1>

Kích hoạt ssl:

a2enmod ssl
a2ensite default-ssl.conf
systemctl restart apache2

3.Trên Server

Kích hoạt iptables fordward packet sang máy khác sửa file /etc/sysctl.conf:

net.ipv4.ip_forward = 1

Chạy lệnh sysctl -p /etc/sysctl.conf để kiểm tra cài đặt.

Sau đó:

/etc/init.d/procps restart

ACCEPT SSH && DROP FROM CLIENT

iptables -A INPUT -p tcp -s 10.10.10.0/24 -d 10.10.10.11 --dport 22 -m state --state NEW -j ACCEPT

ACCEPT Established Connection.

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Accept loopback

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

Tao chain default DROP INPUT, ACCEPT OUTPUT, DROP FORWARD.

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

Accept PING from network 10.10.10.0

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 5/m --limit-burst 5 \
	-s 10.10.10.0/24 -d 10.10.10.11 -j ACCEPT

Forward package ens38 –> ens33 port 80,22

iptables -A FORWARD -p tcp -d 10.10.10.51 --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp -d 10.10.10.52 --dport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -j ACCEPT

Rule DNAT ens33 –> ens38 port 80,22

iptables -t nat -A PREROUTING -p tcp -d 172.16.69.11 --dport 22 \
	-j DNAT --to-destination 10.10.10.51
iptables -t nat -A PREROUTING -p tcp -d 172.16.69.11 --dport 80 \
	-j DNAT --to-destination 10.10.10.52

Rule SNAT ens38 –> ens33 port 80,22

iptables -t nat -A POSTROUTING -p tcp -d 10.10.10.51 --dport 22 \
	-j SNAT --to-source 10.10.10.11
iptables -t nat -A POSTROUTING -p tcp -d 10.10.10.52 --dport 80 \
	-j SNAT --to-source 10.10.10.11

4.Kết quả

Truy cập vào http://172.16.69.11

SSH vào Backend_01

khoinv@vccpc:~/.ssh$ ssh root@172.16.69.11
The authenticity of host '172.16.69.11 (172.16.69.11)' can't be established.
ECDSA key fingerprint is SHA256:bA06ngqN7lV/2l2nDgvW3LhLvr+JcxxFv+hu1/g+9mI.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.16.69.11' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.7 LTS (GNU/Linux 4.4.0-186-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage


111 packages can be updated.
80 updates are security updates.


Last login: Fri Jul 16 14:04:56 2021 from 10.10.10.1
root@backend_01:~#

5.Save rule permanent

/sbin/iptables-save > /etc/iptables/rules.v4

Related posts

Leave a Comment