iptables 防火墙日常

检查机目标机器 httpd 服务
/etc/init.d/httpd status 

 =================================================================================================

扫描二维码关注公众号,回复: 2491306 查看本文章

Netfilter是Linux网络层 IP数据包处理模块。

【Chain】【Hook point】 ,数据包在 Netfilter 的挂载点 (PRE_ROUTING、INPUT、OUTPUT、FORWARD、POST_ROUTING)

【iptables】 

Filter 表

NAT 表

Mangle 表

Raw 表

iptables 规则

数据包访问控制 ACCEPT 、DROP 、REJECT

数据包改写 SNAT DNAT

信息记录 LOG

规则一 对所有地址开放本机的 tcp ( 80 22 10~21 )端口访问。

iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT
 

规则二 允许对所有地址开放本机的 ICMP 协议数据包访问。

iptables -I INPUT -p icmp -j ACCEPT

规则三 其他未被允许端口 禁止访问

iptables -A INPUT -j REJECT

解决思路:

【查看本机 端口开放情况】netstat -lntp

【列出已有规则】iptables -L

【清空已有规则】iptables -F

【客户机验证服务器 iptables规则】nmap -sS -p 0-1000 服务器IP地址

iptables -D INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j REJECT

【本机无法访问本机】环回地址 lo

iptables -I INPUT -i lo -j ACCEPT

【本机无法访问 其他主机】ESTABLISHED,RELATED       建立连接,FTP连接状态

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

【只允许某台主机访问本机的 httpd 】

iptables -D INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp -s 某台主机 --dport 80 -j ACCEPT

======================================================

 ftp连接默认是【被动模式 passive on 】

【配置vsftpd服务支持主动模式】sudo vi /etc/vsftpd/vsftpd.conf

port_enable=yes

connect_from_port_20=YES【启动 vsftpd 】/etc/init.d/vsftpd restart

【匿名用户】anonymous

【切换主动模式命令】 passive

【主动模式 关联 iptables 规则】

iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT

iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT

【被动模式 关联 iptables 规则】

iptables -I INPUT -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -p tcp --dport 50000:60000 -j ACCEPT
sudo vi
/etc/vsftpd/vsftpd.conf pasv_min_port=50000 pasv_max_port=60000

 【被动模式  】

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -p tcp --dport 21 -j ACCEPT


# 临时
modprobe nf_conntrack_ftp
# 开机启动
sudo vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="nf_conntrack_ftp"

=================================

需求  员工在公司内部 10.10.155.0/24 10.10.188.0/24 能访问服务器上任何服务

需求  员工出差 外网拨号给 VPN服务器  => 连接内网FTP服务器   、SAMBA NFS SSH

需求  公司有一个门户网站需要允许  公网访问

iptables -F
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -s 10.10.155.0/24 -j ACCEPT
iptables -A INPUT -s 10.10.188.0/24 -j ACCEPT
iptables -A INPUT -s 本机.0/24 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT -p icmp -j ACCEPT

iptables -A INPUT -j REJECT

【保存到配置文件】/etc/sysconfig/iptables

/etc/init.d/iptables save

【开机启动】chkconfig iptables on

【验证开启 2345 on】chkconfig --list | grep iptables

一般允许外网访问的服务

网站 www     http    80/tcp
             https   443/tcp

邮件 mail
             smtp   25/tcp
             smtps  465/tcp
             pop3   110/tcp
             pop3s  995/tcp
             imap   143/tcp

 一般不允许外网访问的服务

文件服务器

NFS        123/udp
SAMBA    137,138,139/tcp   445/tcp
FTP        20/TCP  21/tcp

远程管理       SSH  22/tcp
数据库         MYSQL  3306/tcp
              ORACLE  1521/tcp

【配置规则基本思路】

ACCEPT 的规则  ① 允许本地访问  ②允许已经监听状态数据包通过 ③允许规则中允许的数据包(SSH要开放)

DENY规则     拒绝不允许的数据包

=================================

【NAT Server】

sudo vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

sysctl -p
sysctl -a|grep ip_forward



iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232

【客户机默认网关设置】

netstat -rn

sudo vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=blahblah
GATEWAY=10.10.177.232

--------------------------------
或者
route add 0.0.0.0 gw 10.10.177.232

【客户机】iptables -F

【服务器】curl http://10.10.177.233   

【NAT Server】

iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.233:80

 ================================================

防止 CC 攻击

connlimit 模块,限制并发连接数 100 个

iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT

limit 模块   限制流量 限制速度  ,比如 icmp 协议,,ping 可达 10个包之后就 ACCEPT

iptables -A INPUT -p icmp -m limit --limit 1/m --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -j DROP

猜你喜欢

转载自www.cnblogs.com/chenhui7373/p/9398109.html
今日推荐