问:局域网内部只要有IP地址与网关IP冲突,就导致瞬间网络中断。有没有解决方法?
答:将局域网改成DHCP,在DHCP的配置中将网关IP排除。
问:Squid已经启动。在客户端的IE中设置代理服务器及端口为192.168.1.1:3128;客户端可以正常浏览网页。当做透明代理时,即取消客户端的代理设置。在网关上加上
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport www -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o eth0 -p ALL -j SNAT --to 10.1.1.112
这时在客户端可以ping到外面的IP,但却不能浏览网页了,如何解决?
答:试着做如下设置:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
问:有一台Linux服务器,启动了两个邮件端口。Sendmail的SMTP在1025端口启动,Qmail的SMTP在25端口启动。运行结果是Qmail没有任何问题,Sendmail在发信时由于很多网站使用了反垃圾邮件功能,不能接收来自非25端口的邮件。也就是说普通的邮件服务器可以接收Sendmail发出的邮件,但那些使用反垃圾邮件功能的邮件服务器无法接收邮件。请问如何解决?
答:首先,使用“iptables -t nat -A POSTROUTING -p tcp
--sport 1025 -j SNAT -to 211.163.76.1:25”规则后, 从本机端口1025发出的syn分组被映射到端口25, 然后发送出去。在/proc/net/ip_conntrack中留下下面一条conntrack,假设IP为 222.222.222.222为一台使用反垃圾邮件功能邮件服务器:
tcp 6 115 SYN_SENT src=211.163.76.1 dst=222.222.222.222 sport=1025 dport=25 [UNREPLIED]
src=222.222.222.222 dst=211.163.76.1 sport=25 dport=25 use=1
当222.222.222.222的syn/ack到达时,222.222.222.222:25 211.163.76.1:25 syn和ACK分组会查到上面的conntrack,除非用户同时使用Qmail去连接222.222.222.222,否则不会造成误解。nat应该会将此分组提交给1025端口的Sendmail。其它的数据分组也是一样的, 应该不会造成误解。如果存在Qmail与Sendmail同时连接222.222.222.222的情况的话, 只有自己编写程序根据序号和确认号来判断了。
问:编译完kernel 2.4.9之后,没有了Iptables,只有Ipchains。请问是内核的问题吗?
答:有没有Iptables与内核无关,可能是系统没安装Iptables应用程序。如果Iptables命令执行时报“不兼容的内核”,那么表明核心没有打开Netfilter选项支持Iptables命令的执行。
问:如何用Iptables关闭本机的443端口?
答:如果不让别人连接443端口,可以照下面来做:
#iptables -A INPUT -p (tcp/udp/all) --dport 443 -j DROP
要使自己不能通过443端口往外发消息,则该照下面来作:
#iptables -A OUTPUT -p (tcp/udp/all) --sport 443 -j DROP
问:局域网192.168.0.2机器中有一套软件通过Red Hat Linux 9.0代理服务器7001端口与外面的连接,进行数据传输,并且,还可以让外面的机器通过7001端口访问我的机器。怎么做端口映射(外网的网卡IP:A,B,C,D 内网的网卡IP:192.168.0.1)?
答:端口映射的方法一般如下:
iptables -t nat -A PREROUTING -d $yourWan --dport $yourPort -j dnat --to $yourLan
iptables -t nat -A POSTROUTING -s $youLan --sport $yourPort -j snat --to $yourWan
$yourWan=用户的公网IP
$yourLan=用户内部服务器IP
$yourPort=服务端口。
问:刚安装完的Red Hat 9.0,自带OpenSSH。我将平时用的公钥放在用户目录的.ssh目录中,按照默认配置,远程使用key方式连接。结果报告key错误,为什么?
答:首先创建.ssh的目录后,必须通过命令“chmod 700 .ssh”将这个目录的权限改为700。其次要保证key写入了/etc/ssh/sshd_config中指定的AuthorizedKeysFile.ssh/authorized_keys这个文件。确保这两点就可以使用key方式进行SSh连接了。
问:怎样让用户在telnet到邮件服务器时看不到欢迎信息,比如下面所示的内容:
220 1u.xxxxxx.com.cn ESMTP Sendmail 8.12.8/8.11.2; Thu, 6 Mar 2003 15:48:28 +0800
答:修改/etc/mail/sendmail.cf里面的SmtpGreetingMessage选项。将原来的“O SmtpGreetingMessage=$j Sendmail $v/$Z; $b”修改为“O SmtpGreetingMessage=test
”,然后重起Sendmail。再次telnet到该邮件服务器,出现的将是下面的内容,避免了某些恶意用户获得邮件系统版本:
220 test ESMTP