我只想通过 ssh 访问 mysql,但我不想接受所有内容。如果有的话,最安全的方法是什么。以下是我的规则:
*filter
:INPUT DROP [14:1434]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
#Input for HTTP
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#Output for HTTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
#Input SSH
-A INPUT -i eth0 -p tcp -m tcp --dport 9991 -m state --state NEW,ESTABLISHED -j ACCEPT
#Output for SSH
-A OUTPUT -o eth0 -p tcp -m tcp --sport 9991 -m state --state ESTABLISHED -j ACCEPT
#SMTP
-A INPUT -i eth0 -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
COMMIT
谢谢!
答案1
iptables -A INPUT -i lo -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -o lo -p tcp --sport 3306 -j ACCEPT
如果您使用隧道并将 INPUT 和 OUTPUT 策略设置为 DROP,则允许loopback
流量可能是一个好主意。