linux下最直接限制ip訪問的方式有兩種:
1.使用hosts.allow和hosts.deny來設置ip白名單和黑名單,/etc/目錄下.
復制代碼
優先級為先檢查hosts.deny,再檢查hosts.allow,
后者設定可越過前者限制,
例如:
1.限制所有的ssh,
除非從216.64.87.0 - 127上來。
hosts.deny:
in.sshd:ALL
hosts.allow:
in.sshd:216.64.87.0/255.255.255.128
2.封掉216.64.87.0 - 127的telnet
hosts.deny
in.sshd:216.64.87.0/255.255.255.128
3.限制所有人的TCP連接,除非從216.64.87.0 - 127訪問
hosts.deny
ALL:ALL
hosts.allow
ALL:216.64.87.0/255.255.255.128
4.限制216.64.87.0 - 127對所有服務的訪問
hosts.deny
ALL:216.64.87.0/255.255.255.128
其中冒號前面是TCP daemon的服務進程名稱,通常系統
進程在/etc/inetd.conf中指定,比如in.ftpd,in.telnetd,in.sshd
其中IP地址范圍的寫法有若干中,主要的三種是:
1.網絡地址--子網掩碼方式:
216.64.87.0/255.255.255.0
2.網絡地址方式(我自己這樣叫,呵呵)
216.64.(即以216.64打頭的IP地址)
3.縮略子網掩碼方式,既數一數二進制子網掩碼前面有多少個“1”比如:
216.64.87.0/255.255.255.0 -- 216.64.87.0/24
設置好后,要重新啟動
# /etc/rc.d/init.d/xinetd restart
# /etc/rc.d/init.d/network restart
復制代碼
2.使用iptables命令
復制代碼
單個IP的命令是
iptables -I INPUT -s 81.241.219.171 -j DROP
封IP段的命令是
iptables -I INPUT -s 97.47.225.0/16 -j DROP
iptables -I INPUT -s 97.47.225.0/16 -j DROP
iptables -I INPUT -s 97.47.225.0/16 -j DROP
封整個段的命令是
iptables -I INPUT -s 97.47.225.0/8 -j DROP
封幾個段的命令是
iptables -I INPUT -s 97.47.225.0/24 -j DROP
iptables -I INPUT -s 97.47.225.0/24 -j DROP
服務器啟動自運行
有三個方法:
1、把它加到/etc/rc.local中
2、vi /etc/sysconfig/iptables可以把你當前的iptables規則放到/etc/sysconfig/iptables中,系統啟動iptables時自動執行。
3、service iptables save 也可以把你當前的iptables規則放/etc/sysconfig/iptables中,系統啟動iptables時自動執行。
后兩種更好些,一般iptables服務會在network服務之前啟來,更安全
解封:
iptables -L INPUT
iptables -L --line-numbers 然后iptables -D INPUT 序號
iptables 限制ip訪問
通過iptables限制9889端口的訪問(只允許192.168.1.100、192.168.1.101、192.168.1.102),其他ip都禁止訪問
iptables -I INPUT -p tcp --dport 9889 -j DROP
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.101 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.102 -p tcp --dport 9889 -j ACCEPT
復制代碼
優先級為先檢查hosts.deny,再檢查hosts.allow,
后者設定可越過前者限制,
例如:
1.限制所有的ssh,
除非從216.64.87.0 - 127上來。
hosts.deny:
in.sshd:ALL
hosts.allow:
in.sshd:216.64.87.0/255.255.255.128
2.封掉216.64.87.0 - 127的telnet
hosts.deny
in.sshd:216.64.87.0/255.255.255.128
3.限制所有人的TCP連接,除非從216.64.87.0 - 127訪問
hosts.deny
ALL:ALL
hosts.allow
ALL:216.64.87.0/255.255.255.128
4.限制216.64.87.0 - 127對所有服務的訪問
hosts.deny
ALL:216.64.87.0/255.255.255.128
其中冒號前面是TCP daemon的服務進程名稱,通常系統
進程在/etc/inetd.conf中指定,比如in.ftpd,in.telnetd,in.sshd
其中IP地址范圍的寫法有若干中,主要的三種是:
1.網絡地址--子網掩碼方式:
216.64.87.0/255.255.255.0
2.網絡地址方式(我自己這樣叫,呵呵)
216.64.(即以216.64打頭的IP地址)
3.縮略子網掩碼方式,既數一數二進制子網掩碼前面有多少個“1”比如:
216.64.87.0/255.255.255.0 -- 216.64.87.0/24
設置好后,要重新啟動
# /etc/rc.d/init.d/xinetd restart
# /etc/rc.d/init.d/network restart