VPS 上配置 iptables 防火牆

1.打開iptables文件:
sudo vi /etc/sysconfig/iptablesbash

2.配置內容
服務器

# 容許本地迴環 127.0.0.1
iptables -A INPUT -i lo -p all -j ACCEPT

# 容許已經創建的全部鏈接
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# 容許全部向外發起的鏈接
iptables -A OUTPUT -j ACCEPT

# 拒絕 ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j REJECT

# 容許 SSH 服務端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 容許 Web 服務端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 拒絕其餘全部未被容許的鏈接
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

這些規則必需要保存,不然下次重啓服務器後,規則會丟失。CentOS 和 Debian 的 iptables 保存各有區別:tcp

# CentOSrest

service iptables save # 保存
service iptables restart # 重啓
chkconfig iptables on # 確認服務會隨開機自動啓動
或者:
sudo /etc/init.d/service iptables save # 保存
sudo /etc/init.d/service iptables restart # 重啓

遇到問題:bash: chkconfig: command not found 的解決
1.把 export PATH=/sbin:$PATH  加入到  /etc/profile 裏;
2.命令:source /etc/profile
3.在輸入命令:chkconfig看看,應該就能夠了。
code


# Debian
ip

iptables-save > /etc/firewall.conf # 保存規則到一個文件
echo '#!/bin/sh' > /etc/network/if-up.d/iptables # 建立一個開機啓動項文件
echo 'iptables-restore < /etc/firewall.conf' >> /etc/network/if-up.d/iptables # 同上,繼續添加內容
chmod +x /etc/network/if-up.d/iptables # 修改啓動項文件的執行屬性

若是不滿意以上配置的規則,能夠使用如下命令來清空所有規則:it

iptables -F
iptables -X
iptables -Z

到此,所有結束。table

相關文章
相關標籤/搜索