1.我們要增加的規則是:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT
# 即開放82的tcp端口。
2.第一種方法,使用命令增加:
首先用命令增加規則:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT
上面的命令即時生效,但是重啟iptables服務后就消失了。如何永久生效呢?
/etc/rc.d/init.d/iptables save 或者 service iptables save
service iptables restart
然后看下配置文件里,是有的。以后重啟iptables服務,或者重啟系統這條規則都會生效。
[root@localhost ~]# cat /etc/sysconfig/iptables | grep 82
-A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT
實例:
iptables只允許指定ip地址訪問指定端口
首先,清除所有預設置
iptables -F#清除預設表filter中的所有規則鏈的規則
iptables -X#清除預設表filter中使用者自定鏈中的規則
其次,設置只允許指定ip地址訪問指定端口
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 3306 -j ACCEPT
上面這兩條,請注意--dport為目標端口,當數據從外部進入服務器為目標端口;反之,數據從服務器出去則為數據源端口,使用 --sport
同理,-s是指定源地址,-d是指定目標地址。
然后,關閉所有的端口
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
最后,保存當前規則
/etc/rc.d/init.d/iptables save
service iptables restart
這種iptables的規則設定適用於只充當MySQL服務器的管理和維護,外部地址不提供任何服務。
如果你希望yum可以運行的話,還需要添加以下內容,允許DNS請求的53端口,允許下載隨機產生的高端口
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 10000:65535 -j ACCEPT
/etc/rc.d/init.d/iptables save
service iptables restart
[root@localhost ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
3.第二種方法,直接編輯iptables配置文件
vim /etc/sysconfig/iptables
將上面的語句-A INPUT -p tcp -m state --state NEW -m tcp --dport 82 -j ACCEPT直接插入到上述文件中。
這時候規則是不生效的,需要重啟服務service iptables restart。之后這條規則就永久生效了。
4.總結一下。
如果是命令增加條目,那規則是臨時的。
如果要永久生效,要把規則寫進配置文件。寫配置文件的辦法有兩種,一種是直接編輯,一種是service iptables save。
iptables服務每次啟動的時候才會去讀一次規則。如果直接編輯了配置文件,然后用service iptables save,那么內存里的配置規則是初始的,會覆蓋你直接對配置文件的編輯。
因此,最后的結論是,如果是臨時規則,用上面的第一種辦法,但是不要save;如果是永久規則,用上面的第一種或第二種方法,二選一不可混用。
資料來源:https://blog.csdn.net/donglynn/article/details/73530542