防火牆簡單設定
實驗前提需求:
主機名 | IP地址 | 充當角色 |
A7 | 192.168.1.128(NAT)eth0 | 區域網伺服器 |
A8 | 192.168.1.129(NAT)/eth0 10.0.0.8(僅主機)/eth1 NAT裝置他有一個 是連結外網的ip有一個是連結內網的ip。 | 防火牆NAT裝置 |
B8 | 10.0.0.18(僅主機)eth0 | 網際網路伺服器 |
統一在A8上設定
1、實現禁止別的主機ping自己
iptables -A INPUT -d 192.168.1.129 -p icmp -j REJECT #因為ping走的是icmp協議,並且ping沒有固定埠,因此只能禁止icmp協議才能達到禁ping
[root@B8 ~]# ping -c 3 10.0.0.8
PING 10.0.0.8 (10.0.0.8) 56(84) bytes of data.
From 10.0.0.8 icmp_seq=1 Destination Port Unreachable
From 10.0.0.8 icmp_seq=2 Destination Port Unreachable
From 10.0.0.8 icmp_seq=3 Destination Port Unreachable
--- 10.0.0.8 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 39ms
2、本機能夠訪問別的機器的HTTP服務,但是別的機器無法訪問本機。
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT #在filter中設定,預設為filter表,僅同意內網內的主機主機訪問外網 iptables -A INPUT -d 10.0.0.8 -p tcp --dport 80 -j REJECT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
[ root@B8 ~]# curl 10.0.0.18
B8
[ root@A7 ~]# curl 10.0.0.8
curl: (7) Failed to connect to 10.0.0.8 port 80: Connection refused
3、當我們發現有 ip 惡意攻擊我們得時候,我們可以通過對防火牆設定規則來進行控制。所以我們可以 新增connlimit模組來實現對最大併發得控制。請寫出步驟
iptables -A INPUT -m connlimit --connlimit-above 10 -j REJECT
[ root@A7 ~]# ping -c 1 10.0.0.8 #當A7第11次pingA8的時候就無法訪問了,只能等一會再去訪問就好了
PING 10.0.0.8 (10.0.0.8) 56(84) bytes of data.
From 10.0.0.8 icmp_seq=1 Destination Port Unreachable
--- 10.0.0.8 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
4、現在我在外地出差使用A7網際網路主機,但是現在由於公司有業務需要我 ssh 連結到內網、這時候 我就連結我們公司同事在防火牆上配置相關規則讓我連結進公司內網
iptables -A INPUT -s 10.0.0.1 -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -s 192.168.1.128 -j ACCEPT iptables -A INPUT -d 10.0.0.8 -j REJECT
[root@A7 ~]# ssh 10.0.0.8
The authenticity of host '10.0.0.8 (10.0.0.8)' can't be established.
ECDSA key fingerprint is SHA256:0/fO8ea0emb7MQyIR3OcKjWDDqO5m4oPNddMJeM/fTQ.
Are you sure you want to continue connecting (yes/no)?
[root@D1 ~]# ssh 10.0.0.8
ssh: connect to host 10.0.0.8 port 22: Connection refused