Zi 字媒體
2017-07-25T20:27:27+00:00
最近有位學長的網站常被打
讓我想到我還有很多文章都還沒弄上來
所以趁這個機會把之前寫的iptables筆記貼上來
一般狀況下,server是不會隨便讓任何人存取一些服務的
這個時候就需要iptables來幫助我們!
首先可以先看看目前環境中iptables的規則
iptables -L -n
-L :列出目前的 table 的規則
-n :不進行IP與hostname的反查,速度較快
列出完整的防火牆規則
iptables-save
清除規則
iptables -F
iptables -X
iptables -Z
-F :清除所有的規則
-X :刪除所有使用者自訂的chain
-Z :將所有的 chain 的計數與流量統計都歸零
定義預設政策(policy)
-P:定義政策
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
將localhost設定為信任
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
信任本機存取時相關的response
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-m 外掛模組:常見的有state和mac
--stat 封包狀態:
INVALID :無效的封包,例如資料破損的封包狀態
ESTABLISHED:已經連線成功的連線狀態;
NEW :想要新建立連線的封包狀態;
RELATED :與主機送出去的封包有關係的封包
port 21 存取設定
iptables -A INPUT -p tcp --dport 21 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -s 120.119.0.0/16 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -s 59.127.184.43 -p tcp --dport 21 -j ACCEPT
(拒絕所有存取,只接受192.168.0.0/16、120.119.0.0/16和59.127.184.43)
--sport 埠口範圍:限制來源port,port可連續,ex 1024:65535
--dport 埠口範圍:限制目標port
-A :新增加一條規則,規則是加在最後面
-I :插入一條規則。如果沒有指定此規則的順序,預設是插入變成第一條規則
-p 協定:設定此規則適用於哪種封包格式,主要的封包格式有:tcp、udp、icmp及all
-s 來源IP/網域:設定此規則之封包的來源項目,可指定單純的 IP 或包括網域
-d 目標 IP/網域
-j :後面接動作,主要的動作有ACCEPT、DROP、REJECT及LOG
ssh設定
iptables -A INPUT -s 192.168.0.0/16 -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 120.119.0.0/16 -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 59.127.184.43 -p tcp –dport 22 -j ACCEPT
http設定
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
開機自動啟動防火牆
Ubuntu:
chmod 755 firewall.sh
cd /etc/rcS.d
ln -s /home/web/firewall.sh S100firewall.sh
rcS.d目錄中,只有大寫S開頭的檔案,會被執行,S後面的號碼,是執行的優先順序
CentOS:
/etc/init.d/iptables save
最後完成機器上的設定
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p all -s 120.119.28.0/255.255.254.0 -j ACCEPT # bypass DNS
iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 20:22 -j ACCEPT
iptables -A INPUT -s 120.119.0.0/16 -p tcp --dport 20:22 -j LOG --log-level "NOTICE" #紀錄log
iptables -A INPUT -s 120.119.0.0/16 -p tcp --dport 20:22 -j ACCEPT
iptables -A INPUT -s 59.127.184.43 -p tcp --dport 20:22 -j ACCEPT
iptables -A INPUT -s 120.119.0.0/16 -p tcp --dport 60000:61000 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 60000:61000 -j ACCEPT
iptables -A INPUT -s 59.127.184.43 -p tcp --dport 60000:61000 -j ACCEPT
iptables -A INPUT -p tcp --dport 113 -j ACCEPT #auth認證
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
如果測試ftp時一直卡在MLDS進不去,就是被動port被擋住囉
Categories: Linux
1 Comment
佛祖球球 » Blog Archive » [CentOS]Apache啟動後無法顯示網頁
· 七月 31, 2012 at 10:05 下午
[…] 加入Rule(防火牆設定可參考這篇) […]
Comments are closed.
分類
Android
AngularJS
API Blueprint
Chrome
Database
MySQL
DataStructure
Editor
Vim
Firefox
Git
Hadoop
Language
Go
Java
JavaScript
jQuery
jQueryChart
Node.js
Vue
PHP
Laravel
ZendFramework
Python
Mac
Network
Cisco
DLink
Juniper
Oauth
Server
Apache
Share
Unix
FreeBSD
Linux
WebDesign
Bootstrap
CSS
HTML
Wordpress
Search
搜尋:
寫了
5860316篇文章,獲得
23313次喜歡