1. 程式人生 > >關於iptables--基礎知識

關於iptables--基礎知識

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--基礎知識