2013-05-04 64 views
2

我正在安裝我的服務器,並且必須禁用除我以外的所有人的ping請求以及主機列表(aaa.bbb.ccc.ddd)。UFW:只允許特定主機的ping請求

我使用的工具UFW,Ubuntu的服務器上,我讀到我也要評論這些線路:

確定ICMP代碼

-A UFW前方的輸入-p ICMP --icmp-輸入destination-unreachable -j ACCEPT -A ufw-before-input -p icmp -icmp-type source-quench -j ACCEPT -A ufw-before-input -p icmp -icmp -type time-exceeded -j ACCEPT -A ufw-before-input -p icmp -icmp-type parameter-problem -j ACCEPT -A ufw-before-input -p icmp -icmp-type echo-r​​equest -j ACCEPT,

但是,通過這樣做,它將不允許每個人都ping,這是一個問題,因爲我需要「aaa.bbb.ccc.ddd」來響應ping請求。

你能幫我寫出正確的命令嗎?

非常感謝您提前。

回答

1

我只是偶然發現了這個4個月大的問題。它確實應該列在不同的StackExchange(如ServerFault)上,但有時甚至開發人員都需要配置防火牆。事實上,我在這裏爲你解答。

對於您的防火牆規則,您需要先接受來自安全IP的數據包,然後放棄其餘的數據包。以下是我的做法:

我們假設您只想接受一個安全IP用於ping,並且IP地址爲'127.0.0.1'。當然,這個IP可以是你想要的任何地址(只需創建更多規則或爲其他地址定義子網)。

步驟1

第一件事是檢查在/etc/ufw/sysctl.conf以下

net/ipv4/icmp_echo_ignore_all=1 

...應該被改寫成一個0,如果它是不已經......

net/ipv4/icmp_echo_ignore_all=0 

步驟2

對於IPv4中添加規則到/etc/ufw/before.rules

-A ufw-before-input -p icmp --icmp-type echo-request –s 127.0.0.1 -m state --state ESTABLISHED -j ACCEPT 

步驟3(對於IPv6支持)

對IPv6中添加規則到/etc/ufw/before6.rules

-A ufw6-before-input -p icmpv6 --icmpv6-type echo-request –s 127.0.0.1 -m state --state ESTABLISHED -j ACCEPT 

步驟4

現在,重新啓動您的防火牆並喝你選擇的飲料。

service ufw restart 
+0

ufw-init [22459]:錯誤的參數'-s' – 2017-02-26 16:46:54

+0

localhost的ipv6版本是:: 1 – 2017-02-26 16:59:00