歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

iptables加強系統安全性

我的目的是關閉所有對外服務的端口,只允許ssh服務的22端口接受外面的請求。

首先在我的測試服務器上進入root權限,然後用下面的命令查看iptables

  1. root@host2:~# iptables -vnL --line-numbers 
  2. Chain INPUT (policy ACCEPT 105 packets, 10480 bytes) 
  3. num   pkts bytes target     prot opt in     out     source               destination           
  4. 1        0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 
  5. 2        0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53 
  6. 3        0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67 
  7. 4        0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67 
  8.  
  9. Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) 
  10. num   pkts bytes target     prot opt in     out     source               destination           
  11. 1        0     0 ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24     state RELATED,ESTABLISHED 
  12. 2        0     0 ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0             
  13. 3        0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0             
  14. 4        0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable 
  15. 5        0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable 
  16.  
  17. Chain OUTPUT (policy ACCEPT 25 packets, 3380 bytes) 
  18. num   pkts bytes target     prot opt in     out     source               destination   

-v 是輸出詳細信息

-n 指的是顯示地址和端口號

-L 指顯示鏈裡面的規則

--line-number參數用來顯示行號,刪除的時候很有用 

從上面的結果可以看到,策略上允許所有的輸入連接。

現在先刪除所有的規則,預防萬一,不一定使用。

iptables -F

然後策略上關閉所有的進入請求

iptables -P INPUT DROP

再添加ssh端口的訪問支持

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

試一下從另外一台機器鏈接,ssh登錄沒問題,除了開始要等一會兒。

注意,這樣的設置會導致不能從這台機器連接外網,有兩種方法解決:

1.如果為了絕對的安全,可以臨時手動打開策略,用完後再關閉。

iptables -P INPUT ACCEPT

//DO SOMETHING

iptables -P INPUT DROP

2.添加一個規則,允許已經建立的連接接收進來的數據

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

連接是從本機向外發起的,我們的規則沒有限制,連接建立後,就可以從外部網絡拉取數據。

根據自己的需要再添加其他的端口吧。

如果想限制有限的機器向服務器發起請求,可以用-s參數,比如:

iptables -A INPUT -p tcp -s 10.112.18.0/0 --dport 27017 -j ACCEPT 

僅在10.112.18.0/0網段的機器才能連接上本機的27017端口。

如何保存規則呢?兩步,

1.安裝

apt-get install iptables-persistent

2.保存規則文件

service iptables-persistent save

重啟即可。

iptables-persistent是一個開機啟動腳本,在/etc/init.d/目錄下,感興趣的可以看一下。

Copyright © Linux教程網 All Rights Reserved