端口与防火墙

1.周知端口

范围从0到1023

2.动态端口

从49152到65535

一般不固定分配某种服务,而是动态分配

3.注册端口

端口1024到49151,分配给用户进程或应用程序

常用端口

http 80

https 443

ftp 21

ssh 22

远程桌面 3389

mysql 3306

redis 4389

memcahce 11211

smtp 25

pop3 110

===============================
端口与防火墙

window下在
出站 入站配置

Linux下
查看
iptables -L -n
修改
vim /etc/sysconfig/iptables

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

保存后重启iptables
service iptables restart

iptables 参数说明

INPUT 入站 --dport 入站端口 -d 入站IP
OUTPUT 出站 --sport 出站端口 -s 出站IP

-j 接受类型 ACCEPT 和 DROP
-p 协议 tcp或udp 等等
多端口配置 用逗号分隔
iptables -A INPUT -p tcp --dports 21,20,25,53,80 -j ACCEPT
iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT

如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.

–syn
只匹配那些设置了SYN位而清除了ACK和FIN位的TCP包。这些包用于TCP连接初始化时发出请求;
例如,大量的这种包进入一个接口发生堵塞时会阻止进入的TCP连接,而出去的TCP连接不会受到影响。
这等于 --tcp-flags SYN,RST,ACK SYN。如果"–syn"前面有"!"标记,表示相反的意思。

–state state
这里state是一个逗号分割的匹配连接状态列表。可能的状态是:INVALID表示包是未知连接,ESTABLISHED表示是双向传送的连接,
NEW表示包为新的连接,否则是非双向传送的,而RELATED表示包由新连接开始,但是和一个已存在的连接在一起,
如FTP数据传送,或者一个ICMP错误

-m connlimit --connlimit-above n

为了防止DOS太多连接进来,那么可以允许最多15个初始连接,超过的丢弃.

iptables -A INPUT -s 192.186.1.0/24 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP

iptables -A INPUT -s 192.186.1.0/24 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

防止DoS攻击
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
上述例子中:
-m limit: 启用limit扩展
–limit 25/minute: 允许最多每分钟25个连接(根据需求更改)。
–limit-burst 100: 只有当连接达到limit-burst水平(此例为100)时才启用上述limit/minute限制。
负载平衡传入的网络流量
使用iptables可以实现传入web流量的负载均衡,我们可以传入web流量负载平衡使用iptables防火墙规则。

例:使用iptables nth将HTTPS流量负载平衡至三个不同的ip地址。

iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.101:443
iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 1 -j DNAT --to-destination 192.168.1.102:443
iptables -A PREROUTING -i eth0 -p tcp --dport 443 -m state --state NEW -m nth --counter 0 --every 3 --packet 2 -j DNAT --to-destination 192.168.1.103:443

允许来自指定网络的MySQL连接请求
很多情况下,MySQL数据库与web服务跑在同一台服务器上。有时候我们仅希望DBA和开发人员从内部网络(192.168.100.0/24)直接登录数据库,可尝试以下命令:

iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

猜你喜欢

转载自blog.csdn.net/qq_38984126/article/details/82916628