原文:http://www.weiruoyu.cn/?p=391


这个很简单,有两种方法,但是做这个之前要做一件事情,先随便开启一个ssh端口,否则一旦设置错误就麻烦了,如果的服务器在外地IDC机房,你哭的心都有了,呵呵。

方法一:

1.开启一个ssh端口

[root@localhost ~]# vi /etc/ssh/sshd_config

把#Port 22
修改为

Port 22
Port 2222

[root@tomcat231 ~]# service sshd restart

防火墙开启2222端口(如果开启了selinux,记得一定要关闭)

去测试一下2222端口是否开启,这点很重要

2.设置方法一:只允许192.168.5.231访问

运行完下面这一行,你已经不能访问了,改用2222去设置下面一行

#iptables -I INPUT -p tcp --dport 22 -j DROP

用2222端口去运行下面一行,运行完,22端口就可以使用
#iptables -I INPUT -s 192.168.5.231 -p tcp --dport 22 -j ACCEPT

保存

[root@localhost ~]# service iptables save

重启

[root@localhost ~]# service iptables restart

方法二

更详细的参考:http://www.weiruoyu.cn/?p=391


只允许192.168.5.231访问22端口

[root@localhost ~]# vi /etc/sysconfig/iptables

在:RH-Firewall-1-INPUT - [0:0]添加下面两行
-A INPUT -s 192.168.5.231 -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 22 -j DROP

然后重启

[root@localhost ~]# service iptables restart

4.记得关闭2222端口。

修改vi /etc/ssh/sshd_config

#Port 22
#Port 2222

然后重启sshd服务

=================================

方法三:


1.vi /etc/sysconfig/iptables添加一行

下面是只允许某个IP访问xx端口

 
  
  1. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 389 -j ACCEPT

2.重启生效

#service iptables restart

3.进行查看

 
  
  1. iptables -L -n --line-numbers

如果删除

 
  
  1. iptables -D INPUT 8

参考:http://www.weiruoyu.cn/?p=391


参考

-A 向规则链中添加一条规则,默认被添加到末尾

-T指定要操作的表,默认是filter

-D从规则链中删除规则,可以指定序号或者匹配的规则来删除

-R进行规则替换

-I插入一条规则,默认被插入到首部

-F清空所选的链,重启后恢复

-N新建用户自定义的规则链

-X删除用户自定义的规则链

-p用来指定协议可以是tcp,udp,icmp等也可以是数字的协议号,

-s指定源地址

-d指定目的地址

-i进入接口

-o流出接口

-j采取的动作,accept,drop,snat,dnat,masquerade

--sport源端口

--dport目的端口,端口必须和协议一起来配合使用