nat:
- SNAT:只修改请求报文的源地址
- DNAT:只修改请求报文的目的地址
源地址转换:iptables -t nat -A POSTROUTING -s 172.16.100.21 ! -d 172.16.100.0 -j SNAT –to-source 192.168.200.1
目的地址转换:iptables -t nat -A PREROUTING -s 172.16.100.21 ! -d 172.16.100.0 -j DNAT –to-destination 192.168.20.23[:Port]
注意进行转换功能的主机内部存储了一张NAT表,能够进行地址相应的转换。当响应报文回复到本机,可以根据NAT表转换成请求报文的源地址。
tcp_wrapper:tcp包装器
对基于tcp协议开发并提供服务的应用程序,提供的一层访问控制工具;
基于库调用实现其功能:
libwrap
判断服务是否能够由tcp_wrapper进行访问控制:
(1) 动态编译:ldd命令;
(2) 静态编译:strings命令查看应用程序文件,其结果中如果出现
hosts.allow
hosts.deny
在配置文件在为各服务分别定义访问控制规则实现访问控制:
/etc/hosts.allow
/etc/hosts.deny
配置文件语法:
daemon_list: client_list [:options]
daemon_list:
应用程序的文件名称,而非服务名;
应用程序文件名称列表,彼此间使用逗号分隔;
例如:sshd, vsftpd:
ALL表示所有服务;
client_list:
IP地址;
主机名;
网络地址:必须使用完整格式的掩码,不使用前缀格式掩码;所以类似于172.16.0.0/16不合法;
简短格式的网络地址:例如172.16. 表示 172.16.0.0/255.255.0.0;
ALL:所有主机;
KNOWN:
UNKNOWN
PARANOID
例如:vsftpd服务不允许172.16.100.1访问
EXCEPT: 除了
hosts.allow
vsftpd: 172.16. EXCEPT 172.16.100.0/255.255.255.0 EXCEPT 172.16.100.1
[: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