W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
linux中防火墻軟件
ip6tables命令 和iptables一樣,都是linux中防火墻軟件,不同的是ip6tables采用的TCP/ip協(xié)議為IPv6。
ip6tables(選項)
-t<表>:指定要操縱的表;
-A:向規(guī)則鏈中添加條目;
-D:從規(guī)則鏈中刪除條目;
-i:向規(guī)則鏈中插入條目;
-R:替換規(guī)則鏈中的條目;
-L:顯示規(guī)則鏈中已有的條目;
-F:清楚規(guī)則鏈中已有的條目;
-Z:清空規(guī)則鏈中的數(shù)據(jù)包計算器和字節(jié)計數(shù)器;
-N:創(chuàng)建新的用戶自定義規(guī)則鏈;
-P:定義規(guī)則鏈中的默認目標;
-h:顯示幫助信息;
-p:指定要匹配的數(shù)據(jù)包協(xié)議類型;
-s:指定要匹配的數(shù)據(jù)包源ip地址;
-j<目標>:指定要跳轉(zhuǎn)的目標;
-i<網(wǎng)絡接口>:指定數(shù)據(jù)包進入本機的網(wǎng)絡接口;
-o<網(wǎng)絡接口>:指定數(shù)據(jù)包要離開本機所使用的網(wǎng)絡接口。
-c<計數(shù)器>:在執(zhí)行插入操作(insert),追加操作(append),替換操作(replace)時初始化包計數(shù)器和字節(jié)計數(shù)器。
在命令行窗口輸入下面的指令就可以查看當前的 IPv6 防火墻配置:
ip6tables -nl --line-numbers
/etc/sysconfig/ip6tables文件
使用編輯器編輯/etc/sysconfig/ip6tables文件:
vi /etc/sysconfig/ip6tables
可能會看到下面的默認 ip6tables 規(guī)則:
*filter
:INPUT accept [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmpv6 -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d ff02::fb -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 32768:61000 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 32768:61000 ! --syn -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j reject --reject-with icmp6-adm-prohibited
COMMIT
與 IPv4 的 iptables 規(guī)則類似,但又不完全相同。
要開啟 80 端口(HTTP 服務器端口),在 COMMIT 一行之前添加如下規(guī)則:
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -j ACCEPT
-p tcp表示僅針對 tcp 協(xié)議的通信。--dport指定端口號。
要開啟 53 端口(DNS 服務器端口),在 COMMIT 一行之前添加如下規(guī)則:
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m udp -p tcp --dport 53 -j ACCEPT
同時針對 tcp 和 udp 協(xié)議開啟 53 端口。
要開啟 443 端口,在 COMMIT 一行之前添加如下規(guī)則:
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 443 -j ACCEPT
要開啟 25 端口(SMTP 郵件服務器端口),在 COMMIT 一行之前添加如下規(guī)則:
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 25 -j ACCEPT
對于那些沒有特定規(guī)則與之匹配的數(shù)據(jù)包,可能是我們不想要的,多半是有問題的。我們可能也希望在丟棄(DROP)之前記錄它們。此時,可以將最后一行:
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp6-adm-prohibited
COMMIT
改為:
-A RH-Firewall-1-INPUT -j LOG
-A RH-Firewall-1-INPUT -j DROP
COMMIT
保存并關(guān)閉該文件。然后重新啟動 ip6tables 防火墻:
# service ip6tables restart
然后重新查看 ip6tables 規(guī)則,可以看到如下所示的輸出:
# ip6tables -vnL --line-numbers
輸出示例:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 42237 3243K RH-Firewall-1-INPUT all * * ::/0 ::/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 RH-Firewall-1-INPUT all * * ::/0 ::/0
Chain OUTPUT (policy ACCEPT 12557 packets, 2042K bytes)
num pkts bytes target prot opt in out source destination
Chain RH-Firewall-1-INPUT (2 references)
num pkts bytes target prot opt in out source destination
1 6 656 ACCEPT all lo * ::/0 ::/0
2 37519 2730K ACCEPT icmpv6 * * ::/0 ::/0
3 0 0 ACCEPT esp * * ::/0 ::/0
4 0 0 ACCEPT ah * * ::/0 ::/0
5 413 48385 ACCEPT udp * * ::/0 ff02::fb/128 udp dpt:5353
6 0 0 ACCEPT udp * * ::/0 ::/0 udp dpt:631
7 0 0 ACCEPT tcp * * ::/0 ::/0 tcp dpt:631
8 173 79521 ACCEPT udp * * ::/0 ::/0 udp dpts:32768:61000
9 0 0 ACCEPT tcp * * ::/0 ::/0 tcp dpts:32768:61000 flags:!0x16/0x02
10 0 0 ACCEPT tcp * * ::/0 ::/0 tcp dpt:22
11 0 0 ACCEPT tcp * * ::/0 ::/0 tcp dpt:80
12 0 0 ACCEPT tcp * * ::/0 ::/0 tcp dpt:53
13 4108 380K ACCEPT udp * * ::/0 ::/0 udp dpt:53
14 18 4196 REJECT all * * ::/0 ::/0
IPv6 私有 IP
IPv4 通常默認即可保護內(nèi)部局域網(wǎng)私有 IP 上的主機。但是 IPv6 的地址非常豐富,不再需要使用類似 NAT 等協(xié)議的私有網(wǎng)絡。這樣一來,所有的內(nèi)部主機都可以擁有公網(wǎng) IP 而直接連接到互聯(lián)網(wǎng),也就同時暴露于互聯(lián)網(wǎng)上的各種威脅之中了。那么,如何配置 IPv6 防火墻使其默認將除了 ping6 請求之外的所有輸入數(shù)據(jù)包都丟棄呢?可以使用FC00::/7 前綴來標識本地 IPv6 單播地址。
允許特定的 ICMPv6 通信
使用 IPv6 的時候需要允許比 IPv4 更多類型的 ICMP 通信以保證路由和 IP 地址自動配置等功能正常工作。有時候,如果你的規(guī)則設置太過苛刻,可能都無法分配到正確的 IPv6 地址。當然,不使用 DHCP 而是手動配置 IP 地址的除外。
下面是一些比較常見的 ipv6-icmp 配置實例:
:ICMPv6 - [0:0]
# Approve certain ICMPv6 types and all outgoing ICMPv6
# http://forum.linode.com/viewtopic.php?p=39840#39840
-A INPUT -p icmpv6 -j ICMPv6
-A ICMPv6 -p icmpv6 --icmpv6-type echo-request -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type router-solicitation -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type neighbour-solicitation -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type neighbour-advertisement -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type redirect -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 141 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 142 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 148 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 149 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 130 -s fe80::/10 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 131 -s fe80::/10 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 132 -s fe80::/10 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 143 -s fe80::/10 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 151 -s fe80::/10 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 152 -s fe80::/10 -j ACCEPT
-A ICMPv6 -p icmpv6 --icmpv6-type 153 -s fe80::/10 -j ACCEPT
-A ICMPv6 -j RETURN
-A OUTPUT -p icmpv6 -j ACCEPT
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: