Sử dụng Bot Telegram Khai báo rule FirewallD với Python

Tram Ho

Với các bạn sử dung hệ điều hành Centos 7 thì không còn xa lạ khái niệm FirewallD, nó là một giải pháp tường lửa mạnh mẽ được cài đặt mặc định trên RHEL 7 và Centos 7 nhằm thay thế Iptables.
FirewallD sử dụng “zone” và “services” thay vì “chain” và “rule” trong Iptables.

Ở bài viết này mình sẽ không đi sâu về FirewallD mà sẽ hướng dẫn các bạn viết một con Bot Telegram đơn giản để thực hiện việc khai báo rule kết nối trên FirewallD.

Để khai báo rule kết nối trên server ta cần chạy các lệnh:

Bài toán đặt ra là Bot Telegram sẽ nhận 2 giá trị addressport mà chúng ta nhập vào và thực hiện 2 lệnh trên.

Bước 1: Chuẩn bị môi trường

  • Tạo Bot Telegram
  • Install môi trường python-telegram-bot (ở đây mình đã cài sẵn môi trường python3.7 trên server)

Bước 2: Code bot xử lý khai báo rule kết nối trên Firewalld

Tạo một file bot_anhln.py với nội dung như dưới

Trên đoạn code trên:

  • Mình đã tạo 1 hàm firewalld_add_source_ip_port xử lý việc người dùng nhập vào 2 giá trị source ip và port cần khai báo, trong bot telegram bạn sử dụng context.args[i] để get từng giá trị người dùng nhập vào.
  • Sau đó mình dùng os.system trong python để thực thi các lệnh trên linux.
  • Và dùng message.reply_text để thông báo lại khi đã thực hiện khai báo xong rule kết nối.

Vậy là ta đã hoàn thành việc tạo một bot đơn giản để khai báo FirewallD, mỗi khi người dùng yêu cầu khai báo kết nối mà bạn đang không ngồi làm việc trên máy tính vẫn có thể thực hiện việc khai báo bình thường

Bước 3: Tận hưởng thành quả thôi

Mình sẽ để nohup để chạy bot

image.png

 

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo