一.iptables介紹linux
二.安裝服務並開啓服務vim
yum install iptables-services.x86_64 網絡
systemctl stop firewalldssh
systemctl disable firewalldtcp
systemctl mask firewalld ide
systemctl start iptables.service測試
systemctl enable iptables.servicespa
systemctl status iptables.servicerest
三.參數的相關解釋和用法接口
iptable
-t##指定表名稱
-n##不做解析
-L##列出指定表中的策略
-A##增長策略
-p##網絡協議
--dport ##端口
-s##數據來源
-j##動做
ACCEPT##容許
REJECT ##拒絕
DROP##丟棄
-N##增長鏈
-E##修改鏈名稱
-X##刪除鏈
-D##刪除指定策略
-I##插入
-R##修改策略
-P##修改默認策略
iptables -t filter -nL#查看filter表中的策略
iptables -F#刷掉filter表中的全部策略,當沒有用-t指定表名稱時默認時filter
service iptables save#保存當前策略
iptables -A INPUT -i lo -j ACCEPT#容許lo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT##容許訪問22端口
iptables -A INPUT -s 172.25.254.224 -j ACCEPT##容許224主機訪問本機全部端口
iptables -A INPUT -j REJECT ##拒絕全部主機的數據來源
iptables -N redhat##增長鏈redhat
iptables -E redhat westos##改變鏈名稱
iptables -X westos##刪除westos鏈
iptable -D INPUT 2##刪除INPUT鏈中的第二條策略
iptables -I INPUT -p tcp --dport 80 -j REJECT##插入策略到INPUT中的第一條
iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT##修改第一條策略
iptable -P INPUT DROP##把INPUT表中的默認策略改成drop
四.數據包狀態策略(緩解壓力,提升速度)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
容許RELATED,ESTABLISHED 狀態經過
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
容許lo迴環接口狀態爲NEW經過
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
容許訪問端口22狀態爲NEW經過
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
容許訪問端口80狀態爲NEW經過
iptables -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT
容許訪問端口443狀態爲NEW經過
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
容許訪問端口53狀態爲NEW經過
iptables -A INPUT -j REJECT
拒絕全部主機的數據來源
該策略第一次經過後狀態會變爲RELATED或ESTABLISHED,此後訪問時直接經過iptables,不會給iptables帶來訪問壓力。
五.vsftp在iptables下的設置(編寫策略讓本身開啓的非默認端口能夠正常工做)
ftp在主動模式下會隨機打開一個大於1024的端口,因此開啓防火牆後會被禁掉,沒法正常使用
1. 編輯配置文件 vim /etc/vsftpd/vsftpd.conf ,而且修改selinux的狀態
pasv_max_port=7000
pasv_min_port=7000
systemctl restart vsftpd 重啓服務
setenforce 0
2.測試
lftp 172.25.254.24
ls 查看內容,沒法顯示
3.添加火牆策略
iptables -I INPUT 3 -m stat --state NEW -p tcp --dport 7000 -j ACCEPT
4.測試
lftp 172.25.254.24
ls 查看內容,能夠顯示
六.iptables的假裝
1.查看內核路由功能,若沒有打開則打開內核路由功能。
sysctl -a | grep forward 查找內核路由功能開關
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf 打開內核路由功能
sysctl -p 查看內核路由功能的狀態。0表示關閉,1表示打開
2.配置主機雙網卡ip
eth0的IP:172.25.254.124 eth1的IP:172.25.0.124
3.添加火牆策略
SNAT轉換(源地址轉換在路由完成以後轉換):
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.124
DNAT轉換(目的地轉換在路由完成以前轉換)
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.0.224
4.測試
SNAT測試:
1.配置測試主機(另一臺虛擬機)的網卡ip,網關
IP:172.25.0.224 GATEWAY=172.25.0.124
2.用ssh鏈接另一臺主機172.25.254.24
ssh root@172.25.254.24
查看網絡ifconfig 顯示的是172.25.254.124
DNAT測試:
1.用ip:172.25.254.24(真機)去鏈接172.25.254.124
ssh root@172.25.254.124
2.ifconfig查看網絡 顯示的是172.25.0.224