转发 ,NAT 功能

Chain FORWARD
开启网卡转发功能: /proc/sys/net/ipv4/ip_forward #使用sysctl 开启内核转发功能
sysctl -w net.ipv4.ip_forward= 核心转发: /proc/sys/net/ipv4/ip_forward
/etc/sysctl.conf
net.ipv4.ip_forward =
iptables :
显示扩展 ,网络防火墙
显示扩展 : multiport ,iprange ,string ,time ,connlimit ,limit ,state state ;
/proc/net/nf_conntrack
/proc/sys/net/nf_conntrack_max iptables :
nat :网络层+传输层 ,安全性 ,
proxy : 代理,应用层 nat :
SNAT:源地址
DNAT:目标地址 Nat表——三个链:
PREROUTING :DNAT 必须要在路由发生之前完成DNAT
POSTROUTING :SNAT
OUTPUT : local 产生信息的nat SNAT : 源地址转换
iptables -t nat -A POSTROUTING -s 192.168.100.0/ ! -d 192.168.100.0/ -j SNAT --to-source 172.16.100.100 DNAT : 目标地址转换
iptables -t nat -A PREROUTING -d 192.168.100.150 -p tcp --dport -j DNAT --to-destination 192.168.2.4: MASQUERADE:
地址伪装,算是snat中的一种特例,可以实现自动化的snat。
iptables -t nat -A POSTROUTING -s 192.168.100.0/ -j MASQUERADE iptables的链接跟踪表最大容量为/proc/sys/net/ipv4/ip_conntrack_max,链接碰到各种状态的超时后就会从表中删除。 所以解決方法一般有两个:
() 加大 ip_conntrack_max 值
vi /etc/sysctl.conf
net.ipv4.ip_conntrack_max =
net.ipv4.netfilter.ip_conntrack_max =
(): 降低 ip_conntrack timeout时间
vi /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established =
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait =
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait =
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = #指定网卡限制
iptables -A INPUT -i eth0 -m multiport -p tcp --dport ,,, -j DROP
tcp_wrapper :tcp 包装器

简介
TCP_Wrappers是一个工作在第四层(传输层)的的安全工具,对有状态连接的特定服务进行安全检测并实现访问控制,凡是包含有libwrap.so库文件的的程序就可以受TCP_Wrappers的安全控制。它的主要功能就是控制谁可以访问,常见的程序有rpcbind、vsftpd、sshd,telnet。

工作原理
TCP_Wrappers有一个TCP的守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。

TCP_Wrappers的使用
TCP_Wrappers的使用主要是依靠两个配置文件/etc/hosts.allow, /etc/hosts.deny,用于拒绝和接受具有TCP_Wrappers控制全的程序,详细信息具体可以查看man帮助,这里我们就做简单的演示和使用(man 5 hosts_access, man 5 hosts_options)

要说明的是当我们启动一个受控制的软件的时候,比如ssh,

不过在刚开始的时候,/etc/hosts.allow,/etc/hosts.deny什么都没有添加,此时没有限制,是都可以连接的,现在我们来说如何设置,禁止和允许连接,配置文件格式遵循如下规则:

daemon_list@host: client_list [:options :option…]
daemon_list: 是程序的列表,可以是多个,是多个时,使用,隔开
@host:可以没有,是我们的限制的网卡访问接口(自己的),设置允许或禁止他人从自己的那个网口进入。这一项不写,就代表全部。
client_list:是访问者的地址,如果需要控制的用户较多,可以使用空格或,隔开,格式如下:

基于IP地址: 192.168.10.1 192.168.1.
基于主机名: www.magedu.com .magedu.com 较少用
基于网络/掩码: 192.168.0.0/255.255.255.0
基于net/prefixlen: 192.168.1.0/24(CentOS7)
基于网络组(NIS 域): @mynetwork
内置ACL: ALL, LOCAL, KNOWN, UNKNOWN,PARANOID
ALL:所有主机
LOCAL:本地主机
KNOWN:主机名可解析成ip的
UNKNOWN:主机名无法解析成IP的
PARANOID:正向解析与反向解析不对应的主机

[root@localhost ~]# ldd `which sshd` |grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f90a4723000)

[root@nginx ~]# cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
#
sshd: 10.2.61.21
EXCEPT: 除了
hosts.allow
vsftpd: 172.16. EXCEPT 10.2.61.0/255.255.255.0 EXCEPT 10.2.61.21 #双重否定策略 及允许 10.2.61.21 访问 [:options] deny: 拒绝,主要用于hosts.allow文件中
allow:允许,用于hosts.deny文件,实现allow的功能
spawn: 启动额外应用程序:
vsftpd: ALL :spawn /bin/echo `date` login attempt from %c to %s, %d >> /var/log/vsftpd.deny.log
%c: client ip
%s: server ip
%d: daemon name

最新文章

  1. 扩展映射 Diffusion maps
  2. 【MongoDB】MongoDb的“not master and slaveok=false”错误及解决方法
  3. 玩转单元测试之DBUnit
  4. Python基础(2)--对象类型
  5. Pre-compile (pre-JIT) your assembly on the fly, or trigger JIT compilation ahead-of-time (转)
  6. sublime text使用技巧
  7. adb服务启动失败处理命令
  8. spark aggregate
  9. istringstream和ostringstream的使用方法
  10. oracle中的function的简单语法定义
  11. keyStore很重要,千万不能丢失
  12. HTTPS原理浅析
  13. jQuery 获取不到 kindeditor 内容 的解决方法
  14. Spring Boot使用单元测试
  15. 12.14 Daily Scrum
  16. 训练 の Bessie的体重问题
  17. Singer 学习十一 配置以及状态管理
  18. 图片链接转成base64
  19. ElasticSearch入门 第八篇:存储
  20. nodejs async

热门文章

  1. SQL Server清空日志以及查看日志大小语句
  2. oracle按时间创建分区表
  3. ajax-addclass
  4. JBPM工作流(二)——数据库表说明
  5. ubuntu apt 软件源的更改
  6. css hsla和rgba的区别
  7. Python学习之旅(一)
  8. Synctoy2.1使用定时任务0X1
  9. Code Generation => Table -> Class for DataGridView use
  10. Codeforces 1132 - A/B/C/D/E/F - (Undone)