我的vsftpd 罢工了
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
我的vsftpd 罢工了
情况是这样的,
我的机器具有两个网卡,eth0 eth1, 所连接的网络不互通。
我的机器扮演NAT, 为192.9.206.0/24的用户提供NAT网关服务。
说明,我的公网IP 是 59.72.122.49
采用的防火墙策略如下:
# Set the key parameters
EXTIF="eth0"
INIF="eth1"
INNET="192.9.206.0/24"
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH EXTIF INIF INNET
# Configuration Network
ifconfig $EXTIF down
ifconfig $INIF down
ifconfig $EXTIF hw ether 00:22:B0:61:A6:B2
ifconfig $EXTIF 59.72.122.49 netmask 255.255.255.0
ifconfig $INIF 192.9.206.50 netmask 255.255.255.0
ifconfig $INIF up
ifconfig $EXTIF up
route add -net 192.9.0.0 netmask 255.255.0.0 gw 192.9.206.254 dev $INIF
route add default gw 59.72.122.254 dev $EXTIF
# Enable ip forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# Load Appropriate Module for FireWall
modprobe ip_tables > /dev/null 2>&1
modprobe iptable_nat > /dev/null 2>&1
modprobe ip_nat_ftp > /dev/null 2>&1
modprobe ip_nat_irc > /dev/null 2>&1
modprobe ip_conntrack > /dev/null 2>&1
modprobe ip_conntrack_ftp > /dev/null 2>&1
modprobe ip_conntrack_irc > /dev/null 2>&1
#
# Attention.
# I don't understand ip_nat_irc here.
# Flush the default rules
# And Set the new default rules
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
# Flush the original rules
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
# Set the new rules
# Allow the trusted network
# The local loopback interface
/sbin/iptables -A INPUT -i lo -j ACCEPT
# The private network
# Allow all the data from private network
/sbin/iptables -A INPUT -i $INIF -j ACCEPT
# Starting NAT Server
#echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
#/sbin/iptables -t nat -A POSTROUTING -s $INNET -o $INIF -j MASQUERADE
# No need for the private network
/sbin/iptables -A FORWARD -s $INNET -j ACCEPT
# Enable NAT work in High Efficiency
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow Service
/sbin/iptables -A INPUT -p tcp -i $EXTIF --dport 8022 -j ACCEPT #SSH
/sbin/iptables -A INPUT -p tcp -i $INIF --dport 8022 -j ACCEPT #SSH
/sbin/iptables -A INPUT -p tcp -i $EXTIF --dport 8021 -j ACCEPT #FTP
/sbin/iptables -A INPUT -p tcp -i $EXTIF --dport 8020 -j ACCEPT #FTP
/sbin/iptables -A INPUT -p udp -i $EXTIF --dport 1194 -j ACCEPT #OpenVPN
/sbin/iptables -A INPUT -p udp -i $EXTIF --dport 1195 -j ACCEPT #OpenVPN
/sbin/iptables -A INPUT -p tcp -i $EXTIF --dport 4999 -j ACCEPT # aMule
/sbin/iptables -A INPUT -p udp -i $EXTIF --dport 4999 -j ACCEPT # aMule
# About the NAT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -o tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
iptables -A FORWARD -o tap+ -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.8.0/24 -o $EXTIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.8.0/24 -o $INIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.9.0/24 -o $EXTIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.9.0/24 -o $INIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
#iptables -t nat -A POSTROUTING -s $INNET -o $INIF -j MASQUERADE
# no need for the private network
# Enable virtual IP from VPN client
# Forward the package to private network
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 3389 -j DNAT --to 192.9.206.130:3389 #Win Remote Desktop
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 20 -j DNAT --to 192.9.206.130:20 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 21 -j DNAT --to 192.9.206.130:21 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 4662 -j DNAT --to 192.9.206.25:4662
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 4672 -j DNAT --to 192.9.206.25:4672
# About eMule for my Slave
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 4166 -j DNAT --to 192.9.206.243:4166
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 4176 -j DNAT --to 192.9.206.243:4176
# About eMule for my Laptop
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 4666 -j DNAT --to 192.9.206.130:4666
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 4668 -j DNAT --to 192.9.206.130:4668
# About eMule for Sunlei WinXP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 30701 -j DNAT --to 192.9.206.243:30701
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 30701 -j DNAT --to 192.9.206.243:30701
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 30706 -j DNAT --to 192.9.206.243:30706
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 30706 -j DNAT --to 192.9.206.243:30706
采用的FTP的配置:
[root@master vsftpd]# cat vsftpd.conf
### This configuration is only for the Real user ###
anonymous_enable=NO
# Disable the anonymous user
local_enable=YES
write_enable=YES
local_umask=022
# the local user can create new file and directory
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
# About the user, the related file must exist
# user in /etc/vsftpd.user_list can use FTP
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
#connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
listen=YES
listen_port=8021
tcp_wrappers=YES
banner_file=/etc/vsftpd/welcome.txt
# About the Server
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
# By default the user can only stay in their home directory
# but user in /etc/vsftpd.chroot_list file, can go every in the system
local_max_rate=10000000000
# control the speed, in Bytes/s
# 2100000 = 2MB/s
max_clients=10
max_per_ip=5
# about the client
ls_recurse_enable=NO
所有的一切都工作OK。
比如FTP,
无论是通过ftp://tang:tang@192.9.206.50:8021
还是ftp://tang:tang@59.72.122.49:8021都可以登录的。
公网的用户通过我的公网IP登录,NAT后面的机器,通过192地址登录。
今天忽然发现,还是上面的配置,结果出问题了。
通过公网不能访问到我的vsftpd,只能通过内网访问到。
我对比了/etc/rc.local vsftpd.conf /etc/hosts.allow /etc/hosts.deny ,把现在的文件和系统配置好,运行OK的备份文件对比了一下,
么有任何却别....
可是现在通过公网登录FTP 提示信息是:
[右] 正在连接到 59.72.122.49 -> IP=59.72.122.49 PORT=8021
[右] 已连接到 59.72.122.49
[右] 220-Welcome Back!
[右] 220-My Friend!!!
[右] 220-Have a Good Day!!!
[右] 220-To Be Good To YourSelf....
[右] 220
[右] USER tang
[右] 331 Please specify the password.
[右] PASS (隐藏)
[右] 230 Login successful.
[右] SYST
[右] 215 UNIX Type: L8
[右] FEAT
[右] 211-Features:
[右] EPRT
[右] EPSV
[右] MDTM
[右] PASV
[右] REST STREAM
[右] SIZE
[右] TVFS
[右] 211 End
[右] CWD /
[右] 250 Directory successfully changed.
[右] PWD
[右] 257 "/"
[右] TYPE A
[右] 200 Switching to ASCII mode.
[右] PASV
[右] 227 Entering Passive Mode (59,72,122,49,105,54)
[右] 正在打开数据连接 IP: 59.72.122.49 端口: 26934
[右] 数据 Socket 错误: 连接超时
[右] 列表错误
[右] PASV
[右] 227 Entering Passive Mode (59,72,122,49,183,150)
[右] 正在打开数据连接 IP: 59.72.122.49 端口: 46998
[右] 数据 Socket 错误: 连接超时
[右] 列表错误
[右] PASV 模式失败, 尝试 PORT 模式。
[右] 监听端口: 1938, 等待连接。
[右] PORT 192,168,2,3,7,146
[右] 500 Illegal PORT command.
[右] 列表错误
同时 通过内外登录, 是OK的,
[右] 正在连接到 abbott -> IP=192.9.206.50 PORT=8021
[右] 已连接到 abbott
[右] 220-Welcome Back!
[右] 220-My Friend!!!
[右] 220-Have a Good Day!!!
[右] 220-To Be Good To YourSelf....
[右] 220
[右] USER abbott
[右] 331 Please specify the password.
[右] PASS (隐藏)
[右] 230 Login successful.
[右] SYST
[右] 215 UNIX Type: L8
[右] FEAT
[右] 211-Features:
[右] EPRT
[右] EPSV
[右] MDTM
[右] PASV
[右] REST STREAM
[右] SIZE
[右] TVFS
[右] 211 End
[右] CWD /home/abbott
[右] 250 Directory successfully changed.
[右] PWD
[右] 257 "/home/abbott"
为什么公网登录不了呢?
系统一直工作OK的。
只是发现我的amule工作在high ID之后,amule 频繁的自动关闭,
然后这一周内,gnome也无辜崩溃过三次: 键盘没有相依,什么窗口都打不开,只能拔电源....
这个是怎么回事呢?
另外,我的系统安装了openvpn server 客户端工作OK,网络OK。
服务启动里面也确认系统boot是就启动它,但是启动的时候,总告诉我,openvpn start fialed....
我不得不把启动vpn的指令写如/etc/rc.local中.....
大侠能指点一下吗?
我使用Linux的原因是,我不想重灌系统,
我的系统自从我配置好之后,做了一周的测试,各项都满足我的工作要求,
然后我做了配置备份。
之后,除了干活之外,系统没有进行任何升级.....
系统安全上,我只允许几个特定的IP才能访问我的机器,
当然这个也不能确保万无一失, 但是我确定,我所处的网络环境中,还没有人能突破/etc/hosts.allow /etc/hosts.deny这两个文件的检测吧?
而且我对外开启的端口和服务,就那么几个.....
依旧还是那个配置文件,怎么就不工作了呢?
大侠指导一下.....
我的机器具有两个网卡,eth0 eth1, 所连接的网络不互通。
我的机器扮演NAT, 为192.9.206.0/24的用户提供NAT网关服务。
说明,我的公网IP 是 59.72.122.49
采用的防火墙策略如下:
# Set the key parameters
EXTIF="eth0"
INIF="eth1"
INNET="192.9.206.0/24"
PATH=/sbin:/bin:/usr/sbin:/usr/bin
export PATH EXTIF INIF INNET
# Configuration Network
ifconfig $EXTIF down
ifconfig $INIF down
ifconfig $EXTIF hw ether 00:22:B0:61:A6:B2
ifconfig $EXTIF 59.72.122.49 netmask 255.255.255.0
ifconfig $INIF 192.9.206.50 netmask 255.255.255.0
ifconfig $INIF up
ifconfig $EXTIF up
route add -net 192.9.0.0 netmask 255.255.0.0 gw 192.9.206.254 dev $INIF
route add default gw 59.72.122.254 dev $EXTIF
# Enable ip forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# Load Appropriate Module for FireWall
modprobe ip_tables > /dev/null 2>&1
modprobe iptable_nat > /dev/null 2>&1
modprobe ip_nat_ftp > /dev/null 2>&1
modprobe ip_nat_irc > /dev/null 2>&1
modprobe ip_conntrack > /dev/null 2>&1
modprobe ip_conntrack_ftp > /dev/null 2>&1
modprobe ip_conntrack_irc > /dev/null 2>&1
#
# Attention.
# I don't understand ip_nat_irc here.
# Flush the default rules
# And Set the new default rules
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
# Flush the original rules
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
# Set the new rules
# Allow the trusted network
# The local loopback interface
/sbin/iptables -A INPUT -i lo -j ACCEPT
# The private network
# Allow all the data from private network
/sbin/iptables -A INPUT -i $INIF -j ACCEPT
# Starting NAT Server
#echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
#/sbin/iptables -t nat -A POSTROUTING -s $INNET -o $INIF -j MASQUERADE
# No need for the private network
/sbin/iptables -A FORWARD -s $INNET -j ACCEPT
# Enable NAT work in High Efficiency
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow Service
/sbin/iptables -A INPUT -p tcp -i $EXTIF --dport 8022 -j ACCEPT #SSH
/sbin/iptables -A INPUT -p tcp -i $INIF --dport 8022 -j ACCEPT #SSH
/sbin/iptables -A INPUT -p tcp -i $EXTIF --dport 8021 -j ACCEPT #FTP
/sbin/iptables -A INPUT -p tcp -i $EXTIF --dport 8020 -j ACCEPT #FTP
/sbin/iptables -A INPUT -p udp -i $EXTIF --dport 1194 -j ACCEPT #OpenVPN
/sbin/iptables -A INPUT -p udp -i $EXTIF --dport 1195 -j ACCEPT #OpenVPN
/sbin/iptables -A INPUT -p tcp -i $EXTIF --dport 4999 -j ACCEPT # aMule
/sbin/iptables -A INPUT -p udp -i $EXTIF --dport 4999 -j ACCEPT # aMule
# About the NAT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -o tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
iptables -A FORWARD -o tap+ -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.8.0/24 -o $EXTIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.8.0/24 -o $INIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.9.0/24 -o $EXTIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.9.0/24 -o $INIF -j MASQUERADE
iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
#iptables -t nat -A POSTROUTING -s $INNET -o $INIF -j MASQUERADE
# no need for the private network
# Enable virtual IP from VPN client
# Forward the package to private network
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 3389 -j DNAT --to 192.9.206.130:3389 #Win Remote Desktop
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 20 -j DNAT --to 192.9.206.130:20 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 21 -j DNAT --to 192.9.206.130:21 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 4662 -j DNAT --to 192.9.206.25:4662
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 4672 -j DNAT --to 192.9.206.25:4672
# About eMule for my Slave
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 4166 -j DNAT --to 192.9.206.243:4166
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 4176 -j DNAT --to 192.9.206.243:4176
# About eMule for my Laptop
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 4666 -j DNAT --to 192.9.206.130:4666
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 4668 -j DNAT --to 192.9.206.130:4668
# About eMule for Sunlei WinXP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 30701 -j DNAT --to 192.9.206.243:30701
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 30701 -j DNAT --to 192.9.206.243:30701
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 30706 -j DNAT --to 192.9.206.243:30706
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 30706 -j DNAT --to 192.9.206.243:30706
采用的FTP的配置:
[root@master vsftpd]# cat vsftpd.conf
### This configuration is only for the Real user ###
anonymous_enable=NO
# Disable the anonymous user
local_enable=YES
write_enable=YES
local_umask=022
# the local user can create new file and directory
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list
# About the user, the related file must exist
# user in /etc/vsftpd.user_list can use FTP
use_localtime=YES
dirmessage_enable=YES
xferlog_enable=YES
#connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
listen=YES
listen_port=8021
tcp_wrappers=YES
banner_file=/etc/vsftpd/welcome.txt
# About the Server
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
# By default the user can only stay in their home directory
# but user in /etc/vsftpd.chroot_list file, can go every in the system
local_max_rate=10000000000
# control the speed, in Bytes/s
# 2100000 = 2MB/s
max_clients=10
max_per_ip=5
# about the client
ls_recurse_enable=NO
所有的一切都工作OK。
比如FTP,
无论是通过ftp://tang:tang@192.9.206.50:8021
还是ftp://tang:tang@59.72.122.49:8021都可以登录的。
公网的用户通过我的公网IP登录,NAT后面的机器,通过192地址登录。
今天忽然发现,还是上面的配置,结果出问题了。
通过公网不能访问到我的vsftpd,只能通过内网访问到。
我对比了/etc/rc.local vsftpd.conf /etc/hosts.allow /etc/hosts.deny ,把现在的文件和系统配置好,运行OK的备份文件对比了一下,
么有任何却别....
可是现在通过公网登录FTP 提示信息是:
[右] 正在连接到 59.72.122.49 -> IP=59.72.122.49 PORT=8021
[右] 已连接到 59.72.122.49
[右] 220-Welcome Back!
[右] 220-My Friend!!!
[右] 220-Have a Good Day!!!
[右] 220-To Be Good To YourSelf....
[右] 220
[右] USER tang
[右] 331 Please specify the password.
[右] PASS (隐藏)
[右] 230 Login successful.
[右] SYST
[右] 215 UNIX Type: L8
[右] FEAT
[右] 211-Features:
[右] EPRT
[右] EPSV
[右] MDTM
[右] PASV
[右] REST STREAM
[右] SIZE
[右] TVFS
[右] 211 End
[右] CWD /
[右] 250 Directory successfully changed.
[右] PWD
[右] 257 "/"
[右] TYPE A
[右] 200 Switching to ASCII mode.
[右] PASV
[右] 227 Entering Passive Mode (59,72,122,49,105,54)
[右] 正在打开数据连接 IP: 59.72.122.49 端口: 26934
[右] 数据 Socket 错误: 连接超时
[右] 列表错误
[右] PASV
[右] 227 Entering Passive Mode (59,72,122,49,183,150)
[右] 正在打开数据连接 IP: 59.72.122.49 端口: 46998
[右] 数据 Socket 错误: 连接超时
[右] 列表错误
[右] PASV 模式失败, 尝试 PORT 模式。
[右] 监听端口: 1938, 等待连接。
[右] PORT 192,168,2,3,7,146
[右] 500 Illegal PORT command.
[右] 列表错误
同时 通过内外登录, 是OK的,
[右] 正在连接到 abbott -> IP=192.9.206.50 PORT=8021
[右] 已连接到 abbott
[右] 220-Welcome Back!
[右] 220-My Friend!!!
[右] 220-Have a Good Day!!!
[右] 220-To Be Good To YourSelf....
[右] 220
[右] USER abbott
[右] 331 Please specify the password.
[右] PASS (隐藏)
[右] 230 Login successful.
[右] SYST
[右] 215 UNIX Type: L8
[右] FEAT
[右] 211-Features:
[右] EPRT
[右] EPSV
[右] MDTM
[右] PASV
[右] REST STREAM
[右] SIZE
[右] TVFS
[右] 211 End
[右] CWD /home/abbott
[右] 250 Directory successfully changed.
[右] PWD
[右] 257 "/home/abbott"
为什么公网登录不了呢?
系统一直工作OK的。
只是发现我的amule工作在high ID之后,amule 频繁的自动关闭,
然后这一周内,gnome也无辜崩溃过三次: 键盘没有相依,什么窗口都打不开,只能拔电源....
这个是怎么回事呢?
另外,我的系统安装了openvpn server 客户端工作OK,网络OK。
服务启动里面也确认系统boot是就启动它,但是启动的时候,总告诉我,openvpn start fialed....
我不得不把启动vpn的指令写如/etc/rc.local中.....
大侠能指点一下吗?
我使用Linux的原因是,我不想重灌系统,
我的系统自从我配置好之后,做了一周的测试,各项都满足我的工作要求,
然后我做了配置备份。
之后,除了干活之外,系统没有进行任何升级.....
系统安全上,我只允许几个特定的IP才能访问我的机器,
当然这个也不能确保万无一失, 但是我确定,我所处的网络环境中,还没有人能突破/etc/hosts.allow /etc/hosts.deny这两个文件的检测吧?
而且我对外开启的端口和服务,就那么几个.....
依旧还是那个配置文件,怎么就不工作了呢?
大侠指导一下.....
-
- 帖子: 445
- 注册时间: 2007-08-27 17:31
Re: 我的vsftpd 罢工了
说实话,太乱了
你的netfilter/iptables规则写的,真让人无奈。
如果你想让自己的ftp工作在防火墙之后,就需要进行三步
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
意思很明显,内网用户可以登陆是因为对内网来说,防火墙是通明的,可以忽略
但来自外网的包就必须经过防火墙,因为FTP是复杂通信协议(这里复杂只是针对需要建立2条tcp连接来说的)
就必须加载特别为ftp写的模块与连接追踪扩展模块以识别RELATED状态的封包,让其能够通过防火墙!
只加载模块而不写规则是没用的,所以,需要加上第三行,放行所有转发的ESTABLISHED与RELATED状态的封包!
[右] 227 Entering Passive Mode (59,72,122,49,183,150)
[右] 正在打开数据连接 IP: 59.72.122.49 端口: 46998
[右] 数据 Socket 错误: 连接超时
根据你的ftp连接状态,可以很明显看出是使用被动模式,最关键的一步是ftp服务器随机打开port 46998,等待客户端连接,而发生的timeout,而防火墙上并只开放了21,20端口的访问,所以那个随机port是不可能通过防火墙的,所以数据信道不可能建立成功,而登陆却是成功的,这种情况下,不可能让防火墙打开所有可能被随机出的端口。
因为通信信道的建立,触发了数据信道建立,这样的情况可以看做是服务器的封包使客户端被动产生了新的tcp连接,而这类被动触发的连接,在防火墙的识别状态为RELATED,那么只要开放RELATED状态封包可以通过就行了。
你的netfilter/iptables规则写的,真让人无奈。
如果你想让自己的ftp工作在防火墙之后,就需要进行三步
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
意思很明显,内网用户可以登陆是因为对内网来说,防火墙是通明的,可以忽略
但来自外网的包就必须经过防火墙,因为FTP是复杂通信协议(这里复杂只是针对需要建立2条tcp连接来说的)
就必须加载特别为ftp写的模块与连接追踪扩展模块以识别RELATED状态的封包,让其能够通过防火墙!
只加载模块而不写规则是没用的,所以,需要加上第三行,放行所有转发的ESTABLISHED与RELATED状态的封包!
[右] 227 Entering Passive Mode (59,72,122,49,183,150)
[右] 正在打开数据连接 IP: 59.72.122.49 端口: 46998
[右] 数据 Socket 错误: 连接超时
根据你的ftp连接状态,可以很明显看出是使用被动模式,最关键的一步是ftp服务器随机打开port 46998,等待客户端连接,而发生的timeout,而防火墙上并只开放了21,20端口的访问,所以那个随机port是不可能通过防火墙的,所以数据信道不可能建立成功,而登陆却是成功的,这种情况下,不可能让防火墙打开所有可能被随机出的端口。
因为通信信道的建立,触发了数据信道建立,这样的情况可以看做是服务器的封包使客户端被动产生了新的tcp连接,而这类被动触发的连接,在防火墙的识别状态为RELATED,那么只要开放RELATED状态封包可以通过就行了。
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
理查德-费曼
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 我的vsftpd 罢工了
angelus, angelus, angelus, angelus,
回复 angelus
我不明白的事情是:
1 我采用上面的我贴出来的配置文件, 这个Server运行了大概3个月,没有任何问题, 我是说采用上面的配置文件,服务器无论从内网,公网都可以顺利登录的。 知道一周前,公网登录的时候,会出现卡机现象,卡一会,刷新几下也可以登录的。可是现在公网绝对登录不了啦, 这期间,没有更新过系统, 没有修改过配置文件。 而且我检测了一下,现在的配置文件,和以前的文件一样。
2 对于vsftpd, 我有点疑惑了, 我在配置文件中,有下面的几行:
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
listen=YES
listen_port=8021
tcp_wrappers=YES
不太确定这些如何使用:
但是目前,必须通过类似的方式连接ftp:
ftp://tang:tang@192.9.206.50:8021
我有点不太明白这里的TCP下的端口协议了?
FTP 记忆中是通过默认的20端口建立连接,通过21端口传递数据 是这么回事吧?
为什么我使用客户端连接时(我指定的端口是8021,我配置中做了修改)
依旧显示的是随机打开的端口呢? 如果我没有对错的话,应该是服务器随机打开一个随机端口(> 1024),然后和客户端连接?
这样一来,对这个端口工作模式就有点迷糊了。
到底是客户端提供随机端口,还是服务器提供随机端口?
我刚刚尝试把你说的指令放到iptables.rules里面, 结果没有得到预期的目的....
奇怪的是,从头到尾,都是同样的配置文件,为何就不工作了呢?
希望能和 angelus 你多多交流,
我只是工作中用linux系统,处于工作上高效方便的考虑,
Linux方面,所接触的 只是与我自己工作中能用到的相关的,
我配置FTP只是为自己服务, smb也是, 但是现在不工作了。。。
我在工作室以外的地方,不能直接进入实验室的内网,
只能通过VPN拨入,
可是通过这么折腾之后,网速有一定的影响,
字符界面很OK
有时候需要通过图形界面做一些检测,就有麻烦了....
目前没有找到处理方法, 只能先拨通vpn,然后再通过vpn直接通过内网连接ftp啦....
谢谢你的关注...
我的邮件是abbott.cn@gmail.com
希望和你多多交流.....
提供一个参考信息。
我使用的系统是centOS 5.3 64bit.
这个系统似乎有毛病:
1 就是我上面遇到的问题。 如果说我的iptables有毛病,那么刚刚开始的时候,ftp无论是内外还是公网那个都是OK的。 运行了一段时间,大概3个月不到,就有问题了....
2 我们研究所使用一个大型cluster,系统也是centOS 4.7
我们需要通过pbs把东西提交到节点上计算。 正常的时候,我们可以通过rcp 指令,把计算节点上的数据拷贝出来。。。
但是现在不行了,使用rcp会遭到警告:
poll: protocol failure in circuit setup
rcmd: cu33-c: Connection reset by peer
管理员确定没有开启任何防火墙和安全措施.....
很迷茫, 怎么会这样呢?
回复 angelus
我不明白的事情是:
1 我采用上面的我贴出来的配置文件, 这个Server运行了大概3个月,没有任何问题, 我是说采用上面的配置文件,服务器无论从内网,公网都可以顺利登录的。 知道一周前,公网登录的时候,会出现卡机现象,卡一会,刷新几下也可以登录的。可是现在公网绝对登录不了啦, 这期间,没有更新过系统, 没有修改过配置文件。 而且我检测了一下,现在的配置文件,和以前的文件一样。
2 对于vsftpd, 我有点疑惑了, 我在配置文件中,有下面的几行:
connect_from_port_20=YES
xferlog_std_format=YES
pam_service_name=vsftpd
listen=YES
listen_port=8021
tcp_wrappers=YES
不太确定这些如何使用:
但是目前,必须通过类似的方式连接ftp:
ftp://tang:tang@192.9.206.50:8021
我有点不太明白这里的TCP下的端口协议了?
FTP 记忆中是通过默认的20端口建立连接,通过21端口传递数据 是这么回事吧?
为什么我使用客户端连接时(我指定的端口是8021,我配置中做了修改)
依旧显示的是随机打开的端口呢? 如果我没有对错的话,应该是服务器随机打开一个随机端口(> 1024),然后和客户端连接?
这样一来,对这个端口工作模式就有点迷糊了。
到底是客户端提供随机端口,还是服务器提供随机端口?
我刚刚尝试把你说的指令放到iptables.rules里面, 结果没有得到预期的目的....
奇怪的是,从头到尾,都是同样的配置文件,为何就不工作了呢?
希望能和 angelus 你多多交流,
我只是工作中用linux系统,处于工作上高效方便的考虑,
Linux方面,所接触的 只是与我自己工作中能用到的相关的,
我配置FTP只是为自己服务, smb也是, 但是现在不工作了。。。
我在工作室以外的地方,不能直接进入实验室的内网,
只能通过VPN拨入,
可是通过这么折腾之后,网速有一定的影响,
字符界面很OK
有时候需要通过图形界面做一些检测,就有麻烦了....
目前没有找到处理方法, 只能先拨通vpn,然后再通过vpn直接通过内网连接ftp啦....
谢谢你的关注...
我的邮件是abbott.cn@gmail.com
希望和你多多交流.....
提供一个参考信息。
我使用的系统是centOS 5.3 64bit.
这个系统似乎有毛病:
1 就是我上面遇到的问题。 如果说我的iptables有毛病,那么刚刚开始的时候,ftp无论是内外还是公网那个都是OK的。 运行了一段时间,大概3个月不到,就有问题了....
2 我们研究所使用一个大型cluster,系统也是centOS 4.7
我们需要通过pbs把东西提交到节点上计算。 正常的时候,我们可以通过rcp 指令,把计算节点上的数据拷贝出来。。。
但是现在不行了,使用rcp会遭到警告:
poll: protocol failure in circuit setup
rcmd: cu33-c: Connection reset by peer
管理员确定没有开启任何防火墙和安全措施.....
很迷茫, 怎么会这样呢?
-
- 帖子: 445
- 注册时间: 2007-08-27 17:31
Re: 我的vsftpd 罢工了
不好意思,没看到你这一句
listen_port=8021
如果你使用的不是标准的21端口的话,加载连接追踪扩展的ftp模块时候需要加上参数
modprobe ip_conntrack_ftp ports=8021
意思是让连接追踪扩展模块监听所有8021端口上的所有数据包,如果有收到服务端发给客户端的随机端口号的时候,就知道稍后有客户端会连接到服务器的随机端口,而把这条连接上的包都归类为RELATED状态!
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
根据语法的优先匹配,这条规则应该加入到链的第一条,否则是没用的,因为根本就不会执行到这一条就accept了
加点题外的,你的nat规则中,PREROUTING没有指定封包流向。
这在iptalbes上是语法错误的!
最好严格控制Filter表中的input链,把那些开放的端口去掉,因为你的服务不是建立在防火墙主机上,所以写那些服务端口可以accept是没有任何用处的!
listen_port=8021
如果你使用的不是标准的21端口的话,加载连接追踪扩展的ftp模块时候需要加上参数
modprobe ip_conntrack_ftp ports=8021
意思是让连接追踪扩展模块监听所有8021端口上的所有数据包,如果有收到服务端发给客户端的随机端口号的时候,就知道稍后有客户端会连接到服务器的随机端口,而把这条连接上的包都归类为RELATED状态!
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
根据语法的优先匹配,这条规则应该加入到链的第一条,否则是没用的,因为根本就不会执行到这一条就accept了
加点题外的,你的nat规则中,PREROUTING没有指定封包流向。
这在iptalbes上是语法错误的!
最好严格控制Filter表中的input链,把那些开放的端口去掉,因为你的服务不是建立在防火墙主机上,所以写那些服务端口可以accept是没有任何用处的!
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
理查德-费曼
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 我的vsftpd 罢工了
谢谢 angelus
这几日忙着整理东西,刚刚有时间看这个 谢谢了先,
iptable rule是自己瞎写的,
还需要多多想你请教的。
我的机器是这样的:
具有两个网卡,
eth0 公网
eth1 内网
这个机器作为NAT网关,
起上运行,openvpn(运行在公网IP), sftpd(通过内外网络都可访问),sshd(通过内外网络都可访问)
这几日忙着整理东西,刚刚有时间看这个 谢谢了先,
iptable rule是自己瞎写的,
还需要多多想你请教的。
我的机器是这样的:
具有两个网卡,
eth0 公网
eth1 内网
这个机器作为NAT网关,
起上运行,openvpn(运行在公网IP), sftpd(通过内外网络都可访问),sshd(通过内外网络都可访问)
-
- 帖子: 14
- 注册时间: 2009-07-16 15:53
- 来自: 北京
- 联系:
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 我的vsftpd 罢工了
找了本书正在看呢!!!angelus 写了:不好意思,没看到你这一句
listen_port=8021
如果你使用的不是标准的21端口的话,加载连接追踪扩展的ftp模块时候需要加上参数
modprobe ip_conntrack_ftp ports=8021
意思是让连接追踪扩展模块监听所有8021端口上的所有数据包,如果有收到服务端发给客户端的随机端口号的时候,就知道稍后有客户端会连接到服务器的随机端口,而把这条连接上的包都归类为RELATED状态!
/sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
根据语法的优先匹配,这条规则应该加入到链的第一条,否则是没用的,因为根本就不会执行到这一条就accept了
加点题外的,你的nat规则中,PREROUTING没有指定封包流向。
这在iptalbes上是语法错误的!
最好严格控制Filter表中的input链,把那些开放的端口去掉,因为你的服务不是建立在防火墙主机上,所以写那些服务端口可以accept是没有任何用处的!
加点题外的,你的nat规则中,PREROUTING没有指定封包流向。
这在iptalbes上是语法错误的!
你说的是这些指令吧?
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 3389 -j DNAT --to 192.9.206.130:3389 #Win Remote Desktop
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 20 -j DNAT --to 192.9.206.130:20 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 21 -j DNAT --to 192.9.206.130:21 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
封包流向? 是不是应该写成这样的?
iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 3389 -j DNAT --to 192.9.206.130:3389 #Win Remote Desktop
或者是? 这个封包流向,实在不明白?请指教....
最好严格控制Filter表中的input链,把那些开放的端口去掉,因为你的服务不是建立在防火墙主机上,所以写那些服务端口可以accept是没有任何用处的!
这里,你说我的服务不在防火墙主机上,所以需要删除那些我自己写的开放端口服务的规则。 可是,我的这个主机是采用双网卡配置,本身作NAT网关的。 关于机器的具体详细的配置,我给你站内信件了。 烦请你帮我分析一下.
刚刚仔细看了一下vsftpd的配置文档,
发现我需要指定服务为被动模式.....
诚如你所说,
如果是要开启ftp的被动模式,
必须在服务器上打开一些端口范围,
以便客户端的连接。。。
这个正在调试中....
和你交流 收获颇多...
有时候,一个人瞎看,遇到点问题,很多时候,不知道应该看那个方面,这个实在很令人头疼的... 希望你多多指点... 期望今后能和你多多交流....
-
- 帖子: 445
- 注册时间: 2007-08-27 17:31
Re: 我的vsftpd 罢工了
不好意思,没说明封包流向
其实就是包的流动方向,比如有两块网卡,一个包从eth0进入,从eth1出去,那么这个包的流动路径就是
eth0---routing tables----eth1 这就是包的流向。
在nat中,必须要指定包的流向,因为PREROUTING,POSTROUTING 并不是固定在特定的一侧
比如:包从eth0进入,那么PREROUTING就在eth0这一边
包从eth1进入,那么PREROUTING就在eth1这一边
所以要使用PREROUTING改变包的目的端(DNAT,NAPT),就要指明封包进入的接口,-i eth0
使用POSTROUTING改变包的来源端(SNAT),就要指明封包出去的接口,-o eth1
否则会提示iptables语法错误.
因为你防火墙本机只开放了ssh服务,所以在input链中只需要让特定几个ip可以通过22端口连接本机ssh。
(最好使用mac模块绑定特定ip的mac地址,因为源ip可以很简单伪造)
如:(注意规则的顺序)
iptables -P INPUT DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.0.12 -m mac --mac-source 00:03:33:44:55:66 -j ACCEPT
就只允许特定来源ip与对应的mac可以访问!达到锁mac地址的目的
至于filter表的output链,原则上是需要严格控制的,比如下边的要求
icmp协议只能送到几个特定的ip
udp协议只能送到53端口
tcp协议只能送到几个特定ip
如:
iptables -P OUTPUT DROP
iptables -A OUTPUT -p icmp -d 192.168.0.1 -j ACCEPT
iptables -A OUTPUT -p udp --dports 53 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.0.1 -j ACCEPT
其实就是包的流动方向,比如有两块网卡,一个包从eth0进入,从eth1出去,那么这个包的流动路径就是
eth0---routing tables----eth1 这就是包的流向。
在nat中,必须要指定包的流向,因为PREROUTING,POSTROUTING 并不是固定在特定的一侧
比如:包从eth0进入,那么PREROUTING就在eth0这一边
包从eth1进入,那么PREROUTING就在eth1这一边
所以要使用PREROUTING改变包的目的端(DNAT,NAPT),就要指明封包进入的接口,-i eth0
使用POSTROUTING改变包的来源端(SNAT),就要指明封包出去的接口,-o eth1
否则会提示iptables语法错误.
因为你防火墙本机只开放了ssh服务,所以在input链中只需要让特定几个ip可以通过22端口连接本机ssh。
(最好使用mac模块绑定特定ip的mac地址,因为源ip可以很简单伪造)
如:(注意规则的顺序)
iptables -P INPUT DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 192.168.0.12 -m mac --mac-source 00:03:33:44:55:66 -j ACCEPT
就只允许特定来源ip与对应的mac可以访问!达到锁mac地址的目的
至于filter表的output链,原则上是需要严格控制的,比如下边的要求
icmp协议只能送到几个特定的ip
udp协议只能送到53端口
tcp协议只能送到几个特定ip
如:
iptables -P OUTPUT DROP
iptables -A OUTPUT -p icmp -d 192.168.0.1 -j ACCEPT
iptables -A OUTPUT -p udp --dports 53 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.0.1 -j ACCEPT
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
理查德-费曼
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 我的vsftpd 罢工了
学习了。。。
谢谢指点,
我在翻书看看 你提到的东西.....
谢谢指点,
我在翻书看看 你提到的东西.....
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 我的vsftpd 罢工了
至于filter表的output链,原则上是需要严格控制的,比如下边的要求
icmp协议只能送到几个特定的ip
udp协议只能送到53端口
tcp协议只能送到几个特定ip
如:
iptables -P OUTPUT DROP
iptables -A OUTPUT -p icmp -d 192.168.0.1 -j ACCEPT
iptables -A OUTPUT -p udp --dports 53 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.0.1 -j ACCEPT
至于filter表的output链, 这个是不是仅仅管理经由我的网卡,发往网络的数据包?
我自己的是NAT网关。
客户端就自己的laptop和几个同学,
没有对他们做严格的限制。 现在我默认的规则是,对于经由本机发出的数据,一概放行...
我还有几个关于网络应用的问题, 另写帖子请教....
icmp协议只能送到几个特定的ip
udp协议只能送到53端口
tcp协议只能送到几个特定ip
如:
iptables -P OUTPUT DROP
iptables -A OUTPUT -p icmp -d 192.168.0.1 -j ACCEPT
iptables -A OUTPUT -p udp --dports 53 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.0.1 -j ACCEPT
至于filter表的output链, 这个是不是仅仅管理经由我的网卡,发往网络的数据包?
我自己的是NAT网关。
客户端就自己的laptop和几个同学,
没有对他们做严格的限制。 现在我默认的规则是,对于经由本机发出的数据,一概放行...
我还有几个关于网络应用的问题, 另写帖子请教....
-
- 帖子: 445
- 注册时间: 2007-08-27 17:31
Re: 我的vsftpd 罢工了
你现在有个很严重的概念性错误。
filter表中,input链过滤的是-d 为本机封包,是传递给本机应用程序的包。
output链过滤的是本机应用程序产生,并离开本机的封包
换句话说,input链限制从外对本机的连接,output限制本机对外的连接。
而这两个都是与本机有关的,是保护本机用的!
如果你的ftp....等服务是建立在其他机器,而只是用本机做nat带防火墙,应该更关注的是forward链!
它决定了转发封包的通过或丢弃。你的ftp服务----客户端的任意一个封包都不会进入input,output,但必定会经过forward链。因为,不管那边的包都不是给防火墙机器上的应用程序,所以不会进入input,而每个封包也不是防火墙主机的应用程序产生的,所以不会进入output。每个封包都只是把防火墙主机当成类似路由转发,如此必定会经过forward链
我上边写的那些规则,都是用来保护你防火墙主机的,而不是你搭建ftp的机器,但这是正比促进关系,防火墙主机越安全,它后边的机器就会越安全!
filter表中,input链过滤的是-d 为本机封包,是传递给本机应用程序的包。
output链过滤的是本机应用程序产生,并离开本机的封包
换句话说,input链限制从外对本机的连接,output限制本机对外的连接。
而这两个都是与本机有关的,是保护本机用的!
如果你的ftp....等服务是建立在其他机器,而只是用本机做nat带防火墙,应该更关注的是forward链!
它决定了转发封包的通过或丢弃。你的ftp服务----客户端的任意一个封包都不会进入input,output,但必定会经过forward链。因为,不管那边的包都不是给防火墙机器上的应用程序,所以不会进入input,而每个封包也不是防火墙主机的应用程序产生的,所以不会进入output。每个封包都只是把防火墙主机当成类似路由转发,如此必定会经过forward链
我上边写的那些规则,都是用来保护你防火墙主机的,而不是你搭建ftp的机器,但这是正比促进关系,防火墙主机越安全,它后边的机器就会越安全!
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
理查德-费曼
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 我的vsftpd 罢工了
原来是这样,angelus 写了:你现在有个很严重的概念性错误。
filter表中,input链过滤的是-d 为本机封包,是传递给本机应用程序的包。
output链过滤的是本机应用程序产生,并离开本机的封包
换句话说,input链限制从外对本机的连接,output限制本机对外的连接。
而这两个都是与本机有关的,是保护本机用的!
如果你的ftp....等服务是建立在其他机器,而只是用本机做nat带防火墙,应该更关注的是forward链!
它决定了转发封包的通过或丢弃。你的ftp服务----客户端的任意一个封包都不会进入input,output,但必定会经过forward链。因为,不管那边的包都不是给防火墙机器上的应用程序,所以不会进入input,而每个封包也不是防火墙主机的应用程序产生的,所以不会进入output。每个封包都只是把防火墙主机当成类似路由转发,如此必定会经过forward链
我上边写的那些规则,都是用来保护你防火墙主机的,而不是你搭建ftp的机器,但这是正比促进关系,防火墙主机越安全,它后边的机器就会越安全!
现在明白input output forward了。
但是有一个问题,
也许你说的不太对。
我在给你的站内信件中有详细的资料,是关于我的机器的配置的。
很明确,
主机运行的服务有:
amule TCP/UDP 4999/4999
vsftpd TCP 8021, 被动模式,端口范围 8000-8008
sshd TCP 8022
smb 采用默认的端口配置
NFS 采用默认端口配置
并通过iptables作NAT网关,
NAT 客户端,都处于 192.9.206.0/24,
运行:
ftp 默认端口 21
微软远程 3389
eMule 不同的客户端,使用不同的端口,
其他服务等。
我不明白,你会说我的ssh运行在别的机器.....
-
- 帖子: 445
- 注册时间: 2007-08-27 17:31
Re: 我的vsftpd 罢工了
你在防火墙主机上开的服务??(除了SSH)
网关式防火墙除了必须要远程管理用的SSH以外,最好不要开放任何服务
如果你是在防火墙主机上开的那些服务,最好严格管理input,output链。(建议放到后方机器)
不好意思,我以为你的那些ftp,..等服务是运行在后方机器的,因为你写了大量的PREROUTING规则
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 3389 -j DNAT --to 192.9.206.130:3389 #Win Remote Desktop
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 20 -j DNAT --to 192.9.206.130:20 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 21 -j DNAT --to 192.9.206.130:21 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
不是运行在后方的服务,那么上边这些NAPT是没有任何作用的!怪不的这些没有封包流向错误的规则无法写入内存,竟然会不影响使用!
网关式防火墙除了必须要远程管理用的SSH以外,最好不要开放任何服务
如果你是在防火墙主机上开的那些服务,最好严格管理input,output链。(建议放到后方机器)
不好意思,我以为你的那些ftp,..等服务是运行在后方机器的,因为你写了大量的PREROUTING规则
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 3389 -j DNAT --to 192.9.206.130:3389 #Win Remote Desktop
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 20 -j DNAT --to 192.9.206.130:20 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 21 -j DNAT --to 192.9.206.130:21 # FTP
iptables -t nat -A PREROUTING -p tcp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
iptables -t nat -A PREROUTING -p udp -d 59.72.122.49 --dport 8085 -j DNAT --to 192.9.206.130:8085 # World of Warcraft
不是运行在后方的服务,那么上边这些NAPT是没有任何作用的!怪不的这些没有封包流向错误的规则无法写入内存,竟然会不影响使用!
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
理查德-费曼
-
- 帖子: 435
- 注册时间: 2007-07-11 22:45
Re: 我的vsftpd 罢工了
谢谢关注..
本来,我的linux主机,多数情况下,是提供给我自己个人使用的。
开启NAT, 只是为了我的其他两台机器偶尔能联网访问东西。
NAT后面的机器,只有一台采用默认的端口 开放对外的ftp 和微软远程服务。
在我主机的Linux主机上,
开启的服务有ssh vsfptd(如果我的朋友都能明白sftp,我就不用这个东西了), openvpn, etc.
令, 我找到一本书 讲的是linux防火墙,但是都是以ipchain作为实现的软件处理的,
ipchain的语法和原理和iptables一样吗?
本来,我的linux主机,多数情况下,是提供给我自己个人使用的。
开启NAT, 只是为了我的其他两台机器偶尔能联网访问东西。
NAT后面的机器,只有一台采用默认的端口 开放对外的ftp 和微软远程服务。
在我主机的Linux主机上,
开启的服务有ssh vsfptd(如果我的朋友都能明白sftp,我就不用这个东西了), openvpn, etc.
令, 我找到一本书 讲的是linux防火墙,但是都是以ipchain作为实现的软件处理的,
ipchain的语法和原理和iptables一样吗?
-
- 帖子: 445
- 注册时间: 2007-08-27 17:31
Re: 我的vsftpd 罢工了
ipchain是比较老的一种防火墙机制,和netfilter是不一样的。
netfilter是linux第三代防火墙,前两代是ipfwadm和ipchain
因为功能,稳定性,安全性,扩充性甚至比一些商业防火墙还要出色,被linux组织采纳进内核
netfilter是linux第三代防火墙,前两代是ipfwadm和ipchain
因为功能,稳定性,安全性,扩充性甚至比一些商业防火墙还要出色,被linux组织采纳进内核
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
理查德-费曼