本文主要是介绍Iptables – 介紹設定簡單的 iptables 防火牆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
雖然大家都說 Linux 不會中毒
但隨著使用人數增加
慢慢的 Linux 中毒(基本上都是被入侵)的新聞都出來了
所以安全性也是要顧一下
底下就紀錄一些我學防火牆的筆記
基本上 iptable 有三個表
分別是 INPUT、FORWARD、OUTPUT
就字面上來看就是
INPUT:從外面連到主機
FORWARD:轉送主機封包用
OUTPUT:從主機連到外面
而這三個規則表都會有個預設值(policy)
要麻就是通過(ACCEPT)
要不然就是丟棄(DROP)
下 sudo iptables -L
可以看到目前主機的 iptables 的設定是啥
目前都沒有設定任何一條規則
預設都是允許(ACCEPT)連線封包進入
接下來就是要開始設定 iptables 的規則了
如果你主機還沒裝 apache 的請先參考下面文章安裝一下
[ubuntu] LAMP 基本架站
這樣才可以測試咩!!
首先 iptables 有個基本格式
iptables [-t 表格] [-A / -I 規則鏈] [-I / -O 網路介面] [-s 來源IP] [-d 目的IP] [-p 通訊協定] [--sport / --dport Port] -j [ACCEPT|DROP]
很長、很煩、很難記
不過其實有些不一定要打
就是看個人需要
-t 表格:預設就是filter,可以不管,假設你有用到DHCP才會指定成nat。
-A / -I 規則鏈:-A 是新增,-I 是插入。新增的話會加到最後面,插入的話會加到最前面。
-I / -O 網路介面:指定要用那張網卡。
-s 來源IP:可以指定單一IP也可以是一網段。
-d 目的IP:跟來源IP一樣
-p 通訊協定:指定封包格式,有tcp、udp、icmp還有all,表示所有通訊協定
--sport / --dport Port:要監控的port
-j :進行動作。
理論講完
來點實作吧!
雖然之前那張圖片顯示我的防火牆都還沒設定
不過還是先清空一下
sudo iptables -F
把外面要連到主機的連線
預設都是丟棄封包
sudo iptables -P INPUT DROP
這時候看一下規則表
發現有不一樣的地方囉
這時候用另外一台電腦連過來看一下網頁
果然~
連不上是正常了
不過這時候你也應該會發現到
你從主機自己要開網頁也都沒辦法開了
因為網路是雙向溝通的
你把流進來的封包給丟棄了
所以你自己當然也沒辦法開網頁
這時候加入底下這規則
讓主機主動建立的連線可以進來
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
現在應該可以正常開啟網頁了
可是你在看一下規則表
有多了一行東東唷!!
OK~
那現在從外面進來的都全檔了
裡面出去的也都正常了
所以現在要開一些洞給外面的人進來囉
不然大家要怎樣看你的網頁咧
輸入
sudo iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT
就可以讓外面看的主機的網頁囉
不過其中要注意的是紅色的部份
假設你在學校有配固I
不用透過撥號連線的話
正常是應該設定 eth0 或者是其他網路介面卡
但是我是在家裡透過 hinet 上網
所以我才設定成 ppp0
那如果要遠端ssh到主機呢?
以目前的規則來說
現在是把所有進來的連線都擋掉
但是主機建立起來的連線就可以進來
外面要看80 port的網頁也可以進來
其餘的都不行
SSH看你設定的是哪個PORT
一般預設都是22
那你要怎加咧!?
參考一下上面的指令吧~
我要把答案字體顏色用白色
反白一下就看到囉!!
答案:sudo iptables -A INPUT -i ppp0 -p tcp –dport 22 -j ACCEPT
到這邊簡易的防火牆教學就完成了
基本上防火牆是門學問
更深奧的可能要多翻點書才會了
參考資料:
圖書館借來的書
http://wiki.centos.org/zh-tw/HowTos/Network/IPTables
转载地址:http://blog.jsdan.com/997
这篇关于Iptables – 介紹設定簡單的 iptables 防火牆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!