了解 Linux NAT 类型检测的方法
专注于为中小企业提供成都网站制作、网站设计、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业闻喜免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
Linux NAT(Network Address Translation)是一种网络地址转换技术,将不同的 IP 地址转换为另一组 IP 地址,以实现互联网和局域网之间的通信。Linux NAT 分为三种类型,包括 Full Cone NAT、Restricted Cone NAT 和 Port Restricted Cone NAT。这篇文章将深入探讨 Linux NAT 类型检测的方法,帮助读者更好地了解 Linux NAT 技术,从而提高网络管理的效率和安全性。
一、什么是 Linux NAT?
在介绍 Linux NAT 类型检测之前,我们需要了解什么是 Linux NAT 以及它的工作原理。Linux NAT 是一种广泛使用的网络地址转换技术,用于将私有 IP 地址转换成全局 IP 地址。私有 IP 地址是指在内部网络中被使用的 IP 地址,而全局 IP 地址是指在互联网上被使用的IP地址。
当内部网络的主机通过 NAT 设备连接到外部网络时,其 IP 地址和端口号会被 NAT 设备转换成一个全局唯一的 IP 地址和端口号。这个过程被称为地址转换。当内部网络的主机向外部网络发送请求时,其请求首先传送到 NAT 设备,NAT 设备则将请求发送到外部网络。当外部网络服务器响应时,响应数据将返回 NAT 设备,然后再转发到内部网络的主机。这个过程被称为端口转换。
二、三种类型的 Linux NAT
1. Full Cone NAT
Full Cone NAT 是最基本的 NAT 类型。它会将内部网络主机发送的所有请求映射到 NAT 设备的全局 IP 地址和端口号上,从而可以实现内部网络主机和外部网络的双向通信。如果外部网络服务器在 NAT 设备端口上有一个映射,则它可以向该端口发送数据包,数据包将被 NAT 设备转换并发送到内部网络的主机。
2. Restricted Cone NAT
Restricted Cone NAT 也称为 IP-restricted NAT,它将所有的请求映射到 NAT 设备的全局 IP 地址和端口号上,但是它只会接受来自与内部网络主机最初通信的单个 IP 地址的响应。如果外部网络服务器不在 NAT 设备端口上有一个映射,则它不能向该端口发送数据包。
3. Port Restricted Cone NAT
Port Restricted Cone NAT 也称为 IP-port-restricted NAT,它与 Restricted Cone NAT 类似,但只允许来自特定端口的数据流通过 NAT 设备。这可以保证特定服务端口的数据流仅被发送到相应服务器端口上的相应应用程序。
三、Linux NAT 类型检测的方法
Linux NAT 检测是一种方法,用于检测当前 Linux 操作系统所使用的 NAT 类型。以下是一些方法:
1. 使用 STUN 服务器
STUN(Session Traversal Utilities for NAT)服务器是一种专门用于 NAT 检测的服务器。可以使用 UNIX 系统上的 NAT 离线客户端来测试 NAT 类型。这个客户端可以从 NAT 表上向 STUN 服务器发送一条信息。 STUN 服务器然后将此信息以反回之前的方式发送回到 NAT 表中,以测量NAT通过此信息返回的时间。
2. 使用 UPnP
UPnP(Universal Plug and Play)是一种协议,允许设备自动发现和配置自己的网络连接。Linux NAT 默认情况下启用 UPnP,可以通过 UPnP 将数据包路由到局域网主机。通过检查 UPnP 能否正常工作,可以检测 NAT 设备的类型。
3. 使用 socket API
Linux NAT 类型检测也可以使用 socket API。在使用 socket API 的同时,可以检查 Linux 内核版本。内核版本 2.4.20 和 2.6.x 之间的 Linux NAT 通常是 Full Cone NAT,同时也支持 Port Restricted Cone NAT。
4. 使用 NAT Slipstreaming
NAT Slipstreaming 是一种攻击技术,可绕过 NAT 设备,将数据包路由到内部网络主机上。该攻击利用 NAT 设备的“端口转发”功能创建一个映射(打开一个端口),以允许从外部网络连接到内部网络。检测 NAT Slipstreaming 技术可以检测 NAT 设备的类型。
四、
Linux NAT 技术是一种常用的网络地址转换技术,用于实现内部网络主机和外部网络之间的通信。本文深入探讨了 Linux NAT 的工作原理和三种类型,包括 Full Cone NAT、Restricted Cone NAT 和 Port Restricted Cone NAT。同时介绍了 Linux NAT 类型检测的四种方法,包括使用 STUN 服务器、UPnP、socket API 以及 NAT Slipstreaming。熟练掌握这些方法可以帮助管理员更好地管理和保护内部网络安全。
成都网站建设公司-创新互联,建站经验丰富以策略为先导10多年以来专注数字化网站建设,提供企业网站建设,高端网站设计,响应式网站制作,设计师量身打造品牌风格,热线:028-869222201. 配置IP地址
1.1 正确配置学校分配的IP使能正嫌兄常上网
1) 按学校分配的IP地址配置好Linux主机
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
| DEVICE=eth0 |
| BOOTPROTO=none |
| HWADDR=00:1E:90:13:E0:25 |
| IPADDR=10.3.10.19 |
| NETMASK=255.255.255.0 |
| GATEWAY=10.3.10.254 |
| ONBOOT=yes |
| TYPE=Ethernet |
| DNS1=211.64.120.2 |
| DEFROUTE=yes |
| DOMAIN=168.96.1.1 |
2) 重起网卡
# servie network restart
note: 经过以上的配置, Linux主机应该能够正常上网了!
1.2 新增eth0别名设备eth0:0
# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0
| # eth0:0 必须要用”括起来: ‘eth0:0’ |
| DEVICE=’eth0:0′ |
| ONBOOT=yes |
| BOOTPROTO=static |
| IPADDR=192.168.50.1 |
| NETMASK=255.255.255.0 |
| USERCTL=no |
1.3 配置后 查看一下是否配置成功:
# ifconfig
| eth0 Link encap:Ethernet HWaddr 00:1E:90:13:E0:25 |
| inet addr:10.3.10.19 Bcast:10.3.10.255 Mask:255.255.255.0 |
| inet6 addr: fe80::21e:90ff:fe13:e025/64 Scope:Link |
| UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 |
| RX packets:errors:0 dropped:0 overruns:0 frame:0 |
| TX packets:errors:0 dropped:0 overruns:0 carrier:0 |
| collisions:0 txqueuelen:1000 |
| RX bytes:(128.5 MiB) TX bytes:(53.4 MiB) |
| Interrupt:27 Base address:0xa000 |
| eth0:0 Link encap:Ethernet HWaddr 00:1E:90:13:E0:25 |
| inet addr:192.168.50.1 Bcast:192.168.50.255 Mask:255.255.255.0 |
| UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 |
| Interrupt:27 Base address:0xa000 |
2. 配置路由
由于在配置网卡接口时闷誉, 已自动配置一定的路由, 所以我们只需查看一下其信息, 验证其
是否已经被正确配置:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.50.0 * 255.255.255.0 Ueth0
10.3.10.0 * 255.255.255.0 Ueth0
link-local * 255.255.0.0 Ueth0
default 10.3.10.254 0.0.0.0 UGeth0
3. 配置NAT
1) 新建nat.sh脚本文件并保存在 /usr/local/nat/ 目录下:
# cat /usr/local/nat/nat.sh
| #!/bin/bash |
| # 0. 设定你的参数值 |
| EXIF=’eth0′ # 这个是对外的网卡接口, 可能是’ppp0’等 |
| EXNET=’192.168.50.0/芹罩袭24′ # 这个是对内的网段 |
| # 底下如无需要, 请不要改动了! |
| # 1. 启动routing等 |
| echo 1 > /proc/sys/net/ipv4/ip_forward |
| /in/iptables -F |
| /in/iptables -X |
| /in/iptables -Z |
| /in/iptables -F -t nat |
| /in/iptables -X -t nat |
| /in/iptables -Z -t nat |
| /in/iptables -P INPUT ACCEPT |
| /in/iptables -P OUTPUT ACCEPT |
| /in/iptables -P FORWARD ACCEPT |
| /in/iptables -t nat -P PREROUTING ACCEPT |
| /in/iptables -t nat -P POSTROUTING ACCEPT |
| /in/iptables -t nat -P OUTPUT ACCEPT |
| # 2. 载入模组 |
| /in/modprobe ip_tables 2> /dev/null |
| /in/modprobe ip_nat_ftp 2> /dev/null |
| /in/modprobe ip_nat_irc 2> /dev/null |
| /in/modprobe ip_conntrack 2> /dev/null |
| /in/modprobe ip_conntrack_ftp 2> /dev/null |
| /in/modprobe ip_conntrack_irc 2> /dev/null |
| # 3. 启动ip伪装 |
| /in/iptables -t nat -A POSTROUTING -o $EXIF -s $EXNET -j MASQUERADE |
2) 增加可执行权限
# chmod +x /usr/local/nat/nat.sh
4. 大功告成
1) Linux主机配置完成, 现在只需重新启动一下刚才的配置:
# servie network restart
# /usr/local/nat/nat.sh
2) 为了使得开机即可运行, 可在 /etc/rc.d/rc.local 文件加入相应的命令:
# echo “/usr/local/nat/nat.sh” >> /etc/rc.d/rc.local
5. 配置客户机(可以是windows或linux等其它系统)
1. network 设定需要为: 192.168.50.0
2. broadcast 设定需要为: 192.168.50.255
3. netmask 设定需要为 255.255.255.0
4. IP 设定需要为 192.168.50.1 ~ 192.168.50.254 之一, 且『不能重复』
5. Gateway 或者要设定为你的 Linux 的对内 IP , 以我的例子来说, 就是
192.168.50.1
6. DNS 的设定: 这个最容易出错了, DNS 设定需要是 ISP 给你的 DNS
IP, 如果不知道的话, 可以填入 168.95.1.1 或者是
139.175.10.20 这一个 SeedNet 的 DNS 即可!千万不要设定为 192.168.1.2
Linux安全配置步骤简述
一、磁盘分区
1、如果是新安装系统,对磁盘分区应考虑安全性:
1)根目录(/)、用户目录(/home)、临时目录(/tmp)和/var目录应分开到不同的磁盘分区;
2)以上各目录所在分区的磁盘空间大小应充分考虑,避免因某些原因造成分区空间用完而导致系统崩溃;
2、对于/tmp和/var目录所在分区,大多数情况下不需要有suid属性的程序,所以应为这些分区添加nosuid属性;
方法一:修改/etc/fstab文件,添加nosuid属性字。例如:
/dev/hda2 /tmp ext2 exec,dev,nosuid,rw 0 0
^^^^^^
方法二:如果对/etc/fstab文件操作不熟,建议通过linuxconf程序来修改。
* 运行linuxconf程序;
* 选择”File systems”下的”Access local drive”;
* 选择需要修改属性的磁盘分区;
* 选择”No setuid programs allowed”选项;
* 根据需要选择其它可选项;
* 正常退出。裂败(一般会提示重新mount该分区)
二、安装
1、对于非测试主机,不应安装过多的软件包。这样可以降低因软件包而导致出现安全漏洞的可能性。
2、对于非测试主机,在选择主机启动服务时不应选择非必需的服务。例如routed、ypbind等。
三、安全配置与增强
内核升级。起码要升级至2.2.16以上版本。
GNU libc共享库升级。(警告:如果没有经验,不可轻易尝试。可暂缓。)
关闭危险的网络服务。echo、chargen、shell、login、finger、NFS、RPC等
关闭非必需的网络服务。talk、ntalk、pop-2等
常见网络服务安全配置与升级
确保网络服务所使用版本为当前最新和最安全的版本。
取消匿名FTP访问
去除非必需的suid程序
使用tcpwrapper
使用ipchains防火墙
日志系统syslogd
一些细节:
1.操作系统内部的log file是检测是否有网络入侵的重要线索,当然这个假定你的logfile不被侵入者所破坏,如果你有台服务器用专线直接连到Internet上,这意味着你的IP地址是永久固定的地址,你会发现有很多人对你的系统做telnet/ftp登录尝试,试着运行#more /var/log/secure | grep refused 去检查。
2. 限制具有SUID权限标志的程序数量,具有该权限标志的程序以root身份运行,是一个潜在的安全漏洞,当然,有些程序是必须要具有该标志的,象passwd程序。
3.BIOS安全。设置BIOS密码且修改引导次序禁止从软盘启动系统。
4. 用户口令。用户口令是Linux安全的一个最基本的起点,很多人使用的用户口令就是简单的‘password’,这等于给侵入者敞开了大门,虽然从理论上说没有不能确解的用户口令,只要有足够的时间和资源可以利用。比较好的用户口令是镇源山那些只有他自己能够容易记得御中并理解的一串字符,并且绝对不要在任何地方写出来。
5./etc/exports 文件。如果你使用NFS网络文件系统服务,那么确保你的/etc/exports具有最严格的存取权限设置,不意味着不要使用任何通配符,不允许root写权限,mount成只读文件系统。编辑文件/etc/exports并且加:例如:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
/dir/to/export 是你想输出的目录,host.mydomain.com是登录这个目录的机器名,
ro意味着mount成只读系统,root_squash禁止root写入该目录。
为了让上面的改变生效,运行/usr/in/exportfs -a
6.确信/etc/inetd.conf的所有者是root,且文件权限设置为600 。
# chmod 600 /etc/inetd.conf
ENSURE that the owner is root.
# stat /etc/inetd.conf
File: “/etc/inetd.conf”
Size: 2869 Filetype: Regular File
Mode: (0600/-rw) Uid: ( 0/ root) Gid: ( 0/ root)
Device: 8,6 Inode:Links: 1
Access: Wed Sep 22 16:24:(00000.00:10:44)
Modify: Mon Sep 20 10:22:(00002.06:12:16)
Change:Mon Sep 20 10:22:(00002.06:12:16)
编辑/etc/inetd.conf禁止以下服务:
ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger,
auth, etc. 除非你真的想用它。
特别是禁止那些r命令.如果你用ssh/scp,那么你也可以禁止掉telnet/ftp。
为了使改变生效,运行#killall -HUP inetd
你也可以运行#chattr +i /etc/inetd.conf使该文件具有不可更改属性。
只有root才能解开,用命令
#chattr -i /etc/inetd.conf
7. TCP_WRAPPERS
默认地,Redhat Linux允许所有的请求,用TCP_WRAPPERS增强你的站点的安全性是举手
之劳,你可以放入
“ALL: ALL”到/etc/hosts.deny中禁止所有的请求,然后放那些明确允许的请求到
/etc/hosts.allow中,如:
sshd: 192.168.1.10/255.255.255.0 gate.openarch.com
对IP地址192.168.1.10和主机名gate.openarch.com,允许通过ssh连接。
配置完了之后,用tcpdchk检查
# tcpdchk
tcpchk是TCP_Wrapper配置检查工具,
它检查你的tcp wrapper配置并报告所有发现的潜在/存在的问题。
8. 别名文件aliases
编辑别名文件/etc/aliases(也可能是/etc/mail/aliases),移走/注释掉下面的行。
# Basic system aliases — these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
#games: root ?remove or comment out.
#ingres: root ?remove or comment out.
nobody: root
#system: root ?remove or comment out.
#toor: root ?remove or comment out.
#uucp: root ?remove or comment out.
# Well-known aliases.
#manager: root ?remove or comment out.
#dumper: root ?remove or comment out.
#operator: root ?remove or comment out.
# trap decode to catch security attacks
#decode: root
# Person who should get root’s mail
#root: marc
最后更新后不要忘记运行/usr/bin/newaliases,使改变生效。
9.阻止你的系统响应任何从外部/内部来的ping请求。
既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行。
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
10. 不要显示出操作系统和版本信息。
如果你希望某个人远程登录到你的服务器时不要显示操作系统和版本信息,你能改变
/etc/inetd.conf中的一行象下面这样:
telnet stream tcp nowait root /usr/in/tcpd in.telnetd -h
加-h标志在最后使得telnet后台不要显示系统信息,而仅仅显示login:
11.The /etc/host.conf file
编辑host.conf文件(vi /etc/host.conf)且加下面的行:
# Lookup names via DNS first then fall back to /etc/hosts.
order bind,hosts
# We don’t have machines with multiple IP addresses on the same card
(like virtual server,IP Aliasing).
multi off
# Check for IP address spoofing.
nospoof on
IP Spoofing: IP-Spoofing is a security exploit that works by tricking
computers in a trust relationship that you are someone that you really aren’t.
12. The /etc/securetty file
该文件指定了允许root登录的tty设备,/etc/securetty被/bin/login程序读取,它的
格式是一行一个被允许的名字列表,如你可以编辑/etc/securetty且注释出下面的行。
tty1
#tty2
#tty3
#tty4
#tty5
#tty6
#tty7
#tty8
-意味着root仅仅被允许在tty1终端登录。
13. 特别的帐号
禁止所有默认的作系统本身启动的且不需要的帐号,当你之一次装上系统时就应该做此检查,Linux提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越容易受到攻击。
为删除你系统上的用户,用下面的命令:
# userdel username
为删除你系统上的组用户帐号,用下面的命令:
# groupdel username
在终端上打入下面的命令删掉下面的用户。
# userdel adm
# userdel lp
# userdel sync
# userdel shutdown
# userdel halt
# userdel mail
如果你不用sendmail服务器,procmail.mailx,就删除这个帐号。
# userdel news
# userdel uucp
# userdel operator
# userdel games
如果你不用X windows 服务器,就删掉这个帐号。
# userdel gopher
# userdel ftp
如果你不允许匿名FTP,就删掉这个用户帐号。
===
打入下面的命令删除组帐号
# groupdel adm
# groupdel lp
# groupdel mail
如不用Sendmail服务器,删除这个组帐号
# groupdel news
# groupdel uucp
# groupdel games
如你不用X Windows,删除这个组帐号
# groupdel dip
# groupdel pppusers
# groupdel popusers
如果你不用POP服务器,删除这个组帐号
# groupdel slipusers
====
用下面的命令加需要的用户帐号
# useradd username
用下面的命令改变用户口令
# passwd username
用chattr命令给下面的文件加上不可更改属性。
# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group
# chattr +i /etc/gshadow
14. 阻止任何人su作为root.
如果你不想任何人能够su作为root,你能编辑/etc/pam.d/su加下面的行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=isd
意味着仅仅isd组的用户可以su作为root.
然后,如果你希望用户admin能su作为root.就运行下面的命令。
# usermod -G10 admin
16. 资源限制
对你的系统上所有的用户设置资源限制可以防止DoS类型攻击(denial of service attacks)
如更大进程数,内存数量等。例如,对所有用户的限制象下面这样:
编辑/etc/security/limits.con加:
* hard core 0
* hard rss 5000
* hard nproc 20
你也必须编辑/etc/pam.d/login文件加/检查这一行的存在。
session required /lib/security/pam_limits.so
上面的命令禁止core files“core 0”,限制进程数为“nproc 50“,且限制内存使用
为5M“rss 5000”。
17. The /etc/lilo.conf file
a) Add: restricted
加这一行到每一个引导映像下面,就这表明如果你引导时用(linux single),则需要一个password.
b) Add: password=some_password
当与restricted联合用,且正常引导时,需要用户输入密码,你也要确保lilo.conf
文件不能被不属于root的用户可读,也免看到密码明文。下面是例子:
编辑/etc/lilo.conf加:
====
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
Default=linux
restricted ?add this line.
password=some_password ?add this line.
image=/boot/vmlinuz-2.2.12-20
label=linux
initrd=/boot/initrd-2.2.12-10.img
root=/dev/sda6
read-only
# chmod 600 /etc/lilo.conf (不再能被其他用户可读).
# /in/lilo -v (更新lilo配置).
# chattr +i /etc/lilo.conf(阻止该文件被修改)
18. 禁止 Control-Alt-Delete 重启动机器命令
# vi /etc/inittab
ca::ctrlaltdel:/in/shutdown -t3 -r now
To
#ca::ctrlaltdel:/in/shutdown -t3 -r now
# /in/init q
19. 重新设置/etc/rc.d/init.d/目录下所有文件的许可权限
# chmod -R 700 /etc/rc.d/init.d/*
仅仅root可以读,写,执行上述所有script file.
20. The /etc/rc.d/rc.local file
默认地,当你login到linux server时,它告诉你linux版本名,内核版本名和服务器
主机名。它给了你太多的信息,如果你就希望得到提示login: ,编辑
/etc/rc.d/rc.local放#在下面的行前面:
—
# This will overwrite /etc/issue at every boot. So, make any changes you
# want to make to /etc/issue here or you will lose them when you reboot.
#echo “” > /etc/issue
#echo “$R” >> /etc/issue
#echo “Kernel $(uname -r) on $a $(uname -m)” >> /etc/issue
#
#cp -f /etc/issue /etc/issue.net
#echo >> /etc/issue
—
然后,做下面的事情:
# rm -f /etc/issue
# rm -f /etc/issue.net
# touch /etc/issue
# touch /etc/issue.net
21. 被root拥有的程序的位。
移走那些被root拥有程序的s位标志,当然有些程序需要这个,用命令‘chmod a-s’完成这个。
注:前面带(*)号的那些程序一般不需要拥有s位标志。
# find / -type f \( -permo -perm\) \-exec ls –lg {} \;
-rwsr-xr-x 1 root rootMar/usr/bin/at
*-rwsr-xr-x 1 root rootApr 15 20:03 /usr/bin/chage
*-rwsr-xr-x 1 root rootApr 15 20:03 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 3208 Mar/usr/bin/disable-paste
-rwxr-sr-x 1 root manApr/usr/bin/man
-r-s–x–x 1 root rootApr 14 17:21 /usr/bin/passwd
-rws–x–x 2 root rootApr/usr/bin/suidperl
-rws–x–x 2 root rootApr/usr/bin/sperl5.00503
-rwxr-sr-x 1 root mailApr/usr/bin/lockfile
-rwsr-sr-x 1 root mailApr/usr/bin/procmail
-rwsr-xr-x 1 root rootAug 27 11:06 /usr/bin/crontab
-rwxr-sr-x 1 root slocateApr 19 14:55 /usr/bin/slocate
*-r-xr-sr-x 1 root tty 6212 Apr 17 11:29 /usr/bin/wall
*-rws–x–x 1 root rootApr 17 12:57 /usr/bin/chfn
*-rws–x–x 1 root rootApr 17 12:57 /usr/bin/chsh
*-rws–x–x 1 root root 5576 Apr 17 12:57 /usr/bin/newgrp
*-rwxr-sr-x 1 root tty 8392 Apr 17 12:57 /usr/bin/write
-rwsr-x— 1 root squidOct 7 14:48 /usr/lib/squid/pinger
-rwxr-sr-x 1 root utmpJun 9 09:30 /usr/in/utempter
*-rwsr-xr-x 1 root root 5736 Apr 19 15:39 /usr/in/usernetctl
*-rwsr-xr-x 1 root binJul 6 09:35 /usr/in/traceroute
-rwsr-sr-x 1 root rootApr 19 16:38 /usr/in/sendmail
-rwsr-xr-x 1 root rootApr 16 18:49 /usr/libexec/pt_chown
-rwsr-xr-x 1 root rootApr 13 14:58 /bin/su
*-rwsr-xr-x 1 root rootApr 17 15:16 /bin/mount
*-rwsr-xr-x 1 root rootApr 17 20:26 /bin/umount
*-rwsr-xr-x 1 root rootJul 6 09:33 /bin/ping
-rwsr-xr-x 1 root rootApr 17 12:57 /bin/login
*-rwxr-sr-x 1 root root 3860 Apr 19 15:39 /in/netreport
-r-sr-xr-x 1 root rootApr 17 16:26 /in/pwdb_chkpwd
# chmod a-s /usr/bin/chage
# chmod a-s /usr/bin/gpasswd
# chmod a-s /usr/bin/wall
# chmod a-s /usr/bin/chfn
# chmod a-s /usr/bin/chsh
# chmod a-s /usr/bin/newgrp
# chmod a-s /usr/bin/write
# chmod a-s /usr/in/usernetctl
# chmod a-s /usr/in/traceroute
# chmod a-s /bin/mount
# chmod a-s /bin/umount
# chmod a-s /bin/ping
# chmod a-s /in/netreport
你可以用下面的命令查找所有带s位标志的程序:
# find / -type f \( -permo -perm\) \-exec ls -lg {} \;
> suid-sgid-results
把结果输出到文件suid-sgid-results中。
为了查找所有可写的文件和目录,用下面的命令:
# find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \; > ww-files-results
# find / -type d \( -perm -2 -o -perm -20 \) -exec ls -ldg {} \; > ww-directories-results
用下面的命令查找没有拥有者的文件:
# find / -nouser -o -nogroup > unowed-results
用下面的命令查找所有的.rhosts文件:
# find /home -name .rhosts > rhost-results
建议替换的常见网络服务应用程序
WuFTPD
WuFTD从1994年就开始就不断地出现安全漏洞,黑客很容易就可以获得远程root访问(Remote Root Access)的权限,而且很多安全漏洞甚至不需要在FTP服务器上有一个有效的帐号。最近,WuFTP也是频频出现安全漏洞。
它的更好的替代程序是ProFTPD。ProFTPD很容易配置,在多数情况下速度也比较快,而且它的源代码也比较干净(缓冲溢出的错误比较少)。有许多重要的站点使用ProFTPD。sourceforge.net就是一个很好的例子(这个站点共有3,000个开放源代码的项目,其负荷并不小啊!)。一些Linux的发行商在它们的主FTP站点上使用的也是ProFTPD,只有两个主要Linux的发行商(SuSE和Caldera)使用WuFTPD。
ProFTPD的另一个优点就是既可以从inetd运行又可以作为单独的daemon运行。这样就可以很容易解决inetd带来的一些问题,如:拒绝服务的攻击(denial of service attack),等等。系统越简单,就越容易保证系统的安全。WuFTPD要么重新审核一遍全部的源代码(非常困难),要么完全重写一遍代码,否则WuFTPD必然要被ProFTPD代替。
Telnet
Telnet是非常非常不安全的,它用明文来传送密码。它的安全的替代程序是OpenSSH。
OpenSSH在Linux上已经非常成熟和稳定了,而且在Windows平台上也有很多免费的客户端软件。Linux的发行商应该采用OpenBSD的策略:安装OpenSSH并把它设置为默认的,安装Telnet但是不把它设置成默认的。对于不在美国的Linux发行商,很容易就可以在Linux的发行版中加上OpenSSH。美国的Linux发行商就要想一些别的办法了(例如:Red Hat在德国的FTP服务器上(ftp.redhat.de)就有最新的OpenSSH的rpm软件包)。
Telnet是无可救药的程序。要保证系统的安全必须用OpenSSH这样的软件来替代它。
Sendmail
最近这些年,Sendmail的安全性已经提高很多了(以前它通常是黑客重点攻击的程序)。然而,Sendmail还是有一个很严重的问题。一旦出现了安全漏洞(例如:最近出现的Linux内核错误),Sendmail就是被黑客重点攻击的程序,因为Sendmail是以root权限运行而且代码很庞大容易出问题。
几乎所有的Linux发行商都把Sendmail作为默认的配置,只有少数几个把Postfix或Qmail作为可选的软件包。但是,很少有Linux的发行商在自己的邮件服务器上使用Sendmail。SuSE和Red Hat都使用基于Qmail的系统。
Sendmail并不一定会被别的程序完全替代。但是它的两个替代程序Qmail和Postfix都比它安全、速度快,而且特别是Postfix比它容易配置和维护。
su
su是用来改变当前用户的ID,转换成别的用户。你可以以普通用户登录,当需要以root身份做一些事的时候,只要执行“su”命令,然后输入root的密码。su本身是没有问题的,但是它会让人养成不好的习惯。如果一个系统有多个管理员,必须都给他们root的口令。
su的一个替代程序是sudo。Red Hat 6.2中包含这个软件。sudo允许你设置哪个用户哪个组可以以root身份执行哪些程序。你还可以根据用户登录的位置对他们加以限制(如果有人“破”了一个用户的口令,并用这个帐号从远程计算机登录,你可以限制他使用sudo)。Debian也有一个类似的程序叫super,与sudo比较各有优缺点。
让用户养成良好的习惯。使用root帐号并让多个人知道root的密码并不是一个好的习惯。这就是
www.apache.org
被入侵的原因,因为它有多个系统管理员他们都有root的特权。一个乱成一团的系统是很容易被入侵的。
named
大部分Linux的发行商都解决了这个问题。named以前是以root运行的,因此当named出现新的漏洞的时候,很容易就可以入侵一些很重要的计算机并获得root权限。现在只要用命令行的一些参数就能让named以非root的用户运行。而且,现在绝大多数Linux的发行商都让named以普通用户的权限运行。命令格式通常为:named -u -g
INN
在INN的文档中已经明确地指出:“禁止这项功能(verifycancels),这项功能是没有用的而且将被除掉”。大约在一个月前,一个黑客发布了当“verifycancels”生效的时候入侵INN的方法。Red Hat是把“verifycancels”设为有效的。任何setuid/setgid的程序或网络服务程序都要正确地安装并且进行检查以保证尽量没有安全漏洞。
安全守则
1. 废除系统所有默认的帐号和密码。
2. 在用户合法性得到验证前不要显示公司题头、在线帮助以及其它信息。
3. 废除“黑客”可以攻击系统的网络服务。
4. 使用6到8位的字母数字式密码。
5. 限制用户尝试登录到系统的次数。
6. 记录违反安全性的情况并对安全记录进行复查。
7. 对于重要信息,上网传输前要先进行加密。
8. 重视专家提出的建议,安装他们推荐的系统“补丁”。
9. 限制不需密码即可访问的主机文件。
10.修改网络配置文件,以便将来自外部的TCP连接限制到最少数量的端口。不允许诸如tftp,sunrpc,printer,rlogin或rexec之类的协议。
11.用upas代替sendmail。sendmail有太多已知漏洞,很难修补完全。
12.去掉对操作并非至关重要又极少使用的程序。
13.使用chmod将所有系统目录变更为711模式。这样,攻击者们将无法看到它们当中有什么东西,而用户仍可执行。
14.只要可能,就将磁盘安装为只读模式。其实,仅有少数目录需读写状态。
关于linux nat类型检测的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
成都网站建设选创新互联(☎:028-86922220),专业从事成都网站制作设计,高端小程序APP定制开发,成都网络营销推广等一站式服务。
新闻名称:「了解LinuxNAT类型检测的方法」(linuxnat类型检测)
本文网址:http://www.mswzjz.com/qtweb/news28/171478.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联