Tạo tường lửa của riêng bạn với iptables bằng cách sử dụng tập lệnh đơn giản này phần 2

Firewall_ (mạng)

Xin chào các bạn, hôm nay mình mang đến cho các bạn phần 100 của loạt bài hướng dẫn về tường lửa với iptables, rất đơn giản để bạn có thể sao chép và dán, tôi nghĩ rằng cuối cùng thì đó là điều mà tất cả những người mới bắt đầu hoặc thậm chí là người có kinh nghiệm nhất tìm kiếm, tại sao chúng ta phải phát minh lại bánh xe XNUMX lần, phải không?

Lần này tôi yêu cầu họ cố gắng tập trung vào trường hợp rất cụ thể là liệu chúng tôi có muốn tường lửa của mình hoạt động mạnh hơn nhiều với chính sách OUTPUT DROP hay không. Bài đăng này cũng là theo yêu cầu của một độc giả của trang này và các bài viết của tôi. (Trong tâm trí tôi wiiiiiiiiiiiii)

Hãy nói một chút về "ưu và nhược điểm" của việc thiết lập chính sách Output Drop, điều mà tôi có thể nói với bạn là nó khiến công việc trở nên tẻ nhạt và tốn công hơn rất nhiều, tuy nhiên chuyên nghiệp là ở cấp độ mạng, bạn sẽ có bảo mật hơn là khi bạn ngồi xuống. Suy nghĩ, thiết kế và hoạch định các chính sách tốt, bạn sẽ có một máy chủ an toàn hơn nhiều.

Để không lan man hoặc lạc đề, tôi sẽ nhanh chóng giải thích cho bạn bằng một ví dụ về cách các quy tắc của bạn nên nhiều hay ít

iptables -A OUTPUT -o eth0 -p tcp –sport trạng thái 80 -m –state THÀNH LẬP -j CHẤP NHẬN
-A bởi vì chúng tôi đã thêm quy tắc
-o đề cập đến lưu lượng ra ngoài, sau đó giao diện được đặt nếu không được chỉ định vì nó khớp với tất cả.
-thể thao cảng xuất xứ, đóng một vai trò quan trọng vì trong hầu hết các trường hợp, chúng tôi không biết họ sẽ đưa ra yêu cầu từ cảng nào, nếu vậy chúng tôi có thể sử dụng dport
–Xuất khẩu cổng đích, khi chúng tôi biết trước cụ thể rằng kết nối đi chỉ phải đi đến một cổng cụ thể. Nó phải dành cho một cái gì đó rất cụ thể như máy chủ mysql từ xa chẳng hạn.
-m state –state ĐƯỢC LẬP Đây đã là một phần tô điểm cho việc duy trì các kết nối đã được thiết lập, chúng tôi có thể đi sâu vào nó trong một bài đăng trong tương lai
-d để nói về đích, nếu nó có thể được chỉ định, ví dụ: ssh đến một máy cụ thể theo ip của nó

#!/bin/bash

# Chúng tôi làm sạch bảng iptables -F iptables -X # Chúng tôi làm sạch bảng NAT iptables -t nat -F iptables -t nat -X # mangle cho những thứ như PPPoE, PPP và ATM iptables -t mangle -F iptables -t mangle -X # Chính sách Tôi nghĩ đây là cách tốt nhất cho người mới bắt đầu và # vẫn không tệ, tôi sẽ giải thích đầu ra (output) tất cả vì chúng là kết nối gửi đi #, đầu vào chúng tôi loại bỏ mọi thứ và không có máy chủ nào nên chuyển tiếp. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #Intranet LAN intranet = eth0 #Extranet wan extranet = eth1 # Giữ trạng thái. Mọi thứ đã được kết nối (đã được thiết lập) chúng ta để nó như thế này iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ĐƯỢC THIẾT LẬP, LIÊN QUAN -j CHẤP NHẬN
# Thiết bị lặp. iptables -A INPUT -i lo -j CHẤP NHẬN
# Đầu ra lặp lại Iptables -A OUTPUT -o lo -j CHẤP NHẬN

# http, https, chúng tôi không chỉ định giao diện vì # chúng tôi muốn nó là tất cả các iptables -A INPUT -p tcp --dport 80 -j CHẤP NHẬN iptables -A INPUT -p tcp --dport 443 -j CHẤP NHẬN
# khởi hành
# http, https, chúng tôi không chỉ định giao diện vì
# chúng tôi muốn nó dành cho tất cả nhưng nếu chúng tôi chỉ định cổng đầu ra
iptables -A OUTPUT -p tcp --sport 80 -j CHẤP NHẬN iptables -A OUTPUT -p tcp --sport 443 -j CHẤP NHẬN

# ssh chỉ nội bộ và từ phạm vi iptables của ip này -A INPUT -p tcp -s 192.168.xx / 24 -i $ mạng nội bộ - cổng 7659 -j CHẤP NHẬN
# output # ssh chỉ nội bộ và từ dải ip này
iptables -A OUTPUT -p tcp -d 192.168.xx / 24 -o $ mạng nội bộ - môn thể thao 7659 -j CHẤP NHẬN
# giám sát chẳng hạn nếu họ có zabbix hoặc một số iptables dịch vụ snmp khác -A INPUT -p tcp -s 192.168.1.1 -i $ intranet --dport 10050 -j CHẤP NHẬN
# khởi hành
# giám sát chẳng hạn nếu họ có zabbix hoặc một số dịch vụ snmp khác
iptables -A OUTPUT -p tcp -d 192.168.1.1 -o $ intranet --dport 10050 -j CHẤP NHẬN

# icmp, ping tốt là do bạn quyết định iptables -A INPUT -p icmp -s 192.168.xx / 24 -i $ intranet -j CHẤP NHẬN
# khởi hành
# icmp, ping tốt là do bạn quyết định
iptables -A OUTPUT -p icmp -d 192.168.xx / 24 -o $ intranet -j CHẤP NHẬN

#mysql với postgres là cổng 5432 iptables -A INPUT -p tcp -s 192.168.xx --sport 3306 -i $ intranet -j CHẤP NHẬN
# output - câu hỏi cũng được người dùng hỏi để tạo một máy chủ quy tắc # rất cụ thể: 192.168.1.2 mysql: 192.168.1.3
#mysql với postgres là cổng 5432
iptables -A OUTPUT -p tcp -s 192.168.1.2 -d 192.168.1.3 --dport 3306 -o $ intranet -j CHẤP NHẬN

#sendmail bueeeh nếu bạn muốn gửi một số thư #iptables -A OUTPUT -p tcp --dport 25 -j CHẤP NHẬN # Anti-SPOOFING 09/07/2014 # SERVER_IP = "190.xxx" # server IP - ip wan thực của bạn LAN_RANGE server = "192.168.xx / 21" # Dải mạng LAN của mạng của bạn hoặc vlan # IP của bạn không bao giờ được vào extranet, đó là sử dụng một chút # logic nếu chúng ta có một giao diện WAN hoàn toàn, nó sẽ không bao giờ nhập # lưu lượng Loại mạng LAN thông qua giao diện đó SPOOF_IPS = "0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16" # Hành động mặc định - được thực hiện khi bất kỳ quy tắc nào khớp với ACTION = " DROP "# Gói có cùng ip với máy chủ của tôi thông qua wan iptables -A INPUT -i $ extranet -s $ SERVER_IP -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ SERVER_IP -j $ ACTION

# Gói có Phạm vi LAN cho wan, tôi đặt nó như thế này trong trường hợp bạn có # bất kỳ mạng cụ thể nào, nhưng điều này là dư thừa với # quy tắc sau bên trong iptables vòng lặp "for" -A INPUT -i $ extranet -s $ LAN_RANGE -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ LAN_RANGE -j $ ACTION

## Tất cả các mạng SPOOF không được wan cho phép đối với ip trong $ SPOOF_IPS do iptables -A INPUT -i $ extranet -s $ ip -j $ ACTION
iptables -A OUTPUT -o $ extranet -s $ ip -j $ ACTION
thực hiện

Trong bài đánh giá tiếp theo, chúng tôi sẽ thực hiện phạm vi cổng và cũng thiết lập các chính sách được tổ chức theo tên, trong số những thứ khác ... Tôi chờ đợi ý kiến ​​và yêu cầu của bạn.


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.