Linux iptables常用规则
设置一个自己用的表,
允许ping
允许ssh
允许 web
允许mysql
允许 ftp
允许dns查询
其他的拒绝.脚本如下
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:MY-Firewall-1-INPUT - [0:0]
-A INPUT -j MY-Firewall-1-INPUT
-A FORWARD -j MY-Firewall-1-INPUT
-A MY-Firewall-1-INPUT -i lo -j ACCEPT
-A MY-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A MY-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A MY-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A MY-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A MY-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A MY-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A MY-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A MY-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A MY-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
这样的话是所有人都可以连,但是有的时候22端口 或者3306端口希望指定的ip才能访问
可以用
-A MY-Firewall-1-INPUT–s 1.2.3.4 –p tcp–dport 22 –j ACCEPT
这样就限制了只有1.2.3.4这个ip才能连接22端口了.
关于iptables的另一种用法,通过公网ecs登陆使用内网地址的rds
1.允许数据包转发:
echo 1 > /proc/sys/net/ipv4/ip_forward
2.添加转发规则 3306到后端
iptables -t nat -I PREROUTING -p tcp --dport 3306 -j DNAT --to 10.157.80.138(根据分配给你的rds内网地址进行ping得到真实ip)
3.使转发数据包实现“双向通路”,给数据包设置一个正确的返回通道:
iptables -t nat -I POSTROUTING -p tcp --dport 3306 -j MASQUERADE