CEMNTOS6. x 에서 Freeradius + Mysqsl 설정 서버 원 키 설치 스 크 립 트

앞 에 쓰기:
현재 스 크 립 트 에 몇 가지 문제 가 있 습 니 다.
1. mysql 클 라 우 드 설치
2. mysql 비밀 번 호 는 특수 문자 (예: '$'/'\' 등) 를 포함 할 수 없습니다. ),그렇지 않 으 면 발생 하 는 스 크 립 트 오 류 는 관련 설정 을 스스로 수정 하 십시오. 이 문 제 를 어떻게 수정 하 는 지 아 는 사람 이 있 으 면 댓 글로 알려 주 십시오. 감사합니다!!!
3. 자체 홈 페이지 에 freeradius - server - 2.2.6. tar. gz 를 다운로드 하여 스 크 립 트 와 같은 디 렉 터 리 에 두 고 스 크 립 트 를 실행 하 십시오.
4. 본인 은 centos6. X 에서 테스트 에 성 공 했 습 니 다. 그리고 다른 시스템 에서 스스로 설정 을 수정 하 십시오.
5. 스 크 립 트 에 열 린 포트 명령 이 포함 되 어 있 지 않 습 니 다. 관련 포트 를 스스로 열 어 주 십시오: 1812, 1813
스 크 립 트 는 다음 과 같 습 니 다:
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

# Check if user is root
if [ $(id -u) != "0" ]; then
    echo "Error: You must be root to run this script, please use root to install lnmp"
    exit 1
fi

clear
echo "========================================================================="
echo "freeradois + mysql V1.1 for CentOS/RadHat Linux Server, Written by Hot_VC"
echo "========================================================================="
echo "A tool to auto-compile & install freeradius+mysql  on Linux "
echo "========================================================================="
cur_dir=$(pwd)
echo "==========================="
isinstallmysql="n"
echo "Install MySQL 5.1.73,Please input y"
echo "Install MySQL 5.1.73,Please input n or press Enter"
echo "Is install Mysql"
read -p "(Please input y , n):" isinstallmysql

case "$isinstallmysql" in
	y|Y|Yes|YES|yes|yES|yEs|YeS|yeS)
		echo "You will install MySQL"
		isinstallmysql="y"
		;;
	n|N|No|NO|no|nO)
		echo "You will  not install MySQL"
		isinstallmysql="n"
		;;
	*)
		echo "INPUT error,You will not install MySQL "
		isinstallmysql="n"
esac
echo "MySQL root password:$isinstallmysql"
#set mysql root password
echo "==========================="
mysqlrootpwd="root"
echo "Please input the root password of mysql:"
read -p "(Default password: root):" mysqlrootpwd
if [ "$mysqlrootpwd" = "" ]; then
	mysqlrootpwd="root"
fi

echo "==========================="
echo "MySQL root password:$mysqlrootpwd"
echo "==========================="
echo ""
echo ""
echo "==========================="
echo "Install Dependent Libraries "
echo "==========================="
yum -y install pam-devel openssl-devel make gcc gcc-c++ ncurses-devel libtool cmake bison-devel mysql-devel
echo "==========================="
echo "Install Dependent Libraries end"
echo "==========================="
echo ""
echo ""

echo "==========================="
echo "Install MySql"
echo "==========================="
echo ""
echo ""
if [ "$isinstallmysql" = "y" ]; then
	yum install -y mysql-server
else
	echo "MySQL will not install"
fi
echo ""
echo ""
echo "==========================="
echo "Install Mysql complete"
echo "==========================="
echo ""
echo ""
echo "==========================="
echo "Config Mysql "
echo "==========================="
echo ""
echo ""
service mysqld start
if [ "$isinstallmysql" = "y" ]; then
	mysqladmin -uroot password "$mysqlrootpwd"
fi
echo ""
echo ""
echo "==========================="
echo "Config Mysql complete"
echo "==========================="
echo ""
echo ""
echo "==========================="
echo "Install freeradius"
echo "==========================="
echo ""
echo ""
if [ -s freeradius-server-2.2.6.tar.gz ]; then
	tar zxf freeradius-server-2.2.6.tar.gz     
	cd freeradius-server-2.2.6
	./configure --prefix=/usr --sysconfdir=/etc 
	make && make install
	if [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '64' ] ; then
		echo "include /usr/lib" >> /etc/ld.so.conf
		ldconfig
	fi
	sed -i "s/allow_vulnerable_openssl = no/allow_vulnerable_openssl = yes/g" /etc/raddb/radiusd.conf

	#Troubleshooting:
	#rlm_sql (sql): Could not link driver rlm_sql_mysql: rlm_sql_mysql.so: cannot open shared object file: No such file or directory 
	cd src/modules/rlm_sql/drivers/rlm_sql_mysql/
	./configure --with-mysql-dir=/var/lib/mysql --with-mysql-lib-dir=/usr/lib64/mysql 
	make && make install
	cd ../../../../..
	cd ..
else 
	echo "Error: freeradius-server-2.2.6.tar.gz not found!!!please  chectout files"
fi

echo "==========================="
echo "Install freeradius complete"
echo "==========================="
echo ""
echo ""

#Mod /etc/raddb/radiusd.conf
sed -i "743s/#/ /g" /etc/raddb/radiusd.conf
sed -i "568s/no/yes/g" /etc/raddb/radiusd.conf
#Mod /etc/raddb/sql.conf
sed -i "38s/login = \"radius\"/login = \"root\"/g" /etc/raddb/sql.conf
sed -i "39d" /etc/raddb/sql.conf
sed -i "38a password = \"$mysqlrootpwd\"" /etc/raddb/sql.conf
sed -i "170s/files/#files/g" /etc/raddb/sites-enabled/default
sed -i "177s/#//g" /etc/raddb/sites-enabled/default
sed -i "372s/files/#files/g" /etc/raddb/sites-enabled/default
sed -i "406s/#//g" /etc/raddb/sites-enabled/default
sed -i "454s/#//g" /etc/raddb/sites-enabled/default
sed -i "475s/#//g" /etc/raddb/sites-enabled/default
sed -i "577s/#//g" /etc/raddb/sites-enabled/default


mysql -uroot -p$mysqlrootpwd <<EOF
create database radius;
EOF
mysql -uroot -p$mysqlrootpwd radius </etc/raddb/sql/mysql/schema.sql;
mysql -uroot -p$mysqlrootpwd radius </etc/raddb/sql/mysql/nas.sql;
mysql -uroot -p$mysqlrootpwd radius </etc/raddb/sql/mysql/ippool.sql;
mysql -uroot -p$mysqlrootpwd radius </etc/raddb/sql/mysql/cui.sql;
mysql -uroot -p$mysqlrootpwd radius </etc/raddb/sql/mysql/wimax.sql;
#Mod /etc/raddb/clients.conf
cat >>/etc/raddb/clients.conf <<EOF
client 0.0.0.0/0 {
        secret = $freeradiussecret
        shortname = remote
}
EOF
echo ""
echo ""
echo "==========================="
echo "Install freeradius complete"
echo "==========================="

테스트 성공 여부:
my sql 에 들 어가 radius 라 이브 러 리 에 있 는 radcheck 표 에 데 이 터 를 삽입 합 니 다:
INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('test','Cleartext-Password',':=','test');

그리고 radius 를 시작 합 니 다.
root@localhost auto-install]# radiusd

다른 창 열기:
<pre name="code" class="html">[root@localhost auto-install]# radtest test test 127.0.0.1 1812 testing123

Access - Accept 문자 가 나타 나 면 성공 을 표시 합 니 다.
nding Access-Request of id 253 to 127.0.0.1 port 1812 User-Name = "test"User-Password = "test"NAS-IP-Address = 127.0.0.1 NAS-Port = 1812 Message-Authenticator = 0x00000000000000000000000000000000 rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=253, length=20

좋은 웹페이지 즐겨찾기