linux 防火牆 iptables 設置 (系統管理員)

簡單的介紹iptables的基本設置

# 1:顯示您的防火牆的狀態

輸入以下命令(root):

# iptables – l – n – v

輸出:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target     prot opt in     out     source               destination

以上輸出表示防火牆沒有設置任何規則

介紹iptables 命令參數

-L 列出所有規則
-n 顯示ip/端口
-v 顯示接口名字

# 2:停止/啓動/重新啓動防火牆

 # service iptables stop

# service iptables start

# service iptables restart

 

如何停止防火牆和刪除所有規則:

# iptables -F

# iptables -X

# iptables -t nat -F

# iptables -t nat -X

# iptables -t mangle -F

# iptables -t mangle -X

# iptables -P INPUT ACCEPT

# iptables -P OUTPUT ACCEPT

# iptables -P FORWARD ACCEPT

-F 是刪除所有規則

-X  刪除鏈

-t  選擇table 刪除和刷新規則

-P 設置默認策略(DROP REJECT ACCEPT)

# 3:刪除防火牆規則

顯示行號以及其他信息

# iptables -L INPUT -n –line-numbers

# iptables -L OUTPUT -n –line-numbers

# iptables -L OUTPUT -n –line-numbers | less

# iptables -L OUTPUT -n –line-numbers | grep 202.54.1.1

根據行號刪除指定規則例如

# iptables -D INPUT 4

或者從規則中刪除行

# iptables -D INPUT -s 61.152.1.1 -j DROP

-D 選項就是刪除指定規則

 

# 4:插入防火牆規則

插入一個或多個規則使用以下語法。首先看看行號,輸入:

# iptables – l – n – line-numbers

輸出:

Chain INPUT (policy DROP)

num  target     prot opt source               destination

1    DROP       all  –  202.54.1.1           0.0.0.0/0

2    ACCEPT     all  –  0.0.0.0/0            0.0.0.0/0           state NEW,ESTABLISHED

插入規則num 1到 num 2之間,輸入:

# iptables -I INPUT 2 -s 202.54.1.2 -j DROP

輸入下面命令查看:

# iptables -L INPUT -n –line-numbers

輸出:

Chain INPUT (policy DROP) num  target     prot opt source               destination

1    DROP       all  –  202.54.1.1           0.0.0.0/0

2    DROP       all  –  202.54.1.2           0.0.0.0/0

3    ACCEPT     all  –  0.0.0.0/0            0.0.0.0/0           state NEW,ESTABLISHED

# 5:保存防火牆規則

# service iptables save

#或者

#iptables save

在這個例子中,刪除一個IP並保存防火牆規則:

# iptables -A INPUT -s 202.5.4.1 -j DROP

# service iptables save

有必要解釋下 -A

-A 就是 “–append  -A chain  Append to chain” 添加的意思

如果想把規則備份怎麼辦呢?

iptables-save 命令可以做到

# iptables-save > /root/my.active.firewall.rules

# cat /root/my.active.firewall.rules

#6: 恢復備份

從一個文件中恢復:

# iptables-restore < /root/my.active.firewall.rules

# service iptables restart

# 7:設置默認的防火牆策略

 # iptables -P INPUT DROP

# iptables -P OUTPUT DROP

# iptables -P FORWARD DROP

# iptables -L -v -n

 

# 8:阻止或允許ICMP Ping請求

# iptables -A INPUT -p icmp –icmp-type echo-request -j DROP

# iptables -A INPUT -i eth1 -p icmp –icmp-type echo-request -j DROP

指定ip 不能ping

# iptables -A INPUT -s 192.168.1.0/24 -p icmp –icmp-type echo-request -j ACCEPT

以下只接受有限的類型的ICMP請求:

 iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT

iptables -A INPUT -p icmp –icmp-type destination-unreachable -j ACCEPT

iptables -A INPUT -p icmp –icmp-type time-exceeded -j ACCEPT

## ** all our server to respond to pings ** ##

iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT

 

# 9:開放端口

使用以下的語法來打開一個端口範圍:

iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 8000:8080 -j ACCEPT

8000—>8080 之間的端口可以訪問

#10:開放範圍的IP地址

使用以下的語法來打開一個範圍的IP地址:

 iptables -A INPUT -p tcp –destination-port 80 -m iprange –src-range 192.168.1.100-192.168.1.200 -j ACCEPT

192.168.1.100-192.168.1.200 範圍的主機可以訪問服務器

#11:開放常見的端口

 ## 開放 ssh 22端口##
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 22 -j ACCEPT

##打印服務port 631 for 局域網用戶##
iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp –dport 631 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp –dport 631 -j ACCEPT

## allow time sync via NTP for lan users (open udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p udp –dport 123 -j ACCEPT

## 開放 25 (smtp) 端口 ##
iptables -A INPUT -m state –state NEW -p tcp –dport 25 -j ACCEPT

# 開放dns server端口##

iptables -A INPUT -m state –state NEW -p udp –dport 53 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 53 -j ACCEPT

##開放 http/https (Apache) server 端口##
iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -m state –state NEW -p tcp –dport 443 -j ACCEPT

## 開放110 (pop3) 端口 ##
iptables -A INPUT -m state –state NEW -p tcp –dport 110 -j ACCEPT

## 開放143 (imap) 端口##
iptables -A INPUT -m state –state NEW -p tcp –dport 143 -j ACCEPT

##開放Samba 文件服務器端口 ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 137 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 138 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 139 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 445 -j ACCEPT

## 開放代理server 端口 ##

iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 3128 -j ACCEPT

## 開放mysql 3306端口 ##

iptables -I INPUT -p tcp –dport 3306 -j ACCEPT

 #12:阻止一個ip

# iptables -A INPUT -s 1.2.3.4 -j DROP

# iptables -A INPUT -s 192.168.0.0/24 -j DROP

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章