linux下iptables詳解

1.selinux 關閉mysql

 vim /etc/sysconfig/selinux


設置方法:
1      #SELINUX=enforcing     #註釋掉

2      #SELINUXTYPE=targeted  #註釋掉

3      SELINUX=disabled  #增長

4     :wq  #保存,關閉。

5     shutdown -r now   #重啓
View Code

 

2.iptables 內網關閉,外網打開,大併發狀況下,不能開iptables,影響性能,硬件防火牆。linux

 

iptables 工做流程小結web

1.防火牆是一層層過濾的。實際是按照配置規則的順序從上到下,從前到後進行過濾的。sql

2.若是匹配上規則,即明確代表是阻止仍是經過,此時數據包就再也不向下匹配新規則了。shell

3.若是全部規則中沒有明確代表是阻止仍是經過這個數據包,也就是沒有匹配上規則,向下進行匹配,直到匹配默認規則獲得明確的阻止仍是經過。vim

4.防火牆的默認規則是對應鏈的全部的規則執行完纔會執行的。服務器

 

5.iptables 配置實戰:網絡

iptables  -V 查看iptables 版本併發

man iptables 查看iptables幫助ssh

查看防火牆的狀態

  /etc/init.d/iptables status

 iptables  -nL

 6.查看liunx內核默認加載模塊

lsmod |egrep "nat|filter"

 加載以下模塊到linux內核

modprobe ip_tables

modprobe iptable_filter

 modprobe iptable_nat

modprobe ip_conntrack

 modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

modprobe ipt_state

 

7.iptables 命令

 -n 數字

 -L 列表

 -F   清除全部規則 ,只留下默認規則,容許全部經過。

 -X   刪除用戶自定義的鏈

 -Z  鏈的計數器清零

 -t 指定表

--line-numbers 顯示序號 

-A添加規則到指定鏈的結尾,最後一條

-I添加規則到指定鏈的開頭,是第一條

-D 刪除規則  ##刪除指定規則  iptables -D INPUT  -p tcp --dport 1000 -j ACCEPT

這個區別的意義在乎,規則是由上先下執行匹配;能夠應用與防DDOS。

測試規則端口是否生效,能夠再 cmd 上  telnet 10.0.0.18 80 看是否能鏈接。

iptables -I INPUT 2 -p tcp --dort 1000 -j ACCEPT         (2爲第二行,插入在第二行的前面)

 

 

 -p協議 (all,tcp , udp,icmp). 默認all

--dport目的端口

--sport 源端口

 -j  (jump)處理的行爲

 -s 指定源地址

-d 指定目的地址

-i INPUT  匹配進入的網卡接口

-o OUTPUT 匹配出去的網卡接口

==========================

基本的處理行爲:ACCEPT(接受),DROP(丟棄),REJECT(拒絕)

 

8. 查看某個服務的端口

netstat -lntup|grep mysql

netstat -lntup|grep ssh

 

 

拒絕ssh遠程鏈接(加了這條沒法用xshell進行遠程鏈接了),iptables默認的就是filter表,能夠不指定,下面兩條相等。

iptables -t filter -A INPUT -p tcp --dport  22  -j  DROP

iptables  -A INPUT -p tcp --dport  22  -j  DROP

 

 

-t指定filter表(不加這條,默認也是filter), -A增長規則,-p指定協議 --dport 指定端口,-j指定行爲 DROP 爲拒絕。

 斷掉後,得在遠程主機,刪除這條規則,或者清空規則才能夠進行遠程鏈接。

 

9.禁止網段連入

iptables  -A INPUT -i  etho -s 10.0.0.0/24  -j DROP

 10.匹配端口範圍(用冒號鏈接)--最佳寫法

 iptables -I INPUT -p tcp --dport 8080:8090  -j ACCEPT

還能夠用列表形式添加多端口匹配 -m multiport

iptables -I INPUT -p tcp -m multiport --dport 21,80,8088,8080,3306 -j ACCEPT ,第一天容許,下面的不DROP 規則不匹配;

 11.禁止ping (--imcp type8爲ping)

 iptables  -I INPUT -p icmp  --icmp-type 8 -j DROP

 12 匹配網絡狀態

-m  state --state

NEW :已經或將啓動新的鏈接

ESTABLISHED : 已經創建的鏈接

RELATED:正在啓動的新鏈接

INVALID:非法或沒法識別的

 

13.容許關聯的數據包經過(web服務不要使用FTP服務)

#others RELATED ftp協議

#容許關聯的狀態包

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

 14.生產環境中iptables 配置

#清除全部規則

ipatbles -F

#清除用戶自定義的鏈
iptables -X

#清除當前全部鏈的計數器
iptables -Z

#容許ssh遠程鏈接端口

iptables -A INPUT -p tcp --dport 22 -j ACCEPT 

# 容許網卡迴環接口(服務器本機)
iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

#設置DROP掉FORWARD,INPUT鏈,容許OUTPUT鏈
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#容許指定網段經過(外網網段與內網網段)
iptables -A INPUT -s  211.154.152.0/24 -p all -j ACCEPT
iptables -A INPUT -s  192.168.152.0/24 -p all -j ACCEPT

#容許對外提供服務80端口
iptables -A INPUT -p tcp  --dport 80 -j ACCEPT

#容許icmp類型經過(全部ip都能ping)
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

# 容許關聯的包經過(通常應用與ftp)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#永久保存防火牆配置,預防重啓後失效
/etc/init.d/iptables save
或用重定向方式保存(不多用)
iptables-save >/etc/sysconfig/iptables
iptables

 生產環境中

使用iptables  -F 切忌(特別是託管機房)

要先執行 

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

/etc/init.d/iptables save

 

而後執行

 iptables -F

要否則,沒有規則,所有是drop ,ssh 斷開了,全部鏈接失效,很嚴重;

 

15.生產環境中iptables 維護

#編輯規則
vim /etc/sysconfig/iptables

#加入想要的規則
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

/etc/init.d/iptables reload


##改DROP 必定要線下先測試一通,避免把本身DROP掉


#封IP,第一行封,範圍小,影響不大

iptables -I INPUT -p tcp  -s 10.0.0.106 --dport 80 -j DROP
View Code

 

16 nat 表的核心功能: IP及端口的映射轉換

1.共享上網

2.端口映射

 

17

擴展匹配 指定-m選項,表示用什麼模塊來匹配,如: -m state --state NEW,ESTABLISHED,RELATED 表示用state模塊來匹配當前鏈接狀態爲這三種狀態的鏈接 -m iprange --src-range 用iprange模塊匹配來源的ip地址範圍 --dst-range 用iprange模塊匹配目的的ip地址範圍 -m multiport --source-ports 用multiport模塊來匹配來源的端口範圍 --destination-ports 用multiport模塊來匹配目的的端口範圍咱們看以下一條例子來解讀:-A INPUT -p tcp -m iprange --src-range 121.21.30.36-121.21.30.100 -m multiport --destination-ports 3326,3327,3328 -m state --state NEW -j ACCEPT這表示來自121.21.30.36-121.21.30.100這個地址範圍的,請求端口爲3326,3327,3328而且是新建的鏈接,都給予放行

相關文章
相關標籤/搜索