關於iptables--基礎知識
什麽是iptables?
常見於linux系統下的應用層防火墻工具
常見人員:
系統管理人員、網絡工程師、安全人員
iptables的作用:
一、如何用iptables搭建一套如何企業實際使用的防火墻規則
二、如何用iptables進行防攻擊
三、如何利用iptables進行數據包準啊發
四、明白iptables的強大及實際使用意義
什麽是Netfilter:
Netfilter是Linux操作系統核心層內部的一個數據包處理模塊
什麽是Hook point?
數據包在Netfilter中的掛載點
(PRE_ROUTING、INPUT、OUTPUT、FORDWARD、POST_ROUTING)
IPTABLES的四表五鏈
四張表:filter、nat、mangle、raw表
五條鏈:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
filter:訪問控制,規則匹配
nat:地址轉發
iptables的規則組成
數據包訪問控制:ACCEPT、DROP、REJECT
數據包改寫:SNAT、DNAT
信息記錄:LOG
場景模擬
場景一:
規則一、對所有地址開放本機的tcp(80、22、10-21)端口訪問
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT
規則二、允許所有的地址開放本機的基於ICMP協議的數據包訪問
iptables -I INPUT -p ICMP -j ACCEPT
規則三、其他未被允許的端口則禁止訪問
iptables -A INPUT -j REJECT
場景一、存在的問題
1、本機無法訪問本機
iptables -I INPUT -i lo -j ACCEPT(允許數據包通過lo地址訪問)
2、本機無法訪問其他主機
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT(建立這兩種狀態的數據監聽時則允許)
補充:在場景一的基礎上,修改只允許192.168.1.1的主機訪問httpd服務
iptables -I INPUT -p tcp -s 192.168.1.1 --dport 80 -j ACCEPT
主動模式和被動模式的區別(數據鏈路和命令鏈路)
場景二:
1、ftp主動模式下iptables的規則配置
一、ftp連接的默認模式為被動模式
二、vsftpd服務支持主動模式需要註意配置選項
port_enabled=yes
connect_from_port_20=YES
三、iptables需要開啟21端口的訪問權限
#iptables -I INPUT -p tcp -dport 21 -j ACCEPT
2、ftp被動模式下iptables的規則配置
方法1、為vsftpd指定數據端口,並且通過iptables開放相應需要傳輸的端口段
iptables -I INPUT -p tcp --dport 21 -j ACCEPT
vim /etc/vsftpd/vsftpd.conf
pasv_max_port=60000
pasv_min_port=50000
iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT
方法二、
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -p tcp -dport 21 -j ACCEPT
modprobe nf_conntrack_ftp
永久修改配置(vim /etc/sysconfig/iptables-config)
IPTABLES_MOUDULES="nf_connectrack_ftp"
場景三:
要求一、員工在公司內部(10.10.155.0/24,10.10.188.0/24)能訪問服務器上的任何服務
要求二、當員工出差在上海,通過VPN鏈接到公司,外網(員工)==撥號到==》VPN服務器==》內網FTP、SAMBA、NFS、SSH
要求三、公司有一個門戶網站需要允許公網訪問
常見端口梳理
常見允許外網訪問的端口
網站 www http 80/tcp
https 443/tcp
郵件 mail smtp 25/tcp
smtps 465/tcp
pop3 110/tcp
pop3s 995/tcp
imap 143/tcp
一些常見不允許外網訪問的服務
文件服務器 NFS 123/udp
SAMBA 137,138,139/tcp,445/tcp
FTP 20/tcp,21/tcp
遠程管理 SSH 22/tcp
數據庫 MYSQL 3306/tcp
ORACLE 1521/tcp
配置規則的基本思路
ACCEPT 允許本地訪問
允許已監聽狀態數據包通過
允許規則中的允許的數據包通過【註意開放ssh遠程登陸端口】
DENY 拒絕未被允許的數據包
iptables 規則保存成配置文件
/etc/init.d/iptables save
利用iptables防cc攻擊
connlimit模塊
作用:用於限制每一個客戶端ip的並發連接數
參數:-connlimit-above n #限制並發個數
例如:iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT
Limit模塊
作用:限速,控制流量
例:iptables -A INPUT -m limit --limit 3/hour
--limit-burst 默認值為5
iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
本文出自 “Linux系統運維” 博客,請務必保留此出處http://mbb97.blog.51cto.com/13129388/1959187
關於iptables--基礎知識