大家好。我有一个 Ubuntu 16.04 VPS,我在其上配置了一个共享主机,其中有两个虚拟主机位于同一 IP 上(例如 domain1.com 和 domain2.com)。我想运行 FTP 服务器,并且只允许 domain1.com,不允许 domain2.com。有人建议我使用 VSFTPD 来执行此操作,但我找不到任何操作方法。请帮忙。抱歉我的英语不好 :)
答案1
所有需要的iptables
命令
清除现有链
sudo iptables --flush
sudo iptables --delete-chain
允许环回
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
允许所有 ICMP
sudo iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
sudo iptables -A OUTPUT -p icmp -j ACCEPT
允许已建立的连接
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许公共服务但拒绝域“domain2.com”的 ftp
FTP
sudo iptables -I INPUT -p tcp --dport 21 -m string --string "Host: domain2.com" --algo bm -j DROP
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
HTTP
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
HTTPS
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
SSH
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
允许转发
sudo iptables -P FORWARD ACCEPT
全部拒绝接受以上规则
sudo iptables -A INPUT -j DROP
默认策略
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
节省
sudo service iptables save