/usr/share/doc/HOWTO/fr-html/PPP-HOWTO.html is in doc-linux-fr-html 2013.01-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Linux PPP Howto</title>
</head>
<body>
<h1>Linux PPP Howto</h1>
<h2>par Robert Hart, hart@interweft.com.au</h2>
Version 3.0, 31 mars 1997
<hr>
<em>(Adaptation française par Antoine Levavasseur
<code>levavass@efrei.fr</code>, le 22 octobre 1997). Ce document
montre comment connecter votre PC Linux à un serveur PPP,
comment utiliser PPP pour relier deux réseaux locaux
ensemble, et fournit une méthode pour configurer votre
machine Linux comme serveur PPP. Ce document fournit
également une aide pour déboguer les connections PPP
qui ne fonctionnent pas.</em>
<hr>
<p><b>Copyright</b></p>
<p>Ce document est distribué sous les contraintes de la GPL
(GNU Public Licence).</p>
<p><b>Distribution</b></p>
<p>Le document original sera posté dans
comp.os.linux.answers lorsque de nouvelles versions du document
arriveront. Il est également disponible en HTML à
:</p>
<ul>
<li><a href="http://sunsite.unc.edu/mdw/linux.html#howto">Linux
Howto Index</a></li>
<li><a href=
"http://www.interweft.com.au/other/ppp-howto/ppp-howto.html">PPP-HOWTO</a></li>
</ul>
<p>Les autres formats (SGML, ASCII, PostScript, DVI) sont
disponibles à <a href=
"ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats">Howtos -
other formats</a>.</p>
<p>Comme sunsite.unc.edu est très chargé, vous
êtes encouragés à utiliser un miroir plus
proche de chez vous. En particulier la version française de
ce HOWTO est posté régulièrement dans
fr.comp.os.linux.annonce, et est disponible sur ftp.lip6.fr et
http://www.freenix.fr/.</p>
<p><b>Remerciements</b></p>
<p>Un nombre important et croissant de personnes m'ont aidé
à préparer ce document. Remerciements spéciaux
à Al Longyear pour l'aide sur PPP lui-même (si il y a
des erreurs ici, ce sont les miennes et pas les siennes), Greg
Hankins (qui maintient les Howto Linux) et Debi Tackett (de Maximum
Access.com) pour ses nombreuses suggestions sur le style,
l'organisation du contenu, la logique et la clarté des
explications.</p>
<p>Pour finir, je remercie les nombreuses personnes qui m'ont
envoyé leurs commentaires par courrier électronique.
Comme tous les auteurs de HOWTO, la satisfaction d'aider est le
seul salaire que nous recevons, et cela nous suffit. En
écrivant ce HOWTO, je rembourse d'une certaine façon
la dette que je - et tous les autres utilisateurs Linux - dois aux
personnes qui écrivent et maintiennent le système
d'exploitation que nous avons choisi.</p>
<p><b>Traduction Française de ce document</b></p>
<p>La traduction du présent document PPP-Howto (et
précédemment PPP-FAQ) était assurée par
René Cougnenc. C'était l'un des premiers (si ce n'est
le premier) utilisateur de Linux en France alors que ce
n'était qu'un petit projet un peu fou lancé par Linus
Torvalds. René Cougnenc a participé au
développement de Linux et a assuré la traduction de
nombreux HOWTO et ouvrages sur Linux qui font encore
référence. Si vous utilisez Linux aujourd'hui c'est
sans doute un peu grâce à lui...<br>
Prendre ses pas dans la traduction de ce HOWTO était un peu
délicat car la barre était placée haut, et
j'espère que le lecteur que vous êtes ne sera pas
déçu par mon travail.<br>
Et si René nous entends là-haut, je suis sûr
qu'il lèvera avec nous son verre à la santé de
notre système d'exploitation favori ! :-)</p>
<p>Enfin merci à Thomas Parmelan pour la relecture et les
conseils sur la forme de la version française de ce
document.</p>
<h2><a name="s1">1. Introduction</a></h2>
<p>PPP (Point to Point Protocol) est un mécanisme qui permet
de faire fonctionner IP (Internet Procotol) et tous les autres
protocoles réseaux à travers une liaison série
- qui peut être une connexion série directe (avec un
câble null-modem), à travers une liaison par un
telnet, ou encore une liaison utilisant les modems et les lignes
téléphoniques (et bien sûr utilisant les lignes
numériques comme RNIS).</p>
<p>Avec PPP, vous pouvez connecter votre PC sous Linux à un
serveur PPP et accéder aux ressources réseau aux
quelles le serveur est connecté (presque) comme si vous
étiez directement connecté à ce
réseau.</p>
<p>Vous pouvez également configurer votre PC Linux comme un
serveur PPP, de cette façon, d'autres ordinateurs peuvent
appeler votre ordinateur et accéder aux ressources de votre
PC et/ou réseau local.</p>
<p>Comme PPP est un système qui marche dans les deux sens,
vous pouvez également utiliser PPP sur deux PC Linux pour
relier ensemble deux réseaux (ou un réseau local
à Internet), créant ainsi un réseau à
large domaine (WAN : Wide Area Network).</p>
<p>Une différence majeure entre PPP et une connexion
Ethernet est bien entendu la vitesse - une connexion Ethernet
standard offre à un débit maximal théorique de
10 Mbs (Mega - millions de bits par seconde), alors qu'une liaison
analogique par modem offre un maximum de 56 Kbs (kilo - millier de
bits par seconde).</p>
<p>Par conséquent, selon le type de votre connexion PPP, il
y aura des limitations sur l'utilisation des applications et des
services.</p>
<h2><a name="ss1.1">1.1 Clients et Serveurs</a></h2>
<p>PPP est un protocole strictement symétrique; il n'y a
(techniquement) aucune différence entre la machine qui
appelle et la machine qui est appelée. Cependant, pour des
raisons de clarté, il est intéressant de penser en
terme de <b>serveur</b> et <b>client</b>.</p>
<p>Quand vous appelez un site pour établir une connexion
PPP, vous êtes un <b>client</b>. La machine sur laquelle
vous-vous connectez est le <b>serveur</b>.</p>
<p>Quand vous configurez une machine Linux pour répondre aux
appels pour les connexion PPP, vous configurez un <b>serveur</b>
PPP.</p>
<p>Tous les PC Linux peuvent être à la fois serveur et
client PPP - même en même temps si vous avez plus d'un
port série (et d'un modem si nécessaire). Comme
décrit plus haut, il n'y a pas de réelle
différence entre les clients et les serveurs tant que l'on
utilise PPP et que la connexion est établie.</p>
<p>Ce document référence la machine qui initie
l'appel (qui le compose) comme le <b>CLIENT</b>, alors que la
machine qui répond au téléphone,
vérifie l'authentification de l'appel (en utilisant les noms
utilisateurs, les mots de passe et éventuellement d'autres
mécanismes) est référencée comme le
<b>SERVEUR</b>.</p>
<p>L'utilisation de PPP comme client pour relier une ou plusieurs
machines à Internet est probablement celle qui
intéresse une majorité de gens. Ils utiliseront alors
leur PC Linux comme client.</p>
<p>La procédure exposée dans ce document va vous
permettre d'établir et d'automatiser votre connexion
à Internet.</p>
<p>Ce document va également vous offrir un guide pour
permettre de configurer un <b>serveur PPP</b> sur votre PC Linux et
relier ensemble deux réseaux (avec le routage complet) en
utilisant PPP (cela est aussi appelé une liaison WAN - wide
area network).</p>
<h2><a name="ss1.2">1.2 Différences entre les distributions
Linux</a></h2>
<p>Il y a de nombreuses distributions Linux différentes qui
on leurs propres idiosyncrasies et façons de faire les
choses.</p>
<p>En particulier, il y a deux manières différentes
sur une machine Linux (ou Unix) de démarrer, configurer ses
interfaces et ainsi de suite.</p>
<p>Il y <b>l'initialisation BSD</b> et <b>l'initialisation SysV
system</b>. Si vous consultez certains forums de discussion Unix,
vous trouverez de temps en temps des guerres de religion entre les
partisans de chacun des deux systèmes. Si ce genre de chose
vous plaît, allez donc les rejoindre pour gâcher de la
bande passante avec eux !</p>
<p>Les distributions les plus utilisées sont sans doute
:</p>
<ul>
<li>Slackware<br>
qui utilise une initialisation système BSD</li>
<li>Red Hat (et son précédent associé
Caldera)<br>
qui utilise une initialisation SysV system (bien qu'un peu
modifiée)</li>
<li>Debian<br>
qui utilise une initialisation SysV system</li>
</ul>
<p>Les initialisations de type BSD conservent typiquement ces
fichiers dans <code>/etc/</code> et ces fichiers sont :</p>
<hr>
<pre>
/etc/rc
/etc/rc.local
/etc/rc.serial
(et parfois d'autres fichiers)
</pre>
<hr>
<p>Récemment, certaines initialisation systèmes BSD
se mettaient à utiliser un répertoire
<code>/etc/rc.d/</code> contenant les fichiers de démarrage
plutôt que de tout mettre dans <code>/etc</code>.</p>
<p>L'initialisation System V conserve ses fichiers d'initialisation
dans les répertoires <code>/etc/</code> ou
<code>/etc/rc.d</code> et un certain nombre de
sous-répertoires de ces derniers.</p>
<hr>
<pre>
drwxr-xr-x 2 root root 1024 Jul 6 15:12 init.d
-rwxr-xr-x 1 root root 1776 Feb 9 05:01 rc
-rwxr-xr-x 1 root root 820 Jan 2 1996 rc.local
-rwxr-xr-x 1 root root 2567 Jul 5 20:30 rc.sysinit
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc0.d
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc1.d
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc2.d
drwxr-xr-x 2 root root 1024 Jul 18 18:07 rc3.d
drwxr-xr-x 2 root root 1024 May 27 1995 rc4.d
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc5.d
drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc6.d
</pre>
<hr>
<p>Si vous essayez de chercher où votre interface et les
routes réseau associées sont configurées, vous
devez parcourir tous les fichiers pour parvenir à trouver
où sont les commandes correspondantes.</p>
<h2><a name="ss1.3">1.3 Outils de configuration spécifiques
aux distributions</a></h2>
<p>Dans certaines installations (par exemple Red Hat et Caldera),
il y a un système de configuration des PPP sous X Window. Ce
HOWTO ne traite pas de ces outils spécifiques aux
distributions. Si vous avez des problèmes avec ceux-ci,
contactez directement les distributeurs !</p>
<p>Pour les utilisateurs de Red Hat 4.x, il y a maintenant un
<a href="http://www.interweft.com.au/">Red Hat PPP-TIP</a> dans la
partie Linux ressources et également chez <a href=
"http://www.redhat.com/">Red Hat Software</a> dans la partie
support.</p>
<h2><a name="s2">2. Adresse IP</a></h2>
<p>Tout matériel connecté à Internet doit
avoir sa propre, et unique adresse IP. Elle sont distribuées
de façon centralisée par l'autorité
désignée pour chaque pays.</p>
<p>Si vous êtes connectés par un réseau local
(LAN) à Internet, <b>VOUS DEVEZ</b> utiliser une adresse IP
de votre propre domaine d'adresses qui vous a été
assigné pour les ordinateurs et matériels de votre
réseau local. Vous <b>NE DEVEZ PAS</b> prendre n'importe
quelle adresse IP et l'utiliser lorsque vous vous connectez avec un
autre réseau local (et à plus forte raison Internet).
Au pire ça ne marchera pas du tout et cela peut causer des
ravages puisque votre adresse IP 'volée' va
interférer avec les communications d'un autre ordinateur qui
utilise déjà l'adresse IP que vous avez prise au
hasard.</p>
<p>Remarquez que les adresses IP de ce document appartiennent
(à part quelques exceptions) aux adresses de réseaux
non connectés qui sont réservées aux
réseaux qui ne sont pas (encore) connectés à
Internet. (RFC1918)</p>
<p>Il y a des adresses IP qui sont spécifiquement
destinées aux réseaux locaux qui ne sont pas
connectés à Internet. Ces adresses IP sont :</p>
<ul>
<li>Une Adresse Réseau de Classe A<br>
10.0.0.0 (netmask 255.0.0.0)</li>
<li>16 Adresses Réseau de Classe B<br>
172.16.0.0 - 172.31.0.0 (netmask 255.255.0.0)</li>
<li>256 Adresses Réseau de Classe C<br>
192.168.0.0 - 192.168.255.0 (netmask 255.255.255.0)</li>
</ul>
<p>Si vous avez un réseau pour lequel vous <b>n'avez pas</b>
alloué d'adresse IP auprès de l'autorité
responsable de votre pays, vous devez utiliser une des adresses
réseau de la séquence précédente pour
vos machines.</p>
<p>Ces adresses ne doivent <b>jamais</b> être
utilisées sur Internet.</p>
<p>Cependant, elles peuvent être utilisées pour les
réseaux locaux Ethernet sur la machine qui est
connectée à Internet. C'est parce que les adresses IP
sont en fait allouées aux interfaces réseau et non
à l'ordinateur. Ainsi, votre interface Ethernet peut
utiliser 10.0.0.1 (par exemple), et quand vous vous connecterez
à Internet en utilisant PPP, votre interface PPP
récupérera une autre adresse IP (valide) du serveur.
Votre PC sera connecté à Internet alors que les
autres ne le seront pas.</p>
<p>Cependant, en utilisant Linux, les capacités de IP
Masquerading (aussi appelé NAT - Network Adress Translation)
de Linux et du programme <b>ipfwadm</b>, vous pouvez connecter
votre réseau local à Internet (avec quelques
restrictions sur les services), même si vous n'avez pas
d'adresse IP valide pour vos machines en Ethernet.</p>
<p>Pour plus d'informations sur le sujet, consulter le mini-HOWTO
IP Masquerade à <a href=
"http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade">Linux IP
Masquerade mini HOWTO</a></p>
<p>Pour la plupart des utilisateurs, qui sont connectés avec
une seule machine à leur fournisseur d'accès Internet
(FAI) par PPP, obtenir une adresse IP (ou plus largement une
adresse réseau) n'est pas nécessaire.</p>
<p>Si vous souhaitez connecter un petit réseau local
à Internet, de nombreux FAI peuvent vous fournir un
sous-réseau dédié (une séquence
spécifique d'adresses IP) sur leur espace d'adresses IP
existant. Alternativement, utilise IP masquerading.</p>
<p>Pour les utilisateurs qui connectent un seul PC à
Internet, la plupart des FAI utilise l'allocation <b>dynamique</b>
des adresses IP. C'est pendant le processus de connexion que le
service PPP que vous contactez va indiquer à votre machine
quelle adresse IP utiliser pour l'interface PPP pendant la session
en cours. Cette adresse ne sera pas forcément la même
à chaque fois que vous vous connecterez à votre
FAI.</p>
<p>Avec les adresses IP dynamiques, vous <b>n'avez pas</b> la
même adresse IP à chaque fois que vous vous connectez.
Cela a des répercussions sur les applications de type
serveur de votre machine Linux telles que Sendmail, ftpd, httpd et
d'autres. Ces services supposent que l'ordinateur offrant le
service soit accessible tout le temps à la même
adresse IP (ou au moins au même nom de domaine
qualifié, et que la résolution des noms par DNS du
nom vers l'adresse IP est disponible).</p>
<p>Les limitations de service dues aux allocations dynamiques
d'adresses IP (et les façons d'éviter cela, quand
c'est possible) sont décrites plus loin.</p>
<h2><a name="s3">3. Buts de ce document</a></h2>
<h2><a name="ss3.1">3.1 Mettre en place un client PPP</a></h2>
<p>Ce document fournit un guide aux personnes qui souhaitent
utiliser Linux et PPP pour appeler un Serveur PPP et configurer une
connexion IP avec PPP. Cela suppose que PPP ait été
compilé et installé sur votre machine Linux (mais une
brève description de la reconfiguration/recompilation de
votre noyau avec le support PPP est fournie).</p>
<p>Bien que <code>dip</code> (la manière standard de
créer des connexions SLIP) puisse être utilisé
pour mettre en place un connexion PPP, les scripts <code>dip</code>
sont généralement un peu complexes. Pour cette
raison, ce document ne traite pas l'utilisation de <code>dip</code>
pour lancer une connexion PPP.</p>
<p>A la place, ce document décrit les programmes standard
Linux/PPP (chat/pppd).</p>
<h2><a name="ss3.2">3.2 Relier deux Réseaux locaux ou un
réseau local à Internet grâce à
PPP</a></h2>
<p>Ce document donne des informations (de base) pour relier deux
réseaux locaux entre eux ou un réseau local à
Internet grâce à PPP.</p>
<h2><a name="ss3.3">3.3 Configurer un serveur PPP</a></h2>
<p>Ce document fournit un guide pour configurer votre PC Linux
comme serveur PPP (autorisant d'autres personnes à appeler
votre PC Linux et établir une connexion PPP).</p>
<p>Notez qu'il y a un grand nombre de façons de configurer
Linux comme serveur PPP. Ce document donne une méthode - qui
est utilisée par l'auteur pour configurer quelques petits
serveurs PPP (chacun avec 16 modems).</p>
<p>Cette méthode est connue pour fonctionner correctement.
Cependant, ce n'est pas forcément la meilleure
méthode.</p>
<h2><a name="ss3.4">3.4 Utiliser PPP avec une connexion Null-Modem
directe</a></h2>
<p>Ce document offre un bref aperçu d'utilisation de PPP
pour relier deux PC Linux avec un câble null modem. Il est
possible de relier d'autres Systèmes d'exploitation à
Linux de cette façon également. Pour ce faire,
utiliser la documentation du système d'exploitation pour
lequel vous êtes intéressé.</p>
<h2><a name="ss3.5">3.5 Pour le moment ce document ne couvre
pas...</a></h2>
<ul>
<li>La compilation du daemon PPP<br>
Regarder la documentation fournie avec la version de
<code>pppd</code> que vous utilisez.</li>
<li>Connecter et configurer un modem sous Linux (en
détail)<br>
Regarder le Serial-HOWTO et pour les initialisations
spécifiques au modem, voir <a href=
"http://www.in.net/info/modems/index.html">Modem Setup
Information</a> des informations qui pourraient vous aider à
configurer votre modem.</li>
<li>Utiliser <code>dip</code> pour faire des connexion PPP<br>
utiliser <code>chat</code> à la place</li>
<li>Utiliser <code>socks</code> ou IP Masquerading<br>
Il y a d'excellents documents qui couvrent déjà ces
paquetages.</li>
<li>Utiliser EQL pour regrouper deux modems pour une seule
connexion PPP.</li>
<li>Les méthodes de connexion PPP spécifiques aux
distributions (comme l'outil de configuration réseau de la
Red Hat 4.x). Voir votre distribution pour la documentation sur les
méthodes utilisées.</li>
<li>Le nombre croissant d'outils disponibles pour automatiser les
connexions PPP<br>
Voir la documentation appropriée.</li>
</ul>
<h2><a name="s4">4. Versions des logiciels traités</a></h2>
<p>Ce HOWTO suppose que vous utilisez un noyau Linux 1.2.X avec le
programme PPP 2.1.2 ou Linux 1.3.X/2.0.x et PPP 2.2.</p>
<p>Au moment de la rédaction, la dernière version
officielle de PPP disponible est ppp-2.2.0f. La nouvelle version
(ppp-2.3) est encore en beta.</p>
<p>Il est possible d'utiliser PPP 2.2.0 avec le noyau 1.2.13. Cela
nécessite des patchs pour le noyau. Il est recommandé
aux utilisateurs du noyau 1.2.13 de passer à ppp-2.2
puisqu'il inclut quelques extensions et corrections de bogues.</p>
<p><b>Vous devez également être
particulièrement vigilant et ne pas utiliser le programme
PPP 2.1.2 avec un noyau Linux 2.0.X.</b></p>
<p>Veuillez remarquer que ce document <b>ne traite pas</b> des
problèmes venant de l'utilisation de modules chargeables
pour votre noyau Linux 2.0.x. Consulter le mini-HOWTO kerneld et la
documentation kerneld/module 2.0.x (dans les sources de Linux 2.0.x
à <code>/usr/src/linux/Documentation/..</code>).</p>
<p><b>Puisque ce document est destiné à aider les
nouveaux utilisateurs, il est fortement recommandé
d'utiliser une nouvelle version du noyau Linux et la version
appropriée de PPP qui sont connus pour fonctionner
ensemble.</b></p>
<h2><a name="s5">5. D'autres documents utiles/importants</a></h2>
<p>Je conseille aux utilisateurs de lire :</p>
<ul>
<li>la documentation accompagnant le paquetage PPP;</li>
<li>les pages de manuel de <code>pppd</code> et
<code>chat</code>;<br>
(utiliser <code>man chat</code> et <code>man pppd</code> pour les
lire)</li>
<li>La page de configuration des modems - voir <a href=
"http://www.in.net/info/modems/index.html">Modem Setup
Information</a></li>
<li>Les excellents livres Unix/Linux publiés par O'Reilly
and Associates. ( <a href="%20http://www.ora.com/">O'Reilly and
Associates On-Line Catalogue</a>). Si vous êtes nouveau
à Unix/Linux, <b>courez</b> (ne marchez pas) au plus proche
marchand de livres informatiques et investissez dans un certain
nombre d'entre eux immédiatement !</li>
<li>La PPP-FAQ maintenue par Al Longyear, disponible sur <a href=
"ftp://sunsite.unc.edu/pub/Linux/docs/faqs">Linux PPP-FAQ</a>.<br>
Elle contient un grand nombre d'informations utiles sous forme de
questions/réponses indispensable lorsque l'on cherche
pourquoi PPP ne fonctionne pas (correctement).</li>
<li>Le nombre croissant de livre Linux venant des différents
éditeurs et auteurs;<br>
Vous êtes encouragés à vérifier la date
de parution de ces livres. Le développement et la
distribution de Linux tendent à être plutôt
rapides, alors que la mise à jour des livres est
(généralement) bien plus lente ! Acheter un excellent
livre (et il y en a) qui est déjà
dépassé entraine une confusion et une frustration
considérable pour les nouveaux utilisateurs.</li>
</ul>
<p>Le meilleur point de départ pour la documentation Linux
est <a href="http://sunsite.unc.edu/mdw/">The Linux Documentation
Project Home Page</a>. Les HOWTO sont mis à jour
raisonnablement régulièrement.</p>
<p>Bien que vous puissiez utiliser ce document pour créer
votre liaison PPP sans lire aucun de ces documents, vous devriez
avoir une bien meilleure compréhension de ce qu'il se passe
si vous le faites ! Vous pouvez également exposer
vous-même vos problèmes (ou du moins poser les
questions les plus intelligentes sur les groupes de discussion
comp.os.linux... ou fr.comp.os.linux/unix... ou les mailing list
Linux).</p>
<p>Ces documents (ainsi que quelques autres, comme les RFCs
correspondants) fournissent des explications complémentaires
et plus détaillées que ce qui est possible dans les
HOWTO.</p>
<p>Si vous connectez un réseau local à Internet avec
PPP, vous avez besoin de connaître un certain nombre de
choses sur les réseaux TCP/IP. En complément des
documents précédents, vous trouverez dans les livres
O'Reilly <code>"</code>TCP/IP Network Administration<code>"</code>
et <code>"</code>Building Internet Firewalls<code>"</code> un
bénéfice considérable !</p>
<h2><a name="ss5.1">5.1 Les Mailing Listes utiles</a></h2>
<p>Il y a de nombreuses mailing listes (listes de diffusion) Linux
qui servent de moyen de communication entre les utilisateurs dans
de nombreux domaines. Souscrivez absolument à celles qui
vous intéressent pour donner votre point de vue.</p>
<p><b>Remarques de bon sens</b>: certaines listes sont
spécifiquement destinés au utilisateurs "experts"
et/ou à certains sujets spécifiques. Même si
personne ne se plaindra que vous soyez voyeur (souscrire sans
poster de messages), vous recevrez certainement des commentaires
chauds (voire des flammes) si vous postez des questions de
débutant dans les listes innappropriées.</p>
<p>Ce n'est pas parce que les utilisateurs gourous détestent
les nouveau utilisateurs, mais parce que ces listes sont là
pour contenir des remarques spécifiques à un certain
niveau de difficulté.</p>
<p>Vous êtes largement encouragés à souscrire
librement à différentes listes mais faites absolument
des commentaires qui cadrent avec le sujet (et le niveau) de la
liste !</p>
<p>Un bon point de départ pour les mailing-list Linux est
<a href=
"http://summer.snu.ac.kr/~djshin/linux/mail-list/index.shtml">Linux
Mailing List Directory</a></p>
<h2><a name="s6">6. Présentation de ce qui doit être
fait pour faire fonctionner PPP comme client</a></h2>
<p>Ce document contient un grand nombre d'informations - qui
augmente à chaque version !</p>
<p>Par conséquent, cette section a pour but de fournir une
présentation concise des actions pour connecter votre
système Linux comme client à un serveur PPP.</p>
<h2><a name="ss6.1">6.1 Obtenir/installer les programmes</a></h2>
<p>Si votre distribution Linux ne contient pas les programmes PPP,
vous devez les obtenir sur <a href=
"ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp-2.2.0f.tar.gz">
the Linux PPP daemon</a></p>
<p>C'est la dernière version officielle lors de la
rédaction du document. Cependant, prenez la dernière
version disponible sur ce site (ppp-2.3 était en béta
lors de la rédaction de ce document et devrait sortir
bientôt).</p>
<p>Le paquetage PPP contient les instructions sur la façon
de compiler et d'installer le logiciel <b>donc ce HOWTO n'en
parlera pas</b>. !</p>
<h2><a name="ss6.2">6.2 Compiler le support PPP dans le
noyau</a></h2>
<p>L'installation de PPP Linux se divise en deux parties</p>
<ul>
<li>le daemon PPP mentionné ci-dessus</li>
<li>le support PPP dans le noyau</li>
</ul>
<p>De nombreuses distributions semblent fournir un support PPP dans
les noyaux installés par défaut, mais certaines ne le
font pas.</p>
<p>Si lors du boot, le noyau donne un message ressemblant à
:</p>
<hr>
<pre>
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered.
</pre>
<hr>
<p>Votre noyau à le support PPP compilé.</p>
<p>Toutefois, vous devez recompiler votre propre noyau quelque soit
votre distribution pour fournir l'utilisation la plus efficace
possible des ressources disponibles et de votre configuration
matérielle personnelle. Il est bon de savoir que le noyau ne
peut être swappé hors de la mémoire. Avoir un
noyau le plus petit possible est donc intéressant surtout
pour une machine limitée en mémoire.</p>
<p>Ce document fournit les instructions minimales pour la
re-compilation du noyau à la section <a href=
"#Configuration%20du%20noyau">Configurer votre noyau Linux</a>.</p>
<p>Pour plus de détails, voir le Kernel-HOWTO à
<a href="http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html">The
Linux Kernel HOWTO</a></p>
<h2><a name="ss6.3">6.3 Obtenir les informations pour votre
fournisseur d'accès à Internet</a></h2>
<p>Il y a presque une infinité de manières de
configurer un serveur PPP. Pour se connecter chez votre fournisseur
d'accès (ou un serveur PPP pour accéder à
votre intranet), vous devez obtenir des informations sur la
façon dont le serveur fonctionne.</p>
<p>Puisque vous utilisez Linux, vous pourriez avoir quelques
difficultés avec le support de certains FAI (et les serveurs
Intranet d'entreprise) qui ne connaissent que les clients
MS-Windows.</p>
<p>Toutefois, un nombre croissant de FAI utilisent Linux pour
offrir leur service - et Linux pénètre
également l'environnement industriel, vous devriez
réduire ainsi les chances de rencontrer des
problèmes.</p>
<p>La section <a href="#Info%20Serveur">Fournir les informations
dont vous avez besoin pour votre serveur PPP</a> vous explique ce
dont vous devez savoir sur le serveur PPP sur lequel vous vous
connectez et comment obtenir les informations dont vous avez
besoin.</p>
<h2><a name="ss6.4">6.4 Configurer votre modem et votre port
série</a></h2>
<p>Pour se connecter à un serveur PPP et obtenir le meilleur
taux de transfert possible, votre modem doit être
configuré correctement.</p>
<p>De la même façon, les ports série de votre
modem ainsi que votre ordinateur doivent être
configurés correctement.</p>
<p>La section <a href="#Modem">Configurer votre modem et votre port
série</a> fournit des informations à ce sujet.</p>
<h2><a name="ss6.5">6.5 Mettre en place la résolution de
noms (DNS)</a></h2>
<p>En plus des fichiers qui lancent PPP et automatisent la
connexion sur le serveur PPP, il y a un grand nombre de fichiers de
configuration qui sont mis en place pour que votre ordinateur
puisse résoudre les noms comme
<code>www.interweft.com.au</code> vers l'adresse IP qui est
réellement utilisée pour contacter cet ordinateur.
Ces fichiers sont :</p>
<ul>
<li><code>/etc/resolv.conf</code></li>
<li><code>/etc/host.conf</code></li>
</ul>
<p>Voir la section <a href="#DNS">Configurer la résolution
de nom vers l'adresse</a> pour une configuration
détaillée de cela.</p>
<p>En particulier, vous <b>n'avez pas besoin</b> de lancer un
serveur de nom sur votre PC Linux pour le connecter à
Internet (sauf si vous le souhaitez). Tout ce dont vous avez besoin
est de connaître l'adresse IP d'au moins l'un des serveurs de
noms que vous pouvez utiliser (plutôt celui de votre
fournisseur d'accès).</p>
<h2><a name="ss6.6">6.6 PPP et les privilèges root</a></h2>
<p>Puisqu'établir une liaison PPP entre votre ordinateur
Linux et un autre serveur PPP nécessite la manipulation des
périphériques réseau (l'interface PPP est une
interface réseau) et des tables de routages du noyau,
<code>pppd</code> nécessite les privilèges
<b>root</b>.</p>
<p>Pour des détails là-dessus, voir la section
<a href="#root">Utiliser PPP et les privilèges root</a>.</p>
<h2><a name="ss6.7">6.7 Vérifier les fichiers de votre
distribution PPP et configurer les options de PPP</a></h2>
<p>Il y a un certain nombre de fichiers de configuration et d'appel
qui doivent être configurés pour rendre PPP
opérationnel. Des exemples sont fournis avec la distribution
de PPP et cette section montre quels fichiers il doit y avoir :</p>
<hr>
<pre>
/etc/ppp/options
/etc/ppp/scripts/ppp-on
/etc/ppp/scripts/ppp-on-dialer
/etc/ppp/options.tpl
</pre>
<hr>
<p>Vous devrez créer des fichiers supplémentaires en
fonction de ce que vous souhaitez exactement utiliser avec PPP
:</p>
<hr>
<pre>
/etc/ppp/options.ttyXX
/etc/ppp/ip-up
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
</pre>
<hr>
<p>En plus, le daemon PPP peut traiter un grand nombre d'options en
ligne de commande et il est important d'utiliser les bonnes; ainsi
cette section montre les options standard de PPP et vous aide
à choisir les options que vous utiliserez.</p>
<p>Pour les détails à ce sujet, voir en section
<a href="#options">Configurer les fichiers de connexion de
PPP</a>.</p>
<h2><a name="ss6.8">6.8 Si votre serveur PPP utilise PAP (Password
Authentication Protocol)</a></h2>
<p>De nombreux fournisseurs d'accès et serveurs PPP
utilisent PAP. Si votre serveur <b>n'a pas</b> besoin d'utiliser
PAP (si vous pouvez vous connecter à la main et recevoir les
messages textes de nom utilisateur/mot de passe il n'utilise pas
PAP), vous pouvez tranquillement ignorer cette section.</p>
<p>Plutôt que se connecter dans de tels serveurs en utilisant
le nom utilisateur et le mot de passe quand vous êtes
interrogés par le serveur pour les entrer, un serveur PPP
utilisant PAP n'a pas besoin de login basé sur du texte.</p>
<p>Les informations d'authentification de l'utilisateur sont
échangées à la place comme partie prenante du
protocole de contrôle de connexion qui est la première
partie de l'établissement d'une liaison PPP.</p>
<p>La section <a href="#pap">Si votre serveur PPP utilise PAP
(Password Authentification Protocol)</a> fournit des informations
sur les fichiers dont vous avez besoin pour établir une
connexion PPP en utilisant PAP.</p>
<h2><a name="ss6.9">6.9 Se connecter au serveur PPP à la
main</a></h2>
<p>Une fois les fichiers de base configurés, c'est une bonne
idée que d'essayer ceux-ci en se connectant (avec
<code>minicom</code> ou <code>seyon</code>) et de lancer
<code>pppd</code> sur votre PC Linux à la main.</p>
<p>Voir la section <a href="#manual">Configurer une connexion PPP
à la main</a> pour des détails complets.</p>
<h2><a name="ss6.10">6.10 Automatiser votre connexion PPP</a></h2>
<p>Une fois que vous pouvez vous connecter à la main, vous
allez maintenant commencer à configurer les scripts qui vont
automatiser la mise en place de la connexion.</p>
<p>La section <a href="#automatiser">Automatiser votre connexion -
Créer les scripts de connexion</a> couvre la configuration
des fichiers nécessaires, et la mise en place des scripts et
du processus de login avec le serveur PPP, ainsi que des
détails complets sur <code>chat</code>.</p>
<p>Cette section traite des scripts d'authentification du nom
utilisateur/mot de passe ainsi que des scripts d'authentification
pour les serveurs PAP/CHAP.</p>
<h2><a name="ss6.11">6.11 Terminer la connexion</a></h2>
<p>Une fois que votre connexion est activée et fonctionne,
vous devez pouvoir désactiver la liaison.</p>
<p>Consultez la section <a href="#off">Terminer une connexion
PPP</a>.</p>
<h2><a name="ss6.12">6.12 Si vous avez des
problèmes</a></h2>
<p>De nombreuses personnes ont des problèmes pour faire
fonctionner PPP directement. Les différences entre les
serveurs PPP et la façon dont il faut configurer la
connexion sont énormes. De plus, PPP a de nombreuses options
- et certaines combinaisons d'entre elles ne fonctionnent
absolument pas ensemble.</p>
<p>En plus des problèmes de journalisation et de
démarrage du service PPP, il y a des problèmes
liés aux modems et aux lignes de téléphones
qui s'ajoutent !</p>
<p>La section <a href="#problemes">Résoudre les
problèmes</a> fournit des informations de base au sujet des
erreurs classiques, et la façon de les isoler et de les
corriger.</p>
<p>Elle <b>n'est toutefois pas</b> destinée à offrir
plus que les informations de base. Al Longyear maintient la PPP-FAQ
qui contient bien plus d'informations à ce sujet !</p>
<h2><a name="ss6.13">6.13 Une fois que la connexion est
lancée</a></h2>
<p>Une fois que la liaison PPP est opérationnelle
(spécifiquement, une fois que les trames IP fonctionnent),
<code>pppd</code> peut lancer automatiquement (comme utilisateur
<code>root</code>) un script pour accomplir n'importe quelle
fonction qu'un script peut accomplir.</p>
<p>La section <a href="#ip-up">Une fois que la connexion est
lancée</a> fournit des informations sur le script
<code>/etc/ppp/ip-up</code>, les paramètres que PPP lui
envoie et comment l'utiliser pour récupérer votre
courrier électronique de votre compte de votre fournisseur
d'accès, ou envoyer les messages en attente de transmission
sur votre machine.</p>
<h2><a name="ss6.14">6.14 Problèmes avec les services IP
standards et l'adresse IP dynamique de la liaison PPP.</a></h2>
<p>Comme cela est mentionné dans l'introduction, les
adresses IP dynamiques affectent la capacité de votre PC
Linux à agir comme un serveur sur Internet.</p>
<p>La section <a href="#dynamic-serveur">Problèmes avec les
services IP standard et l'adresse IP dynamique de la liaison
PPP</a> fournit des informations sur les (principaux) services
affectés et ce que vous pouvez faire (si c'est possible)
pour contourner cela.</p>
<h2><a name="Configuration du noyau"></a> <a name="s7">7.
Configurer votre noyau Linux</a></h2>
<p>Pour utiliser PPP, votre noyau Linux doit être
compilé avec le support PPP. Récupérez le code
source de votre noyau Linux si vous ne l'avez pas encore - il se
situe dans <code>/usr/src/linux</code> dans un système de
fichiers Linux standard.</p>
<p>Vérifiez ce répertoire - de nombreuses
distributions installent les sources (fichiers et
répertoires) pendant leur processus d'installation.</p>
<p>Au démarrage, votre noyau écrit une grande
quantitée d'informations. Parmi elles, est indiqué si
le noyau contient le support PPP. Pour afficher ces informations,
regardez votre fichier syslog, ou utilisez <code>dmesg |
less</code> pour afficher ces informations à l'écran.
Si votre noyau contient le support PPP, vous verrez quelques lignes
du genre</p>
<hr>
<pre>
PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
PPP line discipline registered.
</pre>
<hr>
<p>(pour les noyau Linux version 2.0.x)</p>
<p>Les sources du noyau Linux sont disponibles par ftp à
<code>sunsite.unc.edu</code> ou ses nombreux miroirs, en
particulier <code>ftp.lip6.fr</code>.</p>
<h2><a name="ss7.1">7.1 Installer les sources du noyau</a></h2>
<p>La suite regroupe de brèves instructions pour obtenir et
installer les sources du noyau Linux. Des informations
complètes sont disponibles a <a href=
"http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html">The Linux
Kernel HOWTO</a>.</p>
<p>Pour installer et compiler le noyau Linux vous devez être
<code>root</code>.</p>
<ol>
<li>Changer de répertoire vers <code>/usr/src/</code><br>
<code>cd /usr/src/</code></li>
<li>Vérifier dans <code>/usr/src/linux</code> pour voir si
les sources sont déjà installées.</li>
<li>Si vous n'avez pas les sources, récupérez les
à <a href=
"ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0">Linux kernel source
directory</a> ou sur un miroir plus proche comme
<code>ftp.lip6.fr</code>.<br>
Si vous cherchez une version plus ancienne du noyau (comme la
1.2.X), elles sont conservées dans <a href=
"ftp://sunsite.unc.edu/pub/Linux/kernel/old">Old Linux kernel
source directory</a>.</li>
<li>Choisissez le noyau approprié -
généralement le plus récent disponible est le
meilleur. Le récupérer et mettre le fichier tar dans
<code>/usr/src</code>.<br>
<b>Remarque</b>: un fichier 'tar' est une archive - parfois
compressée (comme le sont les fichiers tar des sources du
noyau Linux) il contient de nombreux fichiers répartis dans
plusieurs répertoires. C'est l'équivalent Linux des
fichiers multi-répertoires sous MS-DOS.</li>
<li>Si vous avez déjà les sources de Linux
installées, mais que vous voulez les mettre à jour,
il faut effacer les anciens fichiers. Utiliser la commande<br>
<code>rm -rf /usr/src/linux</code></li>
<li>Maintenant décompresser et extraire les sources avec la
commande<br>
<code>tar xzf linux-2.0.XX.tar.gz</code></li>
<li>Maintenant, <code>cd /usr/usr/linux</code> et lire le fichier
README. Il contient une excellente explication de la façon
de faire pour configurer et compiler un nouveau noyau. Lisez ce
fichier (c'est une bonne idée de l'imprimer pour en garder
une copie sous la main quand vous compilerez votre noyau
jusqu'à ce que vous l'ayez fait suffisamment pour vous
débrouiller tout seul).</li>
</ol>
<h2><a name="ss7.2">7.2 Connaître votre
matériel</a></h2>
<p>Vous <b>DEVEZ</b> savoir quelles
cartes/périphériques vous avez dans votre PC si vous
commencer à recompiler votre noyau !!! Pour certains
périphériques (comme les cartes sons) vous devez
également connaitre quelques paramètres (comme les
IRQ et les adresse I/O et des choses du genre).</p>
<h2><a name="ss7.3">7.3 Compilation du noyau - le noyau Linux
1.2.13</a></h2>
<p>Pour commencer le processus de configuration, suivre les
instructions du fichier README pour installer les sources
correctement. Vous lancez le processus de configuration du noyau
avec</p>
<blockquote>
<pre>
<code>make config
</code>
</pre></blockquote>
<p>Pour utiliser PPP, vous devez configurer le noyau pour inclure
le support PPP (PPP a besoin DE <code>pppd</code> ET DU support de
PPP dans le noyau).</p>
<hr>
<pre>
PPP (point-to-point) support (CONFIG_PPP) [n] y
</pre>
<hr>
<p>Répondre aux autres questions du <code>make config</code>
en accord avec le matériel de votre PC et les
caractéristiques que vous souhaitez pour votre
système d'exploitation Linux. Continuer ensuite à
suivre les instructions de compilation et d'installation du
<code>README</code> pour votre nouveau noyau.</p>
<p>Le noyau 1.2.13 créait seulement 4
périphériques PPP. Pour les cartes séries
multiports, vous devez éditer les sources du noyau PPP pour
avoir plus de ports. (Voir le fichier <code>README.Linux</code>
accompagnant la distribution de PPP-2.1.2 pour des détails
complets des éditions simples que vous devez faire).</p>
<p>Remarque : la configuration du noyau 1.2.13 ne permet pas de
revenir en arrière - si vous faites une erreur en
répondant à une des questions dans le <code>make
config</code> quitter avec CTRL-C et recommencer.</p>
<h2><a name="ss7.4">7.4 Compilation du noyau Linux 1.3.x et
2.0.x</a></h2>
<p>Pour Linux 1.3.x et 2.0.x, vous pouvez utiliser le même
processus que pour Linux 1.2.13. De même, suivez les
instructions du fichier <code>README</code> pour installer les
sources correctement. Vous lancez la configuration du noyau
avec</p>
<blockquote>
<pre>
<code>make config
</code>
</pre></blockquote>
<p>Cependant, vous pouvez aussi utiliser</p>
<blockquote>
<pre>
<code>make menuconfig
</code>
</pre></blockquote>
<p>Qui fournit un système de configuration avec une aide en
ligne et vous pouvez avancer et reculer dans la configuration.</p>
<p>Il y a aussi l'interface de configuration sous X-Window
chaudement recommandée</p>
<blockquote>
<pre>
<code>make xconfig
</code>
</pre></blockquote>
<p>Vous pouvez compiler le support PPP directement dans votre noyau
ou sous la forme d'un module chargeable dynamiquement.</p>
<p>Si vous utilisez PPP occasionnellement, alors compiler le
support PPP en module chargeable est recommandé. Avec
<code>kerneld</code>, votre noyau chargera automatiquement le(s)
module(s) nécessaires pour fournir le support PPP quand vous
lancerez une liaison PPP. Cela permet d'économiser une
partie de l'espace mémoire : le noyau ne peut être
swappé, alors que les modules chargeables sont
automatiquement enlevés si ils ne sont pas
utilisés.</p>
<p>Pour cela, vous devez activer le support des modules chargeables
:</p>
<hr>
<pre>
Enable loadable module support (CONFIG_MODULES) [Y/n/?] y
</pre>
<hr>
<p>Pour ajouter le support PPP à votre noyau,
répondre à la question suivante :</p>
<hr>
<pre>
PPP (point-to-point) support (CONFIG_PPP) [M/n/y/?]
</pre>
<hr>
<p>Pour un module chargeable, répondre <b>M</b>, sinon pour
le compiler directement dans le noyau, répondre
<b>Y</b>.</p>
<p>A la différence du 1.2.13, le noyau 2.0.x crée les
périphériques PPP au vol et selon les besoins, et il
n'y a absolument pas besoin de bricoler le source pour augmenter le
nombre de périphériques PPP.</p>
<h2><a name="ss7.5">7.5 Remarque sur PPP-2.2 et
<code>/proc/net/dev</code></a></h2>
<p>Si vous utilisez PPP-2.2, vous trouverez qu'un problème
de la création des périphériques PPP 'au vol'
est qu'aucun périphérique n'est trouvé dans le
fichier <code>/proc/net</code> tant qu'un
périphérique n'est pas créé avec le
lancement de <code>pppd</code> :</p>
<hr>
<pre>
[hartr@archenland hartr]$ cat /proc/net/dev
Inter-| Receive | Transmit
face |packets errs drop fifo frame|packets errs drop fifo colls carrier
lo: 92792 0 0 0 0 92792 0 0 0 0 0
eth0: 621737 13 13 0 23 501621 0 0 0 1309 0
</pre>
<hr>
<p>Une fois que vous avez un (ou plus) services ppp lancés,
vous verrez des entrées comme celles-ci (sur un serveur PPP)
:</p>
<hr>
<pre>
[root@kepler /root]# cat /proc/net/dev
Inter-| Receive | Transmit
face |packets errs drop fifo frame|packets errs drop fifo colls carrier
lo: 428021 0 0 0 0 428021 0 0 0 0 0
eth0:4788257 648 648 319 650 1423836 0 0 0 4623 5
ppp0: 2103 3 3 0 0 2017 0 0 0 0 0
ppp1: 10008 0 0 0 0 8782 0 0 0 0 0
ppp2: 305 0 0 0 0 297 0 0 0 0 0
ppp3: 6720 7 7 0 0 7498 0 0 0 0 0
ppp4: 118231 725 725 0 0 117791 0 0 0 0 0
ppp5: 38915 5 5 0 0 28309 0 0 0 0 0
</pre>
<hr>
<h2><a name="ss7.6">7.6 Considérations
générales sur la configuration du noyau pour
PPP</a></h2>
<p>Si vous configurez votre PC Linux comme un serveur PPP, vous
devez activer le support IP Forwarding. Il est également
nécessaire si vous voulez utiliser Linux pour relier deux
réseaux locaux entre eux ou un réseau local à
Internet.</p>
<p>Si vous reliez un réseau local à Internet (ou
reliez deux réseaux entre eux), vous devez être
concernés par la sécurité. Ajouter le support
pour IP firewall dans votre noyau est alors sans doute obligatoire
!</p>
<p>Vous aurez également besoin, d'utiliser IP Masquerade
pour relier un réseau local qui utilise les adresses IP non
connectées mentionnées plus haut.</p>
<p>Pour activer IP Masquerade et IP firewalling, vous <b>DEVEZ</b>
répondre Oui à la première question de
<code>make config</code> :</p>
<hr>
<pre>
Prompt for developement and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)?
</pre>
<hr>
<p>Bien que cela puisse sembler un peu bizarre aux nouveaux
utilisateurs, je confirme que de nombreux utilisateurs utilisent
les possibilités de IP Masquerading et de IP firewalling du
noyau Linux 2.0.X sans problèmes.</p>
<p>Une fois que vous avez installé et booté votre
nouveau noyau, vous pouvez commencer à configurer et
à tester votre liaison PPP.</p>
<h2><a name="Info Serveur"></a> <a name="s8">8. Fournir les
informations dont vous avez besoin pour votre serveur PPP</a></h2>
<p>Avant d'établir la connexion PPP avec un serveur, vous
devez obtenir les informations suivantes (de l'administrateur
système/support utilisateur/ personnes gérant le
serveur PPP) :</p>
<ul>
<li>Le numéro de téléphone à composer
pour le service<br>
Si vous êtes derrière un standard, vous avez aussi
besoin du numéro qui vous permet de sortir à
l'extérieur du standard - c'est généralement
le chiffre zéro (0) ou neuf(9).</li>
<li>Est-ce que le serveur utilise des adresse IP DYNAMIQUES ou
STATIQUES ?<br>
Si le serveur utilise des adresses IP STATIQUES, vous devez savoir
quelle adresse IP utiliser à la fin de la connexion PPP. Si
votre FAI vous fournit une adresse de sous-réseau valide,
vous devez connaître le masque de sous-réseau à
utiliser (netmask).<br>
La plupart des FAI utilisent des adresses IP DYNAMIQUES. Comme cela
est mentionné plus haut, cela a des impliquations sur les
services que vous pouvez utiliser.<br>
Cependant, même si vous utilisez des adresses IP STATIQUES,
la plupart des serveurs PPP ne laisseront jamais (pour des raisons
de sécurité) les clients spécifier leur
adresse IP car c'est un risque pour la sécurité. Vous
<b>devez</b> connaître aussi cette information !</li>
<li>Quel sont les adresses IP des serveur de noms des fournisseurs
d'accès ?<br>
Il doit y en avoir au moins deux, même si un seul suffit.<br>
Il peut y avoir un problème à ce niveau. Le service
PPP de MS Windows 95 permet que l'adresse DNS soit transmise au
client dans le processus de connexion. Ainsi, votre fournisseur
d'accès pourrait vous répondre que vous n'avez pas
besoin de l'adresse IP du serveur DNS.<br>
Avec Linux, vous <b>devez</b> connaître l'adresse d'au moins
un DNS. L'implémentation PPP de Linux ne permet pas de
configurer dynamiquement à la connexion l'adresse du serveur
DNS - et ne pourra certainement jamais.<br>
<b>Remarque</b>: bien que Linux (comme client PPP) ne peut pas
recevoir d'adresse DNS du serveur, il peut, en tant que serveur,
envoyer l'information au client en utilisant l'option
<code>dns-addr</code> de pppd.</li>
<li>Est-ce-que le serveur a besoin d'utiliser PAP/CHAP ?<br>
Si tel est le cas, vous devez connaître le id et le secret
que vous avez pour vous connecter. (c'est probablement votre nom
utilisateur et le mot de passe de votre fournisseur
d'accès).</li>
<li>Le serveur est-il un système Microsoft Windows NT et,
dans ce cas, utilise-t-il le système PAP/CHAP ?<br>
De nombreux fournisseurs d'accès semblent utiliser
MS-Windows NT de cette façon pour améliorer la
sécurité.</li>
</ul>
<p>Attention à l'information suivante - elle risque
d'être utile !</p>
<h2><a name="Modem"></a> <a name="s9">9. Configurer votre modem et
votre port série</a></h2>
<p>Vous devez vous assurer que votre modem est correctement
configuré et que vous savez sur quel port série il
est branché.</p>
<p><b>Se souvenir que</b> :</p>
<ul>
<li>DOS COM1: = Linux /dev/cua0 (et /dev/ttyS0)</li>
<li>DOS COM2: = Linux /dev/cua1 (et /dev/ttyS1)<br>
etc.</li>
</ul>
<p>Il est également bien de se souvenir que si vous avez 4
ports séries, la configuration standard d'un PC est d'avoir
COM1 et COM3 partageant IRQ4 et COM2 et COM4 partageant IRQ3.</p>
<p>Si vous avez des périphériques sur vos ports
séries qui partagent une IRQ avec votre modem vous allez
avoir des problèmes. Vous devez vous assurer que le port
série de votre modem est sur sa propre et unique IRQ. De
nombreuses cartes séries modernes (et les ports
séries des cartes mères de bonne qualité)
permettent de changer les IRQ des ports série.</p>
<p>Si vous utilisez le noyau Linux 2, vous pouvez afficher des IRQ
actuellement utilisés avec <code>cat
/proc/interrupts</code>, qui produira une sortie ressemblant
à :</p>
<hr>
<pre>
0: 6766283 timer
1: 91545 keyboard
2: 0 cascade
4: 156944 + serial
7: 101764 WD8013
10: 134365 + BusLogic BT-958
13: 1 math error
15: 3671702 + serial
</pre>
<hr>
<p>Cela montre que le le port série en IRQ4 (une souris) et
le port série en IRQ15 (un modem permanent basé sur
PPP pour une liaison Internet). (Il y a également un port
série sur le port COM2, IRQ3 et COM4 est dans l'IRQ14, mais
comme ils ne sont pas utilisés, ils ne sont pas
affichés).</p>
<p>Avertissement - vous devez vous rendre compte de ce que vous
faites lorsque vous voulez jouer avec vos IRQ ! Non seulement, vous
devez ouvrir votre ordinateur, retirer vos cartes et jouer avec les
jumpers, mais vous devez savoir ce qu'il y a sur chaque IRQ. Dans
mon cas, j'ai un PC totalement SCSI, et j'ai donc
désactivé les interfaces IDE de la carte-mère
qui utilisent normalement les IRQ14 et 15 !</p>
<p>Je tiens également à préciser que si votre
PC utilise un autre système d'exploitation, changer les IRQ
pourrait bien signifier que votre OS ne bootera plus correctement,
ou plus du tout !</p>
<p>Si vous déplacez vos ports séries vers des IRQ
non-standard, vous devez spécifier à Linux quel IRQ
utilise chaque port. <code>setserial</code> permet de le faire, et
de préférence lors du processus de lancement dans
<code>rc.local</code> ou <code>rc.serial</code> qui est
appelé dans <code>rc.local</code> ou comme une partie de
l'initialisation SysV system. Pour la machine
présentée ci-dessus, les commandes utilisées
sont</p>
<hr>
<pre>
/bin/setserial -b /dev/ttyS2 IRQ 11
/bin/setserial -b /dev/ttyS3 IRQ 15
</pre>
<hr>
<p>Toutefois, si vous utilisez le module série chargé
dynamiquement au besoin avec le processus <code>kerneld</code>,
vous ne pouvez pas définir et perdre les IRQ à chaque
redémarrage. Si le module série est effacé,
Linux perds alors les configurations spéciales.</p>
<p>Donc, si vous chargez le module série à la
demande, vous devez reconfigurer les IRQ à chaque fois qu'il
est chargé.</p>
<h2><a name="ss9.1">9.1 Remarque au sujet des ports séries
et des capacité de vitesse</a></h2>
<p>Si vous utilisez un modem haut débit (externe) (14.400
Bits par seconde ou plus), votre port série doit être
capable de suivre le débit qu'un tel modem est capable de
produire, en particulier si le modem compresse les
données.</p>
<p>Cela demande que votre port série utilise un
UART(Universal Asynchronous Receiver Transmitter) moderne comme un
16550(A). Si vous utilisez une vieille machine (ou une vieille
carte série), il est tout à fait possible que votre
port série ait seulement un UART 8250, ce qui amènera
des problèmes considérables avec un modem haute
vitesse.</p>
<p>Utiliser la commande</p>
<blockquote>
<pre>
<code>setserial -a /dev/ttySx
</code>
</pre></blockquote>
<p>Pour que Linux vous affiche le type d'UART que vous avez. Si
vous n'avez pas un UART de type 16550, acheter une nouvelle carte
série (disponible pour moins de 300 F). Quand vous acheterez
une nouvelle carte, assurez vous que vous pouvez changer les IRQ
!</p>
<p>Remarque : les premières versions des puces UART 16550
avaient une erreur. Elle a été rapidement
découverte et une mise à jour de la puce est sortie -
l'UART 16550A. Un nombre relativement faible de puces
erronées ont cependant été mises en
circulation. Ça serait de la malchance que d'un
récupérer une, en particulier sur certaines cartes
d'occasion, mais il suffit de chercher la réponse qui
s'appelle 16550A.</p>
<h2><a name="ss9.2">9.2 Noms des ports série</a></h2>
<p>Historiquement, Linux utilise les périphériques
<code>cuaX</code> pour les appels sortants et <code>ttySx</code>
pour les appels entrants.</p>
<p>Le code du noyau a eu besoin de changer cela dans la version
2.0.x du noyau, et vous devez maintenant utiliser
<code>ttySx</code> pour les appels entrants et sortants. Cela
semble annoncer que les noms de périphériques
<code>cuaX</code> devraient disparaître dans les futures
versions du noyau.</p>
<h2><a name="ss9.3">9.3 Configuration de votre modem</a></h2>
<p>Vous devez configurer votre modem correctement pour PPP - pour
cela, <b>LISEZ LE MANUEL DE VOTRE MODEM</b> ! La plupart des modems
ont <b>une configuration par défaut en usine</b> avec les
options requises par PPP. La configuration minimale spécifie
:</p>
<ul>
<li>Contrôle de flux matériel (RTS/CTS)
(<code>&</code>K3 sur les modems Hayes)</li>
</ul>
<p>Les autres paramètres (en commandes Hayes standard) que
vous devez vérifier sont :</p>
<ul>
<li>La commande E1 Echo ON (nécessaire pour que
<code>chat</code> fonctionne)</li>
<li>S0=0 Auto Answer OFF (à moins que vous ne vouliez que
votre modem réponde au téléphone)</li>
<li><code>&</code>C1 Carrier Detect ON seulement après
la connexion</li>
<li><code>&</code>S0 Data Set Ready (DSR) toujours ON</li>
<li>(variable) Data Terminal Ready</li>
</ul>
<p>Un site fournit la configuration des modems pour une
variété de fabricants et de modèles de modems
croissante à <a href=
"http://www.in.net/info/modems/index.html">Modem setup
information</a> qui devrait vous simplifier la configuration.</p>
<p>Il est aussi intéressant de vérifier comment
fonctionne l'interface série entre votre ordinateur et votre
modem. La plupart des modems modernes vous permettent d'utiliser
l'interface série à une vitesse FIXE permettant
à l'interface avec la ligne téléphonique de
changer de vitesse pour atteindre la plus haute vitesse que les
deux modems peuvent supporter.</p>
<p>Cela s'appelle l'opération de division de la vitesse. Si
votre modem le supporte, bloquer l'interface série du modem
à la vitesse disponible la plus rapide (d'habitude 115.200
bauds mais parfois 38.400 pour les modems 14.400).</p>
<p>Utiliser les outils de communication (c.-à-d.
<code>minicom</code> ou <code>seyon</code>) pour accéder
à la configuration de votre modem, et l'adapter à ce
qui est nécessaire à PPP. De nombreux modems
renvoient leurs réglages courants après la commande
AT<code>&</code>V, mais vous devez consulter le manuel de votre
modem.</p>
<p>Si vous avez complètement modifié les
réglages, vous pouvez repartir sur des bases saines
(généralement) en envoyant AT<code>&</code>F -
ça retourne aux réglages usine. (Pour la
majorité des modems que j'ai rencontré, les
réglages usine on tout ce qu'il faut pour faire du PPP -
mais vous devez vérifier).</p>
<p>Un fois que vous avez la commande nécessaire pour
configurer votre modem, écrivez-là. Vous devez
maintenant prendre une décision : vous pouvez stocker ces
paramètres dans la mémoire non-volatile de votre
modem, comme cela vous pourrez la relancer en envoyant une commande
AT appropriée. Alternativement, vous pouvez passer le
paramétrage correct à votre modem lors du processus
de connexion de PPP.</p>
<p>Si vous utilisez uniquement votre modem sous Linux pour appeler
votre FAI ou un serveur d'entreprise, la manière la plus
simple est de sauver la configuration de votre modem dans la
mémoire non-volatile.</p>
<p>D'un autre coté, si votre modem est utilisé par
d'autres applications et systèmes d'exploitation, il est
plus sûr de passer ces informations au modem à chaque
appel que vous passez, comme cela, c'est sûr que le modem
sera bien configuré lors de l'appel. (Cela a aussi
l'avantage de conserver la ligne de configuration du modem au cas
où le modem perdrait le contenu de sa NV-RAM, ce qui peut
parfois arriver).</p>
<h2><a name="ss9.4">9.4 Remarque sur le contrôle de flux
série</a></h2>
<p>Lorsque les données transitent sur les lignes de
communication série, il peut arriver que les données
arrivent plus vite que l'ordinateur ne peut les traiter
(l'ordinateur peut être occupé à faire autre
chose - n'oubliez pas que Linux est un système
Multi-tâches Multi-utilisateurs). Pour s'assurer que des
données ne se sont pas perdues (les données
n'arrivent pas dans le tampon d'entrée pour se perdre
ensuite), certaines méthodes de contrôles sont
nécessaires.</p>
<p>Il y a deux façons de faire sur des lignes séries
:</p>
<ul>
<li>Utiliser des signaux matériels (Clear To Send/Request To
Send CTS/RTS)</li>
<li>Utiliser des signaux logiciel (control S et control Q, aussi
appelés XON/XOFF).</li>
</ul>
<p>Bien que le dernier soit correct pour les liaisons vers des
terminaux(texte), les données sur une liaison PPP utilisent
les 8 bits - et il est fort probable que quelque part dans les
données, un octet se traduis par un control S ou un control
Q. Donc, si un modem est configuré pour utiliser le
contrôle de flux, les choses vont rapidement s'envenimer
!</p>
<p>Pour les liaisons à haut débit utilisant PPP (avec
l'utilisation des 8 bits de données) le contrôle de
flux matériel est vital, et c'est la raison pour laquelle
vous devez utiliser le contrôle de flux matériel.</p>
<h2><a name="ss9.5">9.5 Tester votre modem pour composer un
numéro</a></h2>
<p>Maintenant que vous en avez terminé avec la configuration
du modem et du port série, il serait utile de
vérifier si cette configuration marche vraiment en appelant
votre fournisseur d'accès et voir si vous pouvez vous
connecter.</p>
<p>En utilisant le paquetage du terminal de communication (tel que
<code>minicom</code>), la commande d'initialisation de votre modem
pour PPP, appelez le serveur PPP sur lequel vous voulez vous
connecter pour une session PPP.</p>
<p>(Remarque : à ce niveau, nous <b>n'essayerons pas</b>
d'établir la connexion PPP - mais juste d'être
sûr que nous pouvons composer un numéro et ainsi
trouver <b>exactement</b> ce que le serveur nous envoie pour se
connecter et lancer PPP).</p>
<p>Pendant le processus, soit vous capturez (dans un fichier) la
totalité du processus de login soit vous notez attentivement
(<em>très attentivement</em>) <b>exactement</b> ce que le
serveur envoie pour savoir quand est le moment d'entrer votre nom
utilisateur et votre mot de passe (et quelques autres commandes
nécessaires pour établir la connexion PPP).</p>
<p>Si votre serveur utilise PAP, vous ne verrez pas de message de
login, mais vous verrez à la place la (représentation
texte) du protocole de contrôle de liaison (une suite
incohérente de caractères) s'afficher sur votre
écran.</p>
<p>Quelques mots d'avertissements :</p>
<ul>
<li>certains serveurs sont relativement intelligents : vous pouvez
vous connecter en utilisant un nom utilisateur /mot de passe
basé sur du texte OU en utilisant PAP. Ainsi, si votre
fournisseur d'accès ou votre serveur d'entreprise utilise
PAP mais n'affiche pas le message directement, cela ne signifie pas
que vous avez fait une erreur.</li>
<li>certains serveurs ont besoin que vous entriez du texte avant de
lancer <em>ensuite</em> la séquence PAP standard.</li>
<li>Certains serveurs PPP sont passifs - il attendent et n'envoient
rien tant que le client avec lequel il dialogue ne lui envoie un
paquet LCP valide. Si le serveur PPP sur lequel vous vous connectez
fonctionne en mode passif, vous ne verrez jamais de message !</li>
<li>Certains serveurs ne lancent pas PPP tant que vous n'avez pas
pressé <code>ENTREE</code> - essayez donc cela si vous
êtes connecté et ne voyez pas de message !</li>
</ul>
<p>Il est intéressant de dialoguer au moins deux fois -
certains serveurs changent leur message d'accueil (c.-à-d.
avec le temps !) chaque fois que vous vous connectez. Les deux
messages critiques que votre machine Linux doit pouvoir identifier
chaque fois que vous vous vous connectez sont :</p>
<ul>
<li>le message qui vous demande d'entrer votre nom utilisateur
;</li>
<li>le message qui vous demande d'entrer votre mot de passe ;</li>
</ul>
<p>Si vous avez tapé une commande pour lancer PPP sur le
serveur, vous devez aussi rechercher le message que le serveur vous
envoie une fois que vous êtes connecté pour vous
informer que vous pouvez entrer la commande pour lancer ppp.</p>
<p>Si votre serveur lance automatiquement PPP, une fois que vous
êtes connecté, vous allez voir des caractères
s'afficher sur votre écran - c'est le serveur PPP qui envoie
à votre machine les informations pour démarrer et
configurer la connexion PPP.</p>
<p>Ça doit donner quelque chose comme ceci :</p>
<hr>
<hr>
<p>(et ça ne s'arrête pas !)</p>
<p>Sur certains systèmes, PPP doit être explicitement
lancé sur le serveur. Cela vient généralement
du fait que le serveur a été configuré pour
permettre aux connexions PPP et aux connexions Shell a utiliser les
mêmes paires nom utilisateur/mot de passe. Si c'est le cas,
envoyez cette commande lorsque vous êtes connecté. Une
nouvelle fois vous verrez des caractères que le serveur
envoie à la fin du lancement de la connexion PPP.</p>
<p>Si vous ne voyez pas directement après la connexion (et
le processus de connexion et le lancement du serveur PPP si
besoin), tapez <b>Entrée</b> pour voir si le serveur PPP
démarre...</p>
<p>A ce niveau, vous pouvez raccrocher votre modem
(généralement, taper <code>+++</code> rapidement et
envoyer la commande ATHO une fois que votre modem vous a
répondu OK).</p>
<p>Si vous n'arrivez pas à faire fontionner votre modem,
lisez le manuel du modem, les pages de manuel des programmes de
communication, et le Serial HOWTO ! Une fois que vous aurez fait
tout cela reprenez l'étape précédente.</p>
<h2><a name="DNS"></a> <a name="s10">10. Configurer la
résolution de nom vers l'adresse (DNS)</a></h2>
<p>Alors que les humains aiment donner des noms aux choses, les
ordinateurs préfèrent les nombres. Sur un
réseau TCP/IP (comme Internet), nous appelons les machines
avec un nom particulier et chaque machine se trouve dans un
<code>"</code>domaine<code>"</code> particulier. Par exemple, ma
station de travail Linux s'appelle <b>archenland</b> et se trouve
dans le domaine <b>interweft.com.au</b>. Son adresse lisible par un
humain est donc archenland.interweft.com.au (qui s'appelle le FQDN
- nom de domaine totalement qualifié).</p>
<p>Cependant, pour que cette machine soit trouvée par les
autres ordinateurs sur Internet, elle est réellement connue
par son adresse IP lorsque les ordinateurs communiquent à
travers Internet.</p>
<p>Traduire (résoudre) les noms de machines (et de domaine)
en nombres réellement utilisés sur Internet est le
travail de machines qui offrent le DNS.</p>
<p>Ce qui se passe en fait :</p>
<ul>
<li>Votre machine à besoin de savoir l'adresse IP d'un
ordinateur particulier. L'application qui a besoin de cette
information interroge le resolveur de votre PC Linux pour obtenir
cette information;</li>
<li>Le résolveur interroge le fichier local
<code>/etc/hosts</code> et/ou les serveurs de noms des domaines
qu'il connaît (le comportement exact du résolveur est
déterminé dans <code>/etc/hosts.conf</code>);</li>
<li>si la réponse se trouve dans le fichier
<code>hosts</code>, la réponse est renvoyée;</li>
<li>si un serveur de nom est spécifié, votre PC
interroge alors cette machine</li>
<li>si la machine DNS connaît déjà l'adresse IP
du nom demandé, elle le retourne. Si elle ne le
connaît pas, elle interroge un autre serveur de noms sur
Internet pour trouver l'information. Le serveur de noms redescend
alors les informations au résolveur qui les a demandé
- qui les envoie à l'application qui l'a
interrogé.</li>
</ul>
<p>Quand vous utilisez une connexion PPP, vous devez indiquer
à votre machine Linux où elle peut
récupérer l'adresse IP à partir du nom
(résolution des adresses), comme cela <b>vous pourrez
utiliser le nom des machines</b> mais votre ordinateur pourra
traduire ces derniers vers les adresses IP dont il a besoin pour
travailler.</p>
<p>Une solution est de rentrer tous les hôtes avec qui vous
voulez dialoguer dans le fichier <code>/etc/hosts</code> (ce qui
est en réalité totalement impossible si vous
êtes connecté à Internet); une autre
façon est d'utiliser les adresses IP plutôt que les
noms (une tâche de mémorisation impossible sauf pour
les petits réseaux).</p>
<p>La meilleure façon est de configurer Linux pour qu'il
connaisse ou récupère l'information de conversion des
noms en adresses - automatiquement. Ce service est fourni par le
système DNS. La seule chose à faire est d'entrer
l'adresse IP des serveurs de noms dans le fichier
/etc/resolv.conf.</p>
<h2><a name="ss10.1">10.1 Le fichier
<code>/etc/resolv.conf</code></a></h2>
<p>Le support client de votre serveur PPP doit vous fournir deux
adresses IP de DNS (un seul est nécessaire - mais deux
permettent une redondance en cas d'échec).</p>
<p>Comme c'est mentionné plus haut, Linux ne peut pas
définir l'adresse IP de son serveur de noms comme MS Windows
95 le fait. Ainsi, vous devez <b>insister</b> (poliment)
auprès de votre FAI pour qu'il vous fournisse cette
information !</p>
<p>Votre <code>/etc/resolv.conf</code> doit ressembler à
quelque chose comme :</p>
<hr>
<pre>
domain votre.nom.de.domaine
nameserver 10.25.0.1
nameserver 10.25.1.2
</pre>
<hr>
<p>Éditer ce fichier (le créer si nécessaire)
pour contenir les informations que votre FAI vous a donné.
Il doit avoir les droits et les permissions comme suit :</p>
<blockquote>
<pre>
<code>-rw-r--r-- 1 root root 73 Feb 19 01:46 /etc/resolv.conf
</code>
</pre></blockquote>
<p>Si vous avez déjà configuré un
<code>/etc/resolv.conf</code> car vous êtes sur un
réseau local, ajoutez simplement les adresses IP du serveur
DNS PPP dans votre fichier existant.</p>
<h2><a name="ss10.2">10.2 Le fichier
<code>/etc/hosts.conf</code></a></h2>
<p>Vous devez également vérifier que votre fichier
<code>/etc/hosts.conf</code> est correctement configuré. Il
doit ressembler à</p>
<hr>
<pre>
order hosts,bind
multi on
</pre>
<hr>
<p>Il indique au résolveur d'utiliser les informations du
fichier host avant d'envoyer les requêtes pour une
résolution DNS.</p>
<h2><a name="root"></a> <a name="s11">11. Utiliser PPP et les
privilèges <b>root</b></a></h2>
<p>Puisque PPP à besoin de configurer les
périphériques réseau, modifier les tables de
routage entre autres, il a besoin des privilèges
<b>root</b>.</p>
<p>Si des utilisateurs autres que <b>root</b> doivent lancer des
connexions PPP, le programme <code>pppd</code> doit avoir l'uid
<b>root</b> :</p>
<blockquote>
<pre>
<code>-rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd
</code>
</pre></blockquote>
<p>Si <code>/usr/sbin/pppd</code> n'est pas défini comme
cela, alors <b>en étant root</b> taper la commande :</p>
<blockquote>
<pre>
<code>chmod u+s /usr/sbin/pppd
</code>
</pre></blockquote>
<p>Cela permet à <code>pppd</code> de fonctionner avec les
privilèges <code>root</code> <b>même</b> i si le
programme est lancé par un utilisateur ordinaire. Ainsi
<code>pppd</code> a les bons privilèges pour configurer les
interfaces réseau et les tables de routage.</p>
<p>Les programmes qui utilisent le uid root sont autant de trous de
sécurité potentiels et vous devez être
extrêmement vigilant par rapport aux programmes uid root. De
nombreux programmes (comme <code>pppd</code>) ont été
écrits minutieusement pour minimiser le danger d'utiliser
suit root, vous devez donc être tranquille avec celui-ci
(mais sans garanties totales).</p>
<p>Selon ce que vous voulez faire de votre système -
particulièrement si vous voulez qu'un utilisateur puisse
initialiser une liaison PPP, vous devez mettre vos scripts
<code>ppp-on/off</code> lisibles et exécutables par tout le
monde. (c'est sans doute génial si vous êtes le SEUL
utilisateur du PC).</p>
<p>Cependant, si vous NE voulez PAS que n'importe qui puisse lancer
une connexion PPP (par exemple, votre enfant qui a un compte sur
votre PC Linux et que vous ne voulez pas qu'il se connecte à
Internet sans votre permission), vous devez faire un groupe PPP (en
tant que <code>root</code>, éditer le fichier
<code>/etc/group</code>) et :</p>
<ul>
<li>Rendre <code>pppd</code> 'suid root', possédé par
l'utilisateur <b>root</b> et le groupe PPP, avec ces nouvelles
permissions sur le fichier. Il doit ressembler à
<blockquote>
<pre>
<code>-rwsr-x--- 1 root PPP 95225 Jul 11 00:27 /usr/sbin/pppd
</code>
</pre></blockquote>
</li>
<li>Mettre les scripts <code>ppp-on/off</code>
possédés par l'utilisateur <b>root</b> et le groupe
<b>PPP</b></li>
<li>Rendre le script <code>ppp-on/off</code>
lisible/exécutable par le groupe PPP
<blockquote>
<pre>
<code> -rwxr-x--- 1 root PPP 587 Mar 14 1995 /usr/sbin/ppp-on
-rwxr-x--- 1 root PPP 631 Mar 14 1995 /usr/sbin/ppp-off
</code>
</pre></blockquote>
</li>
<li>Ajouter les utilisateurs qui utilisent PPP dans le groupe PPP
dans <code>/etc/group</code></li>
</ul>
<p>Même si vous faites cela, les utilisateurs normaux ne
pourront pas fermer la connexion avec un programme ! Utiliser
<code>ppp-off</code> nécessite les privilèges
<b>root</b>. Même si n'importe quel utilisateur peut
éteindre le modem (ou déconnecter la ligne
téléphonique sur un modem interne).</p>
<p>Un alternative (et une meilleure méthode) de faire cela
est d'utiliser le programme <code>sudo</code>, qui offre une
meilleure sécurité et vous permettra de choisir quels
utilisateurs (autorisés) pourrons activer/désactiver
la liaison en utilisant des scripts. Utiliser <code>sudo</code>
permet aux utilisateurs autorisés
d'activer/désactiver la liaison PPP de façon propre
et sécurisée.</p>
<h2><a name="options"></a> <a name="s12">12. Configurer les
fichiers de connexion de PPP</a></h2>
<p>Maintenant, vous devez être connecté en tant que
<b>root</b> pour créer les répertoires et
éditer les fichiers nécessaires à la
configuration de PPP, même si vous souhaitez que PPP soit
utilisable par tous les utilisateurs.</p>
<p>PPP utilise un certain nombre de fichiers pour configurer les
connexions. Ceux-ci diffèrent dans leur nom et les chemins
entre PPP 2.1.2 et 2.2.</p>
<p>Pour PPP 2.1.2 les fichiers sont :</p>
<hr>
<pre>
/usr/sbin/pppd # le programme PPP
/usr/sbin/ppp-on # le script d'appel/connexion
/usr/sbin/ppp-off # le script de déconnexion
/etc/ppp/options # les options utilisées pour toutes le connexions
/etc/ppp/options.ttyXX # les options spécifiques pour ce connecter sur ce port
</pre>
<hr>
<p>Pour PPP 2.2. les fichiers sont :</p>
<hr>
<pre>
/usr/sbin/pppd # Le programme PPP
/etc/ppp/scripts/ppp-on # le script d'appel connexion
/etc/ppp/scripts/ppp-on-dialer # première partie du script d'appel
/etc/ppp/scripts/ppp-off # le script chat réel
/etc/ppp/options # options utilisées par pppd pour toutes les
# connexions
/etc/ppp/options.ttyXX # options spécifiques pour se connecter sur ce
# port
</pre>
<hr>
<p>Je rappelle aux utilisateurs de la RedHat Linux que dans
l'installation standard de la Red Hat 4.X les scripts sont
placés dans <code>/usr/doc/ppp-2.2.0f-2/scripts</code>.</p>
<p>Dans votre répertoire <code>/etc</code>, il devrait y
avoir un répertoire <b>ppp</b> :</p>
<blockquote>
<pre>
<code>drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp
</code>
</pre></blockquote>
<p>S'il n'existe pas - le créer avec ces possessions et
permissions.</p>
<p>Si le répertoire existe déjà, il devrait
contenir un fichier d'options modèle appelé
<b>options.tpl</b>. Ce fichier est inclus plus bas au cas où
il n'existerait pas.</p>
<p>Imprimez-le il contient une explication de presque toutes les
options de PPP et c'est pratique de le lire en même temps que
les pages de manuel de ppp). Même si vous pouvez utiliser ce
fichier comme base à votre <code>/etc/ppp/options</code>, il
est sans doute mieux de créer votre propre fichier d'options
qui ne contiendra pas tous les commentaires du modèle - il
sera bien plus court, et plus facile à lire/maintenir.</p>
<p>Si vous avez une ligne série/modems multiple (c'est
typiquement le cas des serveurs PPP), créer un fichier
général <code>/etc/ppp/options</code> contenant les
options communes à tous les ports séries dans lequel
vous supportez la composition et la réception d'appels et un
fichier de configuration individuel pour chaque ligne série
sur laquelle vous établirez la configuration individuelle
nécessaire pour chaque port.</p>
<p>Ces fichiers d'options spécifiques aux ports sont
appelés <code>options.ttyx1</code>,
<code>options.ttyx2</code> et ainsi de suite (ou x est la lettre
appropriée pour votre port série).</p>
<p>Toutefois, pour une connexion simple, vous pouvez tranquillement
utiliser le fichier <code>/etc/ppp/options</code>. Vous pouvez
aussi mettre toutes les options comme argument de la commande
<code>pppd</code> elle-même.</p>
<p>Il est plus simple de maintenir une configuration qui utilise
les fichiers <code>/etc/ppp/options.ttySx</code>. Si vous utilisez
PPP sur différents sites, vous pouvez créer un
fichier d'options pour chaque site dans
<code>/etc/ppp/options.site</code>, et ainsi spécifier le
fichier d'options en paramètre à la commande PPP
lorsque vous vous connectez (en utilisant l'option <code>file
option-file</code> de <code>pppd</code> dans la ligne de commande
de <code>pppd</code>).</p>
<h2><a name="ss12.1">12.1 Le fichier options.tpl fourni</a></h2>
<p>Certaines distributions de PPP semblent avoir perdu le fichier
options.tpl, donc voici le fichier complet. Je suggère de NE
PAS éditer ce fichier pour créer votre fichier(s)
<code>/etc/ppp/options</code>. Copiez plutôt celui-ci dans un
nouveau fichier et éditez-le alors. Si vous vous trompez
dans votre édition, vous pourrez toujours revenir en
arrière en recommençant sur l'original.</p>
<hr>
<pre>
# /etc/ppp/options -*- sh -*- fichiers d'options generales pour pppd
# cree le 13-Jul-1995 jmk
# autodaté: 01-Aug-1995
# autotime: 19:45
# adaptation francaise par Antoine Levavasseur levavass@efrei.fr
# Utilise l'executable ou la commande shell specifiee pour configurer la ligne
# serie. Ce script va en fait utiliser le programme "chat" pour appeler le
# modem et le debut de la liaison distante ppp.
#connect "echo Vous devez installer une commande connect."
# Lance l'executable ou la commande shell specifie, une fois que ppp a termine
# la liaison. Ce script va, par exemple, envoyer les commandes au modem pour le
# faire raccrocher si les signaux de controles matériels ne sont pas
# disponibles.
#disconnect "chat -- \d+++\d\c OK ath0 OK"
# table de caractere async -- 32-bit hex; chacun des bit est un caractere qui
# doit etre echappe pour que pppd le recoive. 0x00000001 represente '\x01',
# et 0x80000000 represente '\x1f'.
#asyncmap 0
# Demande a votre correspondant de s'authentifier avant de pouvoir envoyer ou
# recevoir des paquets reseaux
#auth
# Utilise le controle de flux materiel (i.e. RTS/CTS) pour controler le flux
# de donnees du port série
#crtscts
# Utilise le controle de flux logiciel (i.e. XON/XOFF) pour controler le flux
# de donnees du port serie.
#xonxoff
# Ajouter une route par defaut aux tables de routage systeme, pour utiliser
# votre correspondant comme gateway, lorsque la negociation ICP reussi. Cette
# entree est supprimee lorsque la connexion PPP se termine.
#defaultroute
# Specifie que certains caracteres doivent etre echapes sur la transmission
# (en fonction de la facon dont le client souhaite qu'ils soient echappes avec
# la table de controle async). Les caracteres qui sont echappes sont specifies
# comme une liste de nombres hexa separes par des guillemets. La plupart des
# caracteres peuvent etres specifies avec l'option escape, a moins que l'option
# asyncmap soit activee puisque dans ce cas seuls les caracteres de controle
# peuvent etres specifies. Les caracteres qui ne peuvent etre echapes ont les
# valeurs hexa 0x20 - 0x3f ou 0x5e.
#escape 11,13,ff
# Ne pas utiliser les lignes de controle du modem
#local
# Specifie que pppd doit utiliser un verouillage du peripherique serie style
# UUCP pour s'en assurer un acces exclusif.
#lock
# Utilise les lignes de controle du modem. Sur un Ultrix, cette option implique
# un controle de flux materiel, comme avec l'option crtscts. (Cette option
# n'est pas completement implementee.)
#modem
# Definit la valeur MRU [Unite de Reception Maximum] a n pour la negociation.
# pppd demandera alors de se faire renvoyer les paquets pour au plus <n> octets
# La valeur MRU minimale est de 128. La valeur par defaut est 1500. La valeur
# 296 est recommandee pour les liaisons lentes (40 octets pour l'entete TCP/IP
# + 256 octets de donnees).
#mru 542
# Definit le masque reseau avec <n> qui est un masque reseau 32 bit en
# "chiffres decimaux" note (e.g 255.255.255.0).
#netmask 255.255.255.0
# Desactive le comportement par defaut lorsque aucune adresse IP n'est
# specifiee, et qu'elle est determine (quand c'est possible) a partir du
# hostname. Avec cette option, votre correspondant devra vous fournir votre
# adresse IP locale pendant la negotiation IPCP (a moins que cela ne soit
# specifie explicitement dans la ligne de commande ou un fichier d'options)
#noipdefault
# Active l'option passive sur le LCP. Avec cette option, pppd, essayera
# d'initier la connexion; si aucune reponse n'est recue de votre correspondant,
# pppd attendra passivement un packet LCP (au lieu de s'arreter comme il fait
# sans cette option)
#passive
# Avec cette option, pppd ne va pas transmettre les paquets LCP pour
# initialiser la connexion tant qu'un paquet LCP valide n'est pas envoye
# par votre correspondant (comme avec l'option "passive" pour des versions
# plus anciennes de pppd).
#silent
# Ne requiert et ne permet pas de negociation pour n'importe quelle option de
# LCP et IPCP (utilise les valeurs par defaut).
#-all
# Desactive la negociation de la compression d'adresses/controle (utilise les
# reglages par defaut, i.e. le champ adresse/controle desactive)
#-ac
# Desactive la negociation asyncmap (utilise le reglage asyncmap par defaut,
# i.e. echappement de tout les caracteres de controle)
#-am
# Ne forke pas pour devenir un processus en tache de fond (sinon pppd le fera
# si un peripherique serie est specifie).
#-detach
# Desactive la negociation d'adresses IP (avec cette option, l'adresse IP
# distante doit etre specifiee avec une option en ligne de commande ou dans
# un fichier d'options).
#-ip
# Desactive la negociation des nombres magiques. Avec cette option, pppd ne
# peut pas detecter une ligne avec une boucle.
#-mn
# Desactive la negociation MRU [Unite de Reception Maximum] (utilise la valeur
# par defaut, i.e. 1500).
#-mru
# Desactive la negociation du protocole de compression par champ (utilise la
# valeur par defaut, i.e le protocole de compression par champs desactive)
#-pc
# Impose a votre corresondant de s'autentifier avec PAP. Cela necessite une
# authentification des DEUX COTES - NE PAS utiliser pour une liaison standard
# authentifiee par PAP vers un FAI puisqu'il faudra que la machine du FAI
# soit authentifie aupres de votre machine (et ce qu'elle ne pourra pas faire).
#+pap
# Refuse d'utiliser l'authentification avec PAP.
#-pap
# Oblige votre correspondant a s'authentifier avec une authentification
# CHAP [Cryptographic Handshake Authentication Protocol]
# Cela necessite une authentification des DEUX COTES - ne PAS utiliser pour une
# liaison avec un FAI puisqu'il faudra que la machine du FAI
# soit authentifie aupres de votre machine (et ce qu'elle ne pourra pas faire).
#+chap
# Refuse d'utiliser l'authentification avec CHAP.
#-chap
# Desactive la negociation de la compression de l'entete IP style Van Jacobson
# (utilise la valeur par defaut, i.e. pas de compression).
#-vj
# Augmente de niveau de deboguage (comme -d). Si cette option est passee, pppd
# enverra dans le log le contenu de tous les paquets de controle envoyes ou
# recus dans une forme lisible. Les paquets seront envoyes dans syslog avec les
# possibilites des daemons et du niveau de deboguage. Ces informations peuvent
# etre diriges dans un fichier en configurant /etc/syslog.conf correctement
# (voir syslog.conf(5)). (Si pppd est compile avec des options de deboguage
# supplementaires, il enverra les messages de log dans local2 au lieu du
# daemon).
#debug
# Ouvre le nom de domaine <d> pour permettre l'authentification de nom d'hote
# local. Par exemple, si gethostname() retourne le nom porsche,
# mais le nom de domaine qualifie est porsche.Quotron.COM, vous devriez
# utiliser l'option domain pour mettre le nom de domaine a Quotron.COM.
#domain <d>
# Active le code de deboguage du pilote PPP au niveau du noyau. L'argument n
# est un nombre qui est la somme des valeurs suivantes : 1 active les messages
# de deboguage generaux, 2 pour que le contenu des paquets recus soient
# affiches, et 4 pour que le contenu des paquets envoyes soient affiches.
#kdebug n
# Configure la valeur MTU [Unitee de Transmission Maximum] a <n>. A moins
# que votre correspondant ne demande une valeur plus petite lors de la
# negociation MRU, pppd demande que les codes reseaux du noyau envoie des
# paquets d'au plus n octets dans l'interface reseau PPP.
#mtu <n>
# Definit le nom du systeme local avec <n> dans un but d'authentification.
# Cela doit certainement avoir ete configure avec votre nom utilisateur de votre
# FAI si vous utilisez PAP/CHAP.
#name <n>
# Definit le nom utilisateur avec <u> pour l'authentification avec le
# correspondant utilisant PAP .
# Ne pas utiliser si vous utilisez le 'name' au-dessus !
#user <u>
# Force l'utilisation du nom d'hote comme nom du systeme local pour les
# authentification (masque l'option name).
#usehostname
# Configure le nom du systeme distant pour les authentifications a <n>.
#remotename <n>
# Ajoute une entree au systeme des tables ARP [Protocole de Resolution
# d'Adresses] avec l'adresse IP de votre correspondant et l'adresse Ethernet
# de ce syteme.
#proxyarp
# Utilise le systeme de base de donnes de mots de passe pour l'authentification
# de votre correspondant avec PAP.
#login
# Si cette option est passee, pppd va envoyer une requete-echo LCP a votre
# correspondant toutes les n secondes. Sous Linux, une requete-echo est envoyee
# lorsqu'aucun paquet n'a ete recu du correspondant depuis n secondes.
# Normalement, le correspondant doit repondre a la requete-echo en envoyant une
# reponse-echo. Cette option peut etre utilise avec l'option lcp-echo-failure
# pour detecter que le correspondant n'est plus connecte.
#lcp-echo-interval <n>
# Si cette option est passe, pppd va supposer que le correspondant est mort
# si n requetes-echo LCP sont envoyees sans recevoir de reponse-echo LCP
# valide. Si cela arrive, pppd va terminer la connexion. Utiliser cette option
# necessite une valeur non nulle pour le parametre lcp-echo-interval.
# Cette option peut etre utilisee pour permettre a pppd de terminer une fois
# qu'une connexion pppd ait ete cassee (c.-a-d. le modem a ete raccroche) dans
# les situations ou aucune ligne de controle materiel du modem n'est
# disponibles
#lcp-echo-failure <n>
# Definit l'intervale relance LCP (delay de retransmission) a <n> secondes
# (defaut 3).
#lcp-restart <n>
# Definit le nombre maximal de transmission de requete-fin de LCP a <n>
# (defaut 3).
#lcp-max-terminate <n>
# Definit la nombre maximum de transmission de requete-configure LCP a <n>
# (defaut 10).
# Certains serveurs PPP sont lents a demarrer. Vous devrez alors augmenter
# ceci si vous avez des erreurs 'serial line looped back' et que vous etes
# SUR que vous etes connecte correctement et que PPP doit demarrer sur le
# serveur.
#lcp-max-configure <n>
# Definit le nombre maximum de retours LCP configure-NAKs avant de commencer
# a envoyer des configure-Rejects a la place a <n> (defaut 10).
#lcp-max-failure <n>
# Definit l'intervale de relancce de IPCP (temps de retransmission) a <n>
# secondes (defaut 3).
#ipcp-restart <n>
# Definit le nombre maximum de transmission de requete-fin IPCP a <n>
# (defaut 3).
#ipcp-max-terminate <n>
# Definit la nombre maximum de transmission de requete-configure IPCP a <n>
# (defaut 10).
#ipcp-max-configure <n>
# Definit la nombre maximem de retour configure-NAKs IPCP avant de commencer
# a envoyer des configure-Rejects a la place a <n> (defaut 10).
#ipcp-max-failure <n>
# Definit l'intervalle de relance PAP (temps de retransmission) a <n> secondes
# (defaut 3).
#pap-restart <n>
# Definit le nombre maximum de transmission de requete-d'authentification PAP
# a n (defaut 10)
#pap-max-authreq <n>
# Definit les intervales de relance de CHAP (temps de retransmission) a <n>
# secondes (defaut 3).
#chap-restart <n>
# Definit le nombre maximal d'essai de transmission de CHAP a <n>
# (defaut 10).
#chap-max-challenge
# Si cette option est passee, pppd va relancer votre correspondant toutes les
# <n> secondes.
#chap-interval <n>
# Avec cette option, pppd va accepter la proposition de votre correspondant
# pour votre adresse IP locale, meme si l'adresse IP est specifiee en option.
#ipcp-accept-local
# Avec cette option, pppd va accepter la proposition d'adresse IP (distante),
# meme si l'adresse distante est specifiee en option.
#ipcp-accept-remote
</pre>
<hr>
<h2><a name="ss12.2">12.2 Quelles options dois-je utiliser ? (Sans
PAP/CHAP)</a></h2>
<p>En fait, comme toujours, ça dépend. Les options
spécifiées ici devraient marcher avec la plupart des
serveurs.</p>
<p>Cependant, si ça NE fonctionne PAS LISEZ LE FICHIER
MODELE (<code>/etc/ppp/options.tpl</code>) <b>et</b> les pages de
manuel de <code>pppd</code> <b>et</b> demandez à votre
administrateur/support client qui fait marcher le serveur sur
lequel vous vous connectez.</p>
<p>Je rappelle également que les scripts de connexion
présentés ici utilisent également des options
en ligne de commande pour <code>pppd</code> et rendre les choses
plus facilement modifiables.</p>
<hr>
<pre>
# /etc/ppp/options (NO PAP/CHAP)
#
# Empeche pppd de forker en tache de fond
-detach
#
# utilise les lignes de controle du modem
modem
# utilise les verrous style uucp pour assurer une utilisation exclusive du
# port serie
lock
# utilise le flux de controle materiel
crtscts
# creer une route par defaut pour cette connexion dans la table de routage
defaultroute
# ne configure aucune sequence de controle echapee
asyncmap 0
# utlise une taille maximale de paquet transmis de 552 octets
mtu 552
# utilise une taille maximale de paquets recus de 552 octets.
mru 552
#
#-------FIN D'EXEMPLE /etc/ppp/options (sans PAP/CHAP)
</pre>
<hr>
<h2><a name="pap"></a> <a name="s13">13. Si votre serveur PPP
utilise PAP (Password Authentification Protocol)</a></h2>
<p>Si le serveur sur lequel vous vous connectez a besoin de
l'authentification PAP ou CHAP, vous avez un petit peu plus de
travail.</p>
<p>Pour les fichiers de configuration précédents,
ajouter les lignes suivantes :</p>
<hr>
<pre>
#
# force pppd a utiliser le nom utilisateur de FAI comme 'nom d'hote' pendant
# le processus d'authentification
name <le nom de votre FAI> # vous devez editer cette ligne
#
# Si vous avez un *serveur* PPP vous devez forcer PAP ou CHAP en decommentant
# l'une des lignes suivantes. Ne pas les utiliser si vous etes un client qui
# se connecte sur un serveur PPP (meme s'il utilise PAP ou CHAP) puisque cela
# forcera le serveur a s'authentifier aupres de votre machine (alors que cela
# ne sera certainement pas possible - et la liaison echouera).
#+chap
#+pap
#
# Si vous utilisez des secrets ENCRYPTES dans le fichier /etc/ppp/pap-secrets,
# alors decommentez la ligne suivante.
# Remarque: ce n'est pas pareil que d'utiliser les mots de passe MS encryptes
# comme ils peuvent etres avec MS RAS sur Windows NT.
#+papcrypt
</pre>
<hr>
<h2><a name="ss13.1">13.1 Utiliser MSCHAP</a></h2>
<p>Microsoft Windows NT RAS peut être configuré pour
utiliser une variation particulière de CHAP
(Challenge/Handshake Authentication Protocol). Dans l'archive des
sources de PPP, vous devriez trouver un fichier appelé
README.MSCHAP80 qui parle de cela.</p>
<p>Vous pouvez déterminer si le serveur demande une
authentification utilisant ce protocole en activant le deboguage
dans <code>pppd</code>. Si le serveur demande une authentification
MS CHAP, vous devriez voir les lignes</p>
<hr>
<pre>
rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
</pre>
<hr>
<p>L'information critique ici est <b>auth chap 80</b>.</p>
<p>Pour utiliser MS CHAP, vous devez recompiler pppd. Veuillez
consulter les instructions dans le fichier README.MSCHAP80 des
sources de PPP pour obtenir les instructions sur la façon de
compiler en utilisant cette variante.</p>
<p>Vous devez remarquer que le code présent supporte
uniquement des clients Linux PPP connectés sur un serveur MS
Windows NT. Mais NE supporte PAS la configuration d'un serveur PPP
Linux pour utiliser l'authentification MSCHAP80 pour les
clients.</p>
<h2><a name="ss13.2">13.2 Le fichier de secrets de
PAP/CHAP</a></h2>
<p>Si vous utilisez l'authentification PAP ou CHAP, alors vous
devez créer les fichiers . Ce sont</p>
<hr>
<pre>
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
</pre>
<hr>
<p>Il doivent être possédés par <b>root</b>, le
groupe <b>root</b> et avoir les permissions 740 pour la
sécurité.</p>
<p>Le premier point à remarquer au sujet de PAP et CHAP est
qu'ils sont conçus pour authentifier <b>les ordinateurs</b>
mais pas <b>les utilisateurs</b></p>
<p>"Humm? Qu'est ce que ça change ? " Me demandez vous.</p>
<p>Hé bien, une fois que l'ordinateur a établi une
connexion PPP avec le serveur, <b>n'importe quel</b> utilisateur de
votre système peut utiliser cette connexion - pas seulement
vous. C'est pourquoi vous pouvez configurer un réseau
à large domaine en reliant deux réseaux locaux avec
PPP.</p>
<p>PAP peut (et CHAP <b>DOIT</b>) demander une authentification
<b>bidirectionnelle</b> - c'est un nom et un code secret qui est
nécessaire pour chaque ordinateur avec lequel il est
impliqué. Cependant, ce n'est pas la façon dont tous
les serveurs PPP fonctionnent pour offrir l'authentification PAP
des appels PPP.</p>
<p>Il a été dit que votre FAI vous donnerait
certainement un nom utilisateur et un mot de passe pour vous
permettre de vous connecter sur son système et ensuite sur
Internet. Votre FAI se fiche de connaître le nom de votre
ordinateur, vous devrez donc utiliser votre nom utilisateur chez
votre FAI comme nom pour votre machine.</p>
<p>Cela est possible avec l'option <code>name username</code> de
<code>pppd</code>. Donc, si vous utilisez le nom donné par
votre FAI, ajoutez la ligne</p>
<hr>
<pre>
name votre_utilisateur nom_chez_votre_FAI
</pre>
<hr>
<p>dans votre fichier <code>/etc/ppp/options</code>.</p>
<p>Techniquement, vous devrez utiliser <code>user votre_utilisateur
nom_chez_votre_FAI</code> pour PAP, mais <code>pppd</code> est
suffisamment intelligent pour interpréter l'option
<code>name</code> comme <code>user</code> si nécessaire pour
utiliser PAP. L'avantage d'utiliser l'option <code>name</code> est
qu'elle est également valide pour CHAP.</p>
<p>Puisque PAP permet d'authentifier les <b>ordinateurs</b>,
techniquement, vous devez aussi spécifier un nom
d'ordinateur distant. Toutefois, comme de nombreuses personnes ont
plus d'un seul FAI, vous pouvez utiliser un caractère
générique (*) pour le nom d'ordinateur distant dans
le fichier de secrets.</p>
<p>Il est aussi intéressant de remarquer que de nombreux FAI
utilise des banques de modems multiples connectés sur
différents serveurs de terminaux - tous ont un nom
différent, mais sont accessibles avec un seul numéro
d'appel. Il peut alors être difficile dans certaines
circonstances de savoir à l'avance quel est le nom de
l'ordinateur distant, puisque cela dépendra du serveur de
terminal sur lequel vous vous connecterez !</p>
<h2><a name="ss13.3">13.3 Le fichier de secrets de PAP</a></h2>
<p>Le fichier <code>/etc/ppp/pap-secrets</code> ressemble
à</p>
<hr>
<pre>
# Authentication Secrete avec PAP
# client serveur secret adresses_IP_locale_acceptable
</pre>
<hr>
<p>Les quatre champs sont séparés par des espaces et
le dernier peut être omis (c'est l'adresse dynamique ou sans
doute statique de votre FAI).</p>
<p>Supposons que votre FAI vous ait donné un nom utilisateur
<code>fred</code> et un mot de passe <code>flintstone</code> vous
aurez l'option <code>name fred</code> dans
<code>/etc/ppp/options[.ttySx]</code> et vous configurerez votre
<code>/etc/ppp/pap-secrets</code> comme suit</p>
<hr>
<pre>
# Authentication Secrete avec PAP
# client serveur secret adresses_IP_locale_acceptable
fred * flintstone
</pre>
<hr>
<p>Cela signifie que pour une machine locale <code>fred</code>
(<code>pppd</code> lui impose de s'appeler comme cela même si
ça n'est pas son nom de machine réel) et pour
<b>n'importe quel</b> serveur, utiliser le mot de passe (secret)
<code>"flintstone"</code>.</p>
<p>Remarquez que vous ne devez pas spécifier d'adresse IP
locale, à moins que vous ne deviez FORCER une adresse locale
statique particulière. Même si vous essayez cette
option, il y a peu de chances qu'elle marche puisque la plupart des
serveurs PPP (pour des raisons de sécurité) ne
permettent pas au système distant de configurer l'adresse IP
qu'ils reçoivent.</p>
<h2><a name="ss13.4">13.4 Le fichier de secrets de CHAP</a></h2>
<p>Cette méthode nécessite une méthode
authentification mutuelle - c'est à dire que vous devez
permettre à votre machine d'authentifier le serveur distant
<b>ET</b> le serveur distant d'authentifier votre machine.</p>
<p>Donc, si votre machine s'appelle <code>fred</code> et que le
serveur distant s'appelle <code>barney</code> il faut
définir sur fred <code>name fred remotename barney</code> et
sur la machine distante <code>name barney remotename fred</code>
dans les fichiers <code>/etc/ppp/options.ttySx</code>
respectifs.</p>
<p>Le fichier <code>/etc/chap-secrets</code> de <code>fred</code>
ressemblera à</p>
<hr>
<pre>
# Authentication Secrete avec CHAP
# client serveur secret adresses_IP_locale_acceptable
fred barney flintstone
barney fred wilma
</pre>
<hr>
<p>et pour <code>barney</code></p>
<hr>
<pre>
# Authentication Secrete avec CHAP
# client serveur secret adresses_IP_locale_acceptable
barney fred flintstone
fred barney wilma
</pre>
<hr>
<p>Remarquez en particulier que les deux machines doivent avoir des
entrées pour une authentification bidirectionnelle. Cela
permet à la machine locale d'authentifier elle-même la
machine distante <b>ET</b> la machine distante d'authentifier
elle-même la machine locale.</p>
<h2><a name="ss13.5">13.5 Supporter plusieurs connexions
authentifiées avec PAP</a></h2>
<p>Certains utilisateurs ont plus d'un serveur sur lesquels ils se
connectent en utilisant PAP. A partir du moment où votre nom
utilisateur est différent sur chacune des machines sur
lesquelles vous vous connectez, il n'y a pas de
problème.</p>
<p>Mais, nombreux sont les utilisateurs qui ont le même nom
utilisateur sur deux (ou plus, voire même tous les)
systèmes où ils se connectent. Le problème
revient donc à choisir la bonne ligne du fichier
<code>/etc/ppp/pap-secrets</code>.</p>
<p>Comme vous pouvez le supposer, PPP fournit un mécanisme
pour régler cela. PPP permet de définir un <<
pseudonyme >> pour le serveur distant final de la connexion
en utilisant l'option <b>remotename</b> de pppd.</p>
<p>Supposons que vous vous connectiez sur deux serveurs PPP
utilisant le même nom utilisateur <code>fred</code>. Vous
configurerez votre <code>/etc/ppp/pap-secrets</code> avec</p>
<hr>
<pre>
fred pppserveur1 barney
fred pppserveur2 wilma
</pre>
<hr>
<p>Maintenant, pour se connecter sur <code>pppserveur1</code> vous
utiliserez <code>name fred remotename pppserver1</code> dans votre
<code>ppp-options</code> et pour <code>pppserveur2</code>
<code>name fred remotename pppserver2</code>.</p>
<p>Puisque vous pouvez sélectionner le fichier d'options
à utiliser avec <code>pppd</code> en utilisant l'option
<code>file filename</code>, vous pouvez définir un script
pour se connecter sur chacun de vos serveurs PPP, qui choisira le
fichier d'options correct et mettra la bonne option
<code>remotename</code>.</p>
<h2><a name="manual"></a> <a name="s14">14. Configurer une
connexion PPP à la main</a></h2>
<p>Maintenant que vous avez créé les fichiers
<code>/etc/ppp/options</code> et <code>/etc/resolv.conf</code> (et
si besoin le fichier <code>/etc/ppp/pap/chap-secrets</code>), vous
pouvez tester les paramètres en établissant une
connexion PPP à la main. (Une fois que la connexion manuelle
marchera, nous automatiserons le processus).</p>
<p>Pour ce faire, votre programme de communication doit pouvoir
être quitté sans réinitialiser le modem.
<code>Minicom</code> peut le faire avec Alt-Q (ou dans les versions
plus ancienne de <code>minicom</code> CTRL-A Q)</p>
<p>Vérifiez que vous êtes <b>root</b>.</p>
<p>Lancez le programme de communication (<code>minicom</code> par
exemple), appelez le serveur PPP et connectez-vous comme
d'habitude. Si vous avez besoin d'envoyer une commande pour
démarrer PPP sur le serveur, faites-le. Vous devriez
maintenant voir les messages que vous aviez déjà
vus.</p>
<p>Si vous utilisez PAP ou CHAP, se connecter simplement sur le
système distant devrait démarrer PPP et vous devriez
voir des caractères s'afficher sans toutefois se connecter
(même si ça peut ne pas marcher sur certains serveurs
- essayez alors d'appuyer sur <b>Entrée</b> et les
caractères devraient s'afficher).</p>
<p>Maintenant quittez le programme de communication <em>sans
initialiser le modem</em> (ALT-Q ou CTRL-A Q dans
<code>minicom</code>) et au message d'accueil de Linux
(étant <b>root</b>) tapez</p>
<hr>
<pre>
pppd -d -detach /dev/ttySx 38400 &
</pre>
<hr>
<p>L'option -d active le déboguage - la conversation de
démarrage de la connexion ppp sera retranscrite dans votre
journal système - ce qui est très utile si des
problèmes apparaissent.</p>
<p>Les lumières de votre modem devraient alors clignoter
puisque la connexion PPP est établie. Cela peut prendre un
peu de temps avant que la connexion soit terminée.</p>
<p>A ce niveau, vous pouver afficher l'interface PPP en tapant la
commande :</p>
<hr>
<pre>
ifconfig
</pre>
<hr>
<p>En plus des éventuels périphériques
loopback et Ethernet, vous devriez avoir quelque chose qui
ressemble à :</p>
<hr>
<pre>
ppp0 Link encap:Point-Point Protocol
inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.0
UP POINTOPOINT RUNNING MTU:552 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
</pre>
<hr>
<p>Où</p>
<ul>
<li>inet addr:10.144.153.10 est l'adresse IP de votre
connexion.</li>
<li>P-t-P:10.144.153.5 est l'adresse IP du serveur.</li>
</ul>
<p>(Naturellement, <code>ifconfig</code> ne renvoie pas ces nombres
là, mais ceux qui sont utilisés par le serveur
PPP.)</p>
<p>Remarque : <code>ifconfig</code> indique également que
votre liaison fonctionne correctement !</p>
<p>Si vous aucun périphérique PPP n'est
affiché ou quelque chose du genre</p>
<hr>
<pre>
ppp0 Link encap:Point-Point Protocol
inet addr:0.0.0.0 P-t-P:0.0.0.0 Mask:0.0.0.0
POINTOPOINT MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0
</pre>
<hr>
<p>Votre liaison PPP n'est pas correcte... voir la section suivante
sur le débuggage !</p>
<p>Vous devez aussi pouvoir voir une route vers l'hôte
distant (et même plus). Pour cela, entrez la commande</p>
<hr>
<pre>
route -n
</pre>
<hr>
<p>Vous devriez obtenir quelque chose comme :</p>
<hr>
<pre>
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
10.144.153.3 * 255.255.255.255 UH 1500 0 1 ppp0
127.0.0.0 * 255.0.0.0 U 3584 0 11 lo
10.0.0.0 * 255.0.0.0 U 1500 0 35 eth0
default 10.144.153.3 * UG 1500 0 5 ppp0
</pre>
<hr>
<p>Ce qui est important ici, c'est d'avoir DEUX entrées
pointant vers votre interface ppp.</p>
<p>La première est une route d'hôte (indiqué
par le drapeau H) et qui permet de voir l'hôte sur lequel
vous êtes connecté - mais pas plus.</p>
<p>La seconde est la route par défaut (établie en
donnant à <code>pppd</code> l'option
<code>defaultroute</code>). C'est cette route qui indique à
votre PC Linux d'envoyer tous les paquets qui ne sont pas
destinés à vos interfaces Ethernet - vers lesquelles
vous avez des routes réseau spécifiques - au serveur
PPP lui-même. Le serveur PPP est alors responsable de router
vos paquets vers Internet et de vous renvoyer les paquets chez
vous.</p>
<p>Si vous ne voyez pas une table de routage avec deux
entrées, quelque chose ne marche pas. En particulier si
votre syslog contient des messages indiquant que <code>pppd</code>
ne remplace pas la route par défaut, vous devez avoir une
route par défaut qui pointe sur votre interface Ethernet -
qui <b>DOIT</b> être remplacée par une route
réseau spécifique : <b>VOUS NE POUVEZ AVOIR QU'UNE
SEULE ROUTE PAR DEFAUT !!!</b></p>
<p>Vous devez explorer vos fichiers d'initialisation de votre
système pour trouver où est configuré votre
route par défaut (elle doit utiliser la commande <code>route
add default...</code>). Changer cette commande par quelque chose du
genre <code>route add net ...</code>.</p>
<p>Maintenant testez la liaison en 'pingant' le serveur à
l'adresse IP affiché par ifconfig, comme suit :</p>
<hr>
<pre>
ping 10.144.153.51
</pre>
<hr>
<p>Vous devriez obtenir</p>
<hr>
<pre>
PING 10.144.153.51 (10.144.153.51): 56 data bytes
64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms
64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms
64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms
64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms
</pre>
<hr>
<p>Ce listing doit continuer sans jamais s'arrêter - pour le
stopper, taper CTRL C, vous recevrez alors des informations
complémentaires :</p>
<hr>
<pre>
--- 10.144.153.51 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 170.7/219.2/328.3 ms
</pre>
<hr>
<p>Jusqu'ici tout va bien, jusqu'ici tout va bien.</p>
<p>Maintenant, essayez de pinger un nom d'hôte (pas le nom du
serveur PPP lui-même) mais un hôte d'un autre site dont
vous SAVEZ qu'il y a de très fortes chances qu'il
marche...). Par exemple</p>
<hr>
<pre>
ping sunsite.unc.edu
</pre>
<hr>
<em>ou lip6.fr</em>
<p>Dans ce cas, il va y avoir une petite pause le temps que Linux
obtienne l'adresse IP du nom de hôte que vous avez
'pingé' par le DNS que vous avez spécifié dans
le <code>/etc/resolv.conf</code> - ne vous inquiétez pas
(les lumières de votre modem devraient clignoter).
Rapidement, vous devriez avoir l'affichage suivant</p>
<hr>
<pre>
PING sunsite.unc.edu (152.2.254.81): 56 data bytes
64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms
64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms
64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms
64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms
64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms
</pre>
<hr>
<p>Là encore, arrêtez le en tapant CTRL C pour obtenir
les statistiques...</p>
<hr>
<pre>
--- sunsite.unc.edu ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 169.8/176.3/190.1 ms
</pre>
<hr>
<p>Si vous n'avez pas de réponse, essayer de pinger
l'adresse de votre serveur DNS de votre FAI. Si vous n'avez pas de
résultat, alors il doit y avoir un problème avec
votre <code>/etc/resolv.conf</code>.</p>
<p>Si ça ne fonctionne pas, vous devez avoir un
problème de routage, ou votre FAI a un problème
à vous renvoyer les paquets. Vérifiez les tables de
routages présentées plus haut et si tout est OK,
contacter votre FAI. Si cela se trouve après votre FAI,
alors le problème est de votre coté.</p>
<p>Si tout marche correctement, fermez la connexion en tapant</p>
<hr>
<pre>
ppp-off
</pre>
<hr>
<p>Après une courte pause, le modem devrait raccrocher.</p>
<p>Si ça ne marche pas, soit vous éteignez votre
modem, soit vous lancez votre programme de communication et vous
interrompez votre modem avec +++ puis vous raccrochez avec ATH0
quand vous recevez le message OK de votre modem.</p>
<p>Vous devez également effacer le fichier
créé par pppd</p>
<hr>
<pre>
rm -f /var/lock/LCK..ttySx
</pre>
<hr>
<h2><a name="automatiser"></a> <a name="s15">15. Automatiser votre
connexion - Créer les scripts de connexion</a></h2>
<p>Même si vous pouvez continuer à vous connecter
à la main comme montré ci-dessus il est plus sympa de
faire quelques scripts pour automatiser tout ça.</p>
<p>Quelques scripts vont automatiser la connexion et le lancement
de PPP, vous n'aurez alors plus qu'à envoyer une seule
commande (en étant <b>root</b> ou membre du groupe PPP) pour
lancer votre connexion.</p>
<h2><a name="ss15.1">15.1 Scripts de connexion pour
l'authentification nom utilisateur/mot de passe</a></h2>
<p>Si votre FAI n'a pas besoin d'utiliser PAP/CHAP, ces scripts
sont faits pour vous !</p>
<p>Si le paquetage ppp est correctement installé, vous devez
avoir deux fichiers d'exemple. Pour PPP 2.1.2 il sont dans
<code>/usr/sbin</code> et pour PPP 2.2 il sont dans
<code>/etc/ppp/scripts</code>. Ils s'appellent</p>
<p>pour PPP-2.1.2</p>
<blockquote>
<pre>
<code>ppp-on
ppp-off
</code>
</pre></blockquote>
<p>et pour PPP 2.2</p>
<blockquote>
<pre>
<code>ppp-off
ppp-on
ppp-on-dialer
</code>
</pre></blockquote>
<p>Maintenant, si vous utilisez PPP 2.1.2, je vous presse fermement
de détruire ces fichiers d'exemple. Il y a pleins de
problèmes potentiels avec ceux-ci - et ne me dites pas
qu'ils marchent correctement - je les ai également
utilisé pendant des années (et les recommandait
même dans la première version de ce HOWTO) !</p>
<p>Pour les utilisateurs de PPP 2.1.2, voici de BIEN MEILLEURS
modèles, pris dans la distribution 2.2 de PPP. Je vous
conseille de les copier et d'utiliser ces scripts à la place
des anciens de PPP-2.1.2.</p>
<h2><a name="ss15.2">15.2 Le script ppp-on</a></h2>
<p>C'est le premier des DEUX scripts qui lance la connexion.</p>
<hr>
<pre>
#!/bin/sh
#
# Script pour initialiser une connexion PPP. C'est la premiere partie de deux
# scripts. Ce ne sont pas des scripts securises, puisque les codes sont
# visibles avec la commande 'ps'. Cependant ils sont simples.
#
# Ce sont des parametres a changer selon les besoins
TELEPHONE=555-1212 # Le numero de telephone de la connexion
ACCOUNT=george # Le nom du compte (comme dans 'George Burns')
PASSWORD=gracie # Le mot de passe du compte (et 'Gracie Allen')
LOCAL_IP=0.0.0.0 # L'adresse IP locale si elle est connue Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0 # Adresse IP distante. Normally 0.0.0.0
NETMASK=255.255.255.0 # Le masque reseau si besoin
#
# Les exporter pour qu'ils soit disponible avec 'ppp-on-dialer'
export TELEPHONE ACCOUNT PASSWORD
#
# C'est l'emplacement du script qui compose le numero et se connecte.
# Utilisez les noms de fichiers absolus, car la variable $PATH n'est pas
# utilisee avec l'option connect. (Faire ca en etant 'root' entraine un
# trou de securite.)
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
# Commencer la connexion
#
#
exec /usr/sbin/pppd debug /dev/ttySx 38400 \
$LOCAL_IP:$REMOTE_IP \
connect $DIALER_SCRIPT
</pre>
<hr>
<p>Voici le script ppp-on-dialer :</p>
<hr>
<pre>
#!/bin/sh
#
# C'est la deuxieme partie du script ppp-on. Il contient le protocole de
# connexion de la connexion desiree.
#
/usr/sbin/chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
ogin:--ogin: $ACCOUNT \
assword: $PASSWORD
</pre>
<hr>
<p>Avec PPP-2.2, le script <code>ppp-off</code> ressemble à
:</p>
<hr>
<pre>
#!/bin/sh
######################################################################
#
# Determine le peripherique a terminer.
#
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
######################################################################
#
# Si le fichier pid ppp0 est present alors le programme est lance. Le stopper.
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# Si le kill ne marche pas, alors il n'y a pas de processus lance pour ce pid.
# Cela peut signifier que le fichier de lock a ete laisse. Vous souhaitez
# peut-etre detruire le fichier de lock en meme temps.
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo "ERROR: Removed stale pid file"
exit 1
fi
#
# Succes. pppd a enlever tout ce qu'il avait cree.
echo "PPP link to $DEVICE terminated."
exit 0
fi
#
# Le processus ppp ne marche pas pour ppp0
echo "ERROR: PPP link is not active on $DEVICE"
exit 1
</pre>
<hr>
<h2><a name="ss15.3">15.3 Editer les scripts de démarrage de
PPP fournis</a></h2>
<p>Puisque les nouveaux scripts sont en deux parties, nous allons
les éditer chacun leur tour.</p>
<h3>Le script ppp-on</h3>
<p>Vous devez éditer ces fichiers pour contenir VOTRE nom
utilisateur de votre FAI, VOTRE mot de passe de votre FAI, et le
numéro de téléphone de votre FAI.</p>
<p>Chacune des lignes ressemblant à <code>TELEPHONE=</code>
définissent une variable du shell contenant les informations
à droite du '=' (mise à part les commentaires
évidemment). Éditer donc toutes les lignes de ce
fichier pour qu'il corresponde a votre FAI et votre connexion.</p>
<p>De plus, si vous configurez l'adresse IP (si vous avez besoin)
dans le fichier <code>/etc/ppp/options</code>, DETRUISEZ les lignes
mentionnant</p>
<hr>
<pre>
$LOCAL_IP:$REMOTE_IP \
</pre>
<hr>
<p>Assurez-vous également que la variable shell
DIALER_SCRIPT pointe sur le chemin complet du script d'appel qui
sera réellement utilisé. Ainsi, si vous
déplacez ou renommez ce script, assurez-vous que vous
modifier correctement cette ligne dans le script
<code>ppp-on</code> !</p>
<h3>Le script ppp-on-dialer</h3>
<p>C'est le deuxième des scripts qui lance votre liaison
PPP.</p>
<p>Remarque : un script <code>chat</code> est normalement sur une
ligne complète. Les backslashs sont utilisés pour
permettre à la ligne de se répartir sur plusieurs
lignes physiques (pour une lisibilité plus humaine) et ne
font pas partie du script lui-même.</p>
<p>Cependant, il est très utile de le regarder en
détail, comme cela nous comprenons ce qu'il est
réellement supposé faire !</p>
<h2><a name="ss15.4">15.4 Ce que script Chat signifie...</a></h2>
<p>Un script <code>chat</code> est une séquence de paires de
<code>"</code>chaînes d'attentes<code>"</code> et de
<code>"</code>chaînes d'envoi <code>"</code>. En particulier,
remarquez que nous attendons <b>TOUJOURS</b> quelque chose avant
d'envoyer quoi que ce soit.</p>
<p>Si nous envoyons quelque chose <b>SANS</b> avoir rien
reçu avant, nous devons attendre une chaîne vide avant
(indiquée par un <code>"</code><code>"</code>) Et de la
même manière attendre quelque chose sans avoir rien
envoyé ! Ainsi, si les chaîne consistent en quelques
mots, (c.-à-d. NO CARRIER), vous devez entourez les
chaînes par des quotes pour qu'elles soient vues comme une
seule entité par chat.</p>
<p>La ligne <code>chat</code> de notre modèle est :</p>
<hr>
<pre>
exec /usr/sbin/chat -v
</pre>
<hr>
<p>Invoque chat, le -v indique à <code>chat</code> de mettre
toutes ses entrée/sorties dans le journal système
(généralement /var/log/messages). Une fois que votre
script <code>chat</code> marchera correctement, éditez cette
ligne et enlevez le -v pour économiser des messages inutiles
dans votre syslog.</p>
<hr>
<pre>
TIMEOUT 3
</pre>
<hr>
Ça définit un temps d'attente de trois secondes avant
la réception d'une entrée attendue. Vous devrez
l'augmenter à 5 ou 10 secondes si vous utilisez un modem
extrêmement lent !
<hr>
<pre>
ABORT '\nBUSY\r'
</pre>
<hr>
<p>Si la chaîne BUSY est reçue, abandonner
l'opération.</p>
<p>M</p>
<hr>
<pre>
ABORT '\nNO ANSWER\r'
</pre>
<hr>
<p>Si la chaîne NO ANSWER est reçue, abandonner
l'opération.</p>
<hr>
<pre>
ABORT '\nRINGING\r\n\r\nRINGING\r'
</pre>
<hr>
<p>Si la chaîne RINGING est reçue de manière
répétée, abandonner l'opération. C'est
parce que quelqu'un vous appelle !</p>
<hr>
<pre>
" \rAT
</pre>
<hr>
<p>Ne rien attendre du modem et envoyer la chaîne AT.</p>
<hr>
<pre>
OK-+++\c-OK ATH0
</pre>
<hr>
<p>C'est un petit plus compliqué car cela utilise certaines
capacités de chat à récupérer les
erreurs.</p>
<p>Ça veux dire...Expect OK, si on ne l'a pas reçu
(parce que le modem n'est pas en ligne de commande) alors envoyer
+++ (la chaîne standard des modems compatible Hayes pour
retourner en ligne de commande) et attendre OK. Ensuite envoyer
ATH0 (la chaîne pour raccrocher). Cela permet au script de
répondre à la situation ou votre modem avait
laissé la ligne décrochée !</p>
<hr>
<pre>
TIMEOUT 30
</pre>
<hr>
<p>Mettre le temps d'attente à 30 secondes pour le reste du
script. Si vous avez des soucis avec des abandons du script
<code>chat</code> à cause de timeout, augmentez cette valeur
à 45 secondes ou plus.</p>
<hr>
<pre>
OK ATDT$TELEPHONE
</pre>
<hr>
<p>Attends un OK (la réponse du modem à la commande
ATH0) et compose le numéro que nous voulez appeler.</p>
<hr>
<pre>
CONNECT ''
</pre>
<hr>
<p>Attendre CONNECT(ce que le modem nous envoie lorsque le modem
distant décroche) et n'envoie rien en réponse.</p>
<hr>
<pre>
ogin:--ogin: $ACCOUNT
</pre>
<hr>
<p>Une fois encore nous avons une récupération
d'erreur ici. Attendre le message de login (...ogin:) mais si nous
ne le recevons pas au bout d'un certain temps, envoyer un retour
chariot et attendre une nouvelle fois le message de login. Lorsque
le message est reçu, envoyer le nom utilisateur
(stocké dans la variable shell $ACCOUNT).</p>
<hr>
<pre>
assword: $PASSWORD
</pre>
<hr>
<p>Attendre le message du mot de passe et envoyer le mot de passe
(là aussi stocké dans une variable shell).</p>
<p>Ce script <code>chat</code> à une capacité de
récupération d'erreurs résonnable. Chat
possède bien d'autres possibilités que celles
détaillés. Pour plus d'informations, consulter la
page de manuel de <code>chat</code> (<code>man 8 chat</code>).</p>
<h3>Démarrer PPP sur le serveur final</h3>
<p>Bien que le script ppp-on-dialer soit parfait pour les serveurs
qui lancent automatiquement <code>pppd</code> sur le serveur final
une fois que vous êtes connectés, certains serveurs
nécessitent que vous lanciez PPP explicitement sur le
serveur.</p>
<p>Si vous avez besoin d'envoyer une commande de lancement de PPP
sur le serveur, vous DEVEZ éditer le script
ppp-on-dialer.</p>
<p>A la fin du script (après la ligne password) ajouter une
paire <b>attente envoi</b> en plus - elle cherchera un message de
login (une suite de caractères qui ont une signification
particulière dans le shell Bourne - comme $ et [ ou ] (les
crochets ouverts et fermés).</p>
<p>Une fois que <code>chat</code> à obtenu le prompt du
shell, <code>chat</code> doit envoyer la commande de
démarrage de ppp nécessaire sur le serveur PPP de
votre FAI.</p>
<p>Pour ma part, mon serveur PPP utilise un prompt Bash
standard</p>
<hr>
<pre>
[hartr@kepler hartr]$
</pre>
<hr>
<p>et nécessite que je tapes</p>
<hr>
<pre>
ppp
</pre>
<hr>
<p>pour lancer ppp sur le serveur.</p>
<p>Une idée judicieuse peut être d'ajouter un peu de
récupération d'erreur, dans mon cas j'utilise</p>
<hr>
<pre>
hartr--hartr ppp
</pre>
<hr>
<p>Cela signifie que si je ne reçois pas le prompt dans le
temps imparti, j'envoie un retour chariot et je recherche le prompt
une nouvelle fois.</p>
<p>Une fois que le message est reçu, j'envoie la
chaîne <code>ppp</code>.</p>
<p>Remarque : n'oubliez pas d'ajouter un \ à la fin de la
ligne précédente pour que <code>chat</code> pense que
le script de connexion de <code>chat</code> est toujours sur une
seule ligne !</p>
<p>Malheureusement, certains serveurs génèrent un
nombre de messages très variable ! Vous aurez
peut-être besoin de vous connecter plusieurs fois avec
<code>minicom</code> pour comprendre comment ça marche et
récupérer une chaîne "d'attente" stable.</p>
<h2><a name="ss15.5">15.5 Un script chat pour les connections
authentifiées avec PAP/CHAP</a></h2>
<p>Si votre FAI utilise PAP/CHAP, alors votre script
<code>chat</code> est bien plus simple. Tout ce que votre script
<code>chat</code> doit faire est de composer le numéro,
attendre la connexion et ensuite laisser <code>pppd</code>
s'occuper du processus de connexion !</p>
<hr>
<pre>
#!/bin/sh
#
# C'est la deuxieme partie du script ppp-on. Il contient le protocole de
# connexion de la connexion desiree.
#
exec /usr/sbin/chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
</pre>
<hr>
<h2><a name="ss15.6">15.6 Les options <code>debug</code> et
<code>file option_file</code> de pppd</a></h2>
<p>Comme nous l'avons déjà vu, vous pouvez activer
les informations de débuggage avec l'option -d de pppd.
L'option 'debug' est équivalente à celle-ci.</p>
<p>Puisque vous établissez la connexion avec un nouveau
script, laissez pour le moment les informations de
débuggage. (Attention : si votre espace disque est
réduit, les échanges de connexion de
<code>pppd</code> peuvent rapidement augmenter votre fichier syslog
et vous amener des problèmes - mais pour aller jusque
là, il faut que vous essayez et vous échouiez vos
connexions un certain temps).</p>
<p>Une fois que tout marche correctement, vous pouvez alors enlever
cette option.</p>
<p>Si vous avez appelé votre fichier d'options de ppp
autrement que <code>/etc/ppp/options</code> ou
<code>/etc/ppp/options.ttySx</code>, spécifiez le nom du
fichier avec l'option <code>file</code> de <code>pppd</code> :</p>
<hr>
<pre>
exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \
</pre>
<hr>
<h2><a name="s16">16. Testez votre script de connexion</a></h2>
<p>Ouvrez un nouveau Xterm <b>root</b> (si vous êtes sous X)
ou ouvrez une nouvelle console virtuelle et connectez vous comme
<b>root</b>.</p>
<p>Dans cette nouvelle session, tapez la commande</p>
<blockquote>
<pre>
<code>tail -f /var/log/messages
</code>
</pre></blockquote>
<p>(ou l'endroit exact ou se trouve le fichier log).</p>
<p>Dans la première fenêtre (ou console virtuelle),
tapez la commande</p>
<blockquote>
<pre>
<code>ppp-on &
</code>
</pre></blockquote>
<p>(ou le nom que vous avez donné à la nouvelle
version de votre /usr/sbin/ppp- on). Si vous ne mettez pas le
script en tâche de fond en spécifiant & en fin de
commande, vous ne récupérerez pas le prompt de votre
terminal avant que ppp se termine (ou que la liaison se
termine).</p>
<p>Maintenant revenez dans la fenêtre ou vous affichez votre
journal système.</p>
<p>L'affichage devrait ressembler à ce qui suit (si vous
avez spécifié l'option -vi a <code>chat</code> et -d
à <code>pppd</code> )....c'est le déroulement du
script <code>chat</code> et des réponses envoyées
dans le fichier journal système suivi des informations de
démarrage de <code>pppd</code> :</p>
<hr>
<pre>
Oct 21 16:09:58 hwin chat[19868]: abort on (NO CARRIER)
Oct 21 16:09:59 hwin chat[19868]: abort on (BUSY)
Oct 21 16:09:59 hwin chat[19868]: send (ATZ^M)
Oct 21 16:09:59 hwin chat[19868]: expect (OK)
Oct 21 16:10:00 hwin chat[19868]: ATZ^M^M
Oct 21 16:10:00 hwin chat[19868]: OK -- got it
Oct 21 16:10:00 hwin chat[19868]: send (ATDT722298^M)
Oct 21 16:10:00 hwin chat[19868]: expect (CONNECT)
Oct 21 16:10:00 hwin chat[19868]: ^M
Oct 21 16:10:22 hwin chat[19868]: ATDT722298^M^M
Oct 21 16:10:22 hwin chat[19868]: CONNECT -- got it
Oct 21 16:10:22 hwin chat[19868]: send (^M)
Oct 21 16:10:22 hwin chat[19868]: expect (ogin:)
Oct 21 16:10:23 hwin chat[19868]: kepler login: -- got it
Oct 21 16:10:23 hwin chat[19868]: send (hartr^M)
Oct 21 16:10:23 hwin chat[19868]: expect (ssword:)
Oct 21 16:10:23 hwin chat[19868]: hartr^M
Oct 21 16:10:23 hwin chat[19868]: Password: -- got it
Oct 21 16:10:23 hwin chat[19868]: send (??????^M)
Oct 21 16:10:23 hwin chat[19868]: expect (hartr)
Oct 21 16:10:24 hwin chat[19868]: [hartr -- got it
Oct 21 16:10:24 hwin chat[19868]: send (ppp^M)
Oct 21 16:10:27 hwin pppd[19872]: pppd 2.1.2 started by root, uid 0
Oct 21 16:10:27 hwin pppd[19873]: Using interface ppp0
Oct 21 16:10:27 hwin pppd[19873]: Connect: ppp0 <--> /dev/cua1
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 1, id 1.
Oct 21 16:10:27 hwin pppd[19873]: LCP: sending Configure-Request, id 1
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(LCP): Rcvd id 1.
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MRU
Oct 21 16:10:27 hwin pppd[19873]: (1500)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ASYNCMAP
Oct 21 16:10:27 hwin pppd[19873]: (0)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MAGICNUMBER
Oct 21 16:10:27 hwin pppd[19873]: (a098b898)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd PCOMPRESSION
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ACCOMPRESSION
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: returning CONFACK.
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 2, id 1.
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfack(LCP): Rcvd id 1.
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1.
Oct 21 16:10:27 hwin pppd[19873]: IPCP: sending Configure-Request, id 1
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 1.
Oct 21 16:10:27 hwin pppd[19873]: ipcp: received ADDR
Oct 21 16:10:27 hwin pppd[19873]: (10.144.153.51)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: ipcp: received COMPRESSTYPE
Oct 21 16:10:27 hwin pppd[19873]: (45)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: ipcp: returning Configure-ACK
Oct 21 16:10:28 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 1.
Oct 21 16:10:30 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id 1.
Oct 21 16:10:30 hwin pppd[19873]: IPCP: sending Configure-Request, id 1
Oct 21 16:10:30 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 255.
Oct 21 16:10:31 hwin pppd[19873]: ipcp: received ADDR
Oct 21 16:10:31 hwin pppd[19873]: (10.144.153.51)
Oct 21 16:10:31 hwin pppd[19873]: (ACK)
Oct 21 16:10:31 hwin pppd[19873]: ipcp: received COMPRESSTYPE
Oct 21 16:10:31 hwin pppd[19873]: (45)
Oct 21 16:10:31 hwin pppd[19873]: (ACK)
Oct 21 16:10:31 hwin pppd[19873]: ipcp: returning Configure-ACK
Oct 21 16:10:31 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id 255.
Oct 21 16:10:31 hwin pppd[19873]: fsm_rconfack(IPCP): Rcvd id 1.
Oct 21 16:10:31 hwin pppd[19873]: ipcp: up
Oct 21 16:10:31 hwin pppd[19873]: local IP address 10.144.153.104
Oct 21 16:10:31 hwin pppd[19873]: remote IP address 10.144.153.51
</pre>
<hr>
<p>(Remarque - j'utilise les adresses IP STATIQUES - ma machine
l'envoie au serveur PPP - vous ne verrez pas la même chose si
vous utilisez des adresses IP DYNAMIQUES.) Ainsi, le server
nécessite une commande spécifique pour
démarrer ppp à la fin.</p>
<p>Ca semble OK - alors testez comme avant avec des ping des
adresses IP et des noms des hôtes.</p>
<p>Lancer votre navigateur web ou n'importe quoi d'autre et allez
surfer - vous êtes connecté !</p>
<h2><a name="off"></a> <a name="s17">17. Terminer une connexion
PPP</a></h2>
<p>Quand vous en avez terminé avec la liaison PPP, utilisez
la commande standard ppp-off pour la terminer (rappel - vous devez
être <b>root</b> ou membre du groupe PPP ! ).</p>
<p>Dans votre fichier journal de votre système, il devrait y
avoir quelque chose ressemblant à :</p>
<hr>
<pre>
Oct 21 16:10:45 hwin pppd[19873]: Interrupt received: terminating link
Oct 21 16:10:45 hwin pppd[19873]: ipcp: down
Oct 21 16:10:45 hwin pppd[19873]: default route ioctl(SIOCDELRT): Bad address
Oct 21 16:10:45 hwin pppd[19873]: fsm_sdata(LCP): Sent code 5, id 2.
Oct 21 16:10:46 hwin pppd[19873]: fsm_rtermack(LCP).
Oct 21 16:10:46 hwin pppd[19873]: Connection terminated.
Oct 21 16:10:46 hwin pppd[19873]: Exit.
</pre>
<hr>
<p>Ne pas s'inquiéter du <code>SIOCDELRT</code> - c'est
juste <code>pppd</code> qui indique qu'il se termine, il n'y a pas
à s'en inquiéter.</p>
<h2><a name="problemes"></a> <a name="s18">18. Résoudre les
problèmes</a></h2>
<p>Il y a de nombreuses raisons pour que votre liaison ne
fonctionne pas - <code>chat</code> n'a pas réussi à
aller jusqu'au bout, vous avez une mauvaise ligne, etc. Regardez
votre syslog pour avoir des indications.</p>
<h2><a name="ss18.1">18.1 J'ai compilé le support PPP dans
le noyau, mais...</a></h2>
<p>Un problème relativement courant est que les gens
compilent le support PPP dans leur noyau et après,
lorsqu'ils essayent de lancer pppd, le noyau répond qu'il ne
supporte pas ppp ! Un grand nombre de raisons peuvent en être
la cause.</p>
<h3>Bootez-vous avec le bon noyau ?</h3>
<p>Même si vous <b>avez</b> recomplié votre support de
ppp dans le noyau, vous ne bootez pas sur le nouveau noyau. Cela
peut arriver si vous n'avez pas mis à jour
<code>/etc/lilo.conf</code> et relancé lilo.</p>
<p>Une bonne façon de vérifier le noyau est d'envoyer
la commande <code>uname -a</code>, qui affiche la ligne ressemblant
à</p>
<hr>
<pre>
Linux archenland 2.0.28 #2 Thu Feb 13 12:31:37 EST 1997 i586
</pre>
<hr>
<p>Cela donne la version du noyau et la date à laquelle il a
été compilé - ce qui vous donnera une bonne
idée de ce qui se passe.</p>
<h3>Avez-vous compilé le support noyau de ppp comme un
module ?</h3>
<p>Si vous avez compilé le support de ppp comme un module,
mais n'avez pas fait d'installation des modules, alors vous pouvez
avoir cette erreur. Relisez le kernel-HOWTO et le fichier README de
<code>/usr/src/linux</code> !</p>
<p>Une autre possibilité concernant les modules est que vous
supposez que les modules sont chargés automatiquement, alors
que le daemon <code>kerneld</code> n'est pas lancé (il
charge et décharge les modules au vol). Vérifiez le
mini-HOWTO kerneld pour des informations sur la configuration de
kerneld.</p>
<h3>Utilisez-vous une bonne version de PPP pour votre noyau ?</h3>
<p>Vous <b>devez</b> utiliser ppp-2.2 avec les versions 2.0.x du
noyau. Vous pouvez utiliser ppp-2.2 avec les versions 1.2.x du
noyau (si vous le patchez) sinon vous devez utiliser ppp-2.1.2.</p>
<h3>Lancez vous pppd en étant root ?</h3>
<p>Si vous ne lancez pas <code>pppd</code> en étant
l'utilisateur <b>root</b> (et que <code>pppd</code> n'est pas suid
vers <b>root</b>), vous pourrez recevoir ce message.</p>
<h2><a name="ss18.2">18.2 Mon modem se connecte mais PPP ne
démarre jamais</a></h2>
<p>Il y a d'innombrables possibilités avec ça
(regardez dans comp.os.linux....).</p>
<p>Une erreur <b>EXTREMEMENT</b> fréquente est que vous avez
mal tapé quelque chose dans vos scripts. La seule chose
à faire est de vérifier que vous avez la conversation
entre votre PC Linux et le serveur rapporté dans le syslog
/var/log/message) allez ensuite dans celui-ci <em>ligne par
ligne</em>. Vous aurez peut-être besoin d'appeler votre
serveur ppp à la main pour revérifier tout
ça.</p>
<p>Vous devez vérifier les messages de logs réels
très attentivement - et ayez à l'esprit que les
hommes on tendance à lire ce qu'ils PENSENT avoir
tapé - et non ce qu'ils ont sous leurs yeux !</p>
<h2><a name="ss18.3">18.3 Le syslog contient "<code>serial line is
not 8 bit clean</code>..."</a></h2>
<p>Il y a plusieurs possibilités à cela - comme des
retours sur la ligne etc., qui peuvent être la
conséquence d'une (ou plusieurs) choses.</p>
<p>Pour comprendre ce qui se passe, il est nécessaire de
chercher se qui se passe en coulisses dans <code>pppd</code>
lui-même.</p>
<p>Lorsque <code>pppd</code> démarre, il envoie des paquets
LCP (Link Control Protocol) à la machine distante. Si il
reçoit une réponse valide il passe ensuite à
l'étape suivante (avec IPCP - les paquets de contrôle
IP) et c'est seulement une fois que cette négociation est
terminée que les trames IP réelles commencent et que
vous pouvez utiliser la liaison PPP.</p>
<p>Si il n'y a pas de serveur ppp fonctionnel à l'autre bout
quand votre PC envoie les paquets LCP, ceux-ci sont renvoyés
par le processus de login final. Comme ces paquets utilisent 8
bits, et sont réfléchis avec le 8ème bit
(souvenez vous qu'ASCII est un code 7 bits). PPP s'en
aperçoit et s'en plaint.</p>
<p>Il y a plusieurs possibilité pour qu'un réflexion
arrive.</p>
<h3>Vous n'êtes pas correctement connecté sur le
serveur</h3>
<p>Lorsque le script <code>chat</code> se termine,
<code>pppd</code> démarre sur votre PC. Cependant, si vous
n'avez pas terminé le processus de connexion au serveur
(comme envoyer une commande nécessaire à lancer PPP
sur le serveur), PPP ne se lancera pas.</p>
<p>Ainsi, le paquet LCP sera réfléchi et vous aurez
une erreur.</p>
<p>Vous devez vérifier et corriger (si nécessaire)
attentivement votre script <code>chat</code> (voir plus haut).</p>
<h3>Vous n'avez pas lancé PPP sur le serveur</h3>
<p>Certains serveurs PPP nécessitent que vous entriez une
commande et/ou un retour chariot après avoir terminé
le processus de connexion et avant que ppp soit lancé
à l'autre bout.</p>
<p>Vérifiez votre script <code>chat</code> (voir plus
haut).</p>
<p>Si vous vous connectez à la main et que vous vous rendez
compte que vous devez envoyer sur ENTREE après avoir
lancé PPP, ajouter simplement une paire attente/envoi vide
à la fin de votre script <code>chat</code> (un chaîne
vide envoie en fait ENTREE).</p>
<h2><a name="ss18.4">18.4 Le processus PPP distant est long
à démarrer</a></h2>
<p>Là c'est un peu délicat !</p>
<p>Par défaut, votre <code>pppd</code> Linux est
compilé pour envoyer un maximum de 10 requêtes LCP de
configuration. Si le serveur est un peu lent à
démarrer, la totalité des 10 requêtes auront
été envoyées avant que le serveur PPP distant
n'ait eu le temps de les recevoir.</p>
<p>Sur votre machine, <code>pppd</code> voit la réflexion
des 10 requêtes (avec le 8éme bit inversé) et
s'arrête.</p>
<p>Il y a deux façon de résoudre cela :</p>
<p>Ajouter <code>lcp-max-configure 30</code> comme option de ppp.
Cela augmentera le nombre de packets de configuration LCP que
<code>pppd</code> enverra avant d'abandonner. Pour les serveurs
vraiment lents, vous devez même mettre plus que
ça.</p>
<p>Sinon, vous pouvez être un peu malin de votre
côté. Vous avez peut-être remarqué que
lorsque vous vous connectez à la main au serveur PPP et que
vous démarrez alors PPP, le <b>premier</b> caractère
que ppp envoie et qui apparaît est toujours le
caractère tilda (~).</p>
<p>En savant cela, vous pouvez ajouter une nouvelle paire
<code>attente/envoi</code> à la fin de votre script
<code>chat</code> qui attendra un tilda et n'enverra rien. Cela
ressemblera alors à :</p>
<hr>
<pre>
\~ ''
</pre>
<hr>
<p>Remarque : comme le caractère tilda a une signification
particulière pour le shell, il doit être
échappé (en fait précédé par un
backslash).</p>
<h2><a name="ss18.5">18.5 La route par défaut n'est pas
configurée</a></h2>
<p>Si <code>pppd</code> refuse de configurer la route par
défaut, c'est parce que (assez justement) il refuse de
remplacer/supprimer une route par défaut existante.</p>
<p>La raison habituelle lorsque cette erreur apparaît est que
certaines distributions configurent une route par défaut
pour votre carte Ethernet au lieu de la configurer comme une route
réseau spécifique.</p>
<p>Voir le Linux NAG et le HOWTO Net2/3 pour des informations sur
la façon de configurer correctement votre carte Ethernet et
les routes associées.</p>
<p>Une alternative à cela est que votre réseau local
utilise déjà un gateway/routeur et que votre table de
routage est déjà configurée pour envoyer la
route par défaut à cet endroit.</p>
<p>Résoudre cette situation peut nécessiter quelques
connaissances de réseau IP qui sort du domaine de ce HOWTO.
Il est suggéré d'obtenir l'avis d'un expert (par les
groupes de news ou quelqu'un que vous pouvez interroger près
de vous).</p>
<h2><a name="ss18.6">18.6 Autres problèmes</a></h2>
<p>Il y a des tas de raisons autres que celles-ci pour que ppp ne
parvienne pas à se connecter et/ou fonctionner
correctement.</p>
<p>Lisez la FAQ PPP(qui est une série de
questions-réponses). C'est un document très
didactique et les réponses y SONT ! De ma propre (et triste)
expérience, si la réponse à votre
problème n'est pas dedans, votre problème N'est PAS
de la faute de ppp ! Pour ma part, j'utilisais un noyau ELF alors
que je n'avais pas mis à jour les modules du noyau. J'ai
juste perdu 2 jours (et presque une nuit) à chercher comment
doit être un serveur PPP parfait avant de faire
lumière !</p>
<h2><a name="s19">19. Obtenir de l'aide quand on est totalement
perdu</a></h2>
<p>Si vous n'arrivez pas à faire fonctionner votre liaison
PPP, relisez ce document et tout vérifier - en conjonction
avec les sorties de "chat-v..." et "pppd -d" dans votre journal
système.</p>
<p>Consultez également la documentation de PPP la FAQ et
tout les documents mentionnés ici !</p>
<p>Si vous êtes encore bloqué, essayez les groupes de
news comp.os.linux.misc et comp.os.linux.networking qui sont
régulièrement parcourus par des gens capable de vous
aider sur PPP ainsi que dans comp.protocols.ppp</p>
<p>Vous pouvez essayer de m'envoyer personnellement un email, mais
si j'ai une journée (et même une vie) chargé,
je ne garanti pas de répondre rapidement (même pas du
tout) selon la quantité de travail en cours et l'état
de ma vie privée !</p>
<p>En particulier - <b>NE POSTEZ PAS DES PAGES ET DES PAGES DE
SORTIE DE DEBUGGAGE DANS LES NEWS GROUPS NI MEME A MOI PAR
EMAIL</b> - c'est une énorme perte de bande passante, et la
majorité sera envoyé dans /dev/null (à moins
qu'elle ne soit expressément demandé).</p>
<h2><a name="s20">20. Problèmes classiques lorsque la
liaison fonctionne</a></h2>
<p>Un des problèmes que vous rencontrerez est que de
nombreux fournisseurs d'accès est qu'ils ne supporterons que
les programmes de connexions qu'ils distribuent avec les nouveaux
comptes. Il sont (habituellement) pour Microsoft Windows :-( - et
la plupart des bureau d'aide des fournisseurs d'accès ne
sembleront rien savoir au sujet d'Unix (ou Linux). Donc
préparez vous à une assistance limité de leur
part !</p>
<p>Vous pouvez évidemment leur faire une faveur et leur
apprendre ce qu'est Linux (certaines personnes au support de votre
fournisseur d'accès seront relativement 'branché'
avec le monde Internet est auront une machine Linux chez eux - bien
sûr que ça existe ! )</p>
<h2><a name="ss20.1">20.1 Je n'arrive pas à voir
après le serveur PPP ou je suis connecté</a></h2>
<p>OK - votre connexion PPP est lancée et fonctionne vous
pouvez pinger le serveur PPP avec son adresse IP (la
deuxième ou "remote" adresse IP affichée par
<code>ifconfig ppp0</code>), mais vous ne pouvez rien atteindre
après cela.</p>
<p>Tout d'abord, essayez de pinger les adresses IP que vous avez
spécifié dans /etc/resolv.conf comme serveur de noms.
Si elles marchent, vous <b>pouvez</b> voir après votre
serveur PPP (en tout cas ce qui à une adresse IP identique
à ce que vous avez spécifié). Maintenant
essayez de pinger l'adresse complète de votre fournisseur
d'accès :</p>
<blockquote>
<pre>
<code>ping mon.fournisseur.internet.fr
</code>
</pre></blockquote>
<p>Si ça ne marche pas, vous avez un problème avec la
résolution des noms. C'est probablement à cause d'une
faute de frappe dans votre fichier /etc/resolv.conf.
Vérifiez ça attentivement à partir des
informations que vous aviez obtenues en appelant votre fournisseur
d'accès. Si ça semble correct, appelez votre
fournisseur d'accès, et vérifiez que vous avez
noté l'adresse IP correctement.</p>
<p>Si ça ne marche TOUJOURS pas (et que votre fournisseur
d'accès vous confirme que le serveur de noms fonctionne
correctement), vous devez avoir un problème ailleurs - et je
vous suggère de vérifier votre installation de Linux
(en particulier les permissions des fichiers).</p>
<p>Si vous ne pouvez TOUJOURS pas pinger le serveur de nom de votre
fournisseur d'accès par l'adresse IP, soit il est
éteint (appelez les par téléphone et
vérifiez) soit il y a un problème de routage du
côté de votre fournisseur d'accès. De
même appelez-les et demandez leur.</p>
<p>Un autre possibilité est qu'à l'autre bout le
serveur PPP Linux n'ait pas l'option IP forwarding d'activée
dans le noyau !</p>
<p>Un bon test est d'essayer de se connecter avec le programme que
votre fournisseur d'accès vous a donné pour (oups)
Microsoft Windows. Si tout marche sur un autre système
d'exploitation avec exactement le même compte, alors le
problème vient de votre machine Linux et NON de votre
fournisseur d'accès.</p>
<h2><a name="ss20.2">20.2 Je peux envoyer du courrier mais pas en
recevoir</a></h2>
<p>Si vous avez une adresse IP dynamique, c'est tout à fait
normal. Voir "Configurer les services" plus bas.</p>
<h2><a name="ss20.3">20.3 Pourquoi les gens ne peuvent pas faire de
finger, WWW, gopher, talk etc avec ma machine ?</a></h2>
<p>La aussi, si vous utilisez une adresse IP dynamique c'est tout
à fait normal. voir "Configurer les services" plus bas.</p>
<h2><a name="dynamic-serveur"></a> <a name="s21">21. Utiliser les
services Internet avec des adresses IP dynamiques</a></h2>
<p>Si vous utilisez une adresse IP dynamique (et tous les
provideurs ne vous donnerons qu'une adresse dynamique à
moins que vous ne payez bien plus pour votre connexion), vous devez
accepter les limitations qu'elle impose.</p>
<p>Tout d'abord, les requêtes pour les services sortant
fonctionneront parfaitement. Cela signifie que vous pourrez envoyer
du courrier avec sendmail (si sendmail est configuré
correctement), les fichiers ftp pour les sites distants, les
fingers vers d'autres machines, surfer sur le web etc.</p>
<p>En particulier, vous pourrez répondre au courrier que
vous avez reçu même si votre machine n'est plus
connectée. Le courrier restera dans votre queue de messages
jusqu'à ce que vous appeliez votre FAI.</p>
<p>Cependant, votre machine N'est PAS connectée à
Internet 24H/24, et en plus elle n'a pas la même adresse IP
à chaque fois qu'elle se connecte. Il est donc impossible de
recevoir du courrier électronique directement sur votre
machine, et de créer un serveur web et ftp que vos amis
pourraient accéder ! A partir du moment ou ça
concerne Internet, votre machine n'est pas unique, ni accessible de
manière permanente comme cela serait le cas avec une adresse
IP unique (rappel - les autres machines utilisent les adresses IP
pour accéder à votre machine).</p>
<p>Si vous configurez en serveur WWW (ou n'importe quoi d'autre),
il est totalement inconnu des utilisateurs d'Internet A MOINS
QU'ils soient au courant que votre machine est connectée et
qu'ils connaissent votre adresse IP courante. Il y a plusieurs
façon de fournir cette information, vous demander par
téléphone, leur envoyer un e-mail pour leur dire, ou
utiliser un fichier ".plan" sur le compte shell de votre
fournisseur d'accès (en partant du principe que votre
fournisseur d'accès permet les script shell et les
finger).</p>
<p>Maintenant, pour la majorité des utilisateurs, ça
n'est pas vraiment un problème - la plupart des gens veulent
pouvoir envoyer et recevoir leur email (sur le compte de leur
fournisseur d'accès) et faire des connexions sortantes vers
WWW, ftp et d'autres services d'Internet. Si vous AVEZ un besoin
impératif de connexion sortantes, vous feriez mieux de
prendre une adresse IP statique. Cependant, vous pouvez aussi
explorer les méthodes astucieuses ci dessous...</p>
<h2><a name="ss21.1">21.1 Configurer le courrier
électronique (email)</a></h2>
<p>Même avec une adresse IP dynamique, vous devrez
certainement configurer sendmail sur votre machine pour envoyer le
courrier que vous écrivez localement. La configuration de
sendmail peut être obscure et difficile - ce document ne vous
parleras pas de la façon de faire. Cependant, vous aimeriez
sans doute configurer sendmail pour que votre fournisseur
d'accès soit considéré comme un hôte
"smart relay" (l'options <b>DS</b> de sendmail). (Pour plus d'info
sur la configuration de sendmail, voir la documentation de sendmail
- et regardez la configuration de m4 fourni avec sendmail. Il y a
forcement quelque chose qui réponds à ce que vous
cherchez).</p>
<p>Il y a un excellent livre sur Sendmail (une véritable
'bible' aux éditions O'Reilly and Associates), mais c'est
certainement beaucoup trop pour la plupart des utilisateurs !</p>
<p>Une fois que vous avez configuré sendmail, vous avez
probablement envie que sendmail envoie les messages en attente
dès que la connexion PPP est lancée. Pour cela,
ajouter la commande</p>
<blockquote>
<pre>
<code>sendmail -q &
</code>
</pre></blockquote>
<p>dans votre script /etc/ppp/ip-up (voir plus haut).</p>
<p>Les mails entrant sont problématique avec les adresses IP
dynamiques. La façon de les supporter est de :</p>
<ul>
<li>configurer votre lecteur d'email pour que le courrier
contiennent un champ "reply to" dans lequel il y aura votre adresse
électronique chez votre fournisseur d'accès.<br>
Si vous le pouvez, configurez également le champ FROM avec
votre adresse électronique chez votre FAI.</li>
<li>utiliser les programmes popclient, fetchmail pour
récupérer le courrier chez votre fournisseur
d'accès. Ou bien, si votre FAI utilise IMAP, utilisez un
lecteur de courrier électronique ayant IMAP d'activé
(comme pine).</li>
</ul>
<p>Vous pouvez automatiser ce processus lors de l'appel en ajoutant
la commande nécessaire dans le script
<code>/etc/ppp/ip-up</code> (voir plus haut).</p>
<h2><a name="ss21.2">21.2 Configurer un serveur de noms
local</a></h2>
<p>Même si vous êtes content d'utiliser le serveur de
noms situé chez votre fournisseur d'accès, vous
pouvez en plus configurer un serveur de nom local (secondaire) de
cache uniquement qui serait lancé avec le script ip-up.
L'avantage d'utiliser un serveur de noms local (cache uniquement)
est de gagner du temps (et de la bande passante) si vous contactez
souvent les même sites pendant de longues sessions en
ligne.</p>
<p>La configuration du DNS pour un serveur de cache seulement (qui
utilise une ligne 'forwarders' dans le fichier named.boot pointant
sur le DNS de votre FAI) est relativement simple. Le livre O'Reilly
(DNS et Bind) explique tout ce que vous devez savoir sur le
sujet.</p>
<p>Il existe également un DNS-HOWTO.</p>
<p>Si un petit réseau local accède à Internet
grâce à votre PC Linux (avec IP masquerading par
exemple), c'est sans doute une excellente idée d'utiliser un
serveur de noms (avec la directive forwarders) puisque cela
réduira les delais et la bande passante utilisée pour
la résolution des noms.</p>
<p>Un point de la Netiquette : demandez la permission à
votre fournisseur d'accès avant de mettre en place un
serveur de noms secondaire de cache uniquement dans le domaine de
votre FAI. Configuré correctement, il n'entrainera aucun
problème chez votre FAI, mais si il ne l'est pas, il peut
causer de nombreux problèmes.</p>
<h2><a name="s22">22. Relier deux réseaux locaux avec
PPP</a></h2>
<p>Il y a fondamentalement aucune différence entre le fait
de relier un seul PC Linux avec PPP et relier deux réseaux
locaux avec PPP et une machine sur chaque réseau.
Souvenez-vous PPP est un protocole <b>réversible</b>.</p>
<p>Cependant, vous devez <b>REELLEMENT</b> comprendre comment le
routage se déroule. Lisez le NET-2 HOWTO et le Guide
d'administration Linux (NAG). Vous trouverez également une
aide inestimable dans le " TCP/IP Network Administration"
(publié par O'Reilly and Assoc - ISBN 0-937175-82-X)</p>
<p>Si vous utilisez une adresse de sous-réseau de chaque
côté de la liaison, le (brouillon) de mini-howto Linux
sub networking pourra vous être utile. Il est disponible
à <a href="http://www.interweft.com.au/other/">Linux Sub
networking mini-HOWTO</a>.</p>
<p>Pour relier deux réseaux locaux, vous <b>devez</b>
utiliser des adresses IP différentes (ou des
sous-réseau d'adresses différentes) et vous devrez
utiliser des adresses IP statiques ou l'IP Masquerading. Si vous
voulez utiliser l'IP Masquerading, consultez le mini-howto IP
masquerade pour avoir des instructions sur la manière de le
configurer.</p>
<h2><a name="ss22.1">22.1 Configurer les adresses IP</a></h2>
<p>Arrangez-vous avec l'administrateur système de l'autre
réseau local pour choisir les adresses IP qui seront
utilisés de chaque côté de l'interface PPP. Si
vous utilisez des adresses IP statiques, il sera sans doute
pratique d'appeler un numéro de téléphone
dédié.</p>
<p>Maintenant, éditez le fichier
<code>/etc/ppp/options[.ttyXX]</code> approprié - il est
judicieux d'avoir un modem et un port dédié de chaque
côté de la connexion. Cela nécessite quelques
changements dans le fichier <code>/etc/ppp/options</code> et la
création d'un fichier options.ttyXX approprié pour
les autres connexions !</p>
<p>Spécifiez les adresses IP pour le côté de
votre liaison PPP dans les fichiers d'options appropriés
exactement comme cela est décris plus haut pour les adresses
IP statiques.</p>
<h2><a name="ss22.2">22.2 Configurer le routage.</a></h2>
<p>Vous devez vous occuper que les paquets du réseau local
soit routés à travers l'interface lorsque la liaison
PPP est lancée. Ce processus se fait en deux parties.</p>
<p>Tout d'abord, vous devez configurer une route partant de la
machine qui fait marcher la liaison PPP vers le réseau
situé à l'autre bout. Si cette liaison donne sur
Internet, vous pouvez utilisez la route par défaut mise en
place par <code>pppd</code> lui-même à la connexion
avec l'option <code>defaultroute</code>.</p>
<p>Si toutefois, la liaison relie seulement deux réseaux
locaux, alors une route réseau spécifique doit
être ajoutée pour tous les réseaux accessible
par cette liaison. C'est la commande 'route' qui le fait pour
chaque réseau dans le script /etc/ppp/ip-up script (voir une
fois que la liaison fonctionne...) pour des instructions
détaillées.</p>
<p>La seconde chose dont vous avez besoin est de prévenir
les autres ordinateurs que vous êtes le gateway vers les
réseaux situés à l'autre bout de la
liaison.</p>
<p>Bien sûr, l'administrateur réseau de l'autre
coté de la liaison doit faire les même choses !
Cependant, puisque qu'il route les paquets vers votre réseau
particulier, une <b>route réseau spécifique</b> est
indispensable, et non la route par défaut (à moins
que le réseau situé à l'autre bout se connecte
chez vous pour accéder à Internet).</p>
<h2><a name="ss22.3">22.3 Sécurité
réseau</a></h2>
<p>Si vous reliez votre réseau local à Internet avec
PPP - ou du moins avec un réseau local "étranger",
vous devez réfléchir aux problèmes de
sécurité. Je vous conseille fermement de penser
à configurer un firewall !</p>
<p>Vous devriez également parler à l'administrateur
réseau de votre site <b>AVANT</b> de lancer une connexion
vers un réseau local étranger voire vers Internet ce
cette manière. Ne rien faire peut soit n'amener aucune
réaction soit de sérieux problèmes !</p>
<h2><a name="ip-up"></a> <a name="s23">23. Une fois que la
connexion fonctionne - le script
<code>/etc/ppp/ip-up</code></a></h2>
<p>Une fois que la connexion est établie, <code>pppd</code>
cherche un <code>/etc/ppp/ip-up</code>. Si ce script existe et est
exécutable, le daemon PPP le lance. Cela permet
d'automatiser des commandes de routages spéciales qui
peuvent être nécessaires et toutes les autres actions
que vous souhaitez lancer une fois que la liaison PPP est
activée.</p>
<p>C'est un simple script shell qui fait uniquement ce qu'un script
shell peut faire (en fait quasiment tout ce que vous voulez).</p>
<p>Par exemple, vous pouvez demander à sendmail d'envoyer
les messages en attentes.</p>
<p>Il y a quelques restrictions avec
<code>/etc/ppp/ip-up</code>:</p>
<ul>
<li>Il fonctionne délibéremment dans un environnement
réduit pour augmenter la sécurité. Cela
signifie que vous devez donner le chemin complet des
exécutables.</li>
<li>Techniquement, <code>/etc/ppp/ip-up</code> est un
<em>programme</em> et non un script. Cela signifie qu'il ne peut
pas être exécuté directement - même si il
a besoin du (<code>#!/bin/bash</code>) magique au début de
la première ligne et qu'il doit être lisible est
exécutable par root.</li>
</ul>
<h2><a name="ss23.1">23.1 Routages spéciaux</a></h2>
<p>Si vous reliez deux réseaux locaux, vous devez configurer
des routes spécifiques vers le réseau
'étranger'. Le script <code>/etc/ppp/ip-up</code> peut le
faire facilement. La seule difficulté est lorsque votre
machine supporte plusieurs liaisons PPP.</p>
<p><code>/etc/ppp/ip-up</code> est utilisé à chaque
lancement de ppp, vous devez donc être extrêmement
vigilant d'exécuter les commandes de routage correctes pour
la liaison qui démarre - et non lorsque n'importe quelle
liaison démarre !</p>
<h2><a name="ss23.2">23.2 Support du courrier électronique
en attente</a></h2>
<p>Lorsqu'une liaison entre deux réseaux locaux
démarre, vous voudriez vous assurez que le courrier en
attente de chaque coté de la liaison est bien envoyé
à son destinataire. Cela est possible en ajoutant un appel
correct à <code>sendmail</code>.</p>
<p>Utiliser la commande case du bash sur le bon paramètre
que passe pppd au script permet cela. Par exemple, voici un script
<code>/etc/ppp/ip-up</code> que j'utilise pour mes liaisons entre
l'entreprise et chez mon réseau Ethernet (également
connecté au même serveur ppp).</p>
<h2><a name="ss23.3">23.3 Un exemple de script
<code>/etc/ppp/ip-up</code></a></h2>
<p>Le script suivant permet de nombreuses utilisations.</p>
<hr>
<pre>
#!/bin/bash
#
# Script permettant de supporter les possiblites de routages necessaires a pppd
# Seule la liaison vers Newman necessite ce support.
#
# Quand la liaison ppp demarre, ce script est appele avec les parmetres
# suivants
# $1 le nom de l'interface utilisee par pppd (c.-a-d. ppp3)
# $2 le nom du peripherique tty
# $3 la vitesse du peripherique tty
# $4 l'adresse IP locale de l'interface
# $5 l'adresse IP distante
# $6 le parametre specifie par l'option 'ipparam' a pppd
#
case "$5" in
# Supporte le routage vers le serveur du Newman Campus
202.12.126.1)
/sbin/route add -net 202.12.126.0 gw 202.12.126.1
# et envoie les courriers en attente la-bas !
/usr/sbin/sendmail -q &
;;
139.130.177.2)
# Notre liaison Internet
# Lorsque notre liaison est lancee, demarre le serveur de temps et
# se synchronise avec le monde si il n'a pas encore bouge.
if [ ! -f /var/lock/subsys/xntpd ]; then
/etc/rc.d/init.d/xntpd.init start &
fi
# Demarre le serveur de news (si il ne marche pas encore)
if [ ! -f /var/lock/subsys/news ]; then
/etc/rc.d/init.d/news start &
fi
;;
203.18.8.104)
# Recupere le courrier electronique sur ma machine tant que la liaison
# fonctionne. Aucun routage n'est necessaire tant que mon reseau local
# Ethernet supporte IP masquerade et le routages proxyarp.
/usr/sbin/sendmail -q &
;;
*)
esac
exit 0
</pre>
<hr>
<p>Le résultat du lancement de la liaison PPP vers notre
campus Newman et le démarrage de ce script, détermine
les entrées de la table de routage (cette machine est aussi
notre serveur PPP général ET supporte nos liaisons
Internet). J'ai ajouté des commentaires sur la sortie pour
expliquer a quoi correspond chaque entrée) :</p>
<hr>
<pre>
[root@kepler /root]# route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
# la route de l'HOTE de notre gateway internet
139.130.177.2 * 255.255.255.255 UH 1500 0 134 ppp4
# la route de l'HOTE vers le serveur Newman campus
202.12.126.1 * 255.255.255.255 UH 1500 0 82 ppp5
# la route de l'HOTE de mon réseau local ethernet
203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp3
# deux des lignes générales PPP
203.18.8.64 * 255.255.255.255 UH 552 0 0 ppp2
203.18.8.62 * 255.255.255.255 UH 552 0 1 ppp1
# la route réseau specifique vers le réseau Newman campus
202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp5
# la route de notre réseau local Ethernet (super-netting two adjacent C classes)
203.18.8.0 * 255.255.254.0 U 1500 0 1683 eth0
# la route vers le périphérique loop back
127.0.0.0 * 255.0.0.0 U 3584 0 483 lo
# la route par défaut vers Internet
default 139.130.177.2 * UG 1500 0 3633 ppp4
</pre>
<hr>
<h2><a name="ss23.4">23.4 Support du courrier
électronique</a></h2>
<p>La section précédente montrait comment supporter
le mail sortant - en envoyant simplement le courrier lorsque la
liaison démarrait.</p>
<p>Si vous utilisez une liaison pour un réseau large, vous
pouvez vous arranger avec l'administrateur réseau du site
distant pour qu'il fasse exactement la même chose. Par
exemple, à l'autre bout de la liaison au Newman Campus, le
script <code>/etc/ppp/ip-up</code> ressemble à :</p>
<hr>
<pre>
#!/bin/bash
#
# Script permettant de supporter les possiblites de routages necessaires a pppd
# Seule la liaison vers Hedland necessite ce support.
#
# Quand la liaison ppp demarre, ce script est appele avec les parmetres
# suivants
# $1 le nom de l'interface utilisee par pppd (c.-a-d. ppp3)
# $2 le nom du peripherique tty
# $3 la vitesse du peripherique tty
# $4 l'adresse IP locale de l'interface
# $5 l'adresse IP distante
# $6 le parametre specifie par l'option 'ipparam' a pppd
#
case "$5" in
203.18.8.4)
/usr/sbin/sendmail -q
;;
*)
esac
exit 0
</pre>
<hr>
<p>Si toutefois, vous n'avez qu'une adresse IP dynamique chez votre
FAI, vous devrez recevoir votre courrier sur le compte de votre
fournisseur d'accès. Cela est généralement
possible en utilisant POP (Post Office Protocol). Ce processus peut
être supporté avec le programme 'popclient" - le
script ip-up peut automatiser le processus pour vous !</p>
<p>Créez simplement un script <code>/etc/ppp/ip-up</code>
qui contient un appel correct à popclient. Pour mon portable
avec la RedHat Linux (que je prends lorsque je voyage), j'ai</p>
<hr>
<pre>
popclient -3 -c -u hartr -p <password> kepler.hedland.edu.au |formail -s procmail
</pre>
<hr>
<p>Vous pouvez aussi utiliser slurp en quelque chose d'autre
d'identique pour les news, et d'autres trucs. Souvenez vous que le
script ip-up est un script bash standard et qui peut servir
à automatiser TOUTES les fonctions que vous devez accomplir
chaque fois qu'une liaison PPP correspondante démarre.</p>
<h2><a name="s24">24. Utiliser
<code>/etc/ppp/ip-down</code></a></h2>
<p>Vous pouvez écrire un script, qui sera
exécuté à chaque fois qu'une liaison se
termine. Qui se situe dans <code>/etc/ppp/ip-down</code>. Il peut
être utilisé pour retirer ce que vous avez ajoutez de
spécial avec le script /etc/ppp/ip-up correspondant.</p>
<h2><a name="s25">25. Possibilité de routage sur un
réseau local</a></h2>
<p>Si vous êtes connecté sur un réseau local et
que vous voulez toujours utiliser PPP avec votre machine Linux,
vous devez définir les routes que les packets doivent
prendre pour atteindre le réseau local à partir de
votre machine (par l'interface Ethernet) et également le
serveur PPP distant voire plus loin.</p>
<p>Cette section ne prétend pas vous apprendre le routage -
elle traite seulement de cas simples et spéciaux de routage
(statique) !</p>
<p>Je vous recommande chaudement de lire de Guide d'administration
Réseau Linux si vous n'êtes pas habitué avec le
routage. De même le livre d'O'Reilly "TCP/IP Network
Administration" couvre le sujet de manière très
abordable.</p>
<p>La règle de base du routage statique est que la route par
DEFAUT pointe à l'endroit où il y le PLUS grand
nombre d'adresse réseau. Pour les autres réseau,
entrés des routes spécifiques dans la table de
routage.</p>
<p>La SEULE situation que je couvre ici est lorsque votre machine
Linux est sur un réseau non connecté à
Internet - et vous voulez vous connectez à Internet pour une
utilisation personnelle tout en restant connecté au
réseau local.</p>
<p>Tout d'abord, assurez-vous que votre route Ethernet est bien
configuré comme une adresse réseau spécifique
disponible sur votre réseau local - et PAS dans la route par
defaut !</p>
<p>Vérifiez cela en tapant la commande route, vous devriez
avoir quelque chose qui ressemble à ce qui suit :</p>
<blockquote>
<pre>
<code>[root@hwin /root]# route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
loopback * 255.255.255.0 U 1936 0 50 lo
10.0.0.0 * 255.255.255.0 U 1436 0 565 eth0
</code>
</pre></blockquote>
<p>Si votre interface Ethernet (eth0) pointe vers la route par
défaut, (la première colonne contiendra un "default"
dans la ligne eth0) vous devez changer les scripts
d'inititalisation d'Ethernet pour qu'ils utilisent des adresses
réseau spécifiques plutôt que la route par
défaut (consultez le HOWTO Net2 et le NAG).</p>
<p>Cela va permettre à <code>pppd</code> de configurer votre
route par défaut comme suit :</p>
<blockquote>
<pre>
<code>[root@hwin /root]# route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
10.144.153.51 * 255.255.255.255 UH 488 0 0 ppp0
127.0.0.0 * 255.255.255.0 U 1936 0 50 lo
10.1.0.0 * 255.255.255.0 U 1436 0 569 eth0
default 10.144.153.51 * UG 488 0 3 ppp0
</code>
</pre></blockquote>
<p>Comme vous pouvez le voir, nous avons une route d'hôte
vers le serveur PPP (10.144.153.51) par ppp0 qui est
également la route par défaut utilisé par le
serveur PPP comme gateway.</p>
<p>Si votre configuration est plus compliqué que cela, lisez
les documents concernant le routage cités plus haut, et
consultez un expert de votre site !</p>
<p>Si votre réseau local à aussi des routeurs, vous
devez déjà avoir des gateways pour interconnecter les
réseaux disponibles sur votre site. Vous devez TOUJOURS
mettre la route par défaut vers l'interface PPP - et
utiliser des routes spécifiques pour les autres
réseaux que vous accédez.</p>
<h2><a name="ss25.1">25.1 Remarques sur la
sécurité</a></h2>
<p>Lorsque vous configurez une machine Linux sur un réseau
local existant sur Internet, vous ouvrez potentiellement tout votre
réseau local vers Internet - ainsi que les pirates qui
l'utilise. Avant de commencer, je vous conseille vivement de
consulter votre administrateur réseau et le responsable de
la sécurité de votre site. Si votre connexion PPP
vers Internet est utilisé et permet d'attaquer votre site,
vous serez dans la plus mauvaise position face à la
colère de vos collègues et votre administrateur
système et réseau. Vous pourriez vous-même
avoir de sérieux problèmes !</p>
<p>Avant de connecter un réseau local sur Internet, vous
devez prendre en compte les problèmes de
sécurité même avec une connexion DYNAMIQUE -
dans ce cas la référence la plus récente est
le "Building Internet Firewalls" d'O'Reilly !</p>
<h2><a name="ppp-serveur"></a> <a name="s26">26. Configurer un
serveur PPP</a></h2>
<p>Comme c'est mentionné plus haut, il y a des tas de
façons de faire. Ce que je présente ici est la
façon de faire une liaison tournante sur plusieurs lignes
téléphoniques (avec une carte série
multi-ports utilisant des Cyclades)</p>
<p>Si vous n'aimez pas la méthode présentée
ici, faites donc comme vous préférez. J'aimerais
toutefois ajouter des méthodes supplémentaires dans
les prochaines versions de ce HOWTO. Envoyez donc moi comment vous
faites !</p>
<p>Remarquez que cette section ne concerne que la configuration de
Linux comme serveur PPP. Je ne compte absolument pas donner
d'informations sur la façon de configurer des serveurs
terminaux ou autre.</p>
<p>Même si, j'ai déjà expérimenté
l'utilisation de shadow password (et l'utilise de temps en temps).
Les informations présentées ici n'utiliserons
toutefois pas ce mécanisme.</p>
<h2><a name="ss26.1">26.1 Compiler le noyau</a></h2>
<p>Tous les commentaires précédent concernant la
compilation du noyau et les versions du noyau et de
<code>pppd</code> sont encore valables. Cette section
considère que vous avez lu les sections
précédentes du document !</p>
<p>Pour un serveur PPP, vous <b>DEVEZ</b> ajouter le support de IP
forwarding dans votre noyau. Vous pouvez aussi inclure d'autres
supports (comme le IP fire walls, accounting etc etc).</p>
<p>Si vous utilisez une carte série multi-port, vous devez
bien entendu inclure également les pilotes
nécessaires dans le noyau !</p>
<h2><a name="ss26.2">26.2 Présentation du système de
serveur</a></h2>
<p>Nous offrons des comptes PPP (ou SLIP) et des comptes shell en
utilisant les mêmes paires nom utilisateur/ mot de passe.
Cela permet (pour nous) que les utilisateurs n'aient qu'un seul
compte qu'ils peuvent utiliser pour toutes les connexions.</p>
<p>Comme nous sommes une organisation éducative, nous ne
faisons pas payer le personnel ni les étudiants pour leur
accès, et nous n'avons donc pas besoin de nous
inquiéter des problèmes de payement.</p>
<p>Un firewall existe entre notre site et Internet, et cela limite
les accès des utilisateurs puisque les lignes d'appels sont
sur notre firewall Internet (pour certaines raisons
évidentes, le détails des autres firewalls internes
ne sera pas présenté ici et serait de toute
façon inutile)</p>
<p>Le processus avec lequel un utilisateur établit une
liaison PPP avec notre site (une fois qu'ils ont un compte bien
sûr) :</p>
<ul>
<li>Appeler notre ligne d'appel groupé (qui est un
numéro de téléphone qui se connecte sur une
banque de modems - le premier modem libre est utilisé).</li>
<li>Connexion avec une paire valide de nom utilisateur et mot de
passe</li>
<li>Au prompt du shell, lancement de la commande <code>ppp</code>
pour lancer PPP sur le serveur.</li>
<li>Démarrer PPP sur le PC (il peut utiliser Windows, DOS,
Linux, MAC OS ou n'importe quoi d'autre - ce n'est pas un
problème).</li>
</ul>
<p>Le serveur utilise un fichier
<code>/etc/ppp/options.ttyXX</code> individuel pour chacune des
connexions sur le port où est configuré l'adresse IP
distante pour l'allocation des adresses IP dynamiques. Le serveur
utilisateur route les clients avec proxyarp (configuré avec
l'option appropriée de pppd). Cela oblige la présence
de routed ou gated.</p>
<p>Quand l'utilisateur raccroche de son coté,
<code>pppd</code> le détecte et indique au modem de
raccrocher, fermant en même temps la liaison PPP.</p>
<h2><a name="ss26.3">26.3 Faire marcher les programmes tous
ensemble</a></h2>
<p>Vous avez besoin des programmes suivants :</p>
<ul>
<li>Linux, correctement compilé avec les options
nécessaires</li>
<li>La version de <code>pppd</code> correspondant à votre
noyau</li>
<li>Un programme 'getty' qui décroche intelligemment les
communications par modem.<br>
Nous utilisons getty_ps2.0.7h, mais mgetty est aussi bien. Je sais
que mgetty peut s'apercevoir qu'un appel utiliser PAP/CHAP (PAP est
le standard pour Windows 95) et invoquer <code>ppp</code>d
automatiquement, mais je dois encore explorer un peu
ça.</li>
<li>Un serveur de nom (DNS) fonctionnel qui est accessible pour les
utilisateurs qui se connectent.</li>
</ul>
<p><b>Ce howto ne couvre pas sa configuration. Regardez la
documentation de getty de votre choix ou le serial HOWTO pour plus
d'informations sur le sujet.</b></p>
<h2><a name="ss26.4">26.4 Configurer les fichiers
d'options</a></h2>
<p>Vous avez besoin de configurer la totalité de
<code>/etc/ppp/options</code> avec les options standard pour les
ports d'appel. Les options utiles sont :</p>
<hr>
<pre>
asyncmap 0
netmask 255.255.254.0
proxyarp
lock
crtscts
modem
</pre>
<hr>
<p>Remarque - nous n'utilisons AUCUN routage (direct) - et en
particulier il n'y a pas d'option defaultroute. La raison de cela
est que tout ce dont vous avez besoin (en tant que serveur PPP)
à l'endroit où router les paquets <b>venant</b> du
client ppp vers votre réseau local ou Internet et de router
les paquets <b>vers</b> le client ppp qui viennent du votre
réseau local ou d'Internet.</p>
<p>Tout ce dont vous avez besoin est la route hôte de la
machine client et l'utilisation de l'option 'proxyarp' de pppd.</p>
<p>L'option 'proxyarp' configure (surprise) une entrée proxy
ARP dans la table ARP du serveur qui signifie en substance 'envoie
moi tous les paquets destinés au client'. C'est la
manière la plus simple de configurer le routage vers un
client PPP unique - mais elle ne peut être utilisé
pour le routage entre deux réseaux locaux - vous devez alors
utiliser les routes réseau réelles qui ne pourront
pas utiliser le proxy ARP.</p>
<p>Vous devez certainement avoir envie de fournir des adresses IP
dynamiques aux utilisateurs qui se connectent. Vous pouvez le faire
en associant une adresse IP dynamique sur chaque port d'appel.
Créez alors pour chaque port d'appel un
<code>/etc/ppp/options.ttyXX</code>.</p>
<p>Dedans, mettez simplement l'adresse IP locale du serveur et
l'adresse IP qui doit être utilisé pour ce port. Par
exemple</p>
<hr>
<pre>
kepler:slip01
</pre>
<hr>
<p>Remarquez en particulier que vous pouvez utiliser les noms
d'hôtes valides dans ce fichier (je trouve que c'est la seule
façon de se souvenir des adresses IP des machines
importantes de mon réseau, les noms sont bien plus
significatifs) !</p>
<h2><a name="ss26.5">26.5 Configurer pppd pour permettre aux
utilisateurs de le lancer</a></h2>
<p>Comme configurer une liaison ppp implique de configurer un
périphérique dans le noyau (une interface
réseau) et de manipuler les tables de routage, des
privilèges spéciaux sont nécessaires - en fait
la totalité des privilèges root.</p>
<p>Heureusement, <code>pppd</code> est prévu pour marcher
correctement avec set uid root. Vous devez donc</p>
<hr>
<pre>
chmod u+s /usr/sbin/pppd
</pre>
<hr>
<p>Quand vous listez le fichier, il doit apparaître comme
cela</p>
<hr>
<pre>
-rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd
</pre>
<hr>
<p>Si vous n'avez pas ça, vous ne pourrez pas utiliser votre
liaison ppp.</p>
<h2><a name="ss26.6">26.6 Créer un alias global pour
pppd</a></h2>
<p>Pour simplifier les choses pour les utilisateurs de notre
connexion PPP, nous créerons un alias global (dans
/etc/bashrc) qui est en fait une simple commande qui lancera ppp
sur le serveur dès qu'ils seront connectés.</p>
<p>Cela nous donne</p>
<hr>
<pre>
alias ppp="exec /usr/sbin/pppd -detach"
</pre>
<hr>
<p>Et il fait ceci</p>
<ul>
<li>exec : va remplacer le programme en cours (dans le cas d'un
shell) par le programme qui va être lancé.</li>
<li>pppd -detach : lance <code>pppd</code> et le laisse pas en
tâche de fond. Cela assure que <code>pppd</code> existe et
qu'il n'y a pas d'autres processus qui traînent.</li>
</ul>
<p>Quand un utilisateur se connecte comme cela, il va
apparaître après un 'w'</p>
<hr>
<pre>
6:24pm up 3 days, 7:00, 4 users, load average: 0.05, 0.03, 0.00
User tty login@ idle JCPU PCPU what
hartr ttyC0 3:05am 9:14 -
</pre>
<hr>
<p>Et c'est tout... Je vous avais dit que c'était simple un
serveur PPP de base !</p>
<h2><a name="directe"></a> <a name="s27">27. Utiliser PPP avec une
connexion null modem</a></h2>
<p>C'est très simple - il n'y a pas de modem et ainsi les
choses sont bien plus facile.</p>
<p>Tout d'abord, choisissez une machine comme 'serveur', configurez
getty sur le port série pour que vous testiez si vous avez
une connectivité en utilisant minicom sur le 'client'.</p>
<p>Une fois que ça fonctionne, vous pouvez enlever le getty
A MOINS que vous vouliez être sûr que la connexion
permet d'utiliser les paires nom utilisateur/ mot de passe pour les
connexions entrantes. Comme vous avez un 'contrôle physique'
des deux machines, je pense que vous n'avez pas besoin de
ça.</p>
<p>Maintenant, sur le serveur, enlevez getty et assurez vous que
les ports série sont configurés correctement sur les
deux machines avec 'setserial'.</p>
<p>Tout ce que vous avez besoin maintenant est de démarrer
<code>pppd</code> sur les deux systèmes. Je suppose que les
connexions utilise une connexion par /dev/ttyS34. Ainsi sur les
deux machines lancez la commande :</p>
<hr>
<pre>
pppd -detach crtscts lock <local IP>:<remote IP> /dev/ttyS3 38400 &
</pre>
<hr>
<p>Cela devrait lancer la connexion - mais pour le moment il n'y a
aucun routage de spécifié. Vous pouvez tester la
connexion en pingant l'autre machine. Si ça marche,
éteignez la liaison en tuant le processus pppd</p>
<p>Le routage dont vous avez besoin dépend de ce que vous
voulez faire exactement. Généralement, une des
machines sera connecté sur un réseau Ethernet (et
même plus) le routage nécessaire est donc exactement
le même qu'entre un serveur PPP et un client.</p>
<p>Sur la machine équipée d'Ethernet, la commande
sera donc</p>
<hr>
<pre>
pppd -detach crtscts lock proxyarp <local IP>:<remote IP> /dev/ttyS3 38400 &
</pre>
<hr>
<p>et sur l'autre machine</p>
<hr>
<pre>
pppd -detach crtscts lock defaultroute <local IP>:<remote IP> /dev/ttyS3 38400 &
</pre>
<hr>
<p>Si vous reliez deux réseaux locaux (avec une liaison
série !) vous aurez besoin d'un routage plus complexe, vous
pouvez utiliser /etc/ppp/ip-up exactement de la même
façon qu'il est décrit plus haut.</p>
<p><b>Robert Hart</b><br>
Port Hedland, Western Australia<br>
Melbourne, Victoria, Australia August/October 1996 January/March
1997</p>
</body>
</html>
|